

An Energy Meter is a device used to measure the amount of electrical energy consumed by a residence, business, or an electrically powered device. It provides accurate readings of energy usage, typically in kilowatt-hours (kWh), and is essential for monitoring and managing electricity consumption. Energy meters are widely used in residential, commercial, and industrial applications to track energy usage for billing, energy efficiency, and load management purposes.








Below are the key technical details of a typical energy meter:
| Parameter | Specification |
|---|---|
| Voltage Range | 110V - 240V AC |
| Current Range | 0A - 100A |
| Frequency | 50Hz / 60Hz |
| Power Measurement Range | 0W - 22kW |
| Accuracy Class | ±1% |
| Communication Protocol | RS485, Modbus, or IoT (Wi-Fi, Zigbee) |
| Display Type | LCD/LED |
| Power Supply | Self-powered or external (e.g., 5V DC) |
| Operating Temperature | -20°C to 60°C |
| Dimensions | Varies by model (e.g., 100mm x 70mm x 50mm) |
The pin configuration of an energy meter depends on its type (e.g., single-phase or three-phase). Below is an example of a single-phase energy meter:
| Pin Name | Description |
|---|---|
| L (Line) | Connects to the live wire of the AC mains supply. |
| N (Neutral) | Connects to the neutral wire of the AC mains supply. |
| COM | Communication pin for RS485/Modbus (if applicable). |
| GND | Ground connection for communication or power. |
| VCC | External power supply input (if required). |
For three-phase energy meters, additional pins for Phase 2 (L2) and Phase 3 (L3) are included.
Wiring:
Load Connection:
Configuration:
Reading Energy Data:
If the energy meter supports Modbus communication, you can connect it to an Arduino UNO for data logging. Below is an example code snippet:
#include <ModbusMaster.h>
// Create an instance of the ModbusMaster library
ModbusMaster node;
// Define the RS485 communication pins
#define RE_PIN 2 // Receiver Enable pin
#define DE_PIN 3 // Driver Enable pin
void preTransmission() {
digitalWrite(RE_PIN, HIGH); // Enable transmission
digitalWrite(DE_PIN, HIGH);
}
void postTransmission() {
digitalWrite(RE_PIN, LOW); // Disable transmission
digitalWrite(DE_PIN, LOW);
}
void setup() {
// Initialize serial communication
Serial.begin(9600);
Serial.println("Energy Meter Reading");
// Initialize RS485 communication
pinMode(RE_PIN, OUTPUT);
pinMode(DE_PIN, OUTPUT);
digitalWrite(RE_PIN, LOW);
digitalWrite(DE_PIN, LOW);
// Configure 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;
// Read energy consumption (e.g., register 0x0000)
result = node.readInputRegisters(0x0000, 1);
if (result == node.ku8MBSuccess) {
data = node.getResponseBuffer(0);
Serial.print("Energy Consumption: ");
Serial.print(data);
Serial.println(" kWh");
} else {
Serial.println("Error reading energy meter");
}
delay(1000); // Wait 1 second before the next reading
}
No Display or Power:
Inaccurate Readings:
Communication Failure:
Overload Protection Triggered:
Q1: Can the energy meter measure DC power?
A1: Most energy meters are designed for AC power. For DC power measurement, use a DC energy meter.
Q2: How do I reset the energy meter readings?
A2: Refer to the user manual for reset instructions. Some meters have a physical reset button, while others require software commands.
Q3: Can I use the energy meter outdoors?
A3: Only if the meter is rated for outdoor use (e.g., IP65 or higher). Otherwise, install it in a weatherproof enclosure.
Q4: What is the lifespan of an energy meter?
A4: The typical lifespan is 10-15 years, depending on usage and environmental conditions. Regular maintenance can extend its life.