Lectura del medidor de agua: ESP8266 + Android

Muchos ahora tienen medidores de agua. Y la mayoría se enfrenta al problema de tomar lecturas de estos medidores y su entrega oportuna. No fui la excepción. Era conveniente tomar testimonios de mí, pero aquí constantemente olvidaba tomarlos y los recordaba en el momento más inoportuno. Se decidió automatizar el proceso de tomar lecturas para que pueda verlas en cualquier momento. A quién le importa cómo obtener una foto a la izquierda en mi teléfono, por favor, debajo del gato.

Introduccion


La idea de implementación se me ocurrió después de leer este artículo. Durante la reparación, puse inmediatamente los contadores de pulso. Se hizo la primera versión del dispositivo basada en el ESP-03. El código está escrito en LUA. Los datos también se transmitieron a thingspeak.com .

Primera versión


Después de 2 meses de uso, se identificaron las siguientes desventajas:

  1. No hubo indicios claros de funcionamiento, ya que el módulo se colgó un par de veces, era importante
  2. La complejidad de la configuración, porque la configuración estaba en el código
  3. Para la alimentación, se necesitaba un cable con un conector miniUSB. Solo tuve esto de Sony Playstation
  4. No me siento cómodo viendo resultados en thingspeak.com
  5. La relativa complejidad de la implementación.

Por lo tanto, se decidió hacer la segunda versión, que cumplirá los siguientes requisitos:

  1. Conector de alimentación MicroUSB
  2. Realice la configuración conectándose al dispositivo a través de WiFi
  3. Indicación de trabajo
  4. Conveniencia de ver información
  5. Facilidad de repetición
  6. Apariencia estética
  7. Bajo costo

Tarifa


La placa de circuito es bastante simple. Se basa en el mismo ESP-03. El sitio esp8266.ru me ayudó con las características principales de la conexión .



FRÍO, CALIENTE -
Enchufes RJ9 LED1 - sirve para indicar el funcionamiento de la placa (modo de configuración - encendido constantemente, error - parpadeo frecuente, funcionamiento normal - parpadea una vez por segundo)
LED2 - indica fuente de alimentación
R3, R4 - 330 Ohm
R1, R2, R5, R6 , R7 - 6.8kOhm
C1 - condensador de tantalio de 33mkF ;
C2 - condensador de cerámica de 0.1mkF ;
LM1117 - para convertir 5V a 3.3V;
J1 - puente para flashear ESP-03
BTN - para elegir el modo de operación de la placa

Se ha agregado un conector miniUSB para actualizar el módulo y grabar scripts. Para la alimentación, se agrega otro conector microUSB por separado sin conectar los pines RX y TX (no se muestra en el diagrama). Esto se debe al hecho de que si alimenta el módulo a través del conector miniUSB, donde están conectados RX y TX, el módulo se congela por alguna razón. Traté de levantar el RX y TX, pero nada me ayudó. Por lo tanto, decidí dejarlo así, además tenía muchos cables con microUSB.

Las dimensiones de los componentes facilitan la creación de una placa utilizando el método LUT, que se realizó para depurar scripts. Más tarde, ordené la fabricación de la placa a los chinos . El tamaño del tablero se ajustó para adaptarse al caso existente.

Fotos antes de la instalación:

imagen


Foto después de:



Firmware


Recolecté el firmware usando el constructor en línea . Permite generar el firmware de NodeMCU solo con los módulos necesarios, lo que le permite aumentar la cantidad de memoria libre. No tuve problemas con la falta de memoria y, como resultado, aproximadamente el 30% del espacio libre se gastó en scripts y archivos auxiliares. Subí el firmware usando nodemcu-flasher . Usé ESPlorer para escribir y completar guiones .

La operación del contador de pulso es similar a presionar un botón. Cuando se pasan ciertos valores, los contactos se cierran y se abren. Mi contador cerró los contactos en el número 7 y abrió en el número 2. Colgué los contadores en los puertos GPIO12, GPIO13 y conecté a tierra con un pull-up en la fuente de alimentación (se usa una resistencia interna). Por lo tanto, cuando el puerto cambia su valor a 0, entonces podemos suponer que se gastaron 10 l de agua.

El dispositivo puede funcionar en 2 modos: modo de configuración y modo de lectura. Para cambiar al modo de configuración cuando se aplica energía, mantenga presionado el botón BTN. Esto lleva 2 segundos. En este modo, el ESP comienza a funcionar como un punto de acceso y es un servidor web simple. Aparece una red ESP accesible - ???????, donde en lugar de caracteres? será id esp. Para configurar, debe conectarse a esta red y en el navegador vaya a 1.1.1.1. Aparece la siguiente página:



Si el botón no se sujetó durante el encendido, se inicia el modo de lectura. En este modo, el estado de los puertos GPIO12 y GPIO13 se verifica cada segundo. Si 0 aparece en algún lugar, entonces el valor correspondiente aumenta. Inicialmente, hice una verificación basada en interrupciones, pero este método resultó no ser confiable (ESP se colgó periódicamente). Cada minuto hay un intento de enviar datos al servidor (si hubo cambios). Para cada contador, se transmiten 2 valores: la lectura actual del contador y la cantidad de cambio desde la última transferencia de datos.

Aplicación de Android


Como dije, en thingspeak.com no me sentía cómodo mirando las lecturas. Decidí escribir una aplicación de Android. El resultado es una aplicación que te permite:

  • Cree gráficos de consumo por horas, días, meses
  • Acceder a datos sin conexión
  • Agregar widget de métricas

Thingspeak.com tiene una API que le permite recopilar datos. Con esta API, la aplicación en cada lanzamiento o antes de actualizar el widget solicita los datos más recientes y los guarda en una base de datos local. Más trabajo ya está en marcha con ella. Se agregaron 2 tipos de widgets a la aplicación: como contador y como gráfico de consumo. Resultó bastante conveniente.

Capturas de pantalla de la aplicación


Pensé en implementar la lectura automática de medidores, pero no encontré una API preparada. Fue posible analizar la aplicación oficial, pero no es confiable. Para Moscú hay un EMP . Me registré allí y obtuve acceso a su API, pero solo le permite ver qué lecturas se dieron, lo que no me interesó.

Conclusión


El costo del dispositivo, excluyendo la carcasa, ascendió a aproximadamente 450 rublos. Algunos de los componentes se compraron en una tienda conocida. Si toma todo de los chinos, el costo puede reducirse a unos 370 rublos. Esta versión durante 4 meses nunca ha fallado ni fallado. El dispositivo resultante es fácil de repetir y modificar. Con la ayuda de él, aprendí que la taza del inodoro pasaba agua lenta pero seguramente.

Enlaces utiles:

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


All Articles