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
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:
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/
- 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.
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.
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:
#incluye <PZEM004Tv30.h> PZEM004Tv30 pzem(11, 12); // Software Pin serie 11 (RX) y 12 (TX) configuración vacía () { Serial.begin(115200); } bucle vacío () { voltaje de flotación = pzem.voltage(); si (voltaje! = NAN) { Serial.print("Voltaje: "); Serial.print(voltaje); Serial.println("V"); } más { 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 reading power");
}
float energy = pzem.energy();
if(current != NAN){
Serial.print("Energy: ");
Serial.print(energy,3);
Serial.println("kWh");
} else {
Serial.println("Error reading energy");
}
float frequency = pzem.frequency();
if(current != NAN){
Serial.print("Frequency: ");
Serial.print(frequency, 1);
Serial.println("Hz");
} else {
Serial.println("Error reading frequency");
}
float pf = pzem.pf();
if(current != NAN){
Serial.print("PF: ");
Serial.println(pf);
} else {
Serial.println("Error reading power factor");
}
Serial.println();
delay(2000);
}
Tambien podemos usar Serial Hardware de la siguiente manera:
#incluye <PZEM004Tv30.h> PZEM004Tv30 pzem(&Serie3); // Hardware de Menggunakan Serie 3 configuración vacía () { Serial.begin(115200); } bucle vacío () { voltaje de flotación = pzem.voltage(); si (voltaje! = NAN) { Serial.print("Voltaje: "); Serial.print(voltaje); Serial.println("V"); } más { 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 reading power");
}
float energy = pzem.energy();
if(current != NAN){
Serial.print("Energy: ");
Serial.print(energy,3);
Serial.println("kWh");
} else {
Serial.println("Error reading energy");
}
float frequency = pzem.frequency();
if(current != NAN){
Serial.print("Frequency: ");
Serial.print(frequency, 1);
Serial.println("Hz");
} else {
Serial.println("Error reading frequency");
}
float pf = pzem.pf();
if(current != NAN){
Serial.print("PF: ");
Serial.println(pf);
} else {
Serial.println("Error reading power factor");
}
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.