Cuprins:

Senzor WIFI MQTT / Google Home Flood / Water cu ESP-01: 7 pași
Senzor WIFI MQTT / Google Home Flood / Water cu ESP-01: 7 pași

Video: Senzor WIFI MQTT / Google Home Flood / Water cu ESP-01: 7 pași

Video: Senzor WIFI MQTT / Google Home Flood / Water cu ESP-01: 7 pași
Video: Zigbee датчик задымления - тестируем бюджетный вариант для Tuya Smart и Home Assistant 2024, Iulie
Anonim
MQTT / Google Home Flood / Water WIFI Senzor cu ESP-01
MQTT / Google Home Flood / Water WIFI Senzor cu ESP-01

În acest instructable, vă voi arăta cum să construiți un senzor wifi de inundații / apă cu un cost minim. Întregul proiect mă costă mai puțin de 8 USD pentru piesele pe care le achiziționez de pe eBay și piesele de schimb existente.

În acest proiect, vom folosi ESP-01 pentru a furniza clientului Wifi și MQTT pentru a detecta prezența apei și, opțional, vom utiliza difuzoare / buzzer conectate direct pentru a furniza alarma localizată.

Aplicația mea specifică pentru proiect este de a detecta inundațiile / apa din puțul pompei mele, în cazul defectării pompei. Când apa este detectată de 2 fire deschise, aceasta va trimite un mesaj brokerului MQTT. Brokerul MQTT transmite apoi mesajul către NodeRED. La primirea mesajului MQTT, NodeRED ar trimite un anunț către mai multe dispozitive de acasă Google și, de asemenea, opțional, va trimite un mesaj către telefonul mobil / browser prin pushbullet

Acum, desigur, acest proiect ar funcționa numai dacă electricitatea locuinței este pornită. În următorul instructabil voi integra circuitul de rezervă al bateriei. Dar dacă realizați sursa de alimentare la fel cum am făcut-o, puteți conecta doar o bancă de alimentare USB pentru backupul bateriei. Dacă aveți o bancă de energie care vă permite să încărcați și să furnizați energie în același timp, atunci sunteți gata.

Folosesc RaspberryPi ZeroW pentru a găzdui serverul Mosquitto MQTT și NodeRED. Funcționează de peste un an fără nicio problemă.

Referințe: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi… Instalați NodeRED pe Raspberry Pi:

Pasul 1: părți de care veți avea nevoie

Piese de care veți avea nevoie
Piese de care veți avea nevoie
Piese de care veți avea nevoie
Piese de care veți avea nevoie
Piese de care veți avea nevoie
Piese de care veți avea nevoie

Lista de componente:

(1) ESP-01

(2) Rezistor de 10K ohm

(1) tranzistor NPN generic cu semnal mic (am folosit 2N3904)

(2) fire lungi

(1) Alimentare generică de 5V (acest circuit necesită curent mai mic de 300mA)

(1) Modul regulator 3.3V AMS1117

(1) Micro-USB la adaptor DIP conector feminin PCB convertor kit DIY

(1) Cablu USB-A la MicroUSB.

(1) Priză IC cu 8 pini - poate fi omisă dacă doriți să lipiți ESP-01 direct pe placa de circuit. Tăiați podurile de plastic care creează decalajul dintre rânduri, apoi lipiți cele două rânduri împreună, vedeți fotografia.

(1) Incintă mică pentru proiect

Mai jos sunt piese opționale, dacă aveți nevoie de o alarmă localizată folosind difuzor / buzzer

(1) Tranzistor PNP generic, alegeți în funcție de cerința curentului / puterii difuzorului / sonorului. În cazul meu, folosesc 2N2907, deoarece difuzorul meu are doar 0,3 W (8 ohmi), ar oferi suficientă putere pentru a conduce difuzorul. Puteți alege un tranzistor și difuzor mai mari dacă doriți un sunet mai puternic.

(1) Difuzor, vezi nota de mai sus despre tranzistorul PNP

(1) Rezistor 100-110 ohmi

Pasul 2: Diagrama circuitului

Diagrama circuitului
Diagrama circuitului

Primul pas ar fi crearea circuitului prezentat în diagramă.

Am construit sursa de alimentare de 3,3VDC utilizând un vechi încărcător de telefon mobil de 5V cuplat cu regulatorul AMS1117 de 3,3VDC. Pentru mufa ESP-01, folosesc o mufă IC standard cu 8 pini și tăiem podurile de plastic care creează decalajul dintre rânduri, apoi lipim cele două rânduri împreună.

Circuitul pe care l-am proiectat este să simtă prezența apei între cele două fire. Când apa ajunge la vârful ambelor fire, ar crea o rezistență de aproximativ 10K la 20K ohm. Apoi, în serie cu 10K ohm R1, furnizează un curent mic la baza Q1, determinând Q1 să se satureze, fixând GPIO-2 la sol. R1 este necesar pentru a oferi protecție Q1 în cazul în care există un scurtcircuit accidental pe firele de detectare.

R2 este un rezistor pull-up pentru a permite ESP-01 să pornească de la bliț.

Acum, pentru difuzorul / buzzerul opțional, dacă aveți nevoie doar de ESP-01 pentru a vorbi MQTT și nu doriți să implementați această alarmă localizată, puteți elimina R2, Q2, difuzorul și puteți plasa un rezistor de 10K între GPIO-0 și VCC.

Dacă nu simțiți nevoia de a utiliza adaptorul Micro-USB la DIP de sex feminin, puteți lipi firele între 5V PS și modulul regulator de 3,3V. Prefer să folosesc adaptorul MicroUSB feminin, astfel încât să pot folosi orice încărcător generic de telefon mobil și cablu MicroUSB.

Pasul 3: Construirea circuitului

Construirea circuitului
Construirea circuitului
Construirea circuitului
Construirea circuitului
Construirea circuitului
Construirea circuitului

Lipiți toate componentele și piesele în PCB conform schemei de circuite din pagina anterioară și tăiați PCB-ul la dimensiune.

Așezați PCB-ul într-o carcasă care să se potrivească PCB-ului și difuzorului opțional. În cazul meu, toate piesele s-ar potrivi într-o mică priză de telefon, deși trebuie să încălzesc puțin capacul pentru a crea o umflătură, astfel încât să se potrivească modulul ESP-01.

Pasul 4: intermitent ESP-01

În acest pas, vom aprinde ESP-01 cu schiță arduino. Dacă nu ați lansat niciodată modulul ESP-01, puteți urma instrucțiunile mele pentru a începe:

Puteți găsi schița mea în pagina mea github:

În schiță, cel puțin trebuie să modificați următoarele informații referitoare la rețeaua / configurarea dvs. de acasă:

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

În rețeaua mea de acasă, am 2 puncte de acces diferite care difuzează 2 SSID-uri diferite, iar această schiță ar permite redundanța prin conectarea la următorul SSID dacă se pierde comunicația cu AP-ul curent. Dacă aveți un singur SSID, completați atât ssid1, cât și ssid2 cu aceeași valoare.

Odată ce ați făcut modificarea, încărcați schița în ESP-01 și conectați ESP-01 la placa de interfață.

Pasul 5: Test Run

Pentru a testa dacă proiectul nostru funcționează, cel mai ușor ar fi să monitorizăm mesajele MQTT din rețea. Pentru a face acest lucru, trebuie să deschideți o sesiune SSH către brokerul mosquitto și să lansați următoarea comandă:

mosquitto_sub -v -t '#'

Comanda de mai sus ne-ar permite să vedem toate mesajele MQTT care vin în broker.

Acum porniți circuitul nostru și, dacă totul funcționează, în câteva secunde ar trebui să vedeți cel puțin următorul mesaj MQTT:

stat / SumpWaterSensor / LWT Online

Acum testați senzorul de apă prin scufundarea celor 2 fire de detectare într-o ceașcă de apă și ar trebui să vedeți acest mesaj:

tele / SumpWaterSensor WET

Și dacă scoateți firele din apă, ar trebui să vedeți acest mesaj:

tele / SumpWaterSensor DRY

Dacă vedeți aceste mesaje, proiectul dvs. este un succes.

De asemenea, am inclus mai multe subiecte utile MQTT în schiță pe care le puteți folosi:

„stat / SumpWaterSensorInfo”: acest mesaj este trimis în fiecare minut pentru a oferi disponibilitate și alte informații.

„cmnd / SumpWaterSensorInfo”: ESP-01 va trimite informații dacă primește acest subiect cu valoarea „1” (ascii = 49)

"cmnd / SumpWaterSensorCPUrestart": ESP-01 va reporni dacă primește acest subiect cu valoarea '1' (ascii = 49)

„cmnd / SumpWaterSensorBeep”: ESP-01 va suna difuzorul dacă primește acest subiect cu valoarea „1” (ascii = 49)

„cmnd / SumpWaterSensorBeepFreq”: setează frecvența alarmei difuzorului, implicit = 900 (Hz)

"cmnd / SumpWaterSensorDebug": activați și setați nivelul de depanare serial (implicit este 0 - fără depanare)

Pasul 6: Montați senzorul

Montați senzorul
Montați senzorul
Montați senzorul
Montați senzorul

În aplicația mea, vreau să monitorizez nivelul apei din interiorul pompei de bazin și să mă anunț dacă apa ajunge deasupra întrerupătorului plutitor al pompei de bazin, ceea ce înseamnă că pompa mea de bazin nu funcționează. Am rulat firele și am folosit legături pentru a le fixa de-a lungul conductei de scurgere.

Pasul 7: Atingere finală

Atingerea finala
Atingerea finala

Acum că proiectul funcționează și putem publica mesajul MQTT către broker, următorul pas este să ne gândim la ce să facem cu asta.

În proiectul meu, folosesc Node-RED pentru a asculta / abona la subiectul „tele / SumpWaterSensor” MQTT și a anunța mai multe difuzoare de acasă Google dacă este detectată apă. În plus, am legat fluxul de un nod pushbullet pentru a trimite notificări către telefonul meu Android.

De asemenea, am creat un front-end web pentru a vedea starea senzorului (pornit / offline, timp de funcționare etc.). Uneori am văzut că se deconectează de câteva ori în decursul unei săptămâni, din statistici, de multe ori se datorează deconectării ESP-01 de la wifi sau MQTT. Dar nu vă faceți griji, schița mea a inclus rutină pentru a reporni ESP-01 dacă continuă să nu reușească să se conecteze la brokerul WIFI și / sau MQTT.

Imaginea de pe acest pas, arată fluxul Node-RED pentru a realiza acest lucru. De asemenea, puteți lipi fluxul de pe pagina mea github în Node-RED:

Anunțul Google la domiciliu este doar un exemplu pentru acest proiect, dar cred că este cel mai util și practic. Puteți oricând să vă interfațați cu alt ascultător MQTT sau chiar să utilizați IFTTT pentru a conduce alte dispozitive după detectarea apei.

A se distra…

Recomandat: