Taula de continguts:

Sensor WIFI d’inundació / aigua MQTT / Google Home amb ESP-01: 7 passos
Sensor WIFI d’inundació / aigua MQTT / Google Home amb ESP-01: 7 passos

Vídeo: Sensor WIFI d’inundació / aigua MQTT / Google Home amb ESP-01: 7 passos

Vídeo: Sensor WIFI d’inundació / aigua MQTT / Google Home amb ESP-01: 7 passos
Vídeo: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Juliol
Anonim
Sensor WIFI d’inundació / aigua MQTT / Google Home amb ESP-01
Sensor WIFI d’inundació / aigua MQTT / Google Home amb ESP-01

En aquest instructiu, us mostraré com construir sensor d'inundació / aigua wifi amb un cost mínim. Tot el projecte em costa menys de 8 dòlars per a les peces que adquireixo a eBay i les meves peces de recanvi existents.

En aquest projecte, utilitzarem ESP-01 per proporcionar Wifi i client MQTT per detectar presència d’aigua i, opcionalment, utilitzarem un altaveu / buzzer connectat directament per proporcionar una alarma localitzada.

La meva aplicació específica per al projecte és detectar inundacions / aigua dins del pou de la bomba de dipòsit, en cas de fallada de la bomba de dipòsit. Quan 2 cables oberts detecten aigua, enviaria un missatge al corredor MQTT. El corredor MQTT retransmetria el missatge a NodeRED. En rebre el missatge MQTT, NodeRED enviava un anunci a diversos dispositius de Google Home i, opcionalment, també enviava un missatge al mòbil / navegador mitjançant pushbullet

Ara, per descomptat, aquest projecte només funcionaria si l’electricitat de la llar està ENCENDIDA. A la següent instrucció integraré el circuit de còpia de seguretat de la bateria. Però si feu la font d'alimentació de la mateixa manera que ho vaig fer jo, només podeu connectar un banc d'alimentació USB per fer còpia de seguretat de la bateria. Si teniu un banc d’alimentació que us permet carregar i subministrar energia alhora, esteu a punt.

Utilitzo RaspberryPi ZeroW per allotjar el servidor Mosquitto MQTT i NodeRED. Fa més d’un any que funciona sense cap problema.

Referències: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi… Instal·leu NodeRED a Raspberry Pi:

Pas 1: parts que necessitareu

Parts que necessitareu
Parts que necessitareu
Parts que necessitareu
Parts que necessitareu
Parts que necessitareu
Parts que necessitareu

Llista de peces:

(1) ESP-01

(2) Resistència de 10K ohm

(1) transistor NPN genèric de senyal petit (he utilitzat 2N3904)

(2) cables llargs

(1) Alimentació genèrica de 5V (aquest circuit requereix menys de 300mA de corrent)

(1) Mòdul regulador de 3,3 V AMS1117

(1) Adaptador micro-USB a DIP Connector femella convertidor de PCB Kit de bricolatge

(1) Cable USB-A a MicroUSB.

(1) endoll IC de 8 pins: es pot ometre si voleu soldar ESP-01 directament a la placa de circuit. Talleu els ponts de plàstic que creen l’espai entre les files i, a continuació, enganxeu les dues files juntes, vegeu la foto.

(1) Petit recinte per al projecte

A continuació es mostren parts opcionals si necessiteu una alarma localitzada mitjançant altaveu / timbre

(1) Transistor PNP genèric, trieu segons el requisit de corrent / potència de l'altaveu / zumbador. En el meu cas, faig servir 2N2907, ja que el meu altaveu és de només 0,3 W (8 ohm), proporcionaria prou energia per conduir l’altaveu. Podeu triar un transistor i un altaveu més grans si voleu un so més fort.

(1) Altaveu, vegeu la nota sobre el transistor PNP anterior

(1) Resistència de 100 a 110 ohms

Pas 2: diagrama del circuit

Esquema de connexions
Esquema de connexions

El primer pas seria crear el circuit que es mostra al diagrama.

Vaig construir la font d’alimentació de 3,3VDC mitjançant un carregador de mòbil de 5V antic juntament amb un regulador AMS1117 de 3,3VDC. Per al sòcol ESP-01, faig servir un sòcol IC estàndard de 8 pins i tallo els ponts de plàstic que creen la bretxa entre les files i, a continuació, enganxo les 2 files juntes.

El circuit que vaig dissenyar és detectar la presència d’aigua entre els dos cables. Quan l’aigua arriba a la punta dels dos cables, crearia una resistència d’aproximadament 10K a 20K ohm. Després, en sèrie amb el R1 de 10K ohm, proporciona un petit corrent a la base del Q1 fent que Q1 es saturi, fixant el GPIO-2 a terra. R1 és necessari per proporcionar protecció a Q1 en cas que hi hagi un curtcircuit accidental als cables de detecció.

R2 és una resistència pull-up que permet a ESP-01 arrencar des del flash.

Ara, per a l’altaveu / timbre opcional, si només necessiteu ESP-01 per parlar MQTT i no voleu implementar aquesta alarmant localitzada, podeu eliminar R2, Q2, Speaker i col·locar una resistència de tracció de 10K entre GPIO-0 i VCC.

Si no teniu la necessitat d’utilitzar l’adaptador femella Micro-USB a DIP, podeu soldar els cables entre el PS de 5 V al mòdul de regulador de 3,3 V. Prefereixo utilitzar l'adaptador MicroUSB femella per poder utilitzar qualsevol carregador de mòbil genèric i cable MicroUSB.

Pas 3: Construir el circuit

Construint el circuit
Construint el circuit
Construint el circuit
Construint el circuit
Construint el circuit
Construint el circuit

Soldeu tots els components i les peces al PCB segons el diagrama del circuit de la pàgina anterior i talleu el PCB a mida.

Col·loqueu el PCB dins d’un recinte que s’adapti al PCB i a l’altaveu opcional. En el meu cas, totes les parts cabrien dins d’una petita caixa de corrent del telèfon, tot i que he d’escalfar una mica la tapa per crear una protuberància perquè el mòdul ESP-01 s’adapti.

Pas 4: Intermitent de l'ESP-01

En aquest pas, farem aparèixer l'ESP-01 amb l'esbós arduino. Si mai no heu llançat el mòdul ESP-01, podeu seguir les instruccions per començar:

Podeu trobar el meu esbós a la pàgina de la meva github:

A l’esbós, com a mínim heu de canviar la informació següent relativa a la vostra configuració o configuració de la vostra xarxa domèstica:

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

A la meva xarxa domèstica, tinc 2 punts d'accés diferents que emeten 2 SSID diferents, i aquest esbós permetria la redundància connectant-se al següent SSID si es perd la comunicació amb l'AP actual. Si només teniu un SSID, empleneu ssid1 i ssid2 amb el mateix valor.

Un cop feta la modificació, pengeu l’esbós a l’ESP-01 i connecteu l’ESP-01 al tauler d’interfície.

Pas 5: prova d'execució

Per provar si el nostre projecte funciona, el més fàcil seria controlar els missatges MQTT a la xarxa. Per fer-ho, heu d'obrir una sessió SSH al corredor mosquitto i emetre l'ordre següent:

mosquitto_sub -v -t '#'

L'ordre anterior ens permetria veure tots els missatges MQTT que arribaven al broker.

Ara engegueu el nostre circuit i, si tot funciona, en pocs segons hauríeu de veure com a mínim el següent missatge MQTT:

stat / SumpWaterSensor / LWT en línia

Ara proveu el sensor d'aigua submergint els 2 cables de detecció en una tassa d'aigua i hauríeu de veure aquest missatge:

tele / SumpWaterSensor WET

I si traieu els cables de l’aigua, hauríeu de veure aquest missatge:

tele / SumpWaterSensor DRY

Si veieu aquests missatges, el vostre projecte serà un èxit.

També he inclòs diversos temes MQTT útils a l'esbós que podeu utilitzar:

"stat / SumpWaterSensorInfo": aquest missatge s'envia cada minut per proporcionar temps d'activitat i altra informació.

"cmnd / SumpWaterSensorInfo": ESP-01 enviarà informació si rep aquest tema amb el valor de '1' (ascii = 49)

"cmnd / SumpWaterSensorCPUrestart": ESP-01 es reiniciarà si rep aquest tema amb el valor de '1' (ascii = 49)

"cmnd / SumpWaterSensorBeep": ESP-01 farà sonar l'altaveu si rep aquest tema amb el valor de '1' (ascii = 49)

"cmnd / SumpWaterSensorBeepFreq": estableix la freqüència de l'alarma dels altaveus, per defecte = 900 (Hz)

"cmnd / SumpWaterSensorDebug": activeu i configureu el nivell de depuració en sèrie (el valor per defecte és 0 - sense depuració)

Pas 6: munteu el sensor

Munteu el sensor
Munteu el sensor
Munteu el sensor
Munteu el sensor

A la meva aplicació, vull controlar el nivell de l’aigua dins del pou de la bomba de dipòsit i avisar-me si l’aigua arriba per sobre del commutador flotant de la bomba de dipòsit, cosa que significa que la meva bomba de dipòsit no funciona. Vaig passar els cables i fer servir llaços per fixar-lo al llarg del tub de drenatge.

Pas 7: toc final

Toc final
Toc final

Ara que el projecte funciona i és capaç de publicar el missatge MQTT al corredor, el següent pas és pensar la idea de què fer-ne.

Al meu projecte, faig servir Node-RED per escoltar / subscriure's al tema MQTT "tele / SumpWaterSensor" i anunciar a diversos altaveus de Google Home si es detecta aigua. A més d’això, també he vinculat el flux a un node pushbullet per enviar notificacions al meu telèfon Android.

També he creat una interfície web per veure l'estat del sensor (activat / fora de línia, temps d'activitat, etc.). De vegades he vist que es desconnecta algunes vegades al llarg d’una setmana, des de les estadístiques, moltes vegades es deu a que l’ESP-01 es desconnecta del wifi o del MQTT. Però no us preocupeu, el meu esbós ha inclòs rutina per reiniciar l'ESP-01 si continua fallant en intentar connectar-se a WIFI i / o broker MQTT.

La imatge d’aquest pas mostra el flux Node-RED per aconseguir-ho. També podeu enganxar el flux de la meva pàgina de github al vostre Node-RED:

L’anunci de Google Home és només un exemple d’aquest projecte, però crec que és el més útil i pràctic. Sempre podeu interactuar amb un altre oient MQTT o fins i tot fer servir IFTTT per conduir altres dispositius quan es detecti aigua.

Diverteix-te…

Recomanat: