Turinys:
- 1 žingsnis: dalys, kurių jums reikės
- 2 žingsnis: grandinės schema
- 3 žingsnis: grandinės kūrimas
- 4 veiksmas: mirksi ESP-01
- 5 žingsnis: bandomasis paleidimas
- 6 žingsnis: sumontuokite jutiklį
- 7 žingsnis: paskutinis prisilietimas
Video: MQTT/„Google“namų potvynių/vandens WIFI jutiklis su ESP-01: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Šioje pamokoje aš jums parodysiu, kaip su minimaliomis sąnaudomis sukurti „Wi -Fi“potvynių/vandens jutiklį. Visas projektas man kainuoja mažiau nei 8 USD už dalis, kurias įsigyju iš „ebay“ir esamas atsargines dalis.
Šiame projekte mes naudosime ESP-01, kad aprūpintume „Wifi“ir „MQTT“klientus, kad aptiktų vandenį, ir pasirinktinai naudosime tiesiogiai prijungtą garsiakalbį/garsinį signalą, kad suteiktų lokalų signalą.
Mano konkreti projekto paraiška yra aptikti potvynį/vandenį mano siurblio šulinyje, jei sugenda siurblys. Kai vanduo aptinkamas dviem atvirais laidais, jis siunčia pranešimą MQTT brokeriui. Tada MQTT brokeris perduos pranešimą „NodeRED“. Gavęs MQTT pranešimą, „NodeRED“išsiųs pranešimą į kelis „Google“namų įrenginius ir pasirinktinai siųs pranešimą į mobilųjį telefoną/naršyklę per „pushbullet“
Žinoma, šis projektas veiktų tik tuo atveju, jei namų elektra būtų įjungta. Kitoje instrukcijoje aš integruosiu akumuliatoriaus atsarginę grandinę. Bet jei maitinimo šaltinį gaminsite taip pat, kaip ir aš, galite tiesiog prijungti USB maitinimo bloką, kad galėtumėte kurti atsargines baterijas. Jei turite maitinimo banką, kuris leidžia įkrauti ir tiekti energiją tuo pačiu metu, viskas yra paruošta.
Aš naudoju „RaspberryPi ZeroW“, kad priglobčiau „Mosquitto MQTT“serverį ir „NodeRED“. Jis veikia daugiau nei metus be jokių problemų.
Nuorodos: Raspberry Pi:
1 žingsnis: dalys, kurių jums reikės
Dalių sąrašas:
(1) ESP-01
(2) 10K omų rezistorius
(1) mažas signalo bendrasis NPN tranzistorius (naudojau 2N3904)
(2) ilgi laidai
(1) 5 V bendras maitinimo šaltinis (šiai grandinei reikalinga mažiau nei 300 mA srovė)
(1) 3.3V reguliatoriaus modulis AMS1117
(1) „Micro-USB“į DIP adapterį „PCB Converter DIY“rinkinys „pasidaryk pats“
(1) USB-A-„MicroUSB“kabelis.
(1) 8 kontaktų IC lizdas-gali būti praleistas, jei norite lituoti ESP-01 tiesiai prie plokštės. Iškirpkite plastikinius tiltus, kurie sukuria tarpą tarp eilučių, ir tada klijuokite 2 eilutes kartu, žr.
(1) Mažas projekto aptvaras
Žemiau pateikiamos papildomos dalys, jei jums reikia lokaliojo aliarmo naudojant garsiakalbį/garsinį signalą
(1) Bendras PNP tranzistorius, pasirinkite pagal garsiakalbio/garsinio signalo srovės/galios reikalavimus. Mano atveju aš naudoju 2N2907, nes mano garsiakalbis yra tik 0,3 W (8 omų), todėl jis turėtų pakankamai energijos garsiakalbiui valdyti. Jei norite stipresnio garso, galite pasirinkti didesnį tranzistorių ir garsiakalbį.
(1) Garsiakalbis, žr. Aukščiau pateiktą pastabą apie PNP tranzistorių
(1) 100 - 110 omų rezistorius
2 žingsnis: grandinės schema
Pirmasis žingsnis būtų sukurti schemą, parodyta schemoje.
Aš pastatiau 3.3VDC maitinimo šaltinį naudodamas seną 5V mobiliojo telefono įkroviklį kartu su AMS1117 3.3VDC reguliatoriumi. ESP-01 lizdui naudoju standartinį 8 kontaktų IC lizdą ir perpjauju plastikinius tiltelius, kurie sukuria tarpą tarp eilučių, o po to klijuoju 2 eilutes.
Mano sukurta grandinė skirta pajusti vandens buvimą tarp dviejų laidų. Kai vanduo pasiekia abiejų laidų galiuką, jis sukuria maždaug 10K - 20K omų atsparumą. Tada serijiniu būdu su 10K omų R1 jis tiekia mažą srovę į Q1 pagrindą, dėl kurio Q1 prisotinamas, pritvirtindamas GPIO-2 prie žemės. R1 yra būtinas norint užtikrinti Q1 apsaugą, jei netyčia nutekėtų jutiklių laidai.
R2 yra ištraukiamas rezistorius, leidžiantis ESP-01 paleisti iš blykstės.
Dabar, jei reikia papildomo garsiakalbio/garsinio signalo, jei jums tiesiog reikia ESP-01, kad galėtumėte kalbėti MQTT ir nenorite įgyvendinti šio lokalizuoto aliarmo, galite pašalinti R2, Q2, garsiakalbį ir įdėti 10K ištraukiamąjį rezistorių tarp GPIO-0 ir VCC.
Jei nemanote, kad reikia naudoti moterišką „Micro-USB to DIP“adapterį, galite lituoti laidus tarp 5 V PS ir 3,3 V reguliatoriaus modulio. Norėčiau naudoti moterišką „MicroUSB“adapterį, kad galėčiau naudoti bet kokį bendrą mobiliojo telefono įkroviklį ir „MicroUSB“kabelį.
3 žingsnis: grandinės kūrimas
Lituokite visus komponentus ir dalis į PCB pagal ankstesnio puslapio schemą ir supjaustykite PCB pagal dydį.
Įdėkite PCB į korpusą, kuriame tilptų PCB ir papildomas garsiakalbis. Mano atveju visos dalys tilptų į mažą telefono lizdo dėžutę, nors turiu šiek tiek pašildyti dangtelį, kad susidarytų iškilimas, kad ESP-01 modulis tilptų.
4 veiksmas: mirksi ESP-01
Šiame žingsnyje mes sužibsime ESP-01 su arduino eskizu. Jei niekada nemirkote ESP-01 modulio, galite sekti mano nurodymus, kaip pradėti:
Mano eskizą galite rasti mano „github“puslapyje:
Eskize bent jau turite pakeisti šią informaciją, susijusią su jūsų namų tinklu/sąranka:
#define MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* password1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* password2 = "MYSSIDpassword";
Savo namų tinkle turiu 2 skirtingus prieigos taškus, kurie transliuoja 2 skirtingus SSID, ir šis eskizas leistų atleisti, prisijungus prie kito SSID, jei prarastas ryšys su dabartiniu AP. Jei turite tik vieną SSID, užpildykite tiek ssid1, tiek ssid2 tą pačią reikšmę.
Atlikę pakeitimus, įkelkite eskizą į ESP-01 ir prijunkite ESP-01 prie sąsajos plokštės.
5 žingsnis: bandomasis paleidimas
Norėdami patikrinti, ar mūsų projektas veikia, lengviausia būtų stebėti MQTT pranešimus tinkle. Norėdami tai padaryti, turite atidaryti SSH sesiją uodų tarpininkui ir išduoti šią komandą:
mosquitto_sub -v -t '#'
Aukščiau pateikta komanda leistų mums pamatyti visus į tarpininką ateinančius MQTT pranešimus.
Dabar įjunkite mūsų grandinę ir, jei viskas veikia, po kelių sekundžių turėtumėte bent pamatyti šį MQTT pranešimą:
stat/SumpWaterSensor/LWT Online
Dabar išbandykite vandens jutiklį, panardindami 2 jutiklinius laidus į puodelį vandens, ir turėtumėte pamatyti šį pranešimą:
tele/SumpWaterSensor WET
Ir jei ištrauksite laidus iš vandens, turėtumėte pamatyti šį pranešimą:
tele/SumpWaterSensor DRY
Jei matote tuos pranešimus, jūsų projektas yra sėkmingas.
Į eskizą taip pat įtraukiau keletą naudingų MQTT temų, kurias galite naudoti:
"stat/SumpWaterSensorInfo": šis pranešimas siunčiamas kiekvieną minutę, kad būtų pateiktas veikimo laikas ir kita informacija.
„cmnd/SumpWaterSensorInfo“: ESP-01 išsiųs informaciją, jei gaus šią temą, kurios vertė yra „1“(ascii = 49)
"cmnd/SumpWaterSensorCPUrestart": ESP-01 bus paleistas iš naujo, jei gaus šią temą su reikšme "1" (ascii = 49)
„cmnd/SumpWaterSensorBeep“: ESP-01 praneš garsiakalbį, jei gaus šią temą, kurios vertė yra „1“(ascii = 49)
"cmnd/SumpWaterSensorBeepFreq": nustato garsiakalbio aliarmo dažnį, numatytasis = 900 (Hz)
„cmnd/SumpWaterSensorDebug“: įjunkite ir nustatykite nuoseklų derinimo lygį (numatytasis yra 0 - nėra derinimo)
6 žingsnis: sumontuokite jutiklį
Savo programoje noriu stebėti vandens lygį savo siurblio šulinio viduje ir pranešti man, jei vanduo pasiekia virš siurblio plūdės jungiklio, o tai reiškia, kad mano siurblys neveikia. Aš pravedžiau laidus ir naudoju vielinius ryšius, kad pritvirtinčiau išilgai kanalizacijos vamzdžio.
7 žingsnis: paskutinis prisilietimas
Dabar, kai projektas jau veikia ir galime paskelbti MQTT pranešimą tarpininkui, kitas žingsnis yra galvoti, ką su tuo daryti.
Savo projekte naudoju „Node-RED“, norėdamas klausytis/užsiprenumeruoti „tele/SumpWaterSensor“MQTT temą ir paskelbti keliems „Google“namų garsiakalbiams, jei aptinkamas vanduo. Be to, aš taip pat susiejau srautą su „pushbullet“mazgu, kad galėčiau išsiųsti pranešimą į „Android“telefoną.
Taip pat sukūriau žiniatinklio sąsają, kad galėčiau pamatyti jutiklio būseną (įjungta/neprisijungus, veikimo laikas ir kt.). Kartais pamačiau, kad per savaitę jis kelis kartus išjungiamas neprisijungus, iš statistikos, daug kartų dėl ESP-01 atsijungimo nuo „Wi-Fi“arba MQTT. Tačiau nesijaudinkite, mano eskizas apima įprastą ESP-01 paleidimą iš naujo, jei jis ir toliau nepavyksta prisijungti prie WIFI ir (arba) MQTT brokerio.
Šiame žingsnyje pateiktame paveikslėlyje parodyta mazgo ir raudonojo srauto kryptis, kaip tai padaryti. Taip pat galite įklijuoti srautą iš mano „github“puslapio į „Node-RED“:
„Google“namų skelbimas yra tik vienas šio projekto pavyzdys, tačiau manau, kad jis yra naudingiausias ir praktiškiausias. Jūs visada galite prisijungti prie kito MQTT klausytojo arba netgi naudoti IFTTT, kad galėtumėte valdyti kitus įrenginius, kai aptinkamas vanduo.
Pasilinksmink…
Rekomenduojamas:
Realaus laiko šulinio vandens temperatūra, laidumas ir vandens lygio matuoklis: 6 žingsniai (su nuotraukomis)
Realaus laiko šulinio vandens temperatūros, laidumo ir vandens lygio matuoklis: šiose instrukcijose aprašoma, kaip sukurti nebrangų, realaus laiko vandens skaitiklį, skirtą stebėti temperatūrą, elektros laidumą (EC) ir vandens lygį iškastuose šuliniuose. Skaitiklis skirtas pakabinti iškasto šulinio viduje, matuoti vandens temperatūrą, EB ir
Vandens gėrimo aliarmo sistema /vandens įsiurbimo monitorius: 6 žingsniai
Vandens gėrimo aliarmo sistema /vandens suvartojimo monitorius: kasdien turėtume gerti pakankamai vandens, kad būtume sveiki. Taip pat yra daug pacientų, kuriems nurodoma kasdien gerti tam tikrą vandens kiekį. Bet, deja, beveik kasdien praleidome tvarkaraštį. Taigi projektuoju
Baterija maitinamas durų jutiklis su namų automatikos integracija, „WiFi“ir ESP-DABAR: 5 žingsniai (su nuotraukomis)
Baterija varomas durų jutiklis su namų automatikos integracija, „WiFi“ir ESP-DABAR: Šioje pamokoje aš jums parodysiu, kaip aš sukūriau akumuliatoriumi varomą durų jutiklį su namų automatikos integracija. Aš mačiau keletą kitų gražių jutiklių ir signalizacijos sistemų, bet norėjau tai padaryti pats. Mano tikslai: jutiklis, kuris aptinka ir praneša apie atliktą darbą
„Arduino“vandens lygio nustatymo metodai naudojant ultragarso jutiklį ir „Funduino“vandens jutiklį: 4 žingsniai
Vandens lygio nustatymo „Arduino“metodai naudojant ultragarso jutiklį ir „Funduino“vandens jutiklį: Šiame projekte parodysiu, kaip sukurti nebrangų vandens detektorių dviem būdais: 1. Ultragarsinis jutiklis (HC-SR04) .2. Funduino vandens jutiklis
„WiFi IoT“temperatūros ir drėgmės jutiklis. Dalis: 8 daiktų internetas, namų automatizavimas: 9 žingsniai
„WiFi IoT“temperatūros ir drėgmės jutiklis. 8 straipsnis. Daiktų internetas, namų automatizavimas: įžanga 4 dalis. Daiktų internetas, namų automatizavimas, įskaitant visas būtinas programinės įrangos funkcijas, kad būtų galima sėkmingai