Turinys:

MQTT/„Google“namų potvynių/vandens WIFI jutiklis su ESP-01: 7 žingsniai
MQTT/„Google“namų potvynių/vandens WIFI jutiklis su ESP-01: 7 žingsniai

Video: MQTT/„Google“namų potvynių/vandens WIFI jutiklis su ESP-01: 7 žingsniai

Video: MQTT/„Google“namų potvynių/vandens WIFI jutiklis su ESP-01: 7 žingsniai
Video: ОПАСНЫЕ ГОСТИ 👮 #shorts 2024, Lapkritis
Anonim
MQTT/„Google“namų potvynių/vandens WIFI jutiklis su ESP-01
MQTT/„Google“namų potvynių/vandens WIFI jutiklis su ESP-01

Š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

Dalys, kurių jums reikės
Dalys, kurių jums reikės
Dalys, kurių jums prireiks
Dalys, kurių jums prireiks
Dalys, kurių jums prireiks
Dalys, kurių jums prireiks

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

Grandinės schema
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

Grandinės kūrimas
Grandinės kūrimas
Grandinės kūrimas
Grandinės kūrimas
Grandinės kūrimas
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į

Sumontuokite jutiklį
Sumontuokite jutiklį
Sumontuokite jutiklį
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

Galutinis prisilietimas
Galutinis 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: