Агуулгын хүснэгт:

Хөлдөөгчийн сэрүүлгийн реле: 5 алхам
Хөлдөөгчийн сэрүүлгийн реле: 5 алхам

Видео: Хөлдөөгчийн сэрүүлгийн реле: 5 алхам

Видео: Хөлдөөгчийн сэрүүлгийн реле: 5 алхам
Видео: Распределенный автоматический выключатель: повышение отказоустойчивости ваших микросервисов 2024, Долдугаар сарын
Anonim
Хөлдөөгчийн сэрүүлгийн реле
Хөлдөөгчийн сэрүүлгийн реле

Манай хөлдөөгч нь амьдрах орчноосоо тусгаарлагдсан хэрэглээний өрөөнд байдаг. Заримдаа хөлдөөгчийн хаалга онгойдоггүй, сэрүүлэг дуугардаг. Асуудал нь хэрэв бид амьдрах орон зайд байгаа бол үүнийг сонсохгүй байна. Хөлдөөгчийн хаалга нээлттэй байна гэсэн мессежийг яаж авах вэ? Энэ бол нийтлэг асуудал бөгөөд манай гэрт бидэнтэй ярьдаг төхөөрөмж байдаг, гэхдээ ямар ч шалтгаанаар сонсохгүй байвал яах вэ? Би үүнийг жаахан хөгжилтэй байдлаар эхлүүлсэн боловч энэ нь илүү ноцтой програмд ашиглагдаж магадгүй юм.

Энэ асуудлын 2 хэсэг байдаг, бидэнд дохиолол унтарсан эсэхийг олж мэдэх арга, энэ баримтыг амьдрах орон зайнд дамжуулах арга хэрэгтэй. Миний шийдсэн загвар бол Raspberry Pi ашиглан хөлдөөгчийн сэрүүлгийг унтрааж, дараа нь uPNP идэвхжсэн дотоодын радио руу дуут дохиоллын мессеж илгээх явдал байв. Universal Plug and Play (UpnP) нь сүлжээний янз бүрийн төхөөрөмжүүд, түүний дотор медиа серверүүд болон тоглуулагчдын санал болгож буй үйлчилгээнүүдийг олж илрүүлэх, тэдэнтэй харилцах стандарт боловч стандартыг боловсруулахад хөлдөөгчийг төсөөлөөгүй гэж би бодож байна. Анхааруулах мессеж чанга, цочромтгой болж, радио унтрах хүртэл эцэс төгсгөлгүй давтагдана.

Би Raspberry Pi Zero W болон Seeed ReSpeaker 2-Mics Pi HAT ашиглан сэрүүлгийг илрүүлэхээр сонгосон Raspberry PI Zero нь Raspberry Pi-ийн хямд үнэтэй хувилбар бөгөөд W сонголт нь WiFi-д суурилагдсан бол Seeed Pi HAT нь хямд үнээр зарагддаг. 10 доллар, суурилуулсан LED болон хэрэглэгчийн товчлууртай. Pi HAT бол Raspberry Pi дээр шууд залгах өргөтгөлийн карт бөгөөд угсрах ажлыг маш энгийн байдлаар гүйцэтгэдэг. Аливаа Pi хувилбар нь энэ ажилд илүү чадварлаг байх бөгөөд сонгосон микрофоныг орлуулж болно, гэхдээ би энэ бүтцэд суурилуулсан LED-ийг ашигласан.

Радио эсвэл ТВ танд тохирох эсэхийг шалгахад хялбар байдаг. Үүнийг "DLNA идэвхжүүлсэн" эсвэл үүнтэй төстэй гэж тайлбарлах болно. Энэ нь харилцахдаа uPNP -ийг ашигладаг. Windows компьютер дээр mp3 файлыг сонгоод "Төхөөрөмж рүү дамжуулах" -ыг сонгоно уу. Хэрэв таны төхөөрөмж гарч ирвэл та файлыг тоглуулах боломжтой бол та явахад бэлэн байна.

Би програм хангамжийг 2 python скрипт болгон хувааж, checkFreezer.py дээр хөлдөөгчийн сэрэмжлүүлэг идэвхжсэн эсэхийг шалгаж, дохиоллыг дээшлүүлэхийн тулд alarmA.lmpy програмыг суулгасан. Эдгээр скриптүүдийг тусад нь боловсруулж, туршиж үзэх боломжтой бөгөөд дохиоллын дохиог нэмэгдүүлэх янз бүрийн аргуудыг хялбархан дасан зохицуулж эсвэл орлуулж болно.

Хангамж

  • Програм хангамж -https://github.com/wapringle/freezer-alarm
  • Raspberry PI Zero W
  • ReSpeaker 2-Mics Pi HAT-ийг үзсэн
  • uPNP идэвхжүүлсэн радио

Алхам 1: Илрүүлэгчийг зохион бүтээх

Хөлдөөгчийн хаалгыг онгойлгож, температур нэмэгдэхэд хөлдөөгч нь "дуут дохио дуугарах" дохиоллыг өгдөг. Ихэнх цахим дохионуудын хувьд энэ нь ганц давтамжтай байдаг. Энэхүү санаа нь аудио оролтыг дээжлэх, хурдан Фурье хувиргах (FFT) хийх бөгөөд энэ нь цаг хугацааны дохиог давтамжид шилжүүлэх, өөрөөр хэлбэл дохионы өөр өөр давтамжийг харуулах дохиог задлах явдал юм. RGB LED зурвас бүхий Raspberry Pi спектрийн анализаторыг үзнэ үү Бид дуугаралтын давтамжийн оргилыг хайж, дуут дохио хэсэг хугацаанд идэвхтэй байх үед дохиоллыг асааж болно.

Энэхүү илрүүлэгч нь 2 шаардлага тавьдаг

  • Энэ нь хүрээлэн буй орчны дуу чимээтэй байсан ч дуут дохиог илрүүлэх ёстой (хуурамч сөрөг зүйлийг арилгах)
  • Үүнийг хүрээлэн буй орчны дуу чимээ өдөөж болохгүй (хуурамч эерэг байдлыг арилгах)

Туслах өрөөнд Гувер ажиллуулах нь сайн шалгалт байх болно гэж би шийдсэн. Энэ нь сэрүүлгийг өдөөх ёсгүй бөгөөд хөлдөөгчийн дуугаралт дуугарч, Гувер ажиллаж байх үед дохиоллыг асаах ёстой.

Алхам 2: Илрүүлэгчийг тохируулах

Илрүүлэгчийг тохируулж байна
Илрүүлэгчийг тохируулж байна
Илрүүлэгчийг тохируулж байна
Илрүүлэгчийг тохируулж байна
Илрүүлэгчийг тохируулж байна
Илрүүлэгчийг тохируулж байна

Утасныхаа тусламжтайгаар би зөвхөн хөлдөөгчийн дуугаралтын дуу чимээтэй, Hoover ажиллаж байсан дууны дээжийг WAV файл болгон авсан. Би FFT -ийг унших аудио дамжуулалтыг унших бичлэгээс FFT -ийг гүйцэтгэх кодоо тохируулсан (эргэлзээтэй байгаа бол өмгөөлөх), FourierTest.py скриптийг ашиглан чимээгүй, чимээ шуугиан ихтэй, чимээ шуугиантай дуу чимээний түүхий болон Фурье хувиргасан дээжүүдийг зурсан. Эхний давтамжид 645 давтамжийн түвшин огцом нэмэгдсэн бөгөөд энэ нь маш их чимээ шуугиантай хэвээр байна.

Алхам 3: Илрүүлэгчийг бүтээх

Илрүүлэгчийг угсрах

Маш энгийн. Pi W нь суурилуулсан Wifi-тай ирдэг бөгөөд HAT нь Pi дээрх GPIO зүү рүү шууд холбогддог. Програм хангамжийг тохируулахын тулд дараах алхмуудыг хийх шаардлагатай

  • Raspberry Pi дээр raspbian distro суулгаарай. Энэ талаар маш сайн тайлбарлаж чадах олон гарын авлага байдаг.
  • Wifi -г тохируулна уу (дээрхтэй адил)
  • Энэ нь alsa багцыг суулгах шаардлагатай байна

$ sudo apt-get install libasound-dev

$ pip суулгах pyalsaaudio

  • HAT -ийг бөөрөлзгөнө PI -тэй холбоно уу
  • HAT драйверуудыг суулгахын тулд вэбсайт дээрх зааврыг дагана уу.
  • HAT ажиллаж, зөв тохируулагдсан эсэхийг шалгахын тулд үзүүлсэн оношилгоог ажиллуулна уу.

Илрүүлэгч програм нь микрофоны дээж болгон өгөгдлийн блокыг уншиж, FFT хийж, дээжинд дуугаралтыг илрүүлсэн эсэхийг шийддэг. Би аудионы дээжийн хурдыг 16 кГц хүртэл бууруулж, уншигчдын хүлээн авах хамгийн том буферийг ашиглан блокыг аль болох урт болгохыг хичээсэн. FFT -ийн тооцоолол нь хүрээ хасагдахад хүргэж болзошгүй гэж би санаа зовж байсан ч тийм зүйл болоогүй.

Утсан дээрээ урьдчилж бичигдсэн дээжүүд байгаа нь детекторыг бүтээх ажлыг хөнгөвчилсөн тул хөргөгчинд газар дээр нь туршихаасаа өмнө вандан сандал дээр бүрэн хийц хийх боломжтой болсон.

Илрүүлэгчийг сургах

Дуут дохионы WAV бичлэгийг детекторт тоглуулах үед детекторыг дээж бүрийг сканнердах замаар сургасан. Хөтөлбөр нь FFT спектр дэх байрлалыг хамгийн их чадлын түвшин (оргил давтамж) болон тухайн оргил давтамжийн түвшинтэй хамт гаргадаг. Дуут дохионы давтамж, ялгаруулж буй хүчний түвшинг олох нь энгийн зүйл байв.

Дуут дохио гарсан эсэхийг илрүүлэх 2 арга бий:-

  1. Дуут дохионы давтамж нь дээжийн оргил давтамж байсан уу?
  2. эсвэл дуут дохионы давтамж дахь эрчим хүчний түвшин босго давсан уу?

Аль ч арга нь нам гүм дээж дээр ажилласан боловч хоёр дахь нь дуу чимээтэй дээжтэй байсан тул би үүнийг ашигласан.

Заримдаа дээж нь дуут дохиог хамардаг, заримдаа энэ нь дохионы хооронд байдаг бөгөөд 3 дохио өгөх бүрийн дараа дараагийн дохио өгөхөөс өмнө удаан завсарлага гардаг. Дуу чимээ гарсан эсэхийг найдвартай тодорхойлохын тулд дээж бүр дуут дохио илэрсэн бол дээш санал өгсөн, эс бөгөөс татгалзсан хариу өгсөн байна. Эдгээр саналууд нь дуут дохиогоор дуугарч, завсарлагаанаар аажмаар ялзарч болох тооллогыг тогтоохын тулд жигнэсэн байв. Тооллого босго хэмжээнд хүрсэний дараа дохиолол асааж болно. Хэрэв дуут дохио мэт санамсаргүй дуу чимээ илэрсэн бол тоолол тэг рүү буцна.

Бидэнд босго саналын хамт дээш болон доош санал өгөх жин хэрэгтэй болно. Үүнийг би олон тооны дээж дээр туршилт, алдаатай хийсэн. Би дуут дохионы бодит давтамжийг тодорхойлох шаардлагагүй, зүгээр л fft спектр дэх давтамжийг хайж олсон.

Алхам 4: Радио руу мессеж илгээх

Сэрүүлгийг нэмэгдүүлэх нь тусдаа скриптээр хийгдсэн. Шаардлагатай бол радиог асаах, радио тоглож буй бүх зүйлийг задлах, радио дахин унтрах хүртэл дохиоллын мэдээг давтах нь түүний үүрэг юм. Найдвартай мэдээлэл, жишээ авахад маш их бэрхшээлтэй байсан тул би ашигладаг uPnP протоколыг өөрчлөх шаардлагатай болсон. Надад хэрэгтэй гэж үзсэн хэдэн лавлагаа байсан

  • www.electricmonk.nl/log/2016/07/05/exploring-upnp-with-python/ Энэ бүхэн хоорондоо хэрхэн нийцэж байгаа талаар сайхан тоймтой байна.
  • developer.sony.com/develop/audio-control-api/get-started/browse-dlna-file.
  • stackoverflow.com/questions/28422609/how-to-send-setavtransporturi-using-upnp-c/35819973

Би компьютер дээрээ дээж файлыг радио дээрээ тоглуулахдаа мессежийн дарааллыг сонгохын тулд Windows PC дээр ажилладаг Wireshark -ийг ашигласан бөгөөд хэсэг хугацааны дараа би ажилласан командын дарааллыг олж авлаа. Энэ бол

  • Радио асуухад анхааруулах мессежийг өгөхийн тулд попап вэб сервер ажиллуулна уу
  • Дууны түвшинг LOUD болгож тохируулна уу (анхааруулах мессеж нь хүн бүрийн анхаарлыг татах ёстой)
  • Анхааруулах мессежийн uri -г радио руу дамжуулна уу
  • Одоогийн төлөвийг "ЗОГСООХ" хүртэл радиогоос санал асуулга авна уу.
  • Уриаг "PLAY" болгохын тулд радиог аваарай
  • Сүүлийн 2 алхамыг одоогийн байдал "NO MEDIA PRESENT" болтол давтана. Энэ нь радиог унтрааснаар дохиоллыг хүлээн зөвшөөрсөн гэсэн үг юм.
  • Эцэст нь вэб серверийг хааж, гарна уу.

Энэ бол boostAlarm.py скрипт юм

Алхам 5: Үүнийг өөрөө хийх

Үүнийг өөрөө хийх
Үүнийг өөрөө хийх

"Илрүүлэгч" ба "дохиолол дээшлүүлэх" загвар нь зөвхөн хөлдөөгчид зориулагдсан биш бөгөөд автомат дохиоллыг өөр хэрэгслээр дамжуулах шаардлагатай хаана ч байсан ашигтай байж болох юм. Хэрэв энэ нь сонирхолтой байх юм бол чөлөөтэй очиж үзээрэй.

PI Zero W, түүний дотор микрофоныг тохируулах

  • 3 -р алхам дээрх шиг тоног төхөөрөмжийг угсарна
  • Хөлдөөгч-дохиоллын скриптийг энэ зааварчилгаанаас эсвэл цөөн хэдэн урамшуулал агуулсан git репозитороос татаж аваарай.

$ git клон

APA102 LED дээрх самбарыг ашиглахын тулд та програм хангамжийг суулгах хэрэгтэй. Би apa102.py -ийн хуулбарыг git ажлын лавлах санд оруулсан болно

Таны детекторыг сургаж байна

Би checkFreezer.py скриптэд сургалтын сонголтыг нэмсэн. Энэ нь дангаараа ажилладаг бөгөөд оношлогоог командын мөрөнд хэвлэдэг боловч эхлээд сэрүүлгийн зарим дээжийг WAV файлууд шиг чимээгүй орчинд бичиж, чимээ шуугиантай үед хийх хэрэгтэй. Сургалтыг дуусгахын тулд эхлээд FFT давтамжийг хамгийн өндөр түвшин ("оргил давтамж"), дараа нь гохыг тохируулах босго түвшинг олох хэрэгтэй. Үүнийг хийхийн тулд checkFreezer скриптийг сургалтын горимд ажиллуулж, '-t' сонголтыг хийж, сэрүүлгийн бичлэгийг тоглуулна уу.

$ python checkFreezer.py -t

Энэ нь скриптийг сургалтын горимд ажиллуулдаг. Энэ нь харсан HAT-ийг эхлүүлж, LED нь ногоон болж, дараа нь сонсдог энгийн бус дуу чимээ тус бүрийн мөрийг "бэлэн" гэж хэвлэнэ.

$ python checkFreezer.py -t

Бэлэн оргил давтамж 55 гох түвшний 1 -ийг идэвхжүүлсэн үү? Хуурамч оргил давтамж 645 гох түвшин 484 өдөөгдсөн үү? Хуурамч оргил давтамж 645 гох 380 түвшинг өдөөсөн үү? Худлаа

Оргил давтамж нь энэ тохиолдолд 645 бөгөөд энэ нь гох давтамж болдог. Одоо гох түвшинг авахын тулд checkFreezer -ийг дахин ажиллуулаад гохыг тохируулна уу

$ python checkFreezer.py -t --trigger = 645

Бэлэн оргил давтамж 645 гох түвшин 1273 -ийг өдөөсөн үү? Хуурамч оргил давтамж 645 гох түвшин 653 өдөөгдсөн үү? Хуурамч оргил давтамж 645 гох түвшин 641 -ийг өдөөсөн үү? Хуурамч оргил давтамж 645 гох түвшин 616 өдөөгдсөн үү? Худлаа

Эцэст нь бидэнд дохио дуугарах үед дуугардаг боловч дуу чимээг үл тоомсорлодог гох босго хэрэгтэй болно

$ python checkFreezer.py -t --trigger = 645 -босго = 500

Бэлэн оргил давтамж 645 гох түвшин 581 идэвхжсэн үү? Жинхэнэ оргил давтамж 645 гох түвшин 798 идэвхжсэн үү? Жинхэнэ оргил давтамж 645 гох 521 түвшинг өдөөсөн үү? Үнэн

Үүнийг хэд хэдэн чимээ шуугиантай дээжтэй туршиж үзээрэй, та унтаж буй хүний дуу чимээ, хүрээлэн буй орчны чимээ шуугианыг ялгах босго утгыг тогтоох боломжтой байх ёстой. Дуу авианы бичлэгийг хэдхэн секундын турш тоглуулахад LED нь улаан болж хувирах ёстой. Хэрэв энэ нь хурдан/удаашралтай байгаа бол скрипт дэх тохиргоог засварлана уу

Радио руу холбогдож байна

Скриптийг өөрийн тохиргоонд тохируулахын тулд та төхөөрөмжөө UPnP үйлчилгээнд ашиглаж буй IP хаяг болон портын дугаарыг олох хэрэгтэй. Радио тохиргоо нь эдгээрийг өгөх ёстой. Анхдагч порт дугаар нь 8080 бөгөөд хэрэв өөр байвал гайхах болно.

Би анхдагч сэрүүлгийн мессежийг өгсөн, freezer.mp3. Та өөрийн мессежээр сольж болно.

Тохирох IP хаягаар скриптийг засаад скриптийг ажиллуулна уу.

$ python boostAlarm.py

Хэрэв бүх зүйл сайн байвал чанга, цочромтгой дохио нь радио унтрах хүртэл таны радиогоос гарч, сэрүүлгийг цуцална.

Скрипт ажиллаж байх үед мини вэб сервер ажиллуулдаг бөгөөд дохиолол mp3 -ийг радиогоор дамжуулдаг бөгөөд энэ нь аюулгүй байдлын асуудал байж магадгүй, гэхдээ энэ нь зөвхөн сэрүүлгийн мессеж тоглож байх үед л идэвхждэг.

Шууд дамжуулж байна

'-T' сургалтын тугийг арилгаад checkFreezer-ийг өөрийн гэсэн утгатай ажиллуулна уу

$ python checkFreezer.py --trigger = 645 -босго = 200

Үүнийг дахин эхлүүлэхийн тулд /etc/rc.local, cd/home/pi/хөлдөөгч-дохиолол

(python checkFreezer.py --trigger = 645 -threshold = 200> /tmp /freezer 2> /tmp /freezererror &) & гарах 0

Ногоон LED асах бөгөөд та үйлдэл хийхэд бэлэн байна. Сэрүүлгийн дохионы бичлэгийг тоглуулаад хэдхэн секундын дараа LED улаан болж, дохио мессеж таны радиогоор сонсогдоно.

Эцэст нь

PI -ийг хөлдөөгчийн ойролцоо, замаас хол, цахилгаан хангамжийн ойролцоо байрлуулна. Цахилгаан асаж, ногоон LED асах ёстой. Хаалгыг онгойлгосноор дохиоллыг асаах тест. Гэрэл улаан болж, дохиоллын мессеж радиогоор тоглож байх ёстой.

Амжилт !! Та үүнийг хийсэн. Хөлдөөгчөөс мөс аваад удаан хугацаагаар уугаарай, гэхдээ хөлдөөгчийн хаалгыг хаахаа бүү мартаарай!

Зөвлөмж болгож буй: