Taula de continguts:

Sensor de fuites d'aigua a ESP8266 + Micropython + Domoticz: 16 passos (amb imatges)
Sensor de fuites d'aigua a ESP8266 + Micropython + Domoticz: 16 passos (amb imatges)

Vídeo: Sensor de fuites d'aigua a ESP8266 + Micropython + Domoticz: 16 passos (amb imatges)

Vídeo: Sensor de fuites d'aigua a ESP8266 + Micropython + Domoticz: 16 passos (amb imatges)
Vídeo: Детектор воды/утечек Arduino UNO 2024, De novembre
Anonim
Sensor de fuites d'aigua a ESP8266 + Micropython + Domoticz
Sensor de fuites d'aigua a ESP8266 + Micropython + Domoticz
Sensor de fuites d'aigua a ESP8266 + Micropython + Domoticz
Sensor de fuites d'aigua a ESP8266 + Micropython + Domoticz

Fa un temps, la meva dona em va demanar que fes un sensor de fuites d’aigua. Tenia por que la mànega de la sala de calderes pogués filtrar-se i l'aigua inundés el terra de fusta acabat de posar. I jo, com a veritable enginyer, vaig emprendre un sensor així.

Dels meus 15 anys d’experiència com a enginyer mèdic, sé que la forma més senzilla de detectar aigua són els passadors metàl·lics curts per l’aigua. El principi de funcionament dels sensors més simples és que l’aigua ha de fer dos (o més) passadors metàl·lics i, tan aviat com succeeix, es desencadena l’alarma.

Pas 1: maquinari

Maquinari
Maquinari

Per a aquest projecte necessitem:

1. Mòdul ESP8266 - 01

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

Necessitem aquest mòdul per reduir el voltatge de la bateria al nivell acceptable per a ESP8266. Segons el full de dades, hi hauria d'haver una entrada de 3V a 3,6V. Aquest mòdul ens proporciona 3.3V.

3. Bateria. Estic fent servir bateria de ions de Li de 3,7 7V 400 mAh. En realitat, podeu utilitzar qualsevol altra font d'alimentació adequada. La bateria 18650 també és una bona opció. Quan escolliu una bateria, tingueu en compte que l'ESP "menja" uns 200 mA mentre es connecta a la xarxa WiFi i que s'utilitzen uns 60 mA quan la placa carrega dades al servidor.

4. Taula de càrrega de la bateria Lipo TP4056.

5. Mini polsador Pololu Interruptor d'alimentació Molt petit tauler molt interessant. Ens permet canviar el mòdul ESP només quan es detecta aigua. No cal que mantingueu ESP encesa. Per tant, és bo per estalviar la càrrega de la bateria.

6. Habitatge7. Microinterruptor doble ON-OFF. Una línia serveix per encendre el dispositiu. La segona línia és per provar: es fa un curtcircuit sense aigua, només per fer-nos saber si el dispositiu funciona o no.

8. Microordinador Raspberry Pi

Estic fent servir Raspberry Pi Zero. És prou potent per executar el servidor Domoticz.

Pas 2: programari

Al vostre PC:

1. Esptool instal·lat, per esborrar mòduls i parpellejar el firmware

2. Ampy instal·lat, per fer flaixar el vostre programa

3 es recomana Python 3.6 o superior

4. Qualsevol editor de codi que vulgueu. Simplest: Python IDLE que normalment s’instal·la amb Python. Estic fent servir Pycharm / Atom o Anaconda Spyder On raspberry Pi

5. Servidor Domoticz instal·lat al Raspberry Pi (o ordinador comú amb Windows o Linux)

Pas 3: prepareu Raspberry Pi: instal·leu Domoticz

Per tant, agafeu el vostre RPi i instal·leu el sistema operatiu adequat per executar el servidor Domoticz.

Podeu seguir aquestes instruccions.

Estic fent servir Raspbian Stretch amb l’escriptori des d’aquí:

El següent pas és instal·lar el servidor Domoticz al vostre PC. Podeu fer servir instruccions aquí o aquí:). No tingueu por, no és tan difícil. Viouslybviament, cal que executeu al vostre terminal:

curl -L install.domoticz.com | sudo bash

I això és tot:) més o menys. Configuració de Domoticz

Ara que el nostre servidor està llest, podem accedir-hi des de qualsevol navegador web, inclòs des d’una tauleta, introduint l’URL següent: https:// IP_domoticz: 8080

Pas 4: Configuració de Domoticz

Configuració de Domoticz
Configuració de Domoticz

Ara que el nostre servidor està llest, podem accedir-hi des de qualsevol navegador web, inclòs des d’una tauleta, introduint l’URL següent: https:// IP_domoticz: 8080

Pas 5: ajusteu la configuració de l'aplicació

Ajusta la configuració de l'aplicació
Ajusta la configuració de l'aplicació
Ajusta la configuració de l'aplicació
Ajusta la configuració de l'aplicació

Hi ha diversos paràmetres d'aplicació que es poden configurar a través de la configuració | Menú de configuració.

El menú Configuració amb diverses pestanyes us permet introduir paràmetres personals necessaris per a un millor funcionament del sistema. Després d'introduir les dades als camps, les heu de desar prement el botó vermell "Aplica la configuració". Després d'aquesta acció, tots els camps de contrasenya, que estaven buits al primer accés, apareixeran amb una llarga cadena d'asteriscs, encara que no s'hagin utilitzat.

Un cop hàgiu fet la configuració principal a la pàgina "Sistema", feu clic a "Notificacions". Aquí hem d’ajustar quin tipus de notificacions utilitzarem.

Pas 6: configureu les notificacions

Notificacions de configuració
Notificacions de configuració

Es poden enviar notificacions, per exemple, quan es prem un interruptor, l'ús d'electricitat és massa alt, la temperatura és alta i hi ha moltes opcions més.

En el nostre cas, les notificacions s’han d’enviar tan aviat com el sensor hagi detectat aigua. Per tant, només cal que les activeu, que vulgueu utilitzar. Normalment, també necessiteu la clau de l'API perquè la notificació funcioni. Avançant una mica, diré que he provat Pushover, Pushsafer i Pushbullet. I em vaig quedar amb Pushover. Darrerament diré per què.

Poques paraules sobre el funcionament de les notificacions. Heu de tenir un compte a Pushbullet, Pushover o altres pàgines que vulgueu utilitzar. També necessitareu una aplicació al vostre telèfon mòbil o PC.

Obteniu la clau API i inseriu-la a la pàgina superior. Podeu provar la notificació fent clic a "Prova". Si la clau API és correcta, hauríeu de rebre notificacions de prova al vostre telèfon mòbil.

Tan bon punt el sensor detecta l'aigua, l'ESP s'encén i envia la sol·licitud al servidor Domoticz en format JSON. Que si es compleixen les condicions per activar un esdeveniment (enviar-li una notificació al telèfon mòbil), Domoticz envia la notificació.

Més tard tornaré als "esdeveniments".

Pas 7: configureu la comunicació amb els dispositius de maquinari

Configureu la comunicació amb els dispositius de maquinari
Configureu la comunicació amb els dispositius de maquinari
Configureu la comunicació amb els dispositius de maquinari
Configureu la comunicació amb els dispositius de maquinari
Configureu la comunicació amb els dispositius de maquinari
Configureu la comunicació amb els dispositius de maquinari

Abans de poder utilitzar l'aplicació Domoticz per controlar dispositius o llegir sensors, heu de configurar la comunicació als dispositius de maquinari. Seleccioneu Configuració | Maquinari per afegir maquinari. Els dispositius no apareixeran fins que no s'afegeixi el maquinari adequat.

L'aplicació Domoticz admet nativament molts dispositius de maquinari. En el nostre cas, per llegir el nostre sensor d'inundació, hem d'afegir el maquinari anomenat "Dummy" de la llista de maquinari.

Quan s'afegeix maquinari, es mostrarà la visió general de tot el maquinari definit. El maquinari es pot desactivar o suprimir.

El nou maquinari hauria de figurar a la llista i hi hauria d’haver un botó "Crea sensors virtuals".

Feu clic en aquest botó i trieu Tipus de sensor "Alerta". Ara haurem d'afegir el dispositiu a Domoticz per estar actiu.

Pas 8: afegiu el dispositiu a Domoticz per esdevenir actiu

Afegiu el dispositiu a Domoticz per esdevenir actiu
Afegiu el dispositiu a Domoticz per esdevenir actiu
Afegiu el dispositiu a Domoticz per esdevenir actiu
Afegiu el dispositiu a Domoticz per esdevenir actiu
Afegiu el dispositiu a Domoticz per esdevenir actiu
Afegiu el dispositiu a Domoticz per esdevenir actiu

Tingueu en compte el número que apareix sota "IDX". Aquesta és l’única referència d’aquest dispositiu i la necessitem més endavant al nostre script Python per adreçar la notificació. En aquest cas, el número IDX és 1.

Activeu el dispositiu fent clic a la fletxa verda a l'esquerra (a la meva imatge que hi ha a sota, és de color blau, a causa del dispositiu habilitat).

Empleneu el nom del dispositiu i feu clic a "afegir".

Aneu al menú "Utilitats" i el dispositiu hi hauria de figurar.

Ara hem de programar un "esdeveniment" per al sensor. Vol dir que hem de dir-li al servidor què s'ha de fer en cas que tingui un missatge del sensor. I va ser el lloc més difícil per a mi:).

Pas 9: no funciona d'aquesta manera …

No funciona d'aquesta manera …
No funciona d'aquesta manera …

Vaig començar provant de programar esdeveniments al / dispositiu / pàgina. Això a continuació no és meu, però és correcte il·lustrar-ho.

Si creieu que marqueu algunes caselles de selecció i funcionarà, esteu equivocat:) No funciona d'aquesta manera. Suposo que aquesta funció encara no està acabada. No ho oblideu: és un programari de codi obert. Molt bé, després de diverses hores vaig trobar la solució. Hem d’utilitzar "Esdeveniments" del menú desplegable "Configuració".

Després de fer clic a "Esdeveniments", podeu crear el vostre propi esdeveniment. Podeu fer-ho comprant escrivint un codi a Python o LUA, o simplement fent servir el que es diu "Blockly". He triat utilitzar Blockly. Hi ha dues maneres d’obligar el servidor a fer el que vulgueu.

Pas 10: creeu l'esdeveniment de la manera correcta 1

Construeix un esdeveniment de la manera correcta 1
Construeix un esdeveniment de la manera correcta 1

1. Executeu un fitxer extern mitjançant "Esdeveniments" mitjançant el missatge Blockly "Start script"

Això funciona perfectament a la màquina Windows. Però no ho vaig aconseguir amb Raspbian al meu Raspberry Pi. Sospito que hi ha un problema amb els permisos.

Pas 11: creeu l'esdeveniment de la manera correcta 2

Crea l’esdeveniment d’una manera correcta 2
Crea l’esdeveniment d’una manera correcta 2

2. Utilitzeu el missatge "Envia una notificació amb l'assumpte". Funciona amb Raspbian. Aquesta opció admet l'enviament de notificacions a Pushsafe i Pushover.

L’avantatge d’utilitzar la primera via és que és més flexible. Podeu triar la icona que es mostrarà a la pantalla, els sons, etc. El meu "esdeveniment" es mostra a la imatge superior.

A continuació, programem el mòdul ESP.

Pas 12: Programació del mòdul ESP8266-01

Programació del mòdul ESP8266-01
Programació del mòdul ESP8266-01

Comencem per parpellejar el nostre mòdul ESP8266. Normalment, aquests mòduls inclouen el firmware de fàbrica. és possible comunicar-se amb mòduls mitjançant les anomenades ordres AT. I, a més, aquest programari no permet utilitzar mòduls com a controladors independents. Per utilitzar-los com a controladors independents, hem d’esborrar el firmware de fàbrica i instal·lar-ne un de nou.

Per fer-ho utilitzarem esptool. Cal que connectem el mòdul a l'ordinador per esborrar el microprogramari. Per fer-ho, necessiteu un convertidor TTL + pocs components addicionals. Però hi ha una manera més fàcil:). Només cal comprar a aliexpress o ebay USB a ESP8266 ESP-01 adaptador de mòdul Wi-Fi amb controlador CH340G.

Connecteu el mòdul ESP8266 al convertidor TTL tal com es mostra a la imatge i connecteu-lo al port USB.

Si teniu el mateix convertidor que jo, heu de canviar el commutador a la posició "Prog". Cerqueu on està instal·lat l’esptool (normalment en algun lloc com C: / Program Files (x86) Python36-32 / Scripts. Aneu a aquesta carpeta i inicieu-hi l’indicador d’ordres. Tipus: python esptool.exe --port COM5 erase_flash

Per descomptat, trieu el port correcte. En el meu cas és COM5. Podeu comprovar el port on s’instal·la ESP des del Tauler de control - Sistema - Gestor de dispositius.

Instal·leu el microprogramari (l’he pres d’ací: https://micropython.org/download#esp8266) escrivint:

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

D'acord, ara estem preparats per penjar els scripts de micropitó a ESP8266.

Estic fent servir Adafruit MicroPython Tool (ampy) per a això.

Però actualment hi ha una altra opció anomenada Explorador. Aquesta és una aplicació amb interfície d'usuari que permet carregar fitxers a mòduls ESP.

Podeu trobar instruccions sobre com instal·lar ampy aquí. Per tant, poseu l'interruptor del convertidor TTL a la posició "UART". Haurem de penjar fitxers:

  • wifimgr.py - gestor wifi per connectar-se a la xarxa wifi
  • main.py: el nostre script principal

A la línia d'ordres, escriviu: ampy --port COM5 poseu C: / path al fitxer

Feu clic a "entra". Al cap de pocs segons, hauríeu de veure la línia d'ordres buida. Vol dir que s’ha fitxat un fitxer. Podeu consultar la llista de fitxers a ESP mitjançant l'ordre ampy:

ampy --port COM5 ls

Per la meva experiència, és millor carregar main.py després d'haver carregat tots els fitxers necessaris. és així, ja que tan aviat com pengeu main.py - el mòdul ESP8266 es reiniciarà i començarà a executar el fitxer main.py. Per tant, en aquest cas, si proveu de carregar un altre fitxer, de vegades el procés de càrrega fallarà. Però no vol dir que tot estigui perdut:), només cal que proveu la segona vegada i tindreu èxit (de nou, per la meva experiència).

Tots els fitxers d’aquest projecte estan disponibles des d’aquí:

Pas 13: connecteu-vos a la vostra xarxa WiFi. Rebre una notificació

Connecteu-vos a la vostra xarxa WiFi. Rebre una notificació
Connecteu-vos a la vostra xarxa WiFi. Rebre una notificació
Connecteu-vos a la vostra xarxa WiFi. Rebre una notificació
Connecteu-vos a la vostra xarxa WiFi. Rebre una notificació

si tot està bé, reinicieu el mòdul reintroduint el convertidor TTL al port USB del vostre PC.

Quan comenci ESP, cerqueu una nova xarxa WiFi anomenada "Wifimanager". Connecteu-vos-hi amb el vostre PC o telèfon i, a continuació, aneu a l'adreça IP 192.168.4.1.. Aquí podeu connectar el vostre ESP a la xarxa WiFi local. Trieu la xarxa WiFi que utilitzeu, escriviu la contrasenya i premeu "Envia".

Si tot és correcte, veureu el missatge "ESP s'ha connectat correctament a la xarxa XXXX". El vostre ESP ara està connectat a la vostra xarxa WiFi i està llest. Tan bon punt es connecti a WiFi, es connectarà al servidor Domoticz. Shorty, heu de rebre una notificació al telèfon mòbil.

Podeu fer un seguiment del procés a "Configuració" / "Registre".

Vua lia!:) Funciona. Ara podem procedir al muntatge de totes les peces juntes, segons el diagrama de blocs següent.

Pas 14: diagrama de blocs

Diagrama de blocs
Diagrama de blocs

No hi ha molt a dir d’aquest diagrama. Molt simple. Canvieu l’alimentació amb l’interruptor S1. El dispositiu es manté en estat apagat fins que l'aigua tanca els pins del "sensor d'aigua". A continuació, la "placa Pololu" s'encén i dóna energia al convertidor de tensió. Aquest mòdul de potència basat en el xip HT7333 converteix el voltatge en 3.3V estable per a ESP8266. El següent ESP s'encén i envia un missatge al servidor Domoticz.

Pas 15: Resultat i conclusions

Resultat i conclusions
Resultat i conclusions
Resultat i conclusions
Resultat i conclusions
Resultat i conclusions
Resultat i conclusions
Resultat i conclusions
Resultat i conclusions

Funciona. L'enviament de notificacions va trigar fins a 10 segons: connexió a WiFi, enviament de notificacions i rebia un missatge d'alarma al telèfon.

He programat el sensor per enviar alarmes cada 30 segons, si es detectava aigua. El sensor pot enviar fins a 5 - 6 notificacions fins que es descarregui la bateria. Aquest dispositiu es pot utilitzar també per determinar el nivell de l'aigua. El que voldria millorar.

1. Perquè funcioni més ràpidament. Crec que intentaré utilitzar la tecnologia ESP-Now, que em permet connectar diversos ESP directament. En aquest cas, el consum d'energia durant la connexió és molt baix i és més ràpid. Per tant, la idea és utilitzar un ESP com a hub per connectar altres ESP.

2. Implementar l'alarma de nivell de bateria. Ara no es pot saber si hi ha prou energia per enviar o no missatges d’alarma. Crec que a la propera generació d’aquest sensor hi haurà un botó especial per provar la càrrega de la bateria.

L'usuari haurà de prémer un botó i es mostrarà el nivell de la bateria.

Recomanat: