Sisukord:

Sügavkülmiku häirerelee: 5 sammu
Sügavkülmiku häirerelee: 5 sammu

Video: Sügavkülmiku häirerelee: 5 sammu

Video: Sügavkülmiku häirerelee: 5 sammu
Video: Морозильная камера не включается (замена пускового реле) 2024, Juuli
Anonim
Sügavkülmiku häire relee
Sügavkülmiku häire relee

Meie sügavkülmik asub majapidamisruumis, mis on meie eluruumist eraldatud. Mõnikord ei sulgu sügavkülmiku uks korralikult ja alarm lülitub välja. Probleem on selles, et me ei kuule seda, kui oleme oma eluruumis. Kuidas saada teade, et sügavkülmiku uks on avatud? See on tavaline probleem, meie kodudes on seadmeid, mis räägivad meiega, kuid mis juhtub, kui me neid mingil põhjusel ei kuule. Alustasin seda natuke lõbusana, kuid sellest võib olla kasu tõsisemas rakenduses.

Sellel probleemil on kaks osa, vajame häire tuvastamise meetodit ja meetodit selle fakti edastamiseks meie eluruumidesse. Kavand, mille otsustasin, oli kasutada Raspberry Pi -d, et kuulata sügavkülmiku häiret ja seejärel saata helisignaal minu kodumaisele raadiole, millel on lubatud uPNP. Universal Plug and Play (UpnP) on standard erinevate võrguseadmete, sealhulgas meediaserverite ja -mängijate pakutavate teenuste avastamiseks ja nendega suhtlemiseks, kuigi ma ei usu, et standardi väljatöötamisel kavandati sügavkülmikuid. Hoiatusteade oli valju ja ärritav ning kordub lõputult, kuni raadio välja lülitatakse.

Valisin häire tuvastamiseks Raspberry Pi Zero W ja Seeed ReSpeaker 2-Mics Pi HAT Raspberry PI Zero on Raspberry Pi odav versioon ja W-valikul on sisseehitatud WiFi, samas kui Seeed Pi HAT on jaemüügis vähem kui 10 dollarit, sellel on sisseehitatud LED-id ja kasutaja nupp. Pi HAT on pikenduskaardid, mis ühendatakse otse Raspberry Pi külge, tehes väga lihtsa kokkupanekuprotseduuri. Iga Pi versioon oleks selle töö jaoks enam kui võimeline ja valitud mikrofoni saab asendada, kuigi ma kasutasin selle konstruktsiooni sisseehitatud LED-e.

Lihtne on kontrollida, kas raadio või teler töötab teie jaoks. Tõenäoliselt kirjeldatakse seda kui "DLNA lubatud" või muud sarnast. See kasutab suhtlemiseks uPNP -d. Valige Windowsiga arvutis mp3 -fail ja valige "Cast to Device". Kui teie seade kuvatakse ja saate faili esitada, on teil hea minna.

Jagasin tarkvara kaheks pythoni skriptiks, checkFreezer.py, et kontrollida, kas sügavkülmiku hoiatus on käivitatud, ja tõsta alarmAlarm.py. Neid skripte saab arendada ja testida eraldi ning neid saab hõlpsasti kohandada või asendada erinevate mikrofonide häiretõstmise meetoditega.

Tarvikud

  • Tarkvara --https://github.com/wapringle/freezer-alarm
  • Vaarika PI Zero W
  • Nägi ReSpeaker 2-Mics Pi HAT
  • uPNP -toega raadio

1. samm: detektori projekteerimine

Kui sügavkülmiku uks on lahti jäetud ja temperatuur tõuseb, annab sügavkülmik helisignaali "piiks piiks piiks". Nagu enamiku elektrooniliste piiksude puhul, on see üks sagedus. Idee on helisisendi proovimine, kiire Fourier -teisendus (FFT), mis muudab ajapõhise signaali sageduspõhiseks, teisisõnu lagundab signaali signaali erinevate sageduste kuvamiseks. Vaadake juhitavat Raspberry Pi spektrianalüsaatorit koos RGB LED -ribaga Me võime otsida piiksu summeri sagedusel ja käivitada häire, kui sumin on mõnda aega olnud aktiivne.

Sellel anduril on 2 nõuet

  • See peaks tuvastama helisignaali isegi ümbritseva müra juuresolekul (kõrvaldama vale -negatiivse)
  • Seda ei tohiks käivitada ümbritsev müra (kõrvaldage valepositiivne)

Otsustasin, et Hooveri käitamine abiruumis oleks hea proovikivi. See ei tohiks häiret käivitada ja alarm peaks vallanduma, kui sügavkülmiku helisignaal kustub ja Hoover töötab.

2. samm: detektori seadistamine

Detektori seadistamine
Detektori seadistamine
Detektori seadistamine
Detektori seadistamine
Detektori seadistamine
Detektori seadistamine

Võtsin oma telefoniga heliproove üksi sügavkülmiku helisignaali WAV -failidena, mürarikka taustaga ja töötava Hooveriga. Kohandasin koodi FFT sooritamiseks postitusest Reading Audio Stream for FFT (Kui kahtlete, plagariseeri) ja kasutasin skripti fourierTest.py, et joonistada summeri töötlemata ja Fourier 'teisendatud proovid vaiksel, mürarikkal ja väga mürarikkal taustal. Taseme hüpe sagedusel 645 väljendub esimesel joonel ja on endiselt väga mürarikka taustaga märkimisväärne.

3. samm: detektori koostamine

Detektori kokkupanek

Väga lihtne. Pi W-l on sisseehitatud Wifi ja HAT on dieetlikult ühendatud Pi GPIO-nööpnõeltega. Tarkvara seadistamine nõuab samme

  • Installige raspbian distro Raspberry Pi -le. Selle kohta on palju juhendeid, mis selgitavad seda palju paremini kui mina.
  • Wifi seadistamine (sama ülal)
  • See vajab alsa paketti installimist

$ sudo apt-get install libasound-dev

$ pip install pyalsaaudio

  • Ühendage müts vaarika PI -ga
  • HAT -i draiverite installimiseks järgige juhiseid veebisaidil.
  • Käivitage nähtav diagnostika, et kontrollida, kas HAT töötab ja on õigesti konfigureeritud.

Detektoriprogramm loeb mikrofonist prooviks andmeploki, teeb FFT ja otsustab, kas ta on proovis helisignaali tuvastanud või mitte. Proovisin plokki võimalikult pikaks muuta, vähendades helikvaliteedi sagedust 16 kHz -ni ja kasutades suurimat puhvrit, mida lugeja aktsepteeriks. Olin mures, et FFT arvutamine võib põhjustada kaadrite katkemise, kuid seda ei juhtunud.

Kui telefonis olid eelnevalt salvestatud proovid, muutis detektori ehitamise palju lihtsamaks, kuna saaksin kogu ehituse pingil teha enne sügavkülmiku kohapeal katsetamist.

Detektori treenimine

Detektorit treeniti iga proovi skaneerimisega, kui detektorile esitati sumisti WAV -salvestus. Programm väljastab positsiooni FFT spektris kõrgeima võimsustasemega (tippsagedus) koos selle tippsageduse tasemega. Signaali sageduse ja selle kiirguse võimsuse leidmine oli lihtne.

Piiksu tuvastamiseks on kaks võimalust:-

  1. Kas sumisti sagedus oli valimi tippsagedus?
  2. või oli võimsuse tase sumisti sagedusel üle künnise?

Mõlemad meetodid töötasid vaikses proovis, kuid teine oli müraga prooviga parem, nii et ma kasutasin seda.

Mõnikord kattis näidis piiksu, mõnikord piiksude vahel ja iga 3 piiksu järel oli pikk paus enne järgmist piiksu. Piiksude komplekti usaldusväärseks tuvastamiseks oli igal proovil piiksu tuvastamisel üleshääl ja vastasel juhul allahääl. Neid hääli kaaluti, et määrata loendus, mis helisignaaliprooviga kokku jookseb ja aeg -ajalt laguneb. Kui arv on jõudnud künniseni, võidakse häire käivitada. Kui piiksuproovina tuvastati juhuslik müra, triivib arv tagasi nulli.

Vajame siis üles- ja allahääletamise kaalu koos künnisega. Seda tegin katse -eksituse meetodil mitme proovi puhul. Mul ei olnud vaja kindlaks määrata tegelikku summeri sagedust, vaid otsisin väljapaistvat sagedust fft spektrist.

4. samm: sõnumi saatmine raadiosse

Alarmi tõstmine tehti eraldi skriptiga. Tema ülesanne on vajadusel raadio sisse lülitada, siseneda raadio esitusse ja korrata häiresõnumit, kuni raadio uuesti välja lülitatakse. Pidin kasutatava uPnP -protokolli pöördprojekteerima, kuna mul oli suuri probleeme usaldusväärse teabe või näidete hankimisega. Paar viidet, mis minu arvates olid kasulikud, olid kasulikud

  • www.electricmonk.nl/log/2016/07/05/exploring-upnp-with-python/ Sellel on kena ülevaade sellest, kuidas see kõik kokku sobib
  • developer.sony.com/develop/audio-control-api/get-started/browse-dlna-file.
  • stackoverflow.com/questions/28422609/how-to-send-setavtransporturi-using-upnp-c/35819973

Kasutasin Windowsi arvutis töötavat Wiresharki, et raadios oma arvutist näidisfaili esitades sõnumijärjestus välja noppida, ja pärast väikest näppimist sain käsurea, mis töötas. See on

  • Käivitage hüpikveebiserver, et edastada hoiatusteade, kui raadio seda küsib
  • Seadke helitugevus LOUD (hoiatussõnum peaks köitma kõigi tähelepanu)
  • Edastage hoiatusteate uri raadiole
  • Küsige raadiot, kuni praegune olek on "STOPPED"
  • Hankige raadio uri "PLAY"
  • Korrake kahte viimast sammu, kuni praegune olek on "NO MEDIA PRESENT", mis tähendab, et häire on raadio väljalülitamisega kinnitatud
  • Lõpuks sulgege veebiserver ja väljuge.

See on skript raiseAlarm.py

Samm: tehke seda ise

Ise tehes
Ise tehes

"Detektori" ja "häiretõstmise" mudel pole mõeldud ainult sügavkülmikutele, see võib olla kasulik kõikjal, kus automaatne häire tuleb edastada teise andmekandja kaudu. Kui see teile huvi pakub, proovige julgelt.

PI Zero W seadistamine koos mikrofoniga

  • Pange riistvara kokku sammuga 3
  • Laadige sügavkülmiku häire skriptid alla sellest juhendist või git-hoidlast, mis sisaldab mõnda boonusrada

$ git kloon

Ka pardal olevate APA102 LED-ide kasutamiseks peate tarkvara installima. Olen lisanud apa102.py koopia giti töökataloogi

Treenige oma detektorit

Olen lisanud skripti checkFreezer.py koolitusvõimaluse. See käivitab selle iseseisvalt ja prindib käsureale diagnostika, kuid kõigepealt peate salvestama mõned häireproovid vaikses keskkonnas WAV-failidena ja tegema sama ka mürarikkas. Treeningu lõpetamiseks peate esmalt leidma kõrgeima tasemega FFT sageduse ("tippsageduse") ja seejärel selle sageduse läve taseme, et määrata päästik. Selleks käivitage skript checkFreezer treeningrežiimis valikuga „-t” ja esitage häire salvestus.

$ python checkFreezer.py -t

See käivitab skripti koolitusrežiimis. See prindib "valmis", kui nähtav müts on initsialiseeritud ja valgusdiood muutub roheliseks, seejärel joon iga mittetriviaalse müra kohta, mida ta kuuleb, nt

$ python checkFreezer.py -t

Valmis tippsagedus 55 päästiku tase 1 käivitati? Vale tippsagedus 645 päästiku tase 484 käivitati? Vale tippsagedus 645 päästiku tase 380 käivitati? Vale

Tippsagedus on antud juhul 645 ja sellest saab käivitussagedus. Nüüd, et päästiku tase saada, käivitage checkFreezer uuesti, määrates päästiku

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

Valmis tippsagedus 645 päästiku tase 1273 käivitati? Vale tippsagedus 645 päästiku tase 653 käivitati? Vale tippsagedus 645 päästiku tase 641 käivitati? Vale tippsagedus 645 käivitab taseme 616? Vale

Lõpuks vajame päästiku läve, mis käivitub piiksu tuvastamisel, kuid eirab müra, nt

$ python checkFreezer.py -t --trigger = 645 --lävi = 500

Valmis tippsagedus 645 päästiku tase 581 käivitati? Kas tõeline tippsagedus 645 käivitab taseme 798? Kas tõeline tippsagedus 645 käivitab taseme 521? Tõsi

Testige seda paari mürarikka prooviga ja peaksite suutma määrata läviväärtuse, mis eristab põrkeseadme heli ja ümbritsevat müra. Samuti peaksite nägema, et valgusdiood muutub punaseks, kui helisignaali kordusmängu esitatakse mõne sekundi jooksul. Kui see on kiire/aeglane, muutke skripti seadeid

Raadioga ühendamine

Skriptide konfigureerimiseks oma seadistuste jaoks peate leidma IP -aadressi ja pordi numbri, mida teie seade UPnP teenuste jaoks kasutab. Raadio seadistus peaks neid pakkuma. Vaikimisi kasutatav pordinumber on 8080 ja oleks üllatav, kui see oleks teistsugune.

Olen edastanud vaikimisi häireteate freezer.mp3. Asendage julgelt oma sõnumiga.

Muutke skripti sobivate IP -aadressidega ja käivitage skript.

$ python raiseAlarm.py

Kui kõik on korras, kostab valju ja ärritav häireteade teie raadiost, kuni raadio välja lülitatakse, tühistades alarmi.

Skripti töötamise ajal töötab see mini -veebiserveris, et edastada raadiosse alarmi mp3, võib -olla turvaprobleem, kuid see on aktiivne ainult häireteate esitamise ajal.

Otseülekanne

Eemaldage treeninglipp „-t” ja käivitage checkFreezer oma väärtustega, nt

$ python checkFreezer.py --trigger = 645 --lävi = 200

Taaskäivitamisel käivitamiseks lisage kausta /etc/rc.local, cd/home/pi/sügavkülmik-alarm

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

Roheline LED süttib ja olete tegutsemiseks valmis. Mängige oma helisignaali salvestust ja mõne sekundi pärast süttib LED punaseks ja teie raadios esitatakse häireteade.

Lõpuks ometi

Paigutage PI sügavkülmiku lähedale, eemale ja toiteallika juurde. Lülitage toide sisse ja roheline LED peaks süttima. Testige häire käivitamist, jättes ukse lahti. Tuli peaks punaseks muutuma ja raadios kõlab häireteade.

Edu !! Sa oled seda teinud. Lubage endale sügav jook sügavkülmast saadud jääga, kuid ärge unustage sügavkülmiku ust sulgeda!

Soovitan: