Tabla de contenido:

Sensor de fugas de agua en ESP8266 + Micropython + Domoticz: 16 pasos (con imágenes)
Sensor de fugas de agua en ESP8266 + Micropython + Domoticz: 16 pasos (con imágenes)

Video: Sensor de fugas de agua en ESP8266 + Micropython + Domoticz: 16 pasos (con imágenes)

Video: Sensor de fugas de agua en ESP8266 + Micropython + Domoticz: 16 pasos (con imágenes)
Video: ✅ FIN de ARDUINO o INICIO de una MEJORA? | RASPBERRY PI PICO ANALISIS y GUIA TECNICA COMPARATIVA 2024, Mes de julio
Anonim
Sensor de fugas de agua en ESP8266 + Micropython + Domoticz
Sensor de fugas de agua en ESP8266 + Micropython + Domoticz
Sensor de fugas de agua en ESP8266 + Micropython + Domoticz
Sensor de fugas de agua en ESP8266 + Micropython + Domoticz

Hace algún tiempo, mi esposa me pidió que hiciera un sensor de fugas de agua. Temía que la manguera de la sala de calderas pudiera tener fugas y que el agua inundaría el piso de madera recién colocado. Y yo, como un verdadero ingeniero, me comprometí con ese sensor.

Por mis 15 años de experiencia como ingeniero médico, sé que la forma más fácil de detectar agua son clavijas de metal en cortocircuito por el agua. El principio de funcionamiento de los sensores más simples es que el agua tiene que acortar dos (o más) clavijas de metal y, tan pronto como sucede, se activa la alarma.

Paso 1: hardware

Hardware
Hardware

Para este proyecto necesitamos:

1. Módulo ESP8266 - 01

2. HT7333 3.3V MS Módulo de fuente de alimentación del regulador lineal de baja caída

Necesitamos este módulo para reducir el voltaje de la batería al nivel aceptable para ESP8266. Según la hoja de datos, debería haber una entrada de 3 V a 3,6 V. Este módulo nos da 3,3 V.

3. Batería. Estoy usando una batería de iones de litio de 3, 7 V y 400 mAh. De hecho, puede utilizar cualquier otra fuente de alimentación adecuada. La batería 18650 también es una buena opción. Cuando elija una batería, tenga en cuenta que el ESP "consume" aproximadamente 200 mA cuando se conecta a la red WiFi, y se usan aproximadamente 60 mA cuando la placa está cargando datos al servidor.

4. Tablero de carga de batería TP4056 Lipo.

5. Interruptor de encendido con mini pulsador Pololu Tablero diminuto muy interesante. Nos permite cambiar el módulo ESP solo cuando se detecta agua. No es necesario que mantenga el ESP ENCENDIDO. Por lo que es bueno para ahorrar carga de la batería.

6. Vivienda7. Doble microinterruptor ON-OFF. Una línea sirve para encender el dispositivo. La segunda línea es para pruebas: cortocircuita el circuito sin agua, solo para informarnos si el dispositivo funciona o no.

8. Microordenador Raspberry Pi

Estoy usando Raspberry Pi Zero. Es lo suficientemente potente para ejecutar el servidor Domoticz.

Paso 2: software

En tu PC:

1. esptool instalado, para borrar módulos y flashear firmware

2. Ampy instalado, para flashear su programa

Se recomienda 3 Python 3.6 o superior

4. Cualquier editor de código que desee. Más simple: Python IDLE que normalmente se instala con Python. Estoy usando Pycharm / Atom o Anaconda Spyder en raspberry Pi

5. Servidor Domoticz instalado en Raspberry Pi (o PC común bajo Windows o Linux)

Paso 3: Prepare Raspberry Pi - Instale Domoticz

Por lo tanto, tome su RPi e instale el sistema operativo adecuado para ejecutar el servidor Domoticz.

Puedes seguir estas instrucciones.

Estoy usando Raspbian Stretch con Desktop desde aquí:

El siguiente paso es instalar el servidor Domoticz en su PC. Puede utilizar las instrucciones aquí o aquí:). No tengas miedo, no es tan difícil. Obviamente necesitas ejecutar en tu terminal:

curl -L install.domoticz.com | sudo bash

Y eso es:) más o menos. Configuración de Domoticz

Ahora que nuestro servidor está listo, podemos acceder a él desde cualquier navegador web, incluso desde una tableta ingresando la siguiente URL: https:// IP_domoticz: 8080

Paso 4: Configuración de Domoticz

Configuración de Domoticz
Configuración de Domoticz

Ahora que nuestro servidor está listo, podemos acceder a él desde cualquier navegador web, incluso desde una tableta ingresando la siguiente URL: https:// IP_domoticz: 8080

Paso 5: ajustar la configuración de la aplicación

Ajustar la configuración de la aplicación
Ajustar la configuración de la aplicación
Ajustar la configuración de la aplicación
Ajustar la configuración de la aplicación

Hay varias configuraciones de la aplicación que se pueden configurar a través de la configuración | Menú de configuración.

El menú de Configuración con varias pestañas le permite ingresar los parámetros personales necesarios para un mejor funcionamiento del sistema. Después de ingresar los datos en los campos, debe guardarlos presionando el botón rojo "Aplicar configuración". Después de esta acción, todos los campos de Contraseña, que estaban vacíos en el primer acceso, aparecerán con una larga cadena de asteriscos, incluso si no se han utilizado.

Una vez que haya realizado la configuración principal en la página "Sistema", haga clic en "Notificaciones". Aquí tenemos que ajustar qué tipo de notificaciones vamos a utilizar.

Paso 6: Configurar notificaciones

Configurar notificaciones
Configurar notificaciones

Las notificaciones se pueden enviar, por ejemplo, cuando se presiona un interruptor, el uso de electricidad es demasiado alto, la temperatura demasiado alta y muchas más opciones.

En nuestro caso, las notificaciones deben enviarse tan pronto como el sensor detecte agua. Así que enciéndalos, quiera usarlos. También normalmente necesita la clave API para que funcione la notificación. Avanzando un poco, diré que probé Pushover, Pushsafer y Pushbullet. Y me quedé con Pushover. Más tarde diré por qué.

Pocas palabras sobre cómo funcionan las notificaciones. Necesita tener una cuenta en Pushbullet, Pushover u otras páginas que le gustaría usar. También necesitará una aplicación en su teléfono celular o PC.

Obtenga la clave API e insértela en la página anterior. Puede probar la notificación haciendo clic en "Probar". Si la clave API es correcta, debería recibir notificaciones de prueba en su teléfono celular.

Tan pronto como el sensor detecta agua, el ESP se enciende y envía una solicitud al servidor Domoticz en formato JSON. Entonces, si se cumplen las condiciones para desencadenar un evento (enviar una notificación a su teléfono celular), Domoticz envía la notificación.

Más tarde volveré a "eventos".

Paso 7: Configure la comunicación con los dispositivos de hardware

Configurar la comunicación con los dispositivos de hardware
Configurar la comunicación con los dispositivos de hardware
Configurar la comunicación con los dispositivos de hardware
Configurar la comunicación con los dispositivos de hardware
Configurar la comunicación con los dispositivos de hardware
Configurar la comunicación con los dispositivos de hardware

Antes de poder utilizar la aplicación Domoticz para controlar dispositivos o leer sensores, debe configurar la comunicación con los dispositivos de hardware. Seleccione Configuración | Hardware para agregar hardware. Los dispositivos no aparecerán hasta que se agregue el hardware apropiado.

La aplicación Domoticz admite muchos dispositivos de hardware de forma nativa. En nuestro caso, para leer nuestro sensor de inundación, necesitamos agregar el hardware llamado "Dummy" de la lista de hardware.

Cuando se agrega hardware, se muestra la descripción general de todo el hardware definido. El hardware se puede desactivar o eliminar.

El nuevo hardware debería estar en la lista y debería haber un botón "Crear sensores virtuales".

Haga clic en este botón y elija el tipo de sensor "Alerta". Ahora tenemos que agregar el dispositivo en Domoticz para que se active.

Paso 8: agregue el dispositivo en Domoticz para volverse activo

Agrega el dispositivo en Domoticz para activarlo
Agrega el dispositivo en Domoticz para activarlo
Agrega el dispositivo en Domoticz para activarlo
Agrega el dispositivo en Domoticz para activarlo
Agrega el dispositivo en Domoticz para activarlo
Agrega el dispositivo en Domoticz para activarlo

Tenga en cuenta el número debajo de "IDX". Esta es la referencia única a este dispositivo y la necesitamos más adelante en nuestro script de Python para abordar la notificación. En este caso, el número IDX es 1.

Habilite el dispositivo haciendo clic en la flecha verde a la izquierda (en mi imagen de abajo es azul, debido al dispositivo habilitado).

Complete el nombre del dispositivo y haga clic en "agregar".

Vaya al menú "Utilidades" y su dispositivo debería aparecer allí.

Ahora necesitamos programar "evento" para nuestro sensor. Significa que tenemos que decirle al servidor qué hacer en caso de que reciba un mensaje del sensor. Y fue, digamos, el lugar más difícil para mí:).

Paso 9: No funciona de esta manera …

No funciona de esta manera …
No funciona de esta manera …

Empecé intentando programar un evento en la página / dispositivo /. Esto de abajo no es mío, pero está bien ilustrarlo.

Si cree que marcará algunas casillas de verificación y funcionará, está equivocado:) No funciona de esta manera. Supongo que esta característica aquí aún no está terminada. No lo olvides, es un software de código abierto. Ok, después de varias horas encontré la solución. Necesitamos usar "Eventos" del menú desplegable "Configuración".

Después de hacer clic en "Eventos", puede crear su propio evento. Puedes hacerlo escribiendo un código en Python o LUA, o simplemente usando algo llamado "Blockly". Elegí usar Blockly. Hay dos formas de obligar al servidor a hacer lo que desee.

Paso 10: Construya el evento de la manera correcta 1

Construya el evento de la manera correcta 1
Construya el evento de la manera correcta 1

1. Ejecute el archivo externo a través de "Eventos", utilizando el mensaje de Blockly "Iniciar script"

Esto me funciona perfectamente en la máquina con Windows. Pero no tuve éxito con esto en Raspbian en mi Raspberry Pi. Sospecho que hay un problema con los permisos.

Paso 11: Construya el evento de la manera correcta 2

Construya el evento de la manera correcta 2
Construya el evento de la manera correcta 2

2. Utilice el mensaje "Enviar notificación con asunto". Funciona en Raspbian. Esta opción admite el envío de notificaciones a Pushsafe y Pushover.

La ventaja de utilizar la 1ª forma es que es más flexible. Puede elegir el icono que se mostrará en su pantalla, sonidos, etc. Mi "evento" se muestra en la imagen de arriba.

A continuación, programemos el módulo ESP.

Paso 12: Programación del módulo ESP8266-01

Programación del módulo ESP8266-01
Programación del módulo ESP8266-01

Comencemos por flashear nuestro módulo ESP8266. Normalmente, esos módulos vienen con firmware de fábrica. es posible comunicarse con los módulos mediante los llamados comandos AT. Y además, este software no permite utilizar módulos como controladores independientes. Para usarlos como controladores independientes, debemos borrar el firmware de fábrica e instalar uno nuevo.

Para hacer esto usaremos esptool. Entonces necesitamos conectar nuestro módulo a la PC para borrar el firmware. Para hacer esto, necesita un convertidor TTL + algunos componentes adicionales. Pero hay una manera más fácil:). Simplemente compre en aliexpress o ebay USB a ESP8266 ESP-01 Módulo adaptador Wi-Fi con controlador CH340G.

Enchufe el módulo ESP8266 en el convertidor TTL como se muestra en la imagen y conéctelo al puerto USB.

Si tiene el mismo convertidor que yo, entonces por sí solo necesita cambiar el interruptor a la posición "Prog". Encuentre dónde está instalado esptool (normalmente en algún lugar como C: / Archivos de programa (x86) Python36-32 / Scripts. Vaya a esta carpeta, inicie el símbolo del sistema allí. Escriba: python esptool.exe --port COM5 erase_flash

Por supuesto, elija el puerto correcto. En mi caso es COM5. Puede verificar el puerto donde está instalado ESP desde Panel de control - Sistema - Administrador de dispositivos.

Instale el firmware (lo tomé de aquí: https://micropython.org/download#esp8266) escribiendo:

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

Ok, ahora estamos listos para cargar los scripts de micropython en ESP8266.

Estoy usando Adafruit MicroPython Tool (ampy) para esto.

Pero hoy en día existe otra opción llamada Esplorer. Esta es una aplicación con interfaz de usuario que permite cargar archivos en módulos ESP.

Puedes encontrar instrucciones sobre cómo instalar ampy aquí. Por lo tanto, coloque el interruptor del convertidor TTL en la posición "UART". Necesitaremos subir archivos:

  • wifimgr.py: administrador de wifi para conectarse a la red wifi
  • main.py - nuestro script principal

En la línea de comando, escriba: ampy --port COM5 ponga C: / ruta a su archivo

Pulsa Enter . Después de unos segundos, debería ver una línea de comando vacía. Significa que el archivo se ha cargado. Puede verificar la lista de archivos en ESP mediante el comando ampy:

ampy --puerto COM5 ls

Según mi experiencia, es mejor cargar main.py después de haber cargado todos los archivos necesarios. es así, porque tan pronto como cargue main.py, el módulo ESP8266 se reiniciará y comenzará a ejecutar el archivo main.py. Entonces, en este caso, si intenta cargar otro archivo, a veces el proceso de carga fallará. Pero no significa que todo esté perdido:), solo inténtalo por segunda vez y tendrás éxito (de nuevo, según mi experiencia).

Todos los archivos de este proyecto están disponibles aquí:

Paso 13: Conéctese a su red WiFi. Obtener la notificación

Conéctese a su red WiFi. Obtener la notificación
Conéctese a su red WiFi. Obtener la notificación
Conéctese a su red WiFi. Obtener la notificación
Conéctese a su red WiFi. Obtener la notificación

si todo está bien, reinicie el módulo, reinsertando el convertidor TTL al puerto USB de su PC.

Después de que se inicie ESP, busque una nueva red WiFi llamada "Wifimanager". Conéctese a él con su PC o teléfono, luego vaya a la dirección IP 192.168.4.1.. Aquí puede conectar su ESP a la red WiFi local. Elija la red WiFi que va a utilizar, escriba la contraseña y presione "Enviar".

Si todo está correcto, verá el mensaje "ESP conectado correctamente a la red XXXX". Su ESP ahora está conectado a su red WiFi y listo. Tan pronto como se conecte a WiFi, se conectará al servidor Domoticz. Shorty tienes que recibir una notificación en tu celular.

Puede realizar un seguimiento del proceso en "Configuración" / "Registro".

Vua lia!:) Funciona. Ahora podemos proceder a ensamblar todas las piezas juntas, de acuerdo con el diagrama de bloques a continuación.

Paso 14: diagrama de bloques

Diagrama de bloques
Diagrama de bloques

No hay mucho que decir sobre este diagrama. Muy simple. Cambie la energía con el interruptor S1. El dispositivo permanece apagado hasta que el agua provoca un cortocircuito en las clavijas del "sensor de agua". Luego, la "placa Pololu" se enciende y da energía al convertidor de voltaje. Este módulo de potencia basado en el chip HT7333 convierte el voltaje en 3,3 V estables para ESP8266. A continuación, el ESP se enciende y envía un mensaje al servidor Domoticz.

Paso 15: Resultado y conclusiones

Resultado y conclusiones
Resultado y conclusiones
Resultado y conclusiones
Resultado y conclusiones
Resultado y conclusiones
Resultado y conclusiones
Resultado y conclusiones
Resultado y conclusiones

Funciona. El envío de la notificación tardó hasta 10 segundos: conexión a WiFi, envío de notificación, recepción de un mensaje de alarma en su teléfono.

He programado el sensor para que envíe alarmas cada 30 segundos, si se detecta agua. El sensor puede enviar hasta 5 - 6 notificaciones hasta que se descargue la batería. Este dispositivo también se puede utilizar para determinar el nivel del agua. Qué me gustaría mejorar.

1. Para que funcione más rápido. Creo que intentaré utilizar la tecnología ESP-Now, que me permite conectar varios ESP directamente. En este caso, el consumo de energía durante la conexión es muy bajo y es más rápido. Entonces, la idea es usar un ESP como un centro para conectar otros ESP.

2. Implementar alarma de nivel de batería. Ahora no puede saber si hay suficiente energía para enviar un mensaje de alarma o no. Creo que en la próxima generación de este sensor habrá un botón especial para probar la carga de la batería.

El usuario deberá presionar un botón y se mostrará el nivel de la batería.

Recomendado: