Tabla de contenido:

MQTT / Google Home Flood / Sensor WIFI de agua con ESP-01: 7 pasos
MQTT / Google Home Flood / Sensor WIFI de agua con ESP-01: 7 pasos

Video: MQTT / Google Home Flood / Sensor WIFI de agua con ESP-01: 7 pasos

Video: MQTT / Google Home Flood / Sensor WIFI de agua con ESP-01: 7 pasos
Video: Heated Acetone to Smooth Polycarbonate 2024, Noviembre
Anonim
MQTT / Google Home Flood / Sensor WIFI de agua con ESP-01
MQTT / Google Home Flood / Sensor WIFI de agua con ESP-01

En este instructivo, le mostraré cómo construir un sensor de agua / inundación wifi con un costo mínimo. El proyecto completo me cuesta menos de $ 8 por las piezas que adquiera de eBay y mis piezas de repuesto existentes.

En este proyecto, usaremos ESP-01 para proporcionar un cliente Wifi y MQTT para detectar la presencia de agua y, opcionalmente, usaremos un altavoz / zumbador conectado directamente para proporcionar una alarma localizada.

Mi aplicación específica para el proyecto es detectar inundaciones / agua dentro del pozo de mi bomba de sumidero, en caso de falla de la bomba de sumidero. Cuando el agua es detectada por 2 cables abiertos, enviaría un mensaje al corredor de MQTT. El intermediario MQTT luego retransmite el mensaje a NodeRED. Al recibir el mensaje MQTT, NodeRED enviaría un anuncio a múltiples dispositivos domésticos de Google y también, opcionalmente, enviaría un mensaje al teléfono celular / navegador a través de pushbullet

Ahora, por supuesto, este proyecto solo funcionaría si la electricidad doméstica está encendida. En el siguiente instructable, integraré el circuito de respaldo de la batería. Pero si hace la fuente de alimentación de la misma manera que lo hice, puede conectar un banco de energía USB para respaldo de batería. Si tiene un banco de energía que le permite cargar y suministrar energía al mismo tiempo, entonces está todo listo.

Utilizo RaspberryPi ZeroW para alojar el servidor Mosquitto MQTT y NodeRED. Ha estado funcionando durante más de un año sin ningún problema.

Referencias: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi … Instale NodeRED en Raspberry Pi:

Paso 1: Piezas que necesitará

Piezas que necesitará
Piezas que necesitará
Piezas que necesitará
Piezas que necesitará
Piezas que necesitará
Piezas que necesitará

Lista de partes:

(1) ESP-01

(2) Resistencia de 10K ohmios

(1) transistor NPN genérico de pequeña señal (utilicé 2N3904)

(2) cables largos

(1) Fuente de alimentación genérica de 5 V (este circuito requiere menos de 300 mA de corriente)

(1) Módulo regulador de 3,3 V AMS1117

(1) Adaptador Micro-USB a DIP Conector hembra Convertidor PCB Kit de bricolaje

(1) Cable USB-A a MicroUSB.

(1) Zócalo IC de 8 pines: se puede omitir si desea soldar el ESP-01 directamente a la placa de circuito. Corte los puentes de plástico que crean el espacio entre las filas y luego pegue las 2 filas juntas, vea la foto.

(1) Pequeño recinto para el proyecto

A continuación se muestran piezas opcionales si necesita una alarma localizada con altavoz / zumbador

(1) Transistor PNP genérico, elija de acuerdo con el requisito de corriente / vataje del altavoz / zumbador. En mi caso, uso 2N2907 ya que mi altavoz es de solo 0,3 W (8 ohmios), proporcionaría suficiente potencia para impulsar el altavoz. Puede elegir un transistor y un altavoz más grandes si desea un sonido más fuerte.

(1) Altavoz, consulte la nota sobre el transistor PNP anterior

(1) Resistencia de 100-110 ohmios

Paso 2: diagrama de circuito

Diagrama de circuito
Diagrama de circuito

El primer paso sería crear el circuito que se muestra en el diagrama.

Construí la fuente de alimentación de 3.3VDC usando un viejo cargador de teléfono celular de 5V junto con el regulador AMS1117 de 3.3VDC. Para el zócalo ESP-01, utilizo un zócalo IC estándar de 8 pines, y corto los puentes de plástico que crean el espacio entre las filas, y luego pego las 2 filas juntas.

El circuito que diseñé es para detectar la presencia de agua entre los dos cables. Cuando el agua llega a la punta de ambos cables, crearía una resistencia de aproximadamente 10 K a 20 K ohmios. Luego, en serie con el R1 de 10K ohmios, proporciona una pequeña corriente a la base del Q1 haciendo que Q1 se sature, sujetando el GPIO-2 a tierra. R1 es necesario para brindar protección a Q1 en caso de que haya un cortocircuito accidental en los cables de detección.

R2 es una resistencia pull-up para permitir que ESP-01 arranque desde flash.

Ahora para el altavoz / zumbador opcional, si solo necesita ESP-01 para hablar MQTT y no desea implementar esta alarma localizada, puede quitar R2, Q2, altavoz y colocar una resistencia pull-up de 10K entre GPIO-0 y VCC.

Si no siente la necesidad de utilizar el adaptador hembra Micro-USB a DIP, puede soldar cables entre la fuente de alimentación de 5 V al módulo regulador de 3,3 V. Prefiero usar el adaptador MicroUSB hembra para poder usar cualquier cargador de teléfono celular genérico y cable MicroUSB.

Paso 3: construcción del circuito

Construyendo el circuito
Construyendo el circuito
Construyendo el circuito
Construyendo el circuito
Construyendo el circuito
Construyendo el circuito

Suelde todos los componentes y piezas en la placa de circuito impreso de acuerdo con el diagrama de circuito de la página anterior y corte la placa de circuito impreso a medida.

Coloque la placa de circuito impreso dentro de una caja que se ajuste a la placa de circuito impreso y al altavoz opcional. En mi caso, todas las piezas encajarían dentro de una pequeña caja de salida de teléfono, aunque tengo que calentar un poco la tapa para crear un bulto y que encaje el módulo ESP-01.

Paso 4: flasheo del ESP-01

En este paso, flashearemos el ESP-01 con el boceto arduino. Si nunca ha actualizado el módulo ESP-01, puede seguir mis instrucciones para comenzar:

Puedes encontrar mi boceto en mi página de github:

En el boceto, como mínimo debe cambiar la siguiente información relacionada con su red / configuración 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";

En mi red doméstica, tengo 2 puntos de acceso diferentes que transmiten 2 SSID diferentes, y este esquema permitiría la redundancia al conectarse al siguiente SSID si se pierde la comunicación con el AP actual. Si solo tiene un SSID, complete ssid1 y ssid2 con el mismo valor.

Una vez que haya realizado la modificación, cargue el boceto en el ESP-01 y conecte el ESP-01 en la placa de interfaz.

Paso 5: ejecución de prueba

Para probar si nuestro proyecto funciona, lo más fácil sería monitorear los mensajes MQTT en la red. Para hacer eso, debe abrir una sesión SSH al broker mosquitto y emitir el siguiente comando:

mosquitto_sub -v -t '#'

El comando anterior nos permitiría ver todos los mensajes MQTT que ingresan al corredor.

Ahora enciende nuestro circuito, y si todo funciona, en unos segundos deberías ver al menos el siguiente mensaje MQTT:

stat / SumpWaterSensor / LWT en línea

Ahora pruebe el sensor de agua sumergiendo los 2 cables sensores en una taza de agua, y debería ver este mensaje:

tele / SumpWaterSensor WET

Y si saca los cables del agua, debería ver este mensaje:

tele / SumpWaterSensor DRY

Si ve esos mensajes, su proyecto es un éxito.

También incluí varios temas útiles de MQTT en el boceto que puede usar:

"stat / SumpWaterSensorInfo": este mensaje se envía cada minuto para proporcionar tiempo de actividad y otra información.

"cmnd / SumpWaterSensorInfo": ESP-01 enviará información si recibe este tema con un valor de '1' (ascii = 49)

"cmnd / SumpWaterSensorCPUrestart": ESP-01 se reiniciará si recibe este tema con el valor '1' (ascii = 49)

"cmnd / SumpWaterSensorBeep": ESP-01 hará sonar el altavoz si recibe este tema con un valor de '1' (ascii = 49)

"cmnd / SumpWaterSensorBeepFreq": establece la frecuencia de la alarma del altavoz, valor predeterminado = 900 (Hz)

"cmnd / SumpWaterSensorDebug": habilita y establece el nivel de depuración en serie (el valor predeterminado es 0, sin depuración)

Paso 6: monte el sensor

Monte el sensor
Monte el sensor
Monte el sensor
Monte el sensor

En mi aplicación, quiero monitorear el nivel de agua dentro del pozo de mi bomba de sumidero y notificarme si el agua llega por encima del interruptor de flotador de la bomba de sumidero, lo que significa que mi bomba de sumidero no está funcionando. Pasé los cables y utilicé ataduras de cables para asegurarlo a lo largo del tubo de drenaje.

Paso 7: toque final

Toque final
Toque final

Ahora que tenemos el proyecto funcionando y podemos publicar el mensaje MQTT para el corredor, el siguiente paso es pensar en una idea de qué hacer con eso.

En mi proyecto, uso Node-RED para escuchar / suscribirme al tema MQTT "tele / SumpWaterSensor" y anunciar a varios oradores domésticos de Google si se detecta agua. Además de eso, también vinculé el flujo a un nodo pushbullet para enviar una notificación a mi teléfono Android.

También creé una interfaz web para ver el estado del sensor (encendido / fuera de línea, tiempo de actividad, etc.). A veces vi que se desconectaba varias veces en el transcurso de 1 semana, según las estadísticas, muchas veces se debe a que el ESP-01 se desconecta del wifi o MQTT. Pero no se preocupe demasiado, mi boceto ha incluido una rutina para reiniciar el ESP-01 si sigue fallando al intentar conectarse a WIFI y / o al corredor MQTT.

La imagen de este paso muestra el flujo Node-RED para lograr esto. También puede pegar el flujo de mi página de github en su Node-RED:

El anuncio de Google Home es solo un ejemplo de este proyecto, pero creo que es el más útil y práctico. Siempre puede interactuar con otro oyente MQTT, o incluso usar IFTTT para controlar otros dispositivos cuando se detecta agua.

Divertirse…

Recomendado: