Përmbajtje:

Stafetë e alarmit të ngrirësit: 5 hapa
Stafetë e alarmit të ngrirësit: 5 hapa

Video: Stafetë e alarmit të ngrirësit: 5 hapa

Video: Stafetë e alarmit të ngrirësit: 5 hapa
Video: Михрютка с громовым клинком ► 6 Прохождение The Legend of Zelda: Breath of the Wild (Nintendo Wii U) 2024, Korrik
Anonim
Stafetë e alarmit të ngrirësit
Stafetë e alarmit të ngrirësit

Frigoriferi ynë është në një dhomë të shërbimeve e cila është e izoluar nga hapësira jonë e jetesës. Herë pas here dera e ngrirësit nuk mbyllet siç duhet dhe alarmi bie. Problemi është se ne nuk mund ta dëgjojmë nëse jemi në hapësirën tonë të jetesës. Si të marrim një mesazh që dera e frigoriferit është e hapur? Kjo është një çështje e zakonshme, ne kemi pajisje në shtëpitë tona që flasin me ne, por çfarë ndodh nëse nuk mund t'i dëgjojmë ato për çfarëdo arsye. E fillova këtë si pak argëtuese, por mund të jetë e dobishme në një aplikim më serioz.

Ekzistojnë 2 pjesë të këtij problemi, ne kemi nevojë për një metodë për të zbuluar se alarmi ka rënë dhe një metodë për ta përcjellë këtë fakt në hapësirën tonë të jetesës. Dizajni në të cilin u vendosa ishte përdorimi i një Raspberry Pi për të dëgjuar që alarmi i ngrirjes të binte, dhe pastaj për të dërguar një mesazh alarmi të dëgjueshëm në radion time vendase i cili është i aktivizuar me uPNP. Universal Plug and Play (UpnP) është një standard për zbulimin dhe bashkëveprimin me shërbimet e ofruara nga pajisje të ndryshme në një rrjet, përfshirë serverët e mediave dhe lojtarët, megjithëse nuk mendoj se ngrirësit ishin parashikuar kur u krijua standardi. Mesazhi paralajmërues u bë me zë të lartë dhe irritues dhe përsëritet pafund derisa radio të fiket.

Zgjodha të zbuloja alarmin me një Raspberry Pi Zero W dhe Seeed ReSpeaker 2-Mics Pi HAT Raspberry PI Zero është një version me kosto të ulët të Raspberry Pi dhe opsioni W ka WiFi të integruar, ndërsa Seeed Pi HAT shitet për më pak se 10 dollarë, ka LED të integruar dhe një buton përdoruesi. Pi HAT janë karta shtesë që lidhen drejtpërdrejt me Raspberry Pi duke bërë një procedurë shumë të thjeshtë montimi. Çdo version Pi do të ishte më se i aftë për punën, dhe mikrofoni i zgjedhur mund të zëvendësohet, megjithëse kam përdorur LED-të e integruar në këtë strukturë.

Easyshtë e lehtë të kontrolloni nëse një radio ose TV do të funksiononte për ju. Me shumë mundësi do të përshkruhet si "DLNA enabled" ose e ngjashme. Kjo përdor uPNP për të komunikuar. Në një kompjuter Windows, zgjidhni një skedar mp3 dhe "Transmetoni në pajisje". Nëse pajisja juaj shfaqet dhe ju mund ta luani skedarin, atëherë jeni mirë të shkoni.

Unë e ndava softuerin në 2 skripte python, checkFreezer.py për të kontrolluar nëse është aktivizuar një alarm për ngrirjen dhe ngre alarmin.py për të ngritur alarmin. Këto skripte mund të zhvillohen dhe testohen veçmas dhe lehtë mund të përshtaten ose zëvendësohen me metoda të ndryshme të ngritjes së alarmit të mikrofonave.

Furnizimet

  • Softuer -https://github.com/wapringle/freezer-alarm
  • Mjedër PI Zero W
  • Shikoi ReSpeaker 2-Mics Pi HAT
  • radio e aktivizuar me uPNP

Hapi 1: Hartimi i detektorit

Kur dera e ngrirësit lihet e hapur dhe temperatura rritet, ngrirësi jep një alarm të dëgjueshëm "biep beep beep". E zakonshme me shumicën e sinjalizimeve elektronike, kjo është një frekuencë e vetme. Ideja është të marrësh mostrën e hyrjes audio, të kryesh një Shndërrim të Furierit të Shpejtë (FFT) i cili transformon një sinjal të bazuar në kohë në një frekuencë të bazuar, me fjalë të tjera, ai prish një sinjal për të shfaqur frekuenca të ndryshme në sinjal. Shihni Analizuesin e Spektrit të Mjedrës Pi të Udhëzueshëm Me Rrip LED RGB Ne mund të kërkojmë një kulm në frekuencën e ziles dhe të aktivizojmë alarmin kur zileja është aktive për ca kohë.

Ky detektor ka 2 kërkesa

  • Duhet të zbulojë zilen, edhe në prani të zhurmës së ambientit (eliminoni negativin e rremë)
  • Nuk duhet të nxitet nga zhurma e ambientit (eliminoni pozitivët e rremë)

Vendosa që drejtimi i një Hoover në dhomën e shërbimeve do të ishte një provë e mirë. Nuk duhet të aktivizojë alarmin dhe alarmi duhet të ndizet kur zilja e frigoriferit të fiket dhe Hoover po funksionon.

Hapi 2: Konfigurimi i Detektorit

Konfigurimi i detektorit
Konfigurimi i detektorit
Konfigurimi i detektorit
Konfigurimi i detektorit
Konfigurimi i detektorit
Konfigurimi i detektorit

Me telefonin tim, mora mostra audio si skedarë WAV të ziles së ngrirësit vetëm, me një sfond të zhurmshëm dhe me funksionimin e Hoover. Unë e përshtata kodin për të kryer FFT nga postimi Reading Audio Stream for FFT (Kur keni dyshime, plagarise) dhe përdor skenarin fourierTest.py për të komplotuar mostra të papërpunuara dhe të transformuara të Furierit të ziles në sfonde të qeta, të zhurmshme dhe shumë të zhurmshme. Rritja e nivelit në frekuencën 645 është e theksuar në komplotin e parë dhe është ende e rëndësishme me një sfond shumë të zhurmshëm.

Hapi 3: Ndërtimi i detektorit

Montimi i detektorit

Shume e thjeshte. Pi W vjen me Wifi të integruar dhe HAT është e lidhur direkt në kunjat GPIO në Pi. Konfigurimi i softverit kërkon hapat

  • Instaloni shpërndarjen raspbian në Raspberry Pi. Ka shumë udhëzues për këtë që mund ta shpjegojnë atë shumë më mirë se unë.
  • Konfiguro Wi -Fi (edhe më lart)
  • Ajo ka nevojë për paketën alsa të instaluar

$ sudo apt-get install libasound-dev

$ pip install pyalsaaudio

  • Lidhni HAT me PI të mjedrës
  • Ndiqni Udhëzimet në faqen e internetit të shikuar për të instaluar drejtuesit për HAT.
  • Drejtoni diagnostikimin e parë për të kontrolluar që HAT është duke punuar dhe konfiguruar siç duhet.

Programi i detektorit lexon një bllok të të dhënave si mostër nga mikrofoni, bën FFT dhe vendos nëse e ka zbuluar apo jo zilen në mostër. Unë u përpoqa ta bëj bllokun sa më gjatë që të jetë e mundur duke ulur shkallën e mostrës së audios në 16kHz dhe duke përdorur tamponin më të madh që lexuesi do të pranonte. Isha i shqetësuar se llogaritja FFT mund të shkaktonte rënien e kornizave, por kjo nuk ndodhi.

Duke pasur mostra të para-regjistruara në telefonin tim e bëri ndërtimin e detektorit shumë më të lehtë pasi unë mund të bëja ndërtimin e plotë në stol para se të testoja në vend nga frigoriferi.

Trajnimi i detektorit

Detektori u trajnua duke skanuar çdo mostër kur regjistrimi WAV i ziles u dëgjua në detektor. Programi nxjerr pozicionin në spektrin FFT me nivelin më të lartë të fuqisë (frekuenca e pikut), së bashku me nivelin e asaj frekuence kulmi. Ishte çështje e thjeshtë për të gjetur frekuencën e ziles dhe nivelin e fuqisë që po lëshonte.

Ekzistojnë 2 mënyra për të zbuluar nëse kishte ndodhur një bip:-

  1. A ishte frekuenca e zhurmës frekuenca kulmore në mostër?
  2. apo niveli i fuqisë në frekuencën e ziles ishte mbi një prag?

Secila metodë funksionoi në një mostër të qetë, por e dyta ishte më e mirë me një mostër të zhurmshme, kështu që e përdor atë.

Ndonjëherë një mostër mbulonte një bip, ndonjëherë ishte midis biip -eve, dhe pas çdo 3 bip -ve kishte një pauzë të gjatë para biip -eve të ardhshëm. Për të zbuluar me besueshmëri se një grup sinjalizimesh kishin ndodhur, secili mostër kishte një votë të lartë nëse zbulohej një bip dhe një votë kundër nëse jo. Këto vota u peshuan për të vendosur një numërim i cili do të përplaset me një mostër biep dhe do të kalbet ngadalë në mes të kohës. Pasi numërimi arriti një prag, alarmi mund të ndizet. Nëse zhurma e rastësishme zbulohej si një mostër biep, numërimi do të kthehej në zero.

Ne atëherë kemi nevojë për peshat për votën pro dhe kundër, së bashku me pragun. Këtë e bëra me provë dhe gabim mbi një numër mostrash. Nuk kisha nevojë të përcaktoja frekuencën aktuale të ziles, thjesht kërkova frekuencën e spikatur në spektrin fft.

Hapi 4: Dërgimi i një Mesazhi në Radio

Ngritja e alarmit ishte bërë me një shkrim të veçantë. Detyra është të ndizni radion nëse është e nevojshme, të futeni në çfarëdo që po luan radio dhe të përsërisni mesazhin e alarmit derisa radio të fiket përsëri. Më duhej të ndryshoja inxhinierinë e protokollit uPnP të përdorur pasi kisha probleme të mëdha në marrjen e informacionit ose shembujve të besueshëm. Disa referenca që gjeta të dobishme ishin

  • www.electricmonk.nl/log/2016/07/05/exploring-upnp-with-python/ Kjo ka një pasqyrë të bukur se si përshtaten të gjitha së bashku
  • developer.sony.com/develop/audio-control-api/get-started/browse-dlna-file.
  • stackoverflow.com/questions/28422609/how-to-send-setavtransporturi-using-upnp-c/35819973

Kam përdorur Wireshark që funksionon në një kompjuter Windows për të zgjidhur sekuencën e mesazheve kur luaja një skedar mostër nga kompjuteri im në radio, dhe pas pak ngatërresash mora një sekuencë komande që funksionoi. Kjo është

  • Nisni një server në internet që shfaqet për t'i shërbyer mesazhit paralajmërues kur radio ta kërkojë atë
  • Vendosni nivelin e volumit në LOUD (Mesazhi paralajmërues duhet të tërheqë vëmendjen e të gjithëve)
  • Kaloni urin e mesazhit paralajmërues në radio
  • Anketoni radion derisa gjendja aktuale të "STOPPED"
  • Merrni radion te "PLAY" uri
  • Përsëritni 2 hapat e fundit derisa gjendja aktuale të jetë "NO MEDIA PRESENT", që do të thotë se alarmi është pranuar duke fikur radion
  • Më në fund mbyllni serverin në internet dhe dilni.

Ky është skenari raiseAlarm.py

Hapi 5: Bëni Vetë

Duke e bërë vetë
Duke e bërë vetë

Modeli "detektor" dhe "ngrit alarm" nuk është vetëm për ngrirësit, mund të jetë i dobishëm kudo ku një alarm i automatizuar duhet të transmetohet përmes një mediumi tjetër. Nëse kjo do të ishte me interes, mos ngurroni të shkoni.

Vendosja e PI Zero W, përfshirë mikrofonin

  • Mblidhni harduerin si në hapin 3
  • Shkarkoni skriptet e alarmit të ngrirësit nga kjo Instructable, ose nga depoja e git e cila përfshin disa këngë bonus

$ git klon

Ju gjithashtu duhet të instaloni softuerin për të përdorur LED-të në bord APA102. Unë kam përfshirë një kopje të apa102.py në drejtorinë e punës git

Trajnimi i detektorit tuaj

Unë kam shtuar një opsion trajnimi në skenarin checkFreezer.py. Kjo funksionon vetëm dhe printon një diagnostifikim në vijën e komandës, por së pari ju duhet të regjistroni disa mostra të alarmit në një mjedis të qetë si skedarë WAV, dhe bëni të njëjtën gjë në një zhurmë. Për të përfunduar trajnimin, së pari duhet të gjeni frekuencën FFT me nivelin më të lartë ("frekuenca e pikut") dhe pastaj një nivel pragu për atë frekuencë për të vendosur një shkas. Për ta bërë këtë, ekzekutoni skenarin checkFreezer në modalitetin e stërvitjes, me opsionin '-t' dhe luani regjistrimin e alarmit.

$ python checkFreezer.py -t

Kjo drejton skenarin në modalitetin e trajnimit. Shtyp "gati" kur HAT e sharruar është inicializuar dhe LED bëhet i gjelbër, pastaj një linjë për çdo zhurmë jo të parëndësishme që dëgjon, p.sh.

$ python checkFreezer.py -t

Gati frekuenca e gatshme 55 shkakton nivelin 1 të aktivizuar? Frekuenca e rreme e pikut 645 shkakton nivelin 484 të shkaktuar? Frekuenca e pikut të rremë 645 shkakton nivelin 380 të aktivizuar? I rremë

Frekuenca maksimale është, në këtë rast 645 dhe kjo bëhet frekuenca e shkaktimit. Tani për të marrë nivelin e shkasit, ripërsëriteni checkFreezer, duke vendosur këmbëzën

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

Gati frekuenca e gatshme 645 niveli i shkaktimit 1273 i shkaktuar? Frekuenca e rreme e pikut 645 shkakton nivelin 653 të shkaktuar? Frekuenca e rreme e pikut 645 shkakton nivelin 641 të aktivizuar? Frekuenca e rreme e pikut 645 shkakton nivelin 616 të shkaktuar? I rremë

Së fundi, ne kemi nevojë për një prag të shkaktimit që ndizet kur zbulohet një bip, por injoron zhurmën, p.sh

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

Gati frekuenca e gatshme 645 shkakton nivelin 581 të aktivizuar? Frekuenca e pikut të vërtetë 645 shkakton nivelin 798 të aktivizuar? Frekuenca e pikut të vërtetë 645 shkakton nivelin 521 të aktivizuar? E vërtetë

Provojeni këtë kundër disa mostrave të zhurmshme dhe do të jeni në gjendje të vendosni një vlerë pragu që diskriminon mes tingullit të zhurmës dhe zhurmës së ambientit. Ju gjithashtu duhet të shihni që LED të kthehet në të kuqe kur riprodhimi i bipit luhet për disa sekonda. Nëse vjen shpejt/ngadalë në modifikimin e cilësimeve në skenar

Lidhja me radio

Për të konfiguruar skriptet për konfigurimin tuaj, duhet të gjeni adresën IP dhe numrin e portit që pajisja juaj po përdor për shërbimet UPnP. Konfigurimi i radios duhet t'i sigurojë këto. Numri i paracaktuar i portit është 8080 dhe do të ishte një surprizë nëse do të ishte ndryshe.

Unë kam dhënë një mesazh alarmi të paracaktuar, freezer.mp3. Mos ngurroni të zëvendësoni me mesazhin tuaj.

Ndryshoni skriptin me adresat IP të përshtatshme dhe ekzekutoni skriptin.

$ python raiseAlarm.py

Nëse gjithçka është mirë, mesazhi i alarmit me zë të lartë dhe irritues do të dalë nga radio juaj derisa radio të fiket, duke anuluar alarmin.

Ndërsa skenari po funksionon, ai funksionon një mini server në internet për t'i shërbyer alarmit mp3 në radio, ndoshta një çështje sigurie, por është aktive vetëm kur mesazhi i alarmit po luhet.

Duke shkuar drejtpërdrejt

Hiqeni flamurin e trajnimit ‘-t’ dhe drejtoni checkFreezer me vlerat tuaja, p.sh

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

Për ta bërë atë të fillojë në rindezje, shtoni në /etc/rc.local, cd/home/pi/frigorifer-alarm

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

LED i gjelbër do të ndizet dhe ju jeni gati për veprim. Luani regjistrimin e sinjalit tuaj të alarmit dhe pas disa sekondash LED do të kthehet i kuq dhe mesazhi i alarmit do të luajë në radio.

Më në fund

Poziciononi IP në një vend afër frigoriferit, jashtë rrugës dhe nga një furnizim me energji elektrike. Ndizeni dhe LED i gjelbër duhet të ndizet. Testoni nxitjen e alarmit duke e lënë derën hapur. Drita duhet të kthehet e kuqe dhe mesazhi i alarmit të luajë në radio.

Sukses !! Ju e keni bërë atë. Trajtojeni veten me një pije të gjatë me akull nga frigoriferi, por mos harroni të mbyllni derën e ngrirësit!

Recommended: