Monitorización del consumo eléctrico en remoto (Parte 2) con HomeAssistant


Como continuación de un post anterior donde probamos el popular sensor de consumo  PZEM004 junto con un simple sensor de humedad y temperatura ( DHT11) con un barato pero potente microcontrolador como es un ESP32, en este post vamos a dar un paso más, porque ya no nos vamos a conformar con ver las lecturas de temperatura, humedad, voltaje, corriente, frecuencia, potencia y factor de potencia en la consola de Arduino, ya que lo vamos a poder ver desde cualquier ordenador (y además guardando un histórico para poder estudiar con detenimiento como evoluciona nuestro consumo eléctrico a lo largo del tiempo).  

AVISO: Existen en el mercado multitud de dispositivos que cumplen este cometido pero desde este blog hemos preferido fabricarnos uno propio por muy poco dinero que es además ampliable en múltiples aspectos y lo mas importante : NO ES INVASIVO, es decir, no requiere que la línea con la corriente a medir pase por el dispositivo gracias al uso de un sensor de pinza , por tanto, su montaje y uso es más seguro. Este tutorial es avanzado y requiere tocar el cuadro eléctrico de la casa si queremos monitorizar el consumo global de nuestra vivienda o negocia lo que implica ciertos conocimientos de electricidad y electrónica, así como asegurar el corte total de la corriente antes de su manipulación.

EL circuito

En efecto como vimos en un post anterior donde probamos el sensor PZEM004 junto con un sensor DHT11 con  un ESP32, en este post vamos a dar un paso mas, vamos a poder ver las lecturas de temperatura, humedad, voltaje, corriente, frecuencia, potencia y factor de potencia desde cualquier ordenador (y además guardando un histórico ) gracias a la infraestructura de el HomeAssistant ( que vimos también en un post anterior).  

En cuanto a las conexiones, seguiremos un esquema bastante simple que ya vimos y que puede ajustarse a diversas necesidades y configuraciones. Como ya se comentado, se ha optado además del citado modulo sensor de consumo  PZEM004 , usar el clásico sensor de humedad y temperatura ( DHT11 ) y que hemos visto en numerosos proyectos de este blog. Por otra parte como »cerebro» usaremos el potente microcontrolador como es un ESP32, que gracias a su conectividad WIFI nos va a permitir enviar las medidas al HomeAssistent. Por ultimo el montaje se completa con una fuente sellada de 5V ultra-miniatura ( aunque un cargador USB debería también ser suficiente).

Los componentes como vemos son de los mas normales:

  • Un módulo  ESP32 que usaremos para obtener los datos del medidor y transmitirlos por Wi-Fi a nuestro servidor. Puedes encontrar distintos modelos en Amazon.
  • Medidor PZEM-004T V3 que puedes comprar en Amazon. También vale la versión 1, pero ofrece menos datos.
  • Un sensor DHT11 ( se puede comprar también en Amazon)
  • Una pinza / anillo de corriente CT. Normalmente incluido con el medidor, ha de aguantar como mínimo la intensidad límite que aguante la línea que vamos a medir. Puede elegir si usar una pinza, que, aunque no requiere la desconexión del cable que queremos medir, nos da unos datos menos precisos, o un anillo, que tiene más precisión, pero requiere que previamente pasemos el cable, con lo que habrá que desmontarlo.
  • Cables dupont para conectar ambos dispositivos ( hembra-hembra). Aunque lo ideal es realizar un circuito puedes usar cables dupont y una placa de desarrollo para realizar el tutorial.
  • Una fuente  selladade 5V de al menos 100mA , aunque puede usarse un cargador USB .Este tipo de fuente sellada por cierto la podemos encontrar de nuevo en Amazon.
  • Cables Azul y Marrón para enchufar el medidor PZEM-004T a la corriente.

Software

Se aconseja probar el circuito anterior primero con el sketch que ya vimos en un post anterior y cuando todas las medidas sean mostradas correctamente en la consola serie de Arduino, y el servidor homeassistant este funcionando, seguir con los siguientes pasos.

Primero vamos a meter el software generado con ESPHome al módulo ESP32 para lo cual tendremos que taner instalado en nuestro HomeAssistant el añadido de ESPHome.

Bien, una vez conectado el montaje a nuestro PC y el ESP32 con un cable USB a nuestro PC con el que ya cargamos el skecth de pruebas, vamos a cambiar totalmente el fw para que pueda entenderse este con el HomeAssistant.

El siguiente código es solo una plantilla que se puede adaptar a las necesidades de cada uno:


esphome:

name: "medidor-consumo-pzem004t"

platform: ESP32

board: nodemcu-32s




# Recuerda cambiar la plataforma y placa según corresponda a tu módulo ESP.

# https://esphome.io/components/esphome.html

# ESP8266: https://esphome.io/devices/nodemcu_esp8266.html

# ESP32: https://esphome.io/devices/nodemcu_esp32.html



wifi:

ssid: "AAAAAAAAAA"

password: "XXXXXXXXX"



manual_ip:

static_ip: 192.168.1.74

subnet: 255.255.255.0

gateway: 192.168.1.1







#Enable Home Assistant API

# API para que Home Assistant pueda conectarse al módulo

# https://esphome.io/components/api.html





api:

encryption:

key: "ZZZZZZZZZ"



# Servidor Web para poder consultar información por web

# https://esphome.io/components/web_server.html



web_server:

# port: 80



# Componente OTA para poder actualizar el módulo sin necesidad de cables

# https://esphome.io/components/ota.html







ota:

# password: "ZZZZZZZZZZZZZZZZZZZZZZ"



# Servidor Web para poder consultar información por web

# https://esphome.io/components/web_server.html



# Enable logging

logger:

#baud_rate: 0









# Indicamos los pines donde hemos conectado TX y RX del dispositivo, teniendo en cuenta que siempre han de ser invertidos TX->RX, RX->TX

uart:

rx_pin: 16

tx_pin: 17

baud_rate: 9600

# stop_bits solo es necesario si así lo indica el log mientras probamos el circuito

stop_bits: 1







# Enable fallback hotspot (captive portal) in case wifi connection fails

#ap:

# ssid: "Dht11Pzem004 Fallback Hotspot"

# password: "SSSSSSSSSSSSSSSSSSSSSS"



sensor:



#usamos un dht11

- platform: dht

pin: 4



temperature:

name: "Temperature"

unit_of_measurement: °C

humidity:

name: "Humidity"

unit_of_measurement: '%'

update_interval: 1s



# Usaremos pzemac o pzem004t dependiendo de si estamos usando un PZEM-004T V3 o V1

- platform: pzemac

address: 0xF8

current:

name: "Current"

voltage:

name: "Voltage"

energy:

name: "Energy"

power:

name: "Power"

frequency:

name: "Frequency"

power_factor:

name: "Power Factor"

update_interval: 1s





# Indicamos el pin del LED de la placa para que parpadee según su estado

# https://esphome.io/components/status_led.html

status_led:

pin: 2


Una vez hayamos metido nuestras credenciales de WIFI, generamos el binario compilado del archivo .yaml y lo metemos en el módulo ESP. Como siempre, se puede realizar por USB o si ya lo tenemos configurado previamente por OTA. Una vez listo pasamos al circuito.

Si pulsamos en el icono de la corriente podemos ver el seguimiento de las variaciones de la corriente a lo largo del tiempo.

El consumo lógicamente va incrementando de forma acumulativa como vemos en la siguiente imagen:

Asimismo poder ver el histórico del valor de la frecuencia:

Asimismo podemos ver la fluctuaciones de la potencia:

Asimismo también podemos ver la fluctuación del factor de potencia en un histórico y de ahí podríamos deducir la potencia reactiva.

Por ultimo podemos ver como el suministrador no nos suministra un valor de voltaje estable fluctuando en nuestro caso entre los valores de 240v y 250v.

Dado que hemos equipado al ESP32 con un DHT11 podemos asimismo ver las fluctuaciones de humedad y temperatura en el interior de nuestra vivienda.

Asimismo, dado que especificamos una IP fija también podemos ver las medidas junto a la traza a traves de la url especificada ( en nuestro caso http://192.168.1.74).

INSTALACION

Una vez bien probado la instalación, puede ser una buena idea incorporar el montaje a nuestra vivienda , pero por favor únicamente haga esto si tiene los conocimientos eléctricos suficientes dado el riesgo evidente de electrocución por lo que lo recomendable es cortar completamente el suministro de ca.

En primer lugar vamos a conectar el PZEM004 y el alimentador de 5v a la salida de un disjuntor con poca carga ( se recomienda antes de conectar los cables que efectivamente no hay tensión con un polímetro)

En el bloque donde solia ir el limitador ahí podemos ubicar nuestro montaje, eso si sin olvidar aislar al máximo todas las partes.

Ahora deberemos conectar la sonda de pinza en el lado activo de la general qeu sera la encargada de medir la corriente y con ello deducir la potencia, y el factor de potecnia

Ya solo nos queda cerrar el montaje y probar la funcionalidad

!Terminado el trabajo! Ahora ya solo nos queda ir a la la url http://homeassistant.local:8123/lovelace/0 desde un pc conectado a nuestra red y disfrutar del montaje.

Reparación conectores frontales de un PC


Esa habitual que con el tiempo los conectores USB o jack frontales de los PC’s dejen de hacer contacto totalmente o parcialmente haciéndonos sobre todo muy difícil realizar una conexión especialmente las de audio externas para auricular o micrófono ¿Cómo podemos repararlas?

Obviamente ante problemas con los conectores lo primero que se nos viene a la mente es reemplazar los conectores por otros nuevos y problema solucionado ¿verdad? . Pues ojalá fuese así con los jack, porque los usados en los pc’s modernos no llevan solo los dos canales y la masa, ya que internamente llevan dos micro interruptores que cierran al insertar un conector jack macho en el interior siendo esta señal captada por la placa madre y de este modo puede ser detectado por el software gestor de sonido.

Normalmente al desmontar esta placas tenemos 16 hilos , que se reparten de la siguinte manera:

  • 2 grupos de cuatro hilos para cada conexión USB (suelen llevar soporte para dos USB).
  • 2 grupos de cuatro hilos para las dos conexiones de audio (salida y micrófono).

Ahora ,si vemos las conexiones de la placa anterior mas abajo, vemos a la izquierda ( arriba del conector verde) dos puntos gruesos de soldadura para cada canal, que son precisamente una entrada sense mas la señal de audio para cada canal de audio. Además para el micrófono ocurre justo los mismo: es decir se usan 4 hilos por jack mas la masa común.

Que averias pueden ocurrir con estos jacks:

  • No es reconocido un jack al introducirlo en alguno de los conectores.
  • Se corta el audio.
  • Se corta el micro.
  • Ruidos.
  • Bajadas de nivel.
  • Etc

Bueno , si tenemos algunos de esos problemas , si es posible encontrar estos jacks «especiales» (ojo que no valen los antiguos usados en equipos de audio que son justo al reves), lo mejor es reemplazarlos por uno nuevo y el problema quedaría solucionado .

Si no podemos conseguir los mismos jacks , lo mejor es intentar adquirir la misma placa de conectores y reemplazar todo el conjunto (suelen venir también con el cable para conectar a la placa madre).

Lamentablemente estas placas no son tan simplemente fáciles de obtener, siendo sin embargo muy fáciles de conseguir unas similares pero con solo 3 hilos por jack, como vemos en la foto de mas abajo ( obsérvese que hay solo una conexión para cada canal).

La gran decepción es cuando conectamos esta nueva placa porque los USB si funcionaran pero los jack’s de audio probablemente no porque solo han usado 5 hilos en lugar de los 8 +1 originales.

En el esquema siguiente de mas bajo podemos ver como claramemnte las conexiones de las nuevas placas son muy distintas:

¿Cómo podemos adaptar este jack nuevo si le falta dos hilos de conexión por jack en las nuevas placas?. Pues creemos que la manera sencilla es adaptando una placa nueva usados los conectores traseros para que sean reconocidso tanto en la salida como en la entrada:

  • En el caso de la salida solo habrá que conectar un cable jack atrás para que el sw reconozca que hay algo conectado y entonces en el jack frontal ya si podemos conectar lo que necesitemos pudiendo coexistir ambos si fuese necesario ( el frontal +el trasero). Obviamente ese cable conectado atrás puede ir a un altavoz, etc. o simplemente podemos dejar un cable enchufado libre por la otra punta.
  • En el caso de la conexión de micrófono, no es posible el truco anterior , por lo que lo mas sencillo es usar un cable con jack que conectaremos en la parte trasera y luego soldar los tres hilos en la placa en la parte del jack rosa como podemos ver en la imagen de abajo.

Y como vemos, en la imagen de abajo el otro extremo del cable terminado en un jack blanco que hemos soldado en la placa lo conectaremos al conector trasero rosa correspondiente a la entrada de micrófono.

Esta claro que la solución adaptada no es la mejor solución, pero al menos así todos los conectores frontales ya si tendrán utilidad y seran funcionales.