Hablemos del nuevo pzem-004t-100a-d-p(v1.0) y su uso practico


Amigos lectores , probablemente recordareis el famoso modulo de medida electrica PZEM004. Ciertamente la versión PZEM-004T V3.0 o versión 3.0 era la versión actualizada para reemplazar la antigua PZEM004T V1.0 dado que la versión anterior se ha agotado desde hace bastante tiempo en la mayor parte de las tiendas en línea y ya no se producen ( de hecho se necesitan librerías especiales para poder usarlo). La versión actualizada de PZEM004T sigue siendo interesante para proyectos, donde necesitamos medir el voltaje, la corriente, la potencia, la energía, la frecuencia, el factor de potencia (la frecuencia y el PF se agregan adicionales en la nueva versión) utilizando Arduino / ESP8266 -ESP32/ /Raspberry Pi como plataforma de código abierto.

Ahora bien, si bien PZEM-004T V3.0 o versión 3.0 sigue siendo una versión funcional por el momento, desde hace un año aproximadamente, tenemos disponible una nueva versión: la versión PZEM-004T-100A-D-P (v1.0). Esta nueva versión ser caracteriza por su mayor precisión y respuesta rápida, con una versión mejorada de pulso de PIN que facilita la integración en PCB y la medición de potencia con menor error de calibración.

Utiliza una interfaz de comunicación UART a TTL con una velocidad de baudios de 9600, y emplea el protocolo Modbus-RTU para la capa de aplicación, soportando funciones como lectura de registros, escritura de registros, calibración y limpieza de potencia cero. La comprobación CRC se realiza en un formato de 16 bits con un polinomio específico.

En cuanto a los parámetros del producto, el modelo Pzem-004t-100A-d-p v1.0 (como el antiguo PZEM-004T V3.0) permite medir corrientes de hasta 100A y voltajes entre 80 y 260V, con una potencia activa máxima de 2.3KW y un factor de potencia de hasta 1.00. La frecuencia operativa va de 45Hz a 65Hz, y cuenta con una función de alarma para exceso de potencia. La comunicación se realiza a través de una interfaz TTL, y el dispositivo opera en un rango de temperatura de -20℃ a +60℃.

Este es el aspecto del nuevo modelo donde como vemos se puede observar que el diseño se ha cambiado para poder soldar el modulo en una placa o incluso enchufar en una placa proto board prescindiendo de conectores.

Asimismo tenemos un nuevo pin: el pin CF de salida de pulsos, por lo que también han cambiado el diseño incluyendo un nuevo optoacoplador en la propia placa

El pin CF (Frequency Output) en el PZEM-004T-100A-D-P (v1.0) se utiliza para proporcionar una salida de frecuencia proporcional a la potencia activa medida. Esta señal de frecuencia puede ser utilizada para monitorear y registrar el consumo de energía en tiempo real, y mas adelante en el código arduino veremos cual es su utilidad.

Como en versiones anteriores, la interfaz TTL de este módulo es una interfaz pasiva y necesita una fuente de alimentación externa de 5V, es decir, los cuatro puertos (5V, RX, TX y GND) debe estar conectado durante la comunicación; de lo contrario, la comunicación falla.

Por ultimo la temperatura de funcionamiento del modulo va entre -20 ℃ ~ + 60 ℃.

Conexiones con un ESP32

Las conexiones no han cambiado respecto a la configuraciones antiguas a excepción de que tenemos un hilo mas( el pin CF) .Para conectar el PZEM-004T-100A-D-P (v1.0) al ESP32 WROOM 32 usando los GPIO 16, 17 y 4, sigue estos pasos:

Conexiones de alimentación:

  • Conecta el pin VCC del PZEM-004T al pin de 5V del ESP32.
  • Conecta el pin GND del PZEM-004T al pin GND del ESP32.

Conexiones de comunicación:

  • Conecta el pin RX del PZEM-004T al pin GPIO 16 (TX2) del ESP32.
  • Conecta el pin TX del PZEM-004T al pin GPIO 17 (RX2) del ESP32.
  • Conecta el pin CF del PZEM-004T al pin GPIO 4 del ESP32.

Conexión de la entrada de CA:

  • Conecta los terminales de entrada de CA del PZEM-004T a la fuente de alimentación de CA que deseas medir. Asegúrate de seguir las precauciones de seguridad al trabajar con corriente alterna.
  • Conexión de la bobina del sensor de corriente:Pasa el cable de la carga a través del agujero de la bobina del sensor de corriente (CT) del PZEM-004T. Esto permitirá medir la corriente que pasa a través del cable.

A continuación podemos ver el esquema del montaje final:

Ejemplo de código ARduino probado con la nueva versión del PZEM004

El siguinte nuevo código Arduino con el pzem004 le permite medir el voltaje de CA, la corriente de CA, la potencia, la energía, la frecuencia y el factor de potencia en la interfaz serie con el microcontrolador Arduino. Ademas tambien usaremos leos pulsos CF .

La biblioteca de PZEM-004t V30 funciona tanto en serie de hardware como en serie de software con este nuevo modulo. El resultado de todos los parámetros se imprime en el monitor serie de Arduino IDE. Este código de biblioteca se ha usado con un ESp32 pero debería funcionar también con arduino uno, arduino mega y nano board.

CODIGO ARDUINO:

#include <PZEM004Tv30.h>
#include <HardwareSerial.h>

// Definir los pines de conexión
#define RX_PIN 17
#define TX_PIN 16
#define CF_PIN 5

// Crear una instancia del objeto HardwareSerial
HardwareSerial PZEMSerial(2);

// Crear una instancia del objeto PZEM
PZEM004Tv30 pzem(PZEMSerial, RX_PIN, TX_PIN);

// Variables para contar los pulsos del pin CF
volatile unsigned long pulseCount = 0;
unsigned long lastPulseTime = 0;

void IRAM_ATTR onPulse() {
  pulseCount++;
  lastPulseTime = millis();
}

void setup() {
  Serial.begin(115200);
  Serial.println("Iniciando PZEM004T con ESP32");

  // Iniciar la comunicación serial con el PZEM
  PZEMSerial.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN);

  // Configurar el pin CF como entrada y adjuntar la interrupción
  pinMode(CF_PIN, INPUT);
  attachInterrupt(digitalPinToInterrupt(CF_PIN), onPulse, RISING);
}

void loop() {
  // Leer las variables eléctricas
  float voltage = pzem.voltage();
  float current = pzem.current();
  float power = pzem.power();
  float energy = pzem.energy();
  float frequency = pzem.frequency();
  float pf = pzem.pf();

  // Mostrar las variables en el monitor serie
  Serial.print("Voltaje: "); Serial.print(voltage); Serial.println(" V");
  Serial.print("Corriente: "); Serial.print(current); Serial.println(" A");
  Serial.print("Potencia: "); Serial.print(power); Serial.println(" W");
  Serial.print("Energía: "); Serial.print(energy); Serial.println(" Wh");
  Serial.print("Frecuencia: "); Serial.print(frequency); Serial.println(" Hz");
  Serial.print("Factor de Potencia: "); Serial.println(pf);

  // Mostrar el conteo de pulsos del pin CF
  Serial.print("Pulsos CF: "); Serial.println(pulseCount);

  // Esperar un segundo antes de la siguiente lectura
  delay(1000);
}

Este código Arduino configura un ESP32 para comunicarse con un módulo PZEM-004T-100A-D-P (v1.0) a través de los pines RX (17) y TX (16), y utiliza el pin CF (5) para contar pulsos de frecuencia. En el setup, se inicializa la comunicación serial y se configura una interrupción en el pin CF.

El pin CF (Frequency Output) del PZEM-004T-100A-D-P (v1.0) se utiliza para proporcionar una señal de frecuencia que es proporcional a la potencia activa medida por el módulo. Esta señal de frecuencia puede ser utilizada para monitorear y registrar el consumo de energía en tiempo real.

En el código Arduino, el pin CF está conectado al GPIO 5 del ESP32 y se configura una interrupción para contar los pulsos generados por el pin CF. Cada pulso representa una cantidad específica de energía consumida, y al contar estos pulsos, se puede calcular el consumo total de energía.

Aquí un resumen de cómo se usa el pin CF en el código:

  1. Configuración del pin CF: En el setup, se configura el pin CF como entrada y se adjunta una interrupción para contar los pulsos.
  2. Interrupción: La función onPulse se llama cada vez que se detecta un pulso en el pin CF, incrementando el contador de pulsos.
  3. Lectura de pulsos: En el loop, se muestra el conteo de pulsos en el monitor serie, lo que permite monitorear el consumo de energía en tiempo real.

Por ultimo en el loop, se leen y muestran en el monitor serie las variables eléctricas (voltaje, corriente, potencia, energía, frecuencia y factor de potencia) y el conteo de pulsos del pin CF, con un retraso de un segundo entre lectura.

A continuación para terminal un ejemplo de salida del monitor serie usando el montaje explicado:

Espero amigo lector que si adquiera un modulo de estos, sepa darle utilidad.

Reciclar un viejo PC con Home Assitant


¿Qué es Home Assistant? Pues es en esencia, es un controlador domótico, un software que se ejecuta en un hardware (como un ordenador, Raspberry Pi o similar) y se comunica con dispositivos inteligentes a través de diferentes medios (cable, wifi, Bluetooth, Zigbee, Z-Wave, etc.).Aunque en este blog hemos tratado este tema en numerosas veces, ciertamente no nos hemos parado a estudiar su funcionamiento y sobre todo como podemos instalarlo en un PC que quizás no sepamos hacer con el.

Home Assistant recibe información de dispositivos con sensores (termómetros, sensores de presencia, cámaras, etc.). Esta información se procesa y, mediante automatizaciones (también llamadas escenarios, escenas o rutinas), se envían señales a actuadores para realizar acciones. Por ejemplo, si la temperatura baja de 18 grados, Home Assistant puede activar la caldera hasta que llegue a 22 grados.

A diferencia de los sistemas domóticos propietarios, Home Assistant ofrece:

  • Libertad: Compatibilidad con una amplia gama de dispositivos de diferentes fabricantes, evitando la dependencia de una sola marca.
  • Economía: Posibilidad de utilizar dispositivos más económicos, como ESP32 o ESP8266, en lugar de opciones más costosas de marcas comerciales.
  • Privacidad: El sistema se ejecuta localmente, sin depender de la nube, lo que protege tus datos y te permite mantener el control sobre la información de tu hogar. Además, sigue funcionando incluso sin conexión a internet.
  • Código Abierto y Comunidad: Home Assistant es de código abierto y cuenta con una gran comunidad de usuarios y desarrolladores, lo que garantiza su continuo desarrollo y soporte.

Métodos de Instalación:

Home Assistant se puede instalar en diversos dispositivos, desde un portátil hasta una Raspberry Pi o un Intel NUC (y por supuesto en un PC como vas a ver a continuación). Para un uso a largo plazo, se recomienda un dispositivo que pueda estar encendido las 24 horas del día, siendo la Raspberry Pi 3 o superior una opción popular por su bajo consumo.No obstante como vamos a ver en este articulo un viejo ordenador portatil también puede funcionar incluso mejor que la RPi por su mayor capacidad de CPU, más memoria, mejor sistema de refrigeración, mejor sistema de alimentación, pantalla incorporada e !incluso mejor precio!.

Existen diferentes versiones de instalación, que pueden generar confusión:

  • Home Assistant Core: La base, programada en Python. No incluye el Supervisor ni los complementos. Si se instala en Docker, se llama Home Assistant Container.
  • Home Assistant (anteriormente Hass.IO): Un ecosistema completo que incluye Home Assistant Core, el Supervisor y complementos, gestionado a través de una interfaz web. Se ejecuta sobre Home Assistant Operating System.
  • Home Assistant Supervised: La experiencia completa de Home Assistant en un sistema Linux como Ubuntu o Debian.
  • Home Assistant Operating System (anteriormente HassOS): Una distribución ligera de Linux optimizada para ejecutar Home Assistant y sus complementos en dispositivos como Raspberry Pi. Es la opción más sencilla para principiantes, pero ofrece menos control sobre el sistema operativo subyacente.

Aunque lo tradicional es instalar Home Asistant en una Raspberry Pi ( ojo al menos en su versión 3, aunque ira muy justa), puede que con el paso del tiempo tenga un viejo pc que se haya quedado obsoleto y desee darle una segunda vida. En este caso vamos a ver cómo instalar el sistema operativo Home Assistant en un PC genérico x86-64.

Los prerrequisitos son tan sólo un un PC genérico x86-64 (Intel o AMD) compatible con 64 bits y UEFI con modo de arranque UEFI habilitado y arranque seguro deshabilitado en el BIOS. Con esto tenemos dos opciones:

  • Método 1 (Recomendado): Instalación mediante el arranque de Ubuntu desde una unidad flash USB.Creamos una unidad flash USB con Ubuntu.Arrancaremos desde la unidad flash y seleccionar «Probar Ubuntu».Descargaremos la imagen de Home Assistant y usar la utilidad Disks de Ubuntu para escribir la imagen en el medio de arranque.
  • Método 2: Instalación directa desde un medio de arranque.Descargar e iniciar Balena Etcher.Descargar la imagen de Home Assistant y usar Balena Etcher para escribir la imagen en el medio de arranque.Conectar el medio de arranque al hardware x86-64.Conectar el sistema a Internet y encenderlo.
  • En ambos casos una vez finalzado acceder a Home Assistant a través de homeassistant.local:8123 o la dirección IP del sistema.

Siga leyendo si quieres comenzar a utilizar Home Assistant fácilmente o si tienes poca o ninguna experiencia en Linux.

Configurar LA BIOS en su hardware x86-64

Para iniciar el sistema operativo Home Assistant, el BIOS debe tener habilitado el modo de arranque UEFI y deshabilitado el arranque seguro. Las siguientes capturas de pantalla corresponden a un sistema Intel NUC de séptima generación. Es probable que el menú del BIOS se vea diferente en su sistema. Sin embargo, las opciones deberían seguir estando presentes y tener nombres similares.

  1. Para ingresar al BIOS, inicie su hardware x86-64 y presione repetidamente la F2tecla (en algunos sistemas podría ser DelF1F10). Ingrese al BIOS usando la tecla F2, Del, F1 o F10
  2. Asegúrese de que el modo de arranque UEFI esté habilitado. Habilitar el modo de arranque UEFI
  3. Deshabilitar arranque seguro. Deshabilitar el modo de arranque seguro
  4. Guarde los cambios y salga.

La configuración del BIOS ahora está completa.

Escriba HAOS en su hardware x86-64

A continuación, debe escribir la imagen del sistema operativo Home Assistant en el medio de arranque , que es el medio desde el que arrancará su hardware x86-64 cuando ejecute Home Assistant.

HAOS no tiene un instalador integrado que escriba la imagen automáticamente. La escribirás manualmente utilizando la utilidad Disks de Ubuntu o Balena Etcher.

Por lo general, se utiliza un medio interno como un disco duro S-ATA, un SSD S-ATA, un SSD M.2 o un eMMC no extraíble para el medio de arranque x86-64. Alternativamente, se puede utilizar un medio externo como un SDD USB, aunque no se recomienda.

Para escribir la imagen HAOS en el medio de arranque de su hardware x86-64, existen 2 métodos diferentes:

Método 1 (recomendado) : Arranque Ubuntu desde una unidad flash USB e instale el sistema operativo Home Assistant.Desde allí también funciona en portátiles y PC con discos duros internos.

Método 2 : con este método, escribe la imagen del disco operativo de Home Assistant directamente en un medio de arranque desde su computadora habitual. Los pasos son un poco más complejos. Si tiene medios internos no extraíbles (por ejemplo, porque está usando una computadora portátil) o no tiene el adaptador necesario (por ejemplo, un adaptador USB a S-ATA), use el método 1.

Método 1: Instalación de HAOS mediante el arranque de Ubuntu desde una unidad flash USB

Material necesario

  • Computadora
  • El hardware x86-64 de destino en el que desea instalar el sistema operativo Home Assistant(HAOS)
  • Unidad flash USB (una memoria USB es suficiente, debe tener al menos 4 GB de tamaño)
  • Conexión a Internet

Cómo instalar HAOS a través de Ubuntu desde una unidad flash USB

  1. Aviso : Este procedimiento escribirá el sistema operativo Home Assistanten su dispositivo.
    • Esto significa que perderá todos los datos y el sistema operativo previamente instalado.
    • Haga una copia de seguridad de sus datos antes de realizar este procedimiento.
  2. Cree un sistema operativo en vivo en una unidad flash USB:
  3. Inserte la unidad flash USB en el sistema en el que desea ejecutar Home Assistant.
    • Arranque el sistema operativo en vivo.
    • Es posible que necesites ajustar el orden de arranque o usar F10 (puede ser una tecla F diferente según el BIOS) para seleccionar la unidad flash USB como dispositivo de arranque.
  4. Cuando se le solicite, asegúrese de seleccionar Probar Ubuntu . Esto ejecuta Ubuntu en el dispositivo flash USB.
    • Luego el sistema inicia Ubuntu.
    • Conecte su sistema a su red y asegúrese de que tenga acceso a Internet.
  5. En Ubuntu, abra un navegador y abra la página de documentación actual, para que pueda seguir los pasos.
  6. En Ubuntu, en la esquina inferior izquierda, seleccione Mostrar aplicaciones .
  7. En las aplicaciones, busque y abra Discos y comience a restaurar la imagen HAOS:
    1. En Discos , en el lado izquierdo, seleccione el dispositivo de disco interno en el que desea instalar HAOS.
    2. En la parte superior de la pantalla, seleccione los tres puntosmenú y seleccione Restaurar imagen de disco… . Restaurar imagen de disco: seleccione el menú de tres puntos
    3. Seleccione la imagen que acaba de descargar. Restaurar imagen de disco: seleccionar imagen
    4. Seleccione Iniciar restauración… . Restaurar imagen de disco: iniciar restauración
    5. Confirme seleccionando Restaurar . Restaurar imagen de disco: seleccione Restaurar
      • Si recibe un mensaje de error «Error al desmontar el sistema de archivos» , que indica que el destino está ocupado :
      • Lo más probable es que estés ejecutando Ubuntu en tu disco interno. En lugar de eso, debes ejecutarlo en tu dispositivo USB.
        • Regrese al paso 3 y durante el inicio, asegúrese de seleccionar Probar Ubuntu (y NO Instalar Ubuntu ).
    6. En la descripción general de las particiones, ahora debería ver la operación de restauración en progreso.
      • El sistema operativo Home Assistant ahora se está instalando en su sistema. Restaurar imagen de disco: Restaurando…
  8. Una vez instalado el sistema operativo Home Assistant, apague el sistema.
    • Una vez que se haya apagado Ubuntu, retire la unidad flash USB (Ubuntu le informará cuando sea así).
    • Tu servidor Home Assistant ya está configurado y puedes comenzar a usarlo.
    • Para usarlo, proceda como se describe en Inicie su x86-64 genérico .

Método 2: Instalar HAOS directamente desde un medio de arranque

Utilice este método sólo si el método 1 no funciona para usted.

Material necesario

  • Un ordenador
  • El hardware x86-64 de destino en el que desea instalar el sistema operativo Home Assistant(HAOS)
  • Un disco USB vacío de al menos 8Gb
  • Conexión a Internet

Escribe la imagen en tu medio de arranque

  1. Aviso : Este procedimiento escribirá el sistema operativo Home Assistanten su dispositivo.
    • Esto significa que perderá todos los datos y el sistema operativo previamente instalado.
    • Haga una copia de seguridad de sus datos antes de continuar con el siguiente paso.
  2. Conecte el medio de arranque de Home Assistant (dispositivo de almacenamiento) a su computadora.
  3. Descargue e inicie Balena EtcherEs posible que necesites ejecutarlo con privilegios de administrador en Windows.
  4. Descargue la imagen a su computadora.
    • Copiar la URL de la imagen.
    • Si hay varios enlaces a continuación, asegúrese de seleccionar el enlace correcto para su versión de Generic x86-64.
https://github.com/home-assistant/operating-system/releases/download/14.1/haos_generic-x86-64-14.1.img.xz

Selecciona y copia la URL o utiliza el botón “copiar” que aparece cuando pasas el cursor sobre ella.

  1. Pegue la URL en su navegador para iniciar la descarga.
  2. Extraiga el archivo que acaba de descargar.
  3. Seleccione Flash del archivo y seleccione la imagen que acaba de extraer.
    • No utilice Flash desde la URL . No funciona en algunos sistemas.

Captura de pantalla del software Etcher que muestra Flash desde la URL seleccionada. 8. Seleccione el destino . Captura de pantalla del software Etcher que muestra el botón de selección de objetivo resaltado. 9. Seleccione el medio de arranque (dispositivo de almacenamiento) que desea utilizar para la instalación. Captura de pantalla del software Etcher que muestra los objetivos disponibles. 10. Seleccione Flash! para comenzar a escribir la imagen.

  • Si la operación falla, descomprima el archivo .xz e inténtelo nuevamente. Captura de pantalla del software Etcher que muestra el botón Flash resaltado.
  • Cuando Balena Etcher haya terminado de escribir la imagen, verás una confirmación. Captura de pantalla del software Etcher que muestra que la instalación se ha completado.

Inicie su Generic x86-64

  • Si utilizó el método 1 para la instalación, asegúrese de que la unidad flash USB esté retirada del sistema.
  • Si utilizó el método 2 para la instalación, instale el medio de arranque en su hardware x86-64.
  1. Conecte un cable Ethernet que esté conectado a la red y a Internet.
    • Nota: Se requiere Internet porque el sistema operativo Home Assistant recién instalado aún no contiene todos los componentes de Home Assistant. Descarga la última versión de Home Assistant Core la primera vez que se inicia.
  2. Encienda el sistema. Si tiene una pantalla conectada al sistema genérico x86-64, después de aproximadamente un minuto aparecerá el banner de bienvenida de Home Assistant en la consola. Nota: Si la máquina se queja de no poder encontrar un medio de arranque, es posible que deba especificar la entrada EFI en su BIOS. Esto se puede lograr utilizando un sistema operativo en vivo (por ejemplo, Ubuntu) y ejecutando el siguiente comando (reemplace <drivename>con el nombre de unidad apropiado asignado por Linux, generalmente será sdanvme0n1en SSD NVMe):
efibootmgr --create --disk /dev/<drivename> --part 1 --label "HAOS" \
   --loader '\EFI\BOOT\bootx64.efi'

El comando efibootmgr solo funcionará si iniciaste el sistema operativo en vivo en modo UEFI, así que asegúrate de iniciar desde tu unidad flash USB en este modo. Según tus privilegios en el mensaje, es posible que debas ejecutar efibootmgr usando sudo.De lo contrario, el BIOS podría proporcionarle una herramienta para agregar opciones de arranque, allí puede especificar la ruta al archivo EFI:

\EFI\BOOT\bootx64.efi
  1. En el navegador de su sistema de escritorio, en unos minutos podrá acceder a su nuevo Home Assistant en homeassistant.local:8123. Nota: Si está ejecutando una versión anterior de Windows o tiene una configuración de red más estricta, es posible que necesite acceder a Home Assistant en homeassistant:8123http://X.X.X.X:8123(reemplace XXXX con la dirección IP de su x86-64 genérico).

Tras un rato se habrá concluido la instalación y nos dara la entrada al asistente de HA:

Lo primero son las credenciales de acceso que cumplimentaremos.

Tras esto , le damos nuestra ubicación, así como también si deseamos compartir nuestros datos para la posible mejora y con esto ya habríamos terminado, con lo cual nos dará una pantalla de los dispositivos encontrados en nuestra red.

!Reto conseguido!

Resumen

Esta post asume que tienes un PC genérico x86-64 dedicado exclusivamente para ejecutar el sistema operativo Home Assistant. Normalmente se trata de un sistema basado en Intel o AMD.El sistema debe ser compatible con 64 bits y poder iniciarse mediante UEFI. La mayoría de los sistemas producidos en los últimos 10 años admiten el modo de arranque UEFI. Para instalar HA primero, necesitará configurar su PC genérica x86-64 para usar el modo de arranque UEFI. Luego, escribe el Sistema Operativo Home Assistant imagen de disco a su medio de arranque.