Waterius: transfiera las lecturas de agua a un teléfono a través de Wi-Fi (4 años con batería)



Una vez estaba cansado de tomar lecturas de medidores de agua. Era posible colocar un imán cerca del mostrador y calmarme sobre esto, pero encontré este camino antideportivo.

Mi camino era difícil y adornado. Pero el resultado fue un dispositivo que transmite lecturas de agua a través de Wi-Fi al teléfono. Simple e intuitivo de usar y configurar para al menos un estudiante de la escuela, al menos para una persona mayor. Y familiarizado con la palabra "Arduino", también fácil de fabricar. El dispositivo puede funcionar con baterías durante cuatro años (más tiempo que la relación con su ex). Este es también el primer proyecto abierto con tales características. Escribí análogos de fábrica, son pocos, y está bien con ellos.

Entonces, tenemos algo de dinero y un gran pero honesto deseo de simplificar nuestras vidas sin violar el Código Penal. ¡Y para que ninguno de sus 220V, servidores y un montón de botones! Observamos las lecturas en el teléfono inteligente en la aplicación Blynk o un servicio similar.

Ahora siéntate en una silla, come más de estos suaves bollos franceses y bebe té. Vea fotos hermosas y escuche mi historia sobre qué considerar al crear dispositivos independientes. Pero primero, una breve descripción de Waterius.

Requisitos


  • contador con cable (UPD2: cualquier salida "contacto seco" )
  • Enrutador wifi con internet

Caracteristicas


  • Potencia: 3 pilas AA
  • tiempo de trabajo 4 años o más
  • 2 medidores de agua
  • un solo botón para configurar
  • memoria no volátil para indicaciones y configuraciones de red

Transferencia diaria de wifi


  • lecturas actuales
  • consumo de agua por día
  • voltaje de suministro
  • correo electronico letras (el cuerpo y el título se pueden cambiar)


Soporte implementado para el servidor TCP y la aplicación Blynk. Agregue HTTP , MQTT , Modbus TCP, Cayenne, IFTTT, etc. (Aquí se le da un lugar para la manifestación de su genio creativo).

UPD2: genios creativos presentados aún HTTPS, MQTT

Personalización


Cuando se hace clic en el botón Waterius, se activa el punto de acceso Wi-Fi. Conéctese, complete el formulario, doble tres veces hacia el este y diga "gracias" a los desarrolladores de WiFiManager . Puedes mentalmente.

Configurar Waterius usando Wifimanager

Electrónica entretenida


Una dispersión de elementos de radio para el montaje de Waterius.



La única forma de lograr unidades de consumo de microamperios al contar pulsos es usar un microcontrolador económico, no lo que pensaba. Corazón Waterius: microcontrolador Attiny85 (análogos: MSP430, STM8L). Está cosido sin problemas con cualquier tabla Arduino con las manos creciendo por encima de la cintura. Attiny85 opera a una frecuencia de 1 MHz desde el generador interno y cuenta los pulsos, verificando periódicamente 2 entradas para detectar un cortocircuito y un botón. Corriente del sueño 4 μA a 3V . Un cuento de hadas

Como Wi-Fi, uso ESP8266-01. Consumo durante la operación 75mA, pulsos hasta 250mA. Dos microcontroladores se comunican en el bus i2c. La exactitud de la elección fue confirmada por el proyecto de la estación meteorológica . ESP8266 está constantemente en un sueño: el pin EN se coloca a GND a través de una resistencia. La corriente de consumo es inferior a 10 μA (encontré instancias con 0 μA). Una vez al día, Attiny85 ofrece ALTO, el ESP8266 se despierta, recibe lecturas de Attiny85, se conecta a la red Wi-Fi doméstica y envía datos en ~ 4 segundos, lo que, según la investigación de científicos británicos, es mucho más rápido de lo que normalmente llega a estos contadores manualmente.

La foto muestra un buen ESP, el consumo salta 7-11μA. Por lo general, los números son 19-23 μA.

Otros tipos de sueño no funcionarán para Waterius, al menos espolvorea con melatonina los sonidos de una canción de cuna: un sueño profundo infinito con despertador instantáneo en un reinicio externo consume 20 μA y es adecuado para el envío frecuente de datos. La opción más económica: apague el ESP8266 por completo, pero necesitará transistores de efecto de campo que tengan miedo a la electricidad estática, eso es todo.

El botón de configuración se encuentra en la línea SCL. ¡Todos los pines Attiny85 están ocupados! Por esta razón, Waterius no admite las salidas de los medidores Namur y no tiene un sensor de fugas.
El LED está conectado al pin TX del ESP y se ilumina cuando el ESP está funcionando. Enchufe el adaptador TTL-USB para ver el registro (¡aunque interesante!). Al comienzo del desarrollo, pensé que para indicar un error, debe parpadear el LED, pero lo logrará, esto solo complicará el código.
Si se conecta con éxito a un enrutador Wi-Fi después de 3-10 segundos, el LED se apagará y, si continúa encendido, vuelva a conectar su teléfono a Waterius. Tecnología sofisticada, nanotecnología, los logros de la NASA, las enseñanzas de la antigua China.

Cada uno de nosotros sabe: una característica de los dispositivos de baja potencia es su susceptibilidad a la interferencia electromagnética. Por lo tanto, recurrí a un ingeniero electrónico familiar y estudié literatura (+ el curso más hermoso de Murata ). Todos los pines en ESP y Attiny se tiran al poder o GND. Condensadores de potencia instalados. La tierra "sucia" de los medidores está conectada a la "limpia" a través de una resistencia de 300 ohmios, y las salidas mismas a través de una resistencia de 3k3. ¡Todos lo serían!

Vivienda


Tomamos una botella de plástico ... una broma. Usé un compartimento para 4 pilas AA. Se corta un orificio en la cubierta del conector, en el lateral del LED y el botón.



Puede usar la caja de conexiones (con una impresora 3D y otro chamanismo, experimente si no es así).

En github hay una placa de una capa para LUT y una placa de dos capas para la producción en fábrica. ¡Waterius puede ser hecho incluso por un colegial! Es cierto, si él no tiene un hoverboard y nunca gira la ruleta.

El tablero ideal no funciona de inmediato. El primer prototipo se veía así:



Pero la cuarta versión, que fue construida, es casi "perfecta":



No pude resistir y pedí un paquete de tablas en Resonite. Esto es alto!



Nutrición


En Waterius hay un estabilizador MCP1700 de 3V con un consumo mínimo muy bajo (unos pocos μA). Tres baterías alcalinas AA de 1.5V podrán descargarse casi por completo a 3.2 V. Además, el Attiny85 tendrá un voltaje estable (y la frecuencia será menos flotante , lo que es un zumbido, aunque esto no es importante en este proyecto).

El circuito funcionará sin un estabilizador de dos baterías AA. Attiny85 debería comprar la versión V (potencia de hasta 1.8V). ESP trabajó "en Internet" hasta 2.5V. Podremos usar el 40% de la capacidad de la batería (no lo crea, vea las pruebas de A. Nadezhin ). Si compra dos baterías de litio AA de 1.5V y 3 Ah, Waterius funcionará durante 10 años a baja temperatura, y allí, mira, construiremos el comunismo.

La falta de herramientas no me permite medir con precisión el consumo de Waterius. Ha estado trabajando en casa durante 45 días, enviando lecturas cada 30 minutos (para acelerar el alta). El voltaje de suministro cayó 0.17V de 4.68V a 4.51V (UPD: 100 días 4.38V, UPD2: 313 días 3.9V). Si esto continúa, las baterías durarán 1,5 años. Enviar lecturas una vez al día es 3 veces más económico, por lo que 4 años de trabajo. Sí, sé sobre baterías de autodescarga. La hoja de datos de Energizer y la vida útil de los paquetes dicen que no es fuerte.

Aquí hay un cálculo del consumo de batería y el costo de los componentes para los más curiosos ( tabla de Google ).

Detalles del programador (para aquellos que no están cansados)


La implementación del conteo de pulsos en las interrupciones no es adecuada porque el agua se puede cerrar en el momento en que se cierra el interruptor de láminas (zona ~ 3L), y la corriente fluirá a través de las resistencias pull-up. Se requerirá protección contra el rebote de contacto: microcircuito o retraso del código. Implementé una encuesta periódica cada 250 ms e incrementé (una hermosa palabra, ¿verdad?) Valor solo con un cierre repetido. No es necesario soldar nada, aunque si realmente lo desea, puede hacerlo.

Para proteger contra la recarga de Attiny, almaceno todos los valores en su memoria EEPROM. Para superar el límite de 100k entradas, escribí un buffer de anillo con una marca de anillo para la celda actual. Ahora duermo tranquilamente, que es lo que deseo para ti. El código prevé la inclusión del registro para la depuración. Conecte el TTL-USB al segundo conector del medidor.

Exportación de datos


Al principio escribí el bot de Telegram, pero Roskomnadzor bloqueó a Telegram. Tuve que abandonar esta decisión para no iniciar el servidor proxy y no mover el bote. Usar Blynk resultó ser óptimo (los desarrolladores intrépidos están luchando con los bloqueos). Aquí está el código QR del proyecto . Además de él, el proyecto Cayenne tiene una aplicación telefónica.

El envío automático a Mosvodokanal no está implementado, porque proyecto sin fines de lucro, pero cuales son nuestros años. O el tuyo. No tengo los medios para mantener mi servidor y "legitimar" el procedimiento de envío, pero de repente me preguntas a mis amigos ... Me alegraré por tu ayuda y pensamientos libres.

Los moscovitas envían testimonios por SMS, lo que significa que un servidor web es suficiente para recibir datos de Waterius y una página con SMS ( github ). Los expertos de Moscú del programa Fiddler, que utilizan la aplicación del servicio estatal de Moscú, deberían estar interesados ​​en mi script Python para enviar lecturas de agua.

Desarrollo


Como sabes, uno de los principales frenos al crear un nuevo producto es el perfeccionismo. No es necesario hacer una nueva función sin verificar si los consumidores la necesitan. El código simple es más fácil de desarrollar.

El camino hacia el perfeccionismo se encuentra a través de

  • Actualización de firmware ESP y Attiny a través de Internet
  • UPD2: soporte para HTTPS o cifrado
  • un servidor donde el usuario puede descargar su script para enviar lecturas de agua.
  • usando STM8L / MSP430 (son más económicos y más pines)
  • UPD2: verificación visual de la presencia de contacto con los medidores cuando está conectado
  • indicación del período de envío de correo electrónico cartas
  • UPD2: soporte de contador para salidas Namur
  • sensor de fugas (UPD2: hecho al reiniciar)
  • control de grúa
  • medidor de electricidad de apoyo

Agradecimientos


Gracias a Ivan Kovalenko e Ivan Ganzha por sus consejos sobre ingeniería eléctrica, Aigul, E. Lapin por el enfoque correcto de la vida y papá por el hecho de que no solo puedo programar, sino también soldar, y a ti, ¡por tu atención!



Estaré encantado de cualquier sugerencia, grupo de solicitudes y críticas.

¡Calienta el soldador! Proyecto Github

UPD2 07/05/2019: ¡Gracias a todos los que ayudaron con el proyecto!

Source: https://habr.com/ru/post/es418573/


All Articles