Mundarija:

Muzlatgich signal rölesi: 5 qadam
Muzlatgich signal rölesi: 5 qadam

Video: Muzlatgich signal rölesi: 5 qadam

Video: Muzlatgich signal rölesi: 5 qadam
Video: Как починить холодильник за 5 минут. Чиним сами (Samsung). 2024, Iyul
Anonim
Muzlatgich signal rölesi
Muzlatgich signal rölesi

Bizning muzlatgichimiz yashash xonamizdan ajratilgan xizmat xonasida. Vaqti -vaqti bilan muzlatgich eshigi to'g'ri yopilmaydi va signal o'chadi. Muammo shundaki, agar biz yashash joyimizda bo'lsak, biz buni eshitmaymiz. Muzlatgich eshigi ochiq ekanligi haqida qanday xabar olamiz? Bu tez -tez uchraydigan muammo, bizning uyimizda biz bilan gaplashadigan qurilmalar bor, lekin agar biron sababga ko'ra ularni eshitmasak nima bo'ladi. Men buni biroz kulgili deb boshladim, lekin bu jiddiyroq dasturda ishlatilishi mumkin.

Bu muammoning 2 qismi bor, bizda signal o'chganligini aniqlash usuli va bu haqiqatni yashash joyimizga etkazish usuli kerak. Men qaror qildimki, Raspberry Pi -dan foydalanib, muzlatgich signalini eshitaman, keyin uPNP yoqilgan uy radiosiga ovozli signal yuboraman. Universal Plug and Play (UpnP) - bu tarmoqdagi turli xil qurilmalar, jumladan, media -serverlar va pleyerlar tomonidan taqdim etiladigan xizmatlarni kashf qilish va ular bilan ishlash uchun standart, lekin menimcha, standart ishlab chiqilganda muzlatgichlar ko'zda tutilmagan. Ogohlantiruvchi xabar baland ovozda va asabiylashtirildi va radio o'chirilmaguncha abadiy takrorlanadi.

Men signalni Raspberry Pi Zero W va Seeed ReSpeaker 2-Mics Pi HAT bilan aniqlashni tanladim Raspberry PI Zero-bu Raspberry Pi-ning arzon versiyasi va W opsiyasi Wi-Fi-ga o'rnatilgan, Seeed Pi HAT esa arzonroq narxda sotiladi. $ 10, o'rnatilgan LEDlar va Foydalanuvchi tugmasi mavjud. Pi HAT - bu Raspberry Pi -ga to'g'ridan -to'g'ri ulanadigan kengaytma kartalari bo'lib, juda oddiy yig'ish tartibini bajaradi. Har qanday Pi versiyasi ish uchun ko'proq qobiliyatli bo'ladi va tanlangan mikrofonni almashtirish mumkin, lekin men bu konstruktsiyada o'rnatilgan LEDlardan foydalandim.

Radio yoki televizor sizga mos keladimi yoki yo'qligini tekshirish oson. Ehtimol, u "DLNA yoqilgan" yoki shunga o'xshash deb ta'riflanadi. Bu aloqa uchun uPNP -dan foydalanadi. Windows kompyuterida mp3 faylini va "Qurilmaga translatsiya" ni tanlang. Agar sizning qurilmangiz paydo bo'lsa va siz faylni o'ynata olsangiz, unda siz borishingiz mumkin.

Men dasturni ikkita python skriptiga ajratdim, checkFreezer.py, muzlatgich signalining ishga tushirilganligini tekshirish uchun va signalni ko'tarish uchun liftAlarm.py. Bu skriptlar alohida -alohida ishlab chiqilishi va sinovdan o'tkazilishi mumkin, ularni osongina signalizatsiya qilishning turli usullariga moslashtirish yoki almashtirish mumkin.

Ta'minotlar

  • Dasturiy ta'minot -https://github.com/wapringle/freezer-alarm
  • Raspberry PI Zero W
  • Ko'rilgan ReSpeaker 2-Mics Pi HAT
  • uPNP yoqilgan radio

1 -qadam: Detektorni loyihalash

Dondurucunun eshigi ochiq qolganda va harorat ko'tarilganda, muzlatgich ovozli "beep beep beep" signalini beradi. Ko'pgina elektron signal signallarida bo'lgani kabi, bu bitta chastota. Gap shundaki, ovozli kirishni namuna olish, vaqtga asoslangan signalni chastotali signalga aylantiruvchi Fast Fourier Transform (FFT) ni bajarish, boshqacha qilib aytganda, signalning turli chastotalarini ko'rsatish uchun signalni buzish. RGB LED tasmasi bilan o'rgatiladigan Raspberry Pi spektrli analizatoriga qarang. Biz zilzila chastotasida cho'qqini qidirishimiz mumkin va signal bir muncha vaqt faol bo'lganida signalni ishga tushirishimiz mumkin.

Ushbu detektor 2 ta talabga ega

  • U shovqinni, hatto atrofdagi shovqin bo'lsa ham, aniqlashi kerak (noto'g'ri salbiyni yo'q qiling).
  • Bu atrofdagi shovqin bilan qo'zg'almasligi kerak (noto'g'ri pozitivni yo'q qiling)

Men yordamchi xonada Hooverni ishlatish yaxshi sinov bo'ladi deb qaror qildim. Bu signalni ishga solmasligi kerak, va muzlatgichning signalizatori o'chganda va Gyover ishlayotganda signalni ishga tushirish kerak.

2 -qadam: Detektorni sozlash

Detektorni sozlash
Detektorni sozlash
Detektorni sozlash
Detektorni sozlash
Detektorni sozlash
Detektorni sozlash

Telefonim bilan, men muzlatgichning shovqinli fonida va Gyover ishlayotganida, muzlatgich buzzerining WAV fayllari sifatida audio namunalarni oldim. Men kodni FFTni o'qish uchun audio oqimini FFT (shubha tug'ilganda, plagarise) postidan FFTni bajarish uchun moslashtirdim va gomzerning xom va Fourier Transformed namunalarini jim, shovqinli va juda shovqinli fonda chizish uchun fourierTest.py skriptidan foydalandim. Birinchi bosqichda 645 -chi darajadagi o'sish aniq va shovqinli fonda hamon ahamiyatli.

3 -qadam: Detektorni qurish

Detektorni yig'ish

Juda oddiy. Pi W o'rnatilgan Wi-Fi bilan ta'minlangan va HAT Pi-dagi GPIO pinlariga to'g'ri ulangan. Dasturiy ta'minotni sozlash bosqichlarni talab qiladi

  • Raspberry Pi -da raspbian tarqatilishini o'rnating. Bu borada juda ko'p qo'llanmalar bor, ular buni men tushuntira olaman.
  • Wi -Fi -ni sozlash (yuqoridagi kabi)
  • Bu alsa paketini o'rnatishi kerak

$ sudo apt-get install libasound-dev

$ pip o'rnatish pyalsaaudio

  • HATni malina PI ga ulang
  • HAT uchun drayverlarni o'rnatish uchun ko'rsatilgan veb -saytdagi ko'rsatmalarga amal qiling.
  • HAT ishlayotganini va to'g'ri sozlanganligini tekshirish uchun ko'rilgan diagnostikani ishga tushiring.

Detektor dasturi mikrofondan namuna sifatida ma'lumotlar blokini o'qiydi, FFTni bajaradi va namunadagi signalni aniqlaydimi yoki yo'qligini hal qiladi. Ovoz namunasi tezligini 16 kHz gacha kamaytirish va o'quvchi qabul qiladigan eng katta buferdan foydalanish orqali blokni iloji boricha uzoqroq qilishga harakat qildim. Men FFT hisobi ramkalarni tushirishga olib kelishi mumkinligidan xavotirda edim, lekin bunday bo'lmadi.

Telefonimda oldindan yozib olingan namunalar mavjudligi detektorni qurishni ancha osonlashtirdi, chunki men muzlatgichda joyida sinovdan o'tkazishdan oldin skameykada to'liq qurilishni qila olardim.

Detektorni o'rgatish

Detektorga signal signalining WAV yozuvi eshitilganda, har bir namunani skanerlash orqali o'rgatilgan. Dastur FFT spektridagi pozitsiyani eng yuqori quvvat darajasiga ega (tepalik chastotasi) va shu tepalik chastotasi darajasi bilan birga chiqaradi. Ovozli signal chastotasini va u chiqaradigan quvvat darajasini topish oson edi.

Ovozli signal paydo bo'lganligini aniqlashning 2 usuli mavjud:

  1. Namunadagi signal balandligi chastotasi eng yuqori chastotami?
  2. yoki ovoz balandligi signal balandligida chegaradan oshganmi?

Ikkala usul ham sokin namunada ishlagan, lekin ikkinchisi shovqinli namuna bilan yaxshiroq bo'lgani uchun men buni ishlatganman.

Ba'zida namuna ovozli signalni yopdi, ba'zida ovozli signallar o'rtasida edi va har 3 signaldan keyin keyingi signaldan oldin uzoq vaqt pauza bor edi. Ovozli signallar to'plami paydo bo'lganligini ishonchli aniqlash uchun, har bir namunada ovozli signal aniqlansa, yuqoriga ovoz berilgan, agar bo'lmasa - pastga ovoz berilgan. Bu ovozlar ovozli signalni eshitib, vaqt oralig'ida asta -sekin parchalanadigan sanashni belgilash uchun tortilgan edi. Hisob chegaraga yetganda signalni ishga tushirish mumkin. Agar ovozli signal sifatida tasodifiy shovqin aniqlansa, hisob nolga qaytadi.

Bizga ovoz balandligi va pastligi uchun chegaralar bilan birga og'irliklar kerak. Buni men bir nechta namunalarda sinov va xato bilan qildim. Menga haqiqiy signal signalining chastotasini aniqlashning hojati yo'q edi, men faqat fft spektridagi ajoyib chastotani qidirardim.

4 -qadam: Radioga xabar yuborish

Signalni ko'tarish alohida skript bilan amalga oshirildi. Vazifasi, agar kerak bo'lsa, radioni yoqish, radio o'ynayotgan narsaga kirish va radio o'chirilmaguncha signalni takrorlash. Ishonchli ma'lumot yoki misollar olishda katta qiyinchiliklarga duch kelganim uchun uPnP protokoliga teskari muhandislik qilishim kerak edi. Menga foydali deb topgan bir nechta ma'lumotnomalar

  • www.electricmonk.nl/log/2016/07/05/exploring-upnp-with-python/ Bularning barchasi bir-biriga qanday mos kelishini yaxshi ko'rib chiqadi.
  • developer.sony.com/develop/audio-control-api/get-started/browse-dlna-file.
  • stackoverflow.com/questions/28422609/how-to-send-setavtransporturi-using-upnp-c/35819973

Men Windows -da ishlaydigan Wireshark -dan foydalanib, radiodan kompyuterimdan namuna faylini o'ynatayotganda xabarlar ketma -ketligini tanladim va biroz o'ylashdan so'ng men ishlagan buyruqlar ketma -ketligini oldim. Bu

  • Radio so'ralganda ogohlantirish xabarini berish uchun qalqib chiquvchi veb -serverni ishga tushiring
  • Ovoz balandligini LOUD ga o'rnating (ogohlantirish xabari hamma e'tiborini tortishi kerak)
  • Radioga ogohlantirish xabarining urini yuboring
  • Hozirgi holat "To'xtatilgan" bo'lguncha radioda so'rov o'tkazing.
  • URI "PLAY" radiosini oling
  • Oxirgi 2 bosqichni "MEDIA PRESENT YO'Q" bo'lmaguncha takrorlang, demak radio signalni o'chirish orqali signal qabul qilingan.
  • Nihoyat, veb -serverni yoping va undan chiqing.

Bu boostAlarm.py skriptidir

5 -qadam: buni o'zingiz bajaring

Buni o'zingiz qilish
Buni o'zingiz qilish

"Datchik" va "signalni ko'tarish" modeli nafaqat muzlatgichlar uchun, balki avtomatik signalni boshqa muhit orqali uzatilishi kerak bo'lgan hamma joyda foydali bo'lishi mumkin. Agar bu sizga qiziq bo'lsa, o'zingizni erkin his qiling.

PI Zero W ni, shu jumladan mikrofonni sozlash

  • Uskunani 3 -bosqichda bo'lgani kabi yig'ing
  • Muzlatish signalining skriptlarini ushbu yo'riqnomadan yoki bir nechta bonusli treklarni o'z ichiga olgan git omboridan yuklab oling.

$ git klon

APA102 bortidagi LEDlarni ishlatish uchun siz dasturiy ta'minotni o'rnatishingiz kerak. Apa102.py nusxasini git ishchi katalogiga kiritdim

Detektoringizni o'rgating

CheckFreezer.py skriptiga o'quv variantini qo'shdim. Bu yakka tartibda ishlaydi va buyruq satriga tashxis qo'yadi, lekin avval siz signalning ba'zi namunalarini tinch muhitda WAV fayllari sifatida yozib olishingiz va shovqinli holatda ham shunday qilishingiz kerak. Treningni yakunlash uchun avval FFT chastotasini eng yuqori darajali ("tepalik chastotasi"), so'ngra bu chastotani ishga tushirish uchun chegara darajasini topishingiz kerak. Buning uchun checkFreezer skriptini mashg'ulot rejimida "-t" opsiyasi bilan ishga tushiring va signalni yozib oling.

$ python checkFreezer.py -t

Bu skriptni o'quv rejimida ishlaydi. Ko'rilgan HAT boshlanganda va LED yashil rangga aylanganda, u "tayyor" deb yozadi, keyin u eshitadigan har bir ahamiyatsiz shovqin uchun chiziq, masalan.

$ python checkFreezer.py -t

Tayyor tepalik chastotasi 55 tetik 1 -darajali tetiklandi? Soxta tepalik chastotasi 645 tetik darajasi 484 tetiklanadimi? Noto'g'ri tepalik chastotasi 645 tetik 380 darajali tetiklanadimi? Yolg'on

Chastotaning eng yuqori chastotasi bu holda 645 ga teng va bu tetik chastotasiga aylanadi. Endi tetik darajasini bilish uchun, tekshirgichni o'rnatib checkFreezer -ni qayta ishga tushiring

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

Tayyor tepalik chastotasi 645 tetik 1273 darajali tetiklandi? Soxta tepalik chastotasi 645 tetiklash darajasi 653 tetiklanadimi? Soxta tepalik chastotasi 645 tetik darajasi 641 tetiklanadimi? Soxta tepalik chastotasi 645 tetik 616 darajali tetiklanadimi? Yolg'on

Nihoyat, bizga signal eshitilganda, lekin shovqinni e'tiborsiz qoldiradigan ishga tushirish chegarasi kerak

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

Tayyor tepalik chastotasi 645 tetik 581 darajali tetiklandi? Haqiqiy tepalik chastotasi 645 tetik 798 darajali tetiklanadimi? Haqiqiy tepalik chastotasi 645 tetik 521 darajali tetiklanadimi? To'g'ri

Buni bir nechta shovqinli namunalar bilan sinab ko'ring, shunda siz uxlayotgan odamning ovozi va atrofdagi shovqinni ajratib turadigan chegara qiymatini aniqlay olasiz. Bir necha soniya davomida ovozli signal eshitilganda LED qizil rangga aylanganini ko'rishingiz kerak. Agar tez/sekin kelsa, skriptdagi sozlamalarni tahrir qiling

Radioga ulanish

O'zingizning skriptlaringizni sozlash uchun siz UPnP xizmatlari uchun qurilmangiz ishlatayotgan IP -manzil va port raqamini topishingiz kerak. Radio sozlamalari bularni ta'minlashi kerak. Standart port raqami 8080 va agar u boshqacha bo'lsa, ajablanib bo'lardi.

Men standart signalni berdim, freezer.mp3. O'zingizning xabaringiz bilan almashtiring.

Skriptni tegishli IP -manzillar bilan tahrirlang va skriptni ishga tushiring.

$ python ko'tarishAlarm.py

Agar hammasi yaxshi bo'lsa, radio o'chirilmaguncha, radiodan kuchli va bezovta qiluvchi signal keladi, signal bekor qilinadi.

Skript ishlayotganda, u radio signalli mp3ga xizmat ko'rsatadigan mini -serverni ishga tushiradi, ehtimol bu xavfsizlik muammosi, lekin u faqat signalli xabar eshitilayotganda faol bo'ladi.

Jonli efirga chiqish

"-T" mashg'ulot bayrog'ini olib tashlang va checkFreezer-ni o'z qadriyatlaringiz bilan ishga tushiring, masalan

$ python checkFreezer.py --trigger = 645 -threshold = 200

Qayta ishga tushirishni boshlash uchun /etc/rc.local ga qo'shing, CD/uy/pi/muzlatgich-signal

(python checkFreezer.py --trigger = 645 -threshold = 200> /tmp /freezer 2> /tmp /freezererror &) va 0dan chiqish

Yashil LED yonadi va siz harakatga tayyormiz. Signal signalini yozib oling va bir necha soniyadan so'ng LED qizil rangga aylanadi va signal radioda eshitiladi.

Nihoyat

PIni muzlatgich yaqinida, yo'ldan tashqarida va quvvat manbaiga joylashtiring. Quvvatni yoqing va yashil LED yonishi kerak. Eshikni ochiq qoldirib signalni ishga tushirishni sinab ko'ring. Chiroq qizilga aylanishi kerak va signal radioda eshitiladi.

Muvaffaqiyat !! Siz qildingiz. Muzlatgichdan muz bilan uzoq vaqt iching, lekin muzlatgich eshigini yopishni unutmang!

Tavsiya: