

A KWH meter, also known as an energy meter, measures the amount of electrical energy consumed by a residence, business, or an electrically powered device. It records energy usage in kilowatt-hours (KWH), which is a standard unit of energy. This measurement is essential for billing purposes, energy monitoring, and efficient power management.








Below are the general technical specifications for a typical KWH meter. Note that specific models may vary slightly in their ratings and features.
| Parameter | Specification |
|---|---|
| Voltage Rating | 110V - 240V AC |
| Current Rating | 5A - 100A (varies by model) |
| Frequency | 50Hz / 60Hz |
| Accuracy Class | Class 1.0 or Class 2.0 |
| Power Consumption | ≤ 2W / 10VA |
| Measurement Range | 0 - 99999.9 kWh |
| Display Type | LCD or LED |
| Communication Interface | RS485, Modbus, or wireless (optional) |
| Operating Temperature | -20°C to +60°C |
| Storage Temperature | -25°C to +70°C |
| Humidity | ≤ 95% (non-condensing) |
The pin configuration for a KWH meter typically includes terminals for power input, load connection, and communication. Below is a general example:
| Pin Number | Label | Description |
|---|---|---|
| 1 | L (Line) | Live wire input for power supply. |
| 2 | N (Neutral) | Neutral wire input for power supply. |
| 3 | L (Load Line) | Live wire output to the load. |
| 4 | N (Load Neutral) | Neutral wire output to the load. |
| 5 | RS485 A | RS485 communication line A (optional). |
| 6 | RS485 B | RS485 communication line B (optional). |
Wiring the KWH Meter:
Powering On:
Reading the Display:
Optional Communication:
If your KWH meter supports RS485 communication, you can use an RS485-to-TTL module to interface it with an Arduino UNO. Below is an example code snippet to read data from the meter:
#include <ModbusMaster.h>
// Create an instance of the ModbusMaster library
ModbusMaster node;
// Define the RS485 communication pins
#define RE_DE_PIN 2 // Pin to control RS485 module (RE/DE)
// Function to control RS485 module direction
void preTransmission() {
digitalWrite(RE_DE_PIN, HIGH); // Enable transmission mode
}
void postTransmission() {
digitalWrite(RE_DE_PIN, LOW); // Enable reception mode
}
void setup() {
// Initialize serial communication
Serial.begin(9600);
Serial.println("KWH Meter Reading");
// Initialize RS485 control pin
pinMode(RE_DE_PIN, OUTPUT);
digitalWrite(RE_DE_PIN, LOW);
// Initialize Modbus communication
node.begin(1, Serial); // Set Modbus ID to 1
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
}
void loop() {
uint8_t result;
uint16_t data[2];
// Read energy consumption (e.g., register 0x0000)
result = node.readInputRegisters(0x0000, 2);
if (result == node.ku8MBSuccess) {
// Combine two 16-bit registers into a 32-bit value
uint32_t energy = (data[0] << 16) | data[1];
Serial.print("Energy Consumption: ");
Serial.print(energy);
Serial.println(" kWh");
} else {
Serial.println("Failed to read data from KWH meter.");
}
delay(1000); // Wait 1 second before the next reading
}
0x0000 with the correct register address for energy consumption as per your meter's datasheet.No Display or Power:
Incorrect Readings:
Communication Failure:
Meter Overheating:
By following this documentation, you can effectively use a KWH meter for energy monitoring and management in various applications.