

The PZEM 004T 10A is a multifunctional energy meter designed for monitoring and measuring key electrical parameters in AC circuits. It can measure voltage, current, power, energy consumption, and frequency, providing real-time data for energy management. This module is compact, easy to integrate, and supports communication via UART, making it ideal for IoT applications, home automation, and industrial energy monitoring.








Below are the key technical details of the PZEM 004T 10A module:
| Parameter | Specification |
|---|---|
| Voltage Range | 80V - 260V AC |
| Current Range | 0A - 10A |
| Power Range | 0W - 2.3kW |
| Energy Range | 0 - 9999 kWh |
| Frequency Range | 45Hz - 65Hz |
| Communication Interface | UART (9600 baud rate) |
| Power Supply | Self-powered (from measured circuit) |
| Accuracy | ±0.5% |
| Dimensions | 48mm x 29mm x 22mm |
The PZEM 004T 10A module has a 4-pin interface for communication and power connections. Below is the pinout:
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power supply for the module (5V DC) |
| 2 | GND | Ground connection |
| 3 | RX | UART Receive pin (connect to TX of microcontroller) |
| 4 | TX | UART Transmit pin (connect to RX of microcontroller) |
Wiring the Module:
Programming the Microcontroller:
Reading Data:
Below is an example Arduino sketch to read data from the PZEM 004T 10A module:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial pzemSerial(10, 11); // RX = pin 10, TX = pin 11
void setup() {
Serial.begin(9600); // Initialize Serial Monitor
pzemSerial.begin(9600); // Initialize PZEM communication
Serial.println("PZEM 004T 10A Energy Meter");
}
void loop() {
// Send command to request voltage data
byte voltageCommand[] = {0xB0, 0xC0, 0xA8, 0x01, 0x01, 0x00, 0x1A};
pzemSerial.write(voltageCommand, sizeof(voltageCommand));
delay(100); // Wait for response
// Read response from PZEM
if (pzemSerial.available()) {
Serial.print("Voltage: ");
while (pzemSerial.available()) {
byte data = pzemSerial.read();
Serial.print(data, HEX); // Print data in hexadecimal format
Serial.print(" ");
}
Serial.println("V");
}
delay(1000); // Wait 1 second before next reading
}
voltageCommand with appropriate commands to read other parameters (e.g., current, power).PZEM004T for easier integration and command handling.No Data Received from the Module:
Inaccurate Readings:
Module Not Powering On:
Communication Errors:
Q1: Can the PZEM 004T 10A measure DC circuits?
A1: No, the module is designed specifically for AC circuits within the 80V-260V range.
Q2: Can I use multiple PZEM modules with one microcontroller?
A2: Yes, but you will need to assign unique addresses to each module and use a multiplexer or separate UART channels.
Q3: Is the module compatible with Raspberry Pi?
A3: Yes, the module can be used with Raspberry Pi via UART communication. Use appropriate libraries for easier integration.
Q4: How do I reset the energy counter?
A4: Send the reset command (0x42) via UART to clear the energy counter.
By following this documentation, you can effectively integrate and use the PZEM 004T 10A energy meter in your projects.