Ejemplo del programa de interfaz con windows para PZEM-004T V3 V3.0 usando Arduino


En este post, discutiremos el uso o la utilización del módulo PZEM-004T V3.0 (del que hemos hablado en este blog en numerosas ocasiones), el cual se interconecta utilizando cualquier variante de Arduino (por ejemplo Arduino UNO o Arduino Mega2560).

A tener en cuenta que si se utiliza el programa de ejemplo con el Hardware Serial, se necesita el Arduino Mega2560 porque el Hardware Serial del Arduino UNO ya se utiliza para la comunicación con el Monitor Serial.

El módulo PZEM-004T V3.0 es una versión mejorada de PZEM-004T V2.0 y también el protocolo para comunicar la interfaz usado es diferente, es decir el programa de la biblioteca para PZEM-004T V2 no se puede utilizar para la interfaz con PZEM-004T V3.0.

Hardware requerido

En este ejemplo de programa de módulo PZEM-004T V3, se necesita algo de hardware, entre otros:

  • Módulo PZEM-004T V3.0
  • Arduino UNO o Arduino Mega2560
  • Algunos cables puente MF/FF
  • Carga (puede usar luces TL / bombilla / LED / taladro eléctrico)
  • USB a Serial TTL (opcional para probar funciones usando la aplicación Master PZEM-004T).

Diagrama de circuito/cableado

En la siguiente tabla se muestra la conexión o conexión entre el módulo PZEM-004T V3.0 y Arduino

PZEM-004T V3.0Arduino UNO/Mega2560
CCV+5V
TIERRATIERRA
TexasRX (serie de software/serie de hardware)
RXTX (serie de software/serie de hardware)

Para la conexión o conexión entre PZEM-004T V3.0 con Transformador de Corriente (CT), Carga y Arduino en su totalidad se puede ver en la siguiente imagen:

conexiones-pzem

Prueba de funcionamiento del módulo PZEM-004T V3.0

Hay ocasiones en las que hacemos un programa con Arduino y después de subirlo resulta que la salida no es la esperada, muchos se quejan de que el módulo PZEM-004T V3.0 está dañado o funciona mal.

Por esta razón, antes de interconectar el módulo PZEM-004T V3.0 con Arduino, le recomendamos que primero pruebe la función del módulo PZEM-004T V3.0 para asegurarse de que el módulo PZEM-004T V3.0 no esté dañado o funcionando. adecuadamente.

Descargue la aplicación para probar el módulo de función PZEM-004T V3.0 en el siguiente enlace: Software PZEM-004T Nueva versión

Antes de ejecutar el programa debemos descargar isAnalogLibrary.ocx, que es un archivo de componente de objeto ActiveX, es decir un tipo de archivo que se utiliza en sistemas operativos Windows para implementar funcionalidades de software reutilizables. Los componentes de objeto ActiveX se pueden utilizar en aplicaciones de Windows para añadir funcionalidades especiales, como controles de usuario personalizados, gráficos y animaciones, y para interactuar con otros programas o con el sistema operativo.

Los archivos con la extensión .ocx suelen ser archivos de biblioteca de enlace dinámico (DLL) que contienen código ejecutable y datos que se pueden utilizar en aplicaciones de Windows. Los archivos .ocx se pueden cargar en memoria y utilizar en tiempo de ejecución por varias aplicaciones, lo que permite ahorrar espacio en disco y memoria en el sistema.

A continuación, extraiga / descomprima el archivo que descargó anteriormente, luego registre el archivo: isAnalogLibrary.ocx en el sistema operativo Windows PC / Laptop de la siguiente manera:

  • Copie el archivo  isAnalogLibrary.ocx  a la carpeta:  Windows/System32/
  • Abra  el símbolo del sistema  o  cmd.exe
  • Escriba: Regsvr32.exe C:\Windows\System32\isAnalogLibrary.ocx
  • Si tiene éxito, aparecerá una notificación «Registrado con éxito»

Después de registrar correctamente el archivo: isAnalogLibrary.ocx , ejecute el archivo: PZEM004T-Master.exe para comprobar si el módulo PZEM-004T V3.0 funciona o no.

programa-windows-para-pzem

Tenga en cuenta que, para realizar pruebas con la aplicación, necesita un hardware USB a Serial TTL que está ampliamente disponible en el mercado, como: tipo CH340, tipo PL2303, etc., como se muestra a continuación.

adaptador-usb-serie


Un adaptador USB a Serial TTL es un dispositivo de hardware que se utiliza para convertir señales de transmisión en serie (TTL) en señales USB y viceversa. Los adaptadores de este tipo se utilizan a menudo para conectar dispositivos que utilizan señales de transmisión en serie, como microcontroladores y módems, a un puerto USB de un ordenador soliendo incluir un chip de conversión de señales que se encarga de realizar la conversión entre las señales USB y las señales TTL. Algunos adaptadores también incluyen una interfaz de programación en circuito (ICP) que se puede utilizar para programar microcontroladores o realizar otras tareas de depuración y diagnóstico.

Estos adaptadores suelen ser pequeños y portátiles, y se pueden utilizar para conectar dispositivos a un ordenador de escritorio o portátil mediante un cable USB. Algunos adaptadores también tienen opciones de montaje en panel, lo que los hace adecuados para su uso en equipos de automatización y sistemas de control.

Después de ensamblar el módulo PZEM-004T V3.0 con carga (puede ser una luz eléctrica/taladro) o con USB a Serial TTL y asegúrese de que el sistema operativo Windows haya reconocido/detectado el USB a Serial TTL, haga clic en Establecer COM Puerto y luego haga clic en Iniciar medida .

Después de probar o probar la función y confirmar que el módulo PZEM-004T V3.0 funciona correctamente, se puede continuar haciendo un programa con Arduino u otro microcontrolador.

Ejemplos de programas para el Arduino

Aparte de la instalacion del harware y del sw en nuestro pc con windows debemos instalar un firmaware en la placa arduino para qeu se comunique con el citado programa . En el programa de ejemplo para acceder o interactuar con el módulo PZEM-004T V3.0 usando este Arduino, usamos la siguiente biblioteca:PZEM-004T-v30  o  PZEM-004T-v30

Después de descargar e instalar la biblioteca, abra el programa de muestra existente de la biblioteca predeterminada o copie y pegue el siguiente boceto:

#include <PZEM004Tv30.h>

PZEM004Tv30 pzem(11, 12); // Software Pin serie 11 (RX) y 12 (TX)

void setup () {
   Serial.begin(115200);
}

void loop () {
   voltaje de flotación = pzem.voltage();
   if (voltaje! = NAN) {
       Serial.print("Voltaje: ");
       Serial.print(voltaje);
       Serial.println("V");
   } else {
       Serial.println("Error al leer el voltaje");
   }

   float current = pzem.current();
   if(current != NAN){
       Serial.print("Current: ");
       Serial.print(current);
       Serial.println("A");
   } else {
       Serial.println("Error al leer la corriente");
   }

   float power = pzem.power();
   if(current != NAN){
       Serial.print("Power: ");
       Serial.print(power);
       Serial.println("W");
   } else {
       Serial.println("Error al leer la potencia");
   }

   float energy = pzem.energy();
   if(current != NAN){
       Serial.print("Energy: ");
       Serial.print(energy,3);
       Serial.println("kWh");
   } else {
       Serial.println("Error al leer consumo");
   }

   float frequency = pzem.frequency();
   if(current != NAN){
       Serial.print("Frequency: ");
       Serial.print(frequency, 1);
       Serial.println("Hz");
   } else {
       Serial.println("Error al leer la frecuencia");
   }

   float pf = pzem.pf();
   if(current != NAN){
       Serial.print("PF: ");
       Serial.println(pf);
   } else {
       Serial.println("Error al leer el factor de potencia");
   }

   Serial.println();
   delay(2000);
}

Tambien podemos usar Serial Hardware de la siguiente manera:

#include <PZEM004Tv30.h>

PZEM004Tv30 pzem(&Serie3); // Hardware de Menggunakan Serie 3

void setup () {
   Serial.begin(115200);
}

void loop () {
     voltaje de flotación = pzem.voltage();
     if (voltaje! = NAN) {
         Serial.print("Voltaje: ");
         Serial.print(voltaje);
         Serial.println("V");
     } else {
         Serial.println("Error al leer el voltaje");
     }

     float current = pzem.current();
     if(current != NAN){
         Serial.print("Current: ");
         Serial.print(current);
         Serial.println("A");
     } else {
         Serial.println("Error reading current");
     }

     float power = pzem.power();
     if(current != NAN){
         Serial.print("Power: ");
         Serial.print(power);
         Serial.println("W");
     } else {
         Serial.println("Error al leer  potencia");
     }

     float energy = pzem.energy();
     if(current != NAN){
         Serial.print("Energy: ");
         Serial.print(energy,3);
         Serial.println("kWh");
     } else {
         Serial.println("Error al leer  energia");
     }

     float frequency = pzem.frequency();
     if(current != NAN){
         Serial.print("Frequency: ");
         Serial.print(frequency, 1);
         Serial.println("Hz");
     } else {
         Serial.println("Error al leer frequencia");
     }

     float pf = pzem.pf();
     if(current != NAN){
         Serial.print("PF: ");
         Serial.println(pf);
     } else {
         Serial.println("Error al leer el factor de potencia");
     }

     Serial.println();
     delay(2000);
 }

Después de cargar el programa de boceto anterior en la placa Arduino, abra el monitor serie a velocidad de transmisión: 115200. Si todo funciona bien, los datos de lectura del módulo PZEM-004T V3.0 se mostrarán en la ventana del monitor serie.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.