The PZEM-017 Small is a compact and versatile module designed for measuring various electrical parameters in AC circuits. This module can accurately measure voltage, current, power, and energy, making it an essential tool for monitoring and managing electrical systems. Its small size and ease of integration make it suitable for a wide range of applications, including home automation, industrial monitoring, and energy management systems.
Parameter | Value |
---|---|
Voltage Range | 80-260V AC |
Current Range | 0-100A (with external CT) |
Power Range | 0-22kW |
Energy Range | 0-9999kWh |
Frequency Range | 45-65Hz |
Accuracy | ±1% |
Communication | RS485 |
Power Supply | 5V DC |
Pin Number | Pin Name | Description |
---|---|---|
1 | VCC | Power supply input (5V DC) |
2 | GND | Ground |
3 | A | RS485 communication line A |
4 | B | RS485 communication line B |
5 | V+ | Voltage measurement input (connected to AC line) |
6 | V- | Voltage measurement input (connected to AC line) |
7 | I+ | Current measurement input (connected to CT) |
8 | I- | Current measurement input (connected to CT) |
Power Supply Connection:
Voltage Measurement:
Current Measurement:
Communication:
No Data Output:
Inaccurate Measurements:
Communication Errors:
Q1: Can the PZEM-017 Small measure DC parameters?
Q2: What is the maximum current the module can measure?
Q3: How do I reset the energy measurement?
Below is an example code to interface the PZEM-017 Small with an Arduino UNO using RS485 communication.
#include <SoftwareSerial.h>
// Define the RS485 communication pins
#define RX_PIN 10
#define TX_PIN 11
SoftwareSerial rs485Serial(RX_PIN, TX_PIN);
void setup() {
// Initialize serial communication
Serial.begin(9600);
rs485Serial.begin(9600);
// Print a message to indicate setup is complete
Serial.println("PZEM-017 Small Module Setup Complete");
}
void loop() {
// Request data from the PZEM-017 module
rs485Serial.write(0x01); // Example command to request data
// Wait for a response
delay(100);
// Check if data is available
if (rs485Serial.available()) {
// Read and print the data
while (rs485Serial.available()) {
byte data = rs485Serial.read();
Serial.print(data, HEX);
Serial.print(" ");
}
Serial.println();
}
// Wait before the next request
delay(1000);
}
This code sets up RS485 communication between the Arduino UNO and the PZEM-017 Small module. It sends a request to the module and prints the received data to the Serial Monitor. Adjust the command and data handling as per the specific requirements of your application.