El medidor de gas antiguo está listo con el ESP8266

La medición de la utilización de servicios domésticos como agua, gas o electricidad generalmente se reduce a medir una señal de pulso repetitiva en relación con el tiempo. Para facilitar las cosas, la mayoría de los medidores de potencia modernos tienen una salida LED pulsada que se puede usar para monitorear el consumo con un sensor óptico externo. Pero, ¿qué haces si tu medidor no es tan cooperativo?

Así es [Francesco] tuvo que averiguarlo mientras desarrollaba el sistema de seguimiento de gas no invasivo, al que llama ESPmeter. Es posible que su medidor no tenga un LED, pero tenía un imán conectado al disco contador que activaba un sensor de pasillo interno. Con algo de descifrado de códigos, pudo conectar un sensor de efecto Hall externo para capturar este imán y usar la señal para monitorear su consumo diario de gas.

Un obstáculo importante en estos proyectos es la cuestión de utilizar el dispositivo durante un largo período de tiempo y recordar cuándo llega el momento de cambiar las baterías. Con el hábil uso de las piezas disponibles con frecuencia, pudo reducir el consumo de energía al permitir que tres baterías AA duraran aproximadamente un año entre turnos. Primero usa ATtiny13 para leer realmente los valores del sensor. El chip no funciona continuamente, su perro guardián está configurado en 1 Hz, lo que garantiza que el dispositivo se despierte con la frecuencia suficiente para que tenga tiempo de operar el sensor y detectar la presencia del imán. El voltaje de la batería también se mide mediante un divisor de voltaje conectado al pin ADC del chip.

Mientras tanto, regularmente durante el día, el ESP8266 vota al ATtiny13 para extraer los pulsos del sensor almacenados y la medición de voltaje. Luego, a la medianoche, el ESP transmite todos los datos recopilados a un servidor remoto. En general, todo este plan permite [Francesco] recopile de manera confiable sus datos sobre el consumo de gas, sin tener que preocuparse por las baterías hasta que reciba la notificación de bajo voltaje. Debido a que los datos de imágenes requeridos son bastante básicos, simplifica las cosas usando Plotly para mostrar su serie de datos.

Si lamentablemente tiene un medidor aún más antiguo que no usa un sensor de rotación óptico o magnético, puede usar un mouse desmontado para rastrear el medidor de gas.

  • Gösta dice:

    Combinando Attiny con Esp más grandes, qué elegante 🙂

  • Jeff Kowalski dice:

    ¡Gran proyecto, Francesco!

    Por alguna coincidencia cósmica, esta semana fabriqué un dispositivo muy similar, construido alrededor de un magnetómetro LIS3DML. No es necesario depender del acoplamiento magnético. A medida que los fuelles de acero del medidor se expanden y contraen como pulmones, cambian sinusoidalmente el campo magnético detectable fuera de la caja. (Mi indicador es un AC-250 estadounidense, un diseño interior muy común que probablemente no ha cambiado mucho en 100 años).
    Cuento las "respiraciones" y periódicamente envío su número a Influx-db para su posterior procesamiento.
    Me encantan los ingeniosos métodos de salvar a este Francesco. En mi caso, tenía energía cerca, por lo que mi edificio es solo un ESP32 + LIS3DML alimentado por USB en una pequeña caja que pegué con cinta adhesiva en la parte posterior del cuerpo del medidor. https://github.com/jeffkowalski/pulmometer

    Seguí esta ruta después de rascarme la cabeza durante más de un año tratando de descifrar la señal que la renovación del Hexagrama Aclara Star está enviando a la compañía de gas. Desafortunadamente, el excelente proyecto RTL-AMR no funciona con este MTU, que transmite FSK en 462.4125 MHz 4 veces al día.

    Lo que es realmente notable es la comprensión de mi uso de gas. Forcé un calentador de aire, una caldera de piso radiante

    • agua caliente sanitaria , tapa y parrilla a gas. Pero una cantidad muy significativa del gas consumido se usa solo para mantener las luces piloto encendidas en los dispositivos más antiguos.

      .

      micro

      dice:

      • Es divertido cómo funcionan estas cosas. Casualmente, también estoy trabajando en un proyecto con el mismo magnetómetro LIS3MDL para detectar el uso de un medidor de agua, y me preguntaba si el mismo enfoque funcionaría para el gas. Por otra coincidencia, el sensor comercial (patentado) de un medidor de agua Flume ANKA utiliza LIS3MDL como elemento sensor. Imagínate.

        Aparte de eso, el dispositivo Flume es una pieza fascinante de equipo que, honestamente, parece que armaron su prototipo de módulos Sparkfun y básicamente no cambiaron nada para la versión comercial. ATMEGA328 definitivamente ejecuta el firmware de Arduino, si aún no, los módulos de radio RFM69, ESP8266 en la estación base. Además de su ordenado sistema de seguimiento en la nube, que definitivamente es por lo que paga $ 200, podría armar todo por menos de $ 50.

  • Jeff Kowalski dice:

    ¡Sí! Tengo Flume y mi agua inspiradora me inspiró a hacer lo mismo con el gas. De hecho, me gusta mucho la empresa. El producto fue inicialmente un proyecto de máster universitario convertido en comercial. ¡Bien por ellos! Realmente respondieron, tienen una gran API y su nueva versión parece que hay un poco más de ingeniería. Tiene toda la razón sobre el hardware en bruto, pero de nuevo, ¡bien por ellos! Recuerde, a menudo lo que * entrega * es más importante que lo que * inventa *. Este fue el primer y único dispositivo aprobado (sí, obtuve un descuento del 50% de la compañía de agua) que encontré. ¡Bien por ellos!

    • Ne_vi dice:

      Use un interruptor de palanca como entrada de interrupción a esp8266 y no se necesita atención, y luego envíe el pulso de despertar / conteo cada despertar. Una respuesta no es realmente necesaria

  • Francesco dice:

    ¡Gracias por tu comentario! Eso fue en realidad lo primero que probé, pero hubo dos problemas con este enfoque: 1) No pude encontrar un interruptor de palanca lo suficientemente sensible como para ser activado por el imán (que es extremadamente débil, apenas detectable incluso por el efecto de halo sensor) y 2) esto encendería el ESP en cada bucle del contador, quizás una vez cada pocos segundos durante el invierno cuando el gas fluye durante horas; esto sería demasiado caro con las baterías.

    Max

  • dice: ¡Buen trabajo! Actualmente estoy haciendo un botón WiFi IoT y nuestros proyectos son muy similares, a una combinación del ESP-12F y ATTINY.

    Aprecio la reducción completa, incluidas las notas en el divisor de voltaje, aunque leí que un límite adicional en un pin ADC puede ayudar.

    • Nodo dice:

      Solo reviso la luz de la “llama” de la estufa de gas y calculo el consumo de gas. Nodemcu12e.

      Ryan Erickson

  • dice: Disponemos de hornos a Gas, caldera a gas (para agua caliente y radiante), y electrodomésticos a gas (horno, secadora, etc.) ...

    Eso no funcionaría para nosotros ... 🙂

    • Bernd dice:

      Construí exactamente lo mismo hace unos meses. El problema es que el ESP tiende a permanecer en su código WiFi después de algunas semanas. No pude entender por qué, así que descarté toda la asamblea.
      Jeff Kowalski
      dice:
      Siempre ingreso algún código para reiniciar el ESP cuando el WiFi cae.
      "

      • se (WiFi.status ()! = WL_CONNECTED) ESP.restart ();

        "

  • Kevin dice:

    Hice exactamente eso, no en un bucle, sino con un evento y más (wdt, etc.), sin embargo, se colgaría en algún lugar sin ningún motivo después de un tiempo (es decir, esp32).
    Emmanuel
    dice:

    • Hola Buena idea, me intrigó: ¿por qué no utilizar una interrupción para despertar el ataque13?

      Hola

    • IanS dice:

      IME mucha gente está demasiado asustada para interrumpir. He visto cosas terribles al votar.

      Francesco

      dice:

      ¡Gracias!

    • Bueno, de hecho, el Pequeño se despierta interrumpiendo al perro guardián o al pin I2C. https://github.com/francescovannini/espmeter/blob/490bf8f0dedf8d13d47cfcab28daa34ba78f9fb0/tiny/main.c#L54

      Pero supongo que tu pregunta es más similar: ¿por qué no mantuviste el sensor de efecto Hall encendido para siempre y activaste una interrupción con él? Intenté y descubrí que estaba ahorrando más energía de esa manera; no es necesario que el sensor esté siempre encendido, de hecho, solo necesita encenderlo cuando probablemente el imán esté cerca. Y el Tiny durmiente absorbe mucho menos que el sensor siempre encendido; entonces el Pequeño se despierta con el perro guardián, activa el sensor, registra el pulso (si hay un imán) y se vuelve a dormir. El Tiny debería dormir de todos modos, por lo que agregar un sensor en funcionamiento continuo solo podría consumir más energía.

  • Stevenswright dice:

    También tenía curiosidad por esto. Como Francesco notó por debajo de los ~ 10mA necesarios para operar, el sensor de efecto Hall excede con creces la energía desperdiciada al sondear el sensor. Puede que valga la pena consultar el catálogo de su proveedor favorito en busca de un sensor que utilice menos energía.

  • Martín pescador dice:

    Usando esp32, el magnetómetro está integrado y el complemento ULP también, consumiría menos corriente que el atin y sería mucho más simple

    IanS

    • dice: Lamento verter agua fría en su solución inventiva, pero el proveedor podría excluir cualquier elemento adjunto al medidor, considerándolo como un imán. Disminuir la velocidad del disco del electrómetro con corrientes parásitas inducidas por un campo de imán fijo externo es una forma común de reducir las facturas. Argumentar su caso evitaría la falta general de conocimiento científico junto con la renuencia a creer de su departamento legal. Incluso si puede probar su caso en la corte, podría costar mucho a largo plazo.

      Tengo que pensarlo dos veces antes de colocar algo en un medidor de suministro entrante.

      Menno

      dice:
      Las bellas artes dicen:

      • "Con algo de descifrado de códigos, pudo conectar un sensor de efecto Hall externo para capturar este imán y usar la señal para monitorear su consumo diario de gas". Su manómetro tiene un imán INTERNO que pulsa un sensor de efecto INTERIOR.

        Het se une al sensor de efectos EXTERNO, no al imán.

        J H

        dice:

    • Una respuesta irónica, eso. Vuelva a leer su comentario.

      Lo suyo es que su medidor promedio no sabrá de qué se trata. Pero sí saben que hay una historia de frenado de los medidores con imanes. Así que espere mucha atención de la compañía de gas cuando se dé cuenta de eso.

  • kc8rwr dice:

    Si, eso.

    • Pablo dice: ¿Existe una versión móvil / de conexión de estos medidores? En mi país es estándar que el tanque de propano de 50 kg se llene en una estación y luego se devuelva. He visto algunos enfoques con temperatura y resonancia de ruido, pero no parecen fiables o más fiables que una antigua medición entre el flujo. darkspr1te dice:

      El mejor enfoque que he visto son las balanzas electrónicas. Conozco algunos lugares, que usan esta misma opción porque también sirve como confirmación de que el tanque se ha llenado según las especificaciones sin adjuntar nada al mismo, he visto muchos lugares que están bajo stock.

  • Francesco dice:

    Sin embargo, punto válido:

    1) la idea era construir esta cosa con todo lo que pudiera encontrar en mi papelera; el sensor de efecto halo se guardó mediante un ventilador de computadora y no está diseñado para un consumo de energía muy bajo
    2) incluso si usa un sensor de muy bajo consumo, el Tiny aún dormirá, por lo que simplemente agregaría más consumo para obtener básicamente el mismo resultado.

    • Stevenswright dice:

      De acuerdo, no estoy seguro de qué tan bajo es un sensor de muy bajo consumo, pero algún día el ahorro de no tener que despertar el rendimiento a intervalos regulares superaría el bajo consumo constante del sensor. Contraportada, creo que el sensor de efecto halo necesitaría tirar menos de 1μA para que este enfoque genere ahorros.

  • Lars H. dice:

    También calculo mi consumo de gas. Sin embargo, mi medidor de gas no tiene señal magnética. Lo resolví de la "manera óptica" (conocido por algunas soluciones de medición de gran alcance). El último dígito de mi medidor no muestra los números del 0 al 9, sino del 0 al 4 y del 6 al 9. El 5 se reemplaza por un pequeño reflector. Un sensor óptico infrarrojo reflectante montado delante del último dígito nota la diferencia en los reflejos y me da un impulso para calcular el consumo.

    Estoy seguro de que la espectacular solución se puede combinar fácilmente con esta alternativa para leer el impulso.

    • Francesco dice:

      Mi medidor tiene un imán brillante pegado al número 6. Al principio pensé en hacer el mismo enfoque que tú, luego, por curiosidad, intenté poner un sensor muy cerca (creo que lo intenté con el sensor de brújula de mi teléfono si estaba Vale, recuerda) y descubrí que no solo brillaba, también se magnetizaba.

  • Stevenswright dice:

    Realmente me gustó este, me divertí un poco tratando de encontrar un lugar para mejoras.

    Quitaría los 10k de PB4 y usaría el retiro interno en su lugar.
    Dudo que sea muy útil medir el voltaje de la batería cada 5 minutos si la batería dura un año. A veces, puede ser necesario un día, o incluso solo una vez al día.
    Debido a que el gas se usa a menudo para calentar, tiene sentido agregar un sensor de temperatura.

    Probablemente valga la pena comprobar que la configuración / sensor funciona directamente desde la batería y enciende periódicamente el regulador de línea para la actualización diaria. Calculo la potencia promedio requerida para recopilar datos del sensor en el estadio 10uA (el valor típico para el ESP12 en sueño profundo).

    Los posibles ahorros de energía son importantes, pero presenta algunas complicaciones:
    El tiempo de lectura de los sensores y el disparo del ESP12 estará sujeto al funcionamiento del oscilador interno del actinio.
    El attiny y el ESP12 funcionarán con diferentes voltajes de suministro, por lo que el bus I2C necesitará un cambio de nivel.
    La comisión deberá medir el voltaje de la batería y deberá compararlo con una referencia conocida (en lugar de VCC).

    Fuera del cambio de nivel, estos problemas podrían aliviarse en los programas: el ESP podría indicar a la atención cuántos segundos pasarán antes de la próxima actualización para compensar la deriva a largo plazo. La referencia de voltaje interna de 1.1V podría usarse para controlar el voltaje de la batería por debajo del costo de cualquier resolución.

    Por supuesto, también son opciones agregar una fuente de reloj externa y una referencia de voltaje.

    • Stevenswright dice:

      Parece que el valor de VCC se captura solo una vez cada 3 horas, lo cual es mucho más razonable de lo que pensé que estaba sucediendo.

      • Francesco dice:

        ¡Gracias por tus comentarios e ideas!

        De hecho, el 10k en PB4 es cauteloso, probablemente funcionaría bien sin él.

        Una batería mide cada 3 horas, pero en realidad es demasiado; una vez al día sin duda sería suficiente. Lo probé cada 3 horas porque esperaba una caída más rápida, pero en cambio pasaron unos meses y apenas se movió del máximo, así que ciertamente uno puede intentarlo todos los días.

        Ciertamente, cortar completamente la energía del ESP cuando no se usa para WiFi ahorraría mucha energía, pero desafortunadamente no hay suficiente espacio en la RAM pequeña para almacenar todo el día. Por lo que el contenido del Small se descarta siempre 3h y se almacena en la RAM "RTC" ESP, que debe ser operada para poder almacenar los datos. Pero usar el rayo podría ser una opción, aunque probablemente acortaría la vida útil del ESP.

        La sincronización sigue siendo un problema, tanto en el Small como en el ESP. El ESP es terrible con el tiempo, el RTC es simplemente ridículo; es una rutina de calibración simple en mi firmware para intentar compensar eso, pero aún está lejos de ser perfecta. Pero, en última instancia, no es necesario que sea muy preciso de todos modos, después de que los datos se acumulan por hora, el tiempo de operación tiene un efecto insignificante.

        • Stevenswright dice:

          Buen punto: ¡la memoria de la madre es pequeña!

          Ignorando la posibilidad de deshabilitar el ESP por ahora, ¿sería posible que atina active el ESP cuando su memoria esté llena con uno de los pines I2C? Eso reduciría el tiempo que tiene para salir a dormir profundamente de 24 a 8.

          Si es inteligente acerca de cómo almacena las lecturas, supongo que podría almacenar 12 horas de lecturas en un búfer de 30 bytes de SRAM, que se copia en dos búferes de 30 bytes en la EEPROM. Puedo compartir los detalles si está interesado. Esto reduciría el número de despertares ESP a solo 2 al día. Con una tasa de 1 eliminación cada 12 horas, estimo que se necesitarán más de 30 años para superar la durabilidad estimada de la EEPROM.

          Para ahorrar tiempo, si observa la Figura 19-57 en la hoja de datos del atinjo, verá que la frecuencia del oscilador del perro guardián varía con la temperatura. Dado que no necesita verificar el voltaje de la batería con mucha frecuencia, puede tener el monitor ESP y liberar PB2. Luego, puede recopilar datos de temperatura para informar y / o usarlos para ajustar la duración de un retraso de 0-100 ms en su ciclo de eventos para mantener el tiempo entre lectores de sensores más consistente. También puede ajustar este retraso para compensar un error a largo plazo cuando el ESP recibe la hora exacta de Internet.

          Por último, puede reducir un poco la potencia reduciendo la velocidad del atine la mayor parte del tiempo y cambiándola a máxima velocidad cuando el ESP inicia I2C y luego la reduce de nuevo después de que finaliza la comunicación. Correr más rápido le permite dormir antes, pero correr más lento ahorra algo de energía en general (consulte las Figuras 19-1 a 19-3 en la hoja de datos de atin). Los ahorros se vuelven más significativos si la atención se despierta, pero solo espera a que suceda algo (por ejemplo, para la conversión o el retraso de ADC). La lentitud con la que podrá avanzar dependerá de la rapidez con la que deba funcionar su código para asegurarse de que capturará cada revolución de la rueda de control.

          Considerándolo todo, ¡un proyecto genial! Nuevamente me divertí pensando en todas las opciones.

América Aguilar
América Aguilar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *