Sadržaj:

MQTT/Google početni WIFI senzor za poplavu/vodu sa ESP-01: 7 koraka
MQTT/Google početni WIFI senzor za poplavu/vodu sa ESP-01: 7 koraka

Video: MQTT/Google početni WIFI senzor za poplavu/vodu sa ESP-01: 7 koraka

Video: MQTT/Google početni WIFI senzor za poplavu/vodu sa ESP-01: 7 koraka
Video: InfluxDB a Grafana prakticky | HARDWARIO IoT Webinář 2024, Novembar
Anonim
MQTT/Google početni WIFI senzor za poplavu/vodu sa ESP-01
MQTT/Google početni WIFI senzor za poplavu/vodu sa ESP-01

U ovom uputstvu pokazat ću vam kako izgraditi WiFi senzor poplave/vode uz minimalne troškove. Cijeli projekt košta me manje od 8 USD za dijelove koje nabavljam na ebayu i moje postojeće rezervne dijelove.

U ovom projektu ćemo koristiti ESP-01 za pružanje Wifi i MQTT klijenta za otkrivanje prisutnosti vode, a opcionalno ćemo koristiti i direktno spojen zvučnik/zujalicu za pružanje lokaliziranog alarma.

Moja specifična primjena za projekt je otkrivanje poplave/vode unutar bunara pumpe u koritu, u slučaju kvara pumpe u koritu. Kada dvije vode otkriju vodu, poslale bi poruku MQTT brokeru. MQTT posrednik bi zatim prenio poruku NodeRED -u. Nakon primanja MQTT poruke, NodeRED bi poslao najavu na više google kućnih uređaja, a opcionalno i poruku na mobitel/preglednik putem pushbulleta

Naravno, ovaj projekt bi funkcionirao samo ako je kućna struja UKLJUČENA. U sljedećim uputama integrirat ću rezervno kolo baterije. Ali ako napajanje napravite na isti način kao i ja, možete jednostavno priključiti USB bateriju za rezervno napajanje baterije. Ako imate banku napajanja koja vam omogućuje istovremeno punjenje i napajanje, sve je spremno.

Koristim RaspberryPi ZeroW za hostiranje Mosquitto MQTT servera i NodeRED -a. Radi već više od godinu dana bez ikakvih problema.

Reference: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi…Instalirajte NodeRED na Raspberry Pi:

Korak 1: Dijelovi koji će vam trebati

Delovi koji će vam trebati
Delovi koji će vam trebati
Delovi koji će vam trebati
Delovi koji će vam trebati
Delovi koji će vam trebati
Delovi koji će vam trebati

Lista dijelova:

(1) ESP-01

(2) 10K ohm otpornik

(1) generički NPN tranzistor sa malim signalom (koristio sam 2N3904)

(2) duge žice

(1) Općenito napajanje od 5 V (ovo kolo zahtijeva struju manju od 300 mA)

(1) 3.3V regulator modul AMS1117

(1) Micro-USB na DIP adapter ženski konektor PCB pretvarač DIY komplet

(1) Kabel USB-A na MicroUSB.

(1) 8-polna IC utičnica-može se izostaviti ako želite lemiti ESP-01 direktno na ploču. Izrežite plastične mostove koji stvaraju razmak između redova, a zatim zalijepite dva reda zajedno, pogledajte fotografiju.

(1) Malo kućište za projekat

Ispod su opcijski dijelovi ako vam je potreban lokalizirani alarm pomoću zvučnika/zujalice

(1) Opći PNP tranzistor, odaberite prema zahtjevu zvučnika/zujalice/snazi. U mom slučaju koristim 2N2907 budući da je moj zvučnik samo 0,3 W (8 ohma), pružio bi dovoljno snage za pogon zvučnika. Možete odabrati veći tranzistor i zvučnik ako želite jači zvuk.

(1) Zvučnik, pogledajte napomenu o PNP tranzistoru gore

(1) Otpornik 100 - 110 ohma

Korak 2: Dijagram kola

Dijagram kola
Dijagram kola

Prvi korak bio bi stvaranje kruga prikazanog na dijagramu.

Napravio sam napajanje od 3.3VDC koristeći stari 5V punjač za mobitele zajedno sa AMS1117 3.3VDC regulatorom. Za utičnicu ESP-01 koristim 8-polnu standardnu IC utičnicu i režem plastične mostove koji stvaraju razmak između redova, a zatim lijepim 2 reda zajedno.

Krug koji sam dizajnirao treba osjetiti prisutnost vode između dvije žice. Kad voda dosegne vrh obje žice, stvorila bi otpor od približno 10K do 20K ohma. Zatim u seriji sa 10K ohm R1, daje malu struju na bazu Q1 uzrokujući zasićenje Q1, pričvršćujući GPIO-2 na masu. R1 je neophodan za zaštitu Q1 u slučaju slučajnog kratkog spoja na osjetljivim žicama.

R2 je pull-up otpornik koji omogućuje ESP-01 pokretanje iz blica.

Sada za opcionalni zvučnik/zujalicu, ako vam je potreban samo ESP-01 da biste govorili MQTT, a ne želite implementirati ovo lokalizirano alarmiranje, možete ukloniti R2, Q2, zvučnik i postaviti 10K pull-up otpornik između GPIO-0 i VCC.

Ako ne osjećate potrebu za korištenjem ženskog Micro-USB na DIP adaptera, možete lemiti žice između 5V PS na modulu regulatora 3.3V. Više volim koristiti ženski MicroUSB adapter tako da mogu koristiti bilo koji generički punjač za mobitel i MicroUSB kabel.

Korak 3: Izgradnja kruga

Izgradnja kola
Izgradnja kola
Izgradnja kola
Izgradnja kola
Izgradnja kola
Izgradnja kola

Lemite sve komponente i dijelove u PCB prema shemi kola na prethodnoj stranici i izrežite PCB prema veličini.

Postavite PCB u kućište koje odgovara PCB -u i opcionalnom zvučniku. U mom slučaju, svi bi dijelovi stali u malu utičnicu za telefon, iako moram malo zagrijati poklopac da bih stvorio izbočinu kako bi ESP-01 modul stao.

Korak 4: Treptanje ESP-01

U ovom koraku blicat ćemo ESP-01 sa arduino skicom. Ako nikada niste bljeskali ESP-01 modul, možete slijediti moja uputstva za početak:

Moju skicu možete pronaći na mojoj github stranici:

Na skici, najmanje morate promijeniti sljedeće podatke koji se odnose na vašu kućnu mrežu/postavljanje:

#define MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* password1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* password2 = "MYSSIDpassword";

U mojoj kućnoj mreži imam 2 različite pristupne tačke koje emituju 2 različita SSID -a, a ova skica bi omogućila redundanciju povezivanjem na sljedeći SSID ako se izgubi komunikacija sa trenutnom pristupnom tačkom. Ako imate samo jedan SSID, popunite ssid1 i ssid2 istom vrijednošću.

Nakon što izvršite izmjenu, otpremite skicu u ESP-01 i uključite ESP-01 u ploču za sučelje.

Korak 5: Probni rad

Da bismo provjerili funkcionira li naš projekt, najlakše bi bilo nadzirati MQTT poruke u mreži. Da biste to učinili, morate otvoriti SSH sesiju posredniku komaraca i izdati sljedeću naredbu:

mosquitto_sub -v -t '#'

Gornja naredba omogućila bi nam da vidimo sve MQTT poruke koje dolaze u brokera.

Sada uključite naš krug i ako sve funkcionira, za nekoliko sekundi trebali biste barem vidjeti sljedeću MQTT poruku:

stat/SumpWaterSensor/LWT na mreži

Sada testirajte senzor vode tako što ćete umočiti 2 žice za osjet u čašu vode i trebali biste vidjeti ovu poruku:

tele/SumpWaterSensor WET

A ako izvadite žice iz vode, trebali biste vidjeti ovu poruku:

tele/SumpWaterSensor DRY

Ako vidite te poruke, vaš je projekt uspješan.

U skicu sam uključio i nekoliko korisnih tema o MQTT -u koje možete koristiti:

"stat/SumpWaterSensorInfo": ova poruka se šalje svake minute radi pružanja neprekidnog rada i drugih informacija.

"cmnd/SumpWaterSensorInfo": ESP-01 će poslati informacije ako primi ovu temu s vrijednošću '1' (ascii = 49)

"cmnd/SumpWaterSensorCPUrestart": ESP-01 će se ponovno pokrenuti ako primi ovu temu s vrijednošću '1' (ascii = 49)

"cmnd/SumpWaterSensorBeep": ESP-01 će oglasiti zvučnik ako primi ovu temu s vrijednošću '1' (ascii = 49)

"cmnd/SumpWaterSensorBeepFreq": Postavlja frekvenciju alarma zvučnika, zadana vrijednost = 900 (Hz)

"cmnd/SumpWaterSensorDebug": Omogućava i postavlja nivo serijskog otklanjanja grešaka (zadano je 0 - bez otklanjanja grešaka)

Korak 6: Montirajte senzor

Montirajte senzor
Montirajte senzor
Montirajte senzor
Montirajte senzor

U svojoj aplikaciji želim nadzirati nivo vode unutar pumpe u koritu i obavijestiti me ako voda dosegne iznad prekidača pumpe u koritu, što znači da mi pumpa u bazenu ne radi. Prošao sam žice i pomoću žičanih vezica pričvrstio ih duž odvodne cijevi.

Korak 7: Završni dodir

Final Touch
Final Touch

Sada kada je projekt uspješan i u stanju objaviti MQTT poruku posredniku, sljedeći korak je razmišljanje o tome što s tim učiniti.

U svom projektu koristim Node-RED za slušanje/pretplatu na temu "tele/SumpWaterSensor" MQTT i najava nekoliko google kućnih zvučnika ako se otkrije voda. Osim toga, također sam povezao tok s čvorom pushbullet za slanje obavijesti na svoj android telefon.

Takođe sam kreirao web front-end da vidim status senzora (uključeno/van mreže, vreme rada itd.). Ponekad sam vidio da se isključuje nekoliko puta u toku jedne sedmice, prema statistikama, mnogo puta je to zbog isključivanja ESP-01 sa wifi-ja ili MQTT-a. No, ne brinite previše, moja skica uključuje rutinu za ponovno pokretanje ESP-01 ako i dalje ne uspije u pokušaju povezivanja na WIFI i/ili MQTT posrednika.

Slika na ovom koraku prikazuje tok NOD-RED kako bi se to postiglo. Također možete zalijepiti tok s moje github stranice na svoj Node-RED:

Googleova kućna najava samo je jedan primjer za ovaj projekt, ali mislim da je najkorisnija i najpraktičnija. Uvijek se možete povezati s drugim slušateljem MQTT -a ili čak koristiti IFTTT za pogon drugih uređaja nakon otkrivanja vode.

Zabavi se…

Preporučuje se: