Cuprins:

Senzor de scurgere a apei pe ESP8266 + Micropython + Domoticz: 16 pași (cu imagini)
Senzor de scurgere a apei pe ESP8266 + Micropython + Domoticz: 16 pași (cu imagini)

Video: Senzor de scurgere a apei pe ESP8266 + Micropython + Domoticz: 16 pași (cu imagini)

Video: Senzor de scurgere a apei pe ESP8266 + Micropython + Domoticz: 16 pași (cu imagini)
Video: Senzor detectie scurgeri apa/inundatie wireless Aqara | Geekmall.ro 2024, Iulie
Anonim
Senzor de scurgere a apei pe ESP8266 + Micropython + Domoticz
Senzor de scurgere a apei pe ESP8266 + Micropython + Domoticz
Senzor de scurgere a apei pe ESP8266 + Micropython + Domoticz
Senzor de scurgere a apei pe ESP8266 + Micropython + Domoticz

Cu ceva timp în urmă, soția mea mi-a cerut să fac un senzor de scurgere a apei. Îi era teamă că furtunul din camera cazanului poate avea scurgeri, iar apa va inunda podeaua de lemn nou pusă. Și eu, ca inginer adevărat, am angajat un astfel de senzor.

Din cei 15 ani de experiență ca inginer medical, știu că cel mai simplu mod de a detecta apa sunt știfturile metalice scurtate de apă. Principiul de funcționare al celor mai simpli senzori este că apa trebuie să scurtcircuite două (sau mai multe) știfturi metalice și, de îndată ce se întâmplă, alarma se declanșează.

Pasul 1: Hardware

Hardware
Hardware

Pentru acest proiect avem nevoie de:

1. Modul ESP8266 - 01

2. HT7333 3.3V MS Low Dropout Regulator Linear Regulator Power Supply modu

Avem nevoie de acest modul pentru a reduce tensiunea de la baterie la nivelul acceptabil pentru ESP8266. Conform fișei tehnice, ar trebui să existe o intrare de la 3V la 3,6V. Acest modul ne oferă 3.3V.

3. Baterie. Folosesc baterie Li-ion de 3, 7V 400mAh. De fapt, puteți utiliza orice altă sursă de alimentare adecvată. Bateria 18650 este, de asemenea, o alegere bună. Când alegeți o baterie, rețineți că ESP „mănâncă” aproximativ 200mA când se conectează la rețeaua WiFi, iar aproximativ 60mA sunt folosiți când placa încarcă date pe server.

4. Placă de încărcare a bateriei Lipo TP4056.

5. Mini comutator de alimentare cu buton Pololu Placă mică foarte interesantă. Ne permite să schimbăm modulul ESP numai atunci când este detectată apă. Nu este nevoie să mențineți ESP ON. Deci, este bine pentru a economisi încărcarea bateriei.

6. Locuințe7. Micro-comutator dublu ON-OFF. O linie servește la pornirea dispozitivului. A doua linie este pentru testare - scurtcircuitează fără apă, doar pentru a ne anunța că dispozitivul funcționează sau nu.

8. Micro computer Raspberry Pi

Folosesc Raspberry Pi Zero. Este suficient de puternic pentru a rula serverul Domoticz.

Pasul 2: Software

Pe computer:

1. instalat esptool, pentru ștergerea modulelor și firmware-ul intermitent

2. Ampy instalat, pentru a clipi programul

3 Python 3.6 sau o versiune ulterioară recomandată

4. Orice editor de cod pe care îl doriți. Simplest - Python IDLE care este în mod normal instalat cu Python. Folosesc Pycharm / Atom sau Anaconda Spyder On raspberry Pi

5. Server Domoticz instalat pe Raspberry Pi (sau pe un PC comun sub Windows sau Linux)

Pasul 3: Pregătiți Raspberry Pi - Instalați Domoticz

Deci, luați RPi și instalați sistemul de operare adecvat pentru rularea serverului Domoticz.

Puteți urma aceste instrucțiuni.

Folosesc Raspbian Stretch cu Desktop de aici:

Următorul pas este instalarea serverului Domoticz pe computer. Puteți folosi instrucțiunile aici sau aici:). Nu vă fie teamă, nu este atât de dificil. Evident, trebuie să rulați în terminal:

curl -L install.domoticz.com | sudo bash

Și asta este:) mai mult sau mai puțin. Configurare Domoticz

Acum că serverul nostru este gata, îl putem accesa din orice browser web, inclusiv de pe tabletă, introducând următoarea adresă URL: https:// IP_domoticz: 8080

Pasul 4: Configurare Domoticz

Configurare Domoticz
Configurare Domoticz

Acum că serverul nostru este gata, îl putem accesa din orice browser web, inclusiv de pe tabletă, introducând următoarea adresă URL: https:// IP_domoticz: 8080

Pasul 5: Ajustați setările aplicației

Ajustați setările aplicației
Ajustați setările aplicației
Ajustați setările aplicației
Ajustați setările aplicației

Există diverse setări ale aplicației care pot fi setate prin Setup | Meniu Setări.

Meniul Setare cu diverse file vă permite să introduceți parametrii personali necesari pentru o mai bună funcționare a sistemului. După introducerea datelor în câmpuri, trebuie să le salvați apăsând butonul roșu „Aplicați setările”. După această acțiune, toate câmpurile Parolă, care erau goale la primul acces, vor apărea cu un șir lung de asteriscuri, chiar dacă nu au fost utilizate.

După ce ați făcut configurarea principală pe pagina „Sistem”, faceți clic pe „Notificări”. Aici trebuie să ajustăm ce fel de notificări vom folosi.

Pasul 6: Configurarea notificărilor

Configurare notificări
Configurare notificări

Notificările pot fi trimise, de exemplu, atunci când un comutator este apăsat, consumul de energie electrică este prea mare, temperatura la mare și pentru multe alte opțiuni.

În cazul nostru, notificările trebuie trimise imediat ce senzorul a detectat apă. Deci, doar porniți-le, pe care doriți să le utilizați. De asemenea, în mod normal aveți nevoie de cheie API pentru ca notificarea să funcționeze. Alergând puțin înainte, voi spune că am încercat Pushover, Pushsafer și Pushbullet. Și am rămas cu Pushover. Mai târziu voi spune de ce.

Puține cuvinte despre modul în care funcționează notificările. Trebuie să aveți un cont pe Pushbullet, Pushover sau alte pagini pe care doriți să le utilizați. De asemenea, veți avea nevoie de o aplicație pe telefonul mobil sau pe computer.

Obțineți cheia API și introduceți-o în pagina de mai sus. Puteți testa notificarea făcând clic pe „Testați”. Dacă cheia API este corectă, ar trebui să primiți notificări de testare pe telefonul dvs. mobil.

De îndată ce senzorul detectează apa, ESP pornește și trimite cererea către serverul Domoticz în format JSON. Decât dacă sunt îndeplinite condițiile pentru declanșarea unui eveniment (trimiterea notificării către telefonul mobil), Domoticz trimite notificarea.

Mai târziu voi reveni la „evenimente”.

Pasul 7: Configurați comunicarea către dispozitivele hardware

Configurați comunicarea către dispozitivele hardware
Configurați comunicarea către dispozitivele hardware
Configurați comunicarea către dispozitivele hardware
Configurați comunicarea către dispozitivele hardware
Configurați comunicarea către dispozitivele hardware
Configurați comunicarea către dispozitivele hardware

Înainte de a putea utiliza aplicația Domoticz pentru a controla dispozitivele sau a citi senzorii, trebuie să configurați comunicarea către dispozitivele hardware. Selectați Configurare | Hardware pentru a adăuga hardware. Dispozitivele nu vor apărea până la adăugarea hardware-ului corespunzător.

Aplicația Domoticz acceptă multe dispozitive hardware în mod nativ. În cazul nostru, pentru a citi senzorul nostru de inundații, trebuie să adăugăm așa-numitul hardware "Dummy" din lista hardware-ului.

Când se adaugă hardware, va fi afișată prezentarea generală a tuturor hardware-urilor definite. Hardware-ul poate fi dezactivat sau șters.

Noul hardware ar trebui să fie în listă și ar trebui să existe un buton „Creați senzori virtuali”.

Faceți clic pe acest buton și alegeți Tip senzor „Alertă”. Acum trebuie să adăugăm dispozitivul în Domoticz pentru a deveni activ.

Pasul 8: Adăugați dispozitivul în Domoticz pentru a deveni activ

Adăugați dispozitivul în Domoticz pentru a deveni activ
Adăugați dispozitivul în Domoticz pentru a deveni activ
Adăugați dispozitivul în Domoticz pentru a deveni activ
Adăugați dispozitivul în Domoticz pentru a deveni activ
Adăugați dispozitivul în Domoticz pentru a deveni activ
Adăugați dispozitivul în Domoticz pentru a deveni activ

Vă rugăm să rețineți numărul de mai jos „IDX”. Aceasta este referința unică la acest dispozitiv și avem nevoie de el mai târziu în scriptul nostru Python pentru a adresa notificarea. În acest caz, numărul IDX este 1.

Activați dispozitivul făcând clic pe săgeata verde din stânga (pe imaginea mea de mai jos este albastră, din cauza dispozitivului activat).

Completați numele dispozitivului și faceți clic pe „adăugați”.

Navigați la meniul „Utilități” și dispozitivul dvs. ar trebui să fie listat acolo.

Acum trebuie să programăm „eveniment” pentru senzorul nostru. Înseamnă că trebuie să spunem serverului ce trebuie să facem în cazul în care a primit un mesaj de la senzor. Și a fost să spunem cel mai greu loc pentru mine:).

Pasul 9: Nu funcționează în acest fel …

Nu funcționează în acest fel …
Nu funcționează în acest fel …

Am început încercând să programez evenimentul pe / dispozitiv / pagină. Acest lucru de mai jos nu este al meu, dar este ok să ilustrez.

Dacă credeți că veți bifa câteva casete de selectare și va funcționa, vă înșelați:) Nu funcționează în acest fel. Presupun că această caracteristică nu este încă terminată. Nu uitați - este un software open source. Bine, după câteva ore am găsit soluția. Trebuie să folosim „Evenimente” din meniul derulant „Configurare”.

După ce faceți clic pe „Evenimente” vă puteți crea propriul eveniment. Puteți face acest lucru cumpărând scrierea unui cod în Python sau LUA, sau doar folosind un lucru numit „Blockly”. Am ales să folosesc Blockly. Există două moduri de a forța serverul să facă ceea ce doriți.

Pasul 10: Construiți evenimentul într-un mod corect 1

Construiți evenimentul într-un mod corect 1
Construiți evenimentul într-un mod corect 1

1. Executați fișierul extern prin „Evenimente”, utilizând mesajul Blockly „Start script”

Acest lucru funcționează perfect pentru mine pe mașina Windows. Dar nu am reușit cu asta pe Raspbian pe Raspberry Pi. Bănuiesc că există o problemă cu permisiunile.

Pasul 11: Construiți evenimentul într-un mod corect 2

Construiți evenimentul într-un mod corect 2
Construiți evenimentul într-un mod corect 2

2. Utilizați mesajul „Trimiteți notificarea cu subiectul”. Funcționează pe Raspbian. Această opțiune acceptă trimiterea notificărilor către Pushsafe și Pushover.

Avantajul utilizării modului 1 este că este mai flexibil. Puteți alege pictograma care să fie afișată pe ecran, sunete și așa mai departe. „Evenimentul” meu este afișat în poza de mai sus.

În continuare, să programăm modulul ESP.

Pasul 12: Programarea modulului ESP8266-01

Programarea modulului ESP8266-01
Programarea modulului ESP8266-01

Să începem de la intermitent modulul nostru ESP8266. În mod normal, aceste module vin cu firmware-ul din fabrică. este posibil să comunicați cu module folosind așa-numitele comenzi AT. Și, de asemenea, acest software nu permite utilizarea de module precum controlere independente. Pentru a le folosi ca controlere independente, trebuie să ștergem firmware-ul din fabrică și să instalăm unul nou.

Pentru a face acest lucru vom folosi esptool. Deci trebuie să ne conectăm modulul la PC pentru a șterge firmware-ul. Pentru a face acest lucru aveți nevoie de convertor TTL + câteva componente suplimentare. Dar există o modalitate mai ușoară:). Cumpărați doar pe aliexpress sau ebay USB la ESP8266 ESP-01 Modul adaptor Wi-Fi cu driver CH340G.

Conectați modulul ESP8266 la convertorul TTL așa cum se arată în imagine și conectați-l la portul USB.

Dacă aveți același convertor ca mine, atunci singur trebuie să schimbați comutatorul în poziția „Prog”. Găsiți unde este instalat esptool (în mod normal undeva cum ar fi C: / Program Files (x86) Python36-32 / Scripts. Mergeți în acest folder, lansați promptul de comandă acolo. Tip: python esptool.exe --port COM5 erase_flash

Desigur, alegeți portul corect. În cazul meu este COM5. Puteți verifica portul în care este instalat ESP din Panoul de control - Sistem - Manager dispozitive.

Instalați firmware-ul (l-am luat de aici: https://micropython.org/download#esp8266) tastând:

python esptool.exe --port COM5 --baud 460800 write_flash --flash_size = detect 0 C: / path_to_firmware / esp8266-20180511-v1.9.4.bin

Ok, acum suntem pregătiți pentru încărcarea scripturilor de micropitoni în ESP8266.

În acest scop, folosesc Adafruit MicroPython Tool (ampy).

Dar în zilele noastre există o altă opțiune numită Esplorer. Aceasta este o aplicație cu interfață cu utilizatorul, care permite încărcarea fișierelor în module ESP.

Aici puteți găsi instrucțiuni despre cum să instalați ampy. Deci, puneți comutatorul pe convertorul TTL în poziția "UART". Va trebui să încărcăm fișiere:

  • wifimgr.py - manager wifi pentru conectarea la rețeaua wifi
  • main.py - scriptul nostru principal

În linia de comandă tastați: ampy --port COM5 puneți C: / cale în fișierul dvs.

Apăsați „introduceți”. După câteva secunde ar trebui să vedeți linia de comandă goală. Înseamnă că fișierul a fost încărcat. Puteți verifica lista de fișiere pe ESP prin comanda ampy:

ampy --port COM5 ls

Din experiența mea, este mai bine să încărcați main.py după ce ați încărcat toate fișierele necesare. este așa, din moment ce veți încărca main.py - modulul ESP8266 va reporni și va începe să execute fișierul main.py. Deci, în acest caz, dacă încercați să încărcați un alt fișier, uneori procesul de încărcare va eșua. Dar nu înseamnă că totul este pierdut:), doar încearcă a doua oară și vei reuși (din nou, din experiența mea).

Toate fișierele pentru acest proiect sunt disponibile de aici:

Pasul 13: Conectați-vă la rețeaua dvs. WiFi. Obține notificare

Conectați-vă la rețeaua dvs. WiFi. Obține notificare
Conectați-vă la rețeaua dvs. WiFi. Obține notificare
Conectați-vă la rețeaua dvs. WiFi. Obține notificare
Conectați-vă la rețeaua dvs. WiFi. Obține notificare

dacă totul este în regulă, reporniți modulul, reintroducând convertorul TTL în portul USB al computerului.

După ce ESP începe, găsiți o nouă rețea WiFi numită „Wifimanager”. Conectați-vă la acesta cu computerul sau telefonul, apoi accesați adresa IP 192.168.4.1.. Aici vă puteți conecta ESP-ul la rețeaua WiFi locală. Alegeți rețeaua WiFi pe care urmează să o utilizați, introduceți parola, apăsați pe „Trimiteți”.

Dacă totul este corect, veți vedea mesajul „ESP conectat cu succes la rețeaua XXXX”. ESP-ul dvs. este acum conectat la rețeaua dvs. WiFi și gata. De îndată ce s-a conectat la WiFi se va conecta la serverul Domoticz. Shorty, trebuie să primești o notificare pe telefonul tău mobil.

Puteți urmări procesul în „Configurare” / „Jurnal”.

Vua lia!:) Functioneaza. Acum putem trece la asamblarea tuturor pieselor împreună, conform schemei bloc de mai jos.

Pasul 14: Diagrama bloc

Diagramă bloc
Diagramă bloc

Nu există atât de multe de spus despre această diagramă. Foarte simplu. Comutați alimentarea cu comutatorul S1. Dispozitivul stă în starea oprită până când apa scurtcircuită pinii „Senzor de apă”. Apoi „Placa Pololu” pornește și dă putere convertorului de tensiune. Acest modul de alimentare bazat pe cip HT7333 convertește tensiunea la 3.3V stabil pentru ESP8266. Următorul ESP pornește și trimite un mesaj către serverul Domoticz.

Pasul 15: Rezultat și concluzii

Rezultat și concluzii
Rezultat și concluzii
Rezultat și concluzii
Rezultat și concluzii
Rezultat și concluzii
Rezultat și concluzii
Rezultat și concluzii
Rezultat și concluzii

Functioneaza. Trimiterea notificării a durat până la 10 secunde: conectarea la WiFi, trimiterea notificării, primirea unui mesaj de alarmă pe telefon.

Am programat senzorul să trimită alarme la fiecare 30 de secunde, dacă a fost detectată apă. Senzorul poate trimite până la 5 - 6 notificări până când bateria va fi descărcată. Un astfel de dispozitiv poate fi utilizat și pentru a determina nivelul apei. Ce aș vrea să îmbunătățesc.

1. Pentru a-l face să funcționeze mai repede. Cred că voi încerca să folosesc tehnologia ESP-Now, care îmi permite să conectez mai multe ESP-uri direct. În acest caz, consumul de energie în timpul conexiunii este foarte mic și este mai rapid. Deci, ideea este să folosiți un ESP ca un hub pentru conectarea altor ESP-uri.

2. Implementați alarma de nivel a bateriei. Acum nu puteți ști că există suficientă putere pentru a trimite sau nu mesajul de alarmă. Cred că în următoarea generație a acestui senzor va exista un buton special pentru testarea încărcării bateriei.

Utilizatorul va trebui să apese un buton, iar nivelul bateriei va fi afișat.

Recomandat: