The CT PZEM004T is a multifunctional energy meter designed to measure key electrical parameters such as voltage, current, power, energy, and frequency. It is specifically built to work with current transformers (CTs), making it ideal for monitoring AC electrical systems. This component provides real-time data, enabling users to analyze energy consumption and improve energy efficiency.
The CT PZEM004T is a versatile and reliable energy meter with the following key specifications:
Parameter | Specification |
---|---|
Voltage Range | 80V - 260V AC |
Current Range | 0A - 100A (with external CT) |
Power Range | 0W - 22kW |
Energy Range | 0kWh - 9999kWh |
Frequency Range | 45Hz - 65Hz |
Communication Protocol | Modbus RTU (RS485) |
Baud Rate | 9600 bps |
Accuracy | ±0.5% |
Operating Temperature | -10°C to 60°C |
Power Supply | Self-powered (from measured AC voltage) |
The CT PZEM004T module has the following pinout:
Pin Name | Description |
---|---|
V+ | AC voltage input (live wire) |
V- | AC voltage input (neutral wire) |
A+ | Current transformer (CT) input (primary side) |
A- | Current transformer (CT) input (secondary side) |
5V | Optional 5V DC power input (for external power supply, if required) |
GND | Ground connection for optional external power supply |
TX | RS485 communication output (transmit) |
RX | RS485 communication input (receive) |
Connect the Voltage Input:
V+
pin to the live wire of the AC system.V-
pin to the neutral wire of the AC system.Connect the Current Transformer (CT):
A+
and A-
pins of the PZEM004T.Power the Module:
5V
and GND
pins.Establish Communication:
TX
and RX
pins to connect the module to a microcontroller or RS485-to-USB adapter for data communication.Read Data:
Below is an example of how to interface the CT PZEM004T with an Arduino UNO using an RS485-to-TTL converter:
TX
pin of the PZEM004T to the DI
pin of the RS485 module.RX
pin of the PZEM004T to the RO
pin of the RS485 module.GND
pin of the PZEM004T to the GND
pin of the RS485 module.VCC
pin of the RS485 module to the 5V pin of the Arduino.GND
pin of the RS485 module to the GND pin of the Arduino.#include <ModbusMaster.h>
// Create an instance of the ModbusMaster library
ModbusMaster node;
// Define the RS485 enable pin
#define MAX485_DE 2
#define MAX485_RE 3
void preTransmission() {
digitalWrite(MAX485_DE, HIGH); // Enable RS485 driver
digitalWrite(MAX485_RE, HIGH);
}
void postTransmission() {
digitalWrite(MAX485_DE, LOW); // Disable RS485 driver
digitalWrite(MAX485_RE, LOW);
}
void setup() {
// Initialize serial communication
Serial.begin(9600);
Serial.println("PZEM004T Energy Meter Test");
// Initialize Modbus communication
node.begin(1, Serial); // Set Modbus ID to 1
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
// Configure RS485 enable pins
pinMode(MAX485_DE, OUTPUT);
pinMode(MAX485_RE, OUTPUT);
digitalWrite(MAX485_DE, LOW);
digitalWrite(MAX485_RE, LOW);
}
void loop() {
uint8_t result;
uint16_t data[6];
// Read voltage (register 0x0000)
result = node.readInputRegisters(0x0000, 1);
if (result == node.ku8MBSuccess) {
Serial.print("Voltage: ");
Serial.print(node.getResponseBuffer(0) / 10.0); // Convert to volts
Serial.println(" V");
}
delay(1000); // Wait 1 second before the next reading
}
No Data Output:
Incorrect Readings:
Communication Errors:
Q: Can the PZEM004T measure DC voltage or current?
A: No, the PZEM004T is designed specifically for AC systems and cannot measure DC parameters.
Q: How do I reset the energy counter?
A: The energy counter can be reset using a Modbus command. Refer to the module's datasheet for the specific command.
Q: Can I use multiple PZEM004T modules in the same system?
A: Yes, you can use multiple modules by assigning unique Modbus IDs to each device.
Q: What is the maximum cable length for RS485 communication?
A: RS485 supports cable lengths up to 1200 meters, but ensure proper termination resistors are used for long distances.