An energy meter built with Arduino lets you monitor your household power consumption in real-time, track energy usage patterns, and identify which appliances are costing you the most on your electricity bill. In India, where electricity tariffs vary by slab and state, understanding your consumption helps you stay within cheaper slabs and save money. This project is especially useful alongside solar installations to track grid import vs solar generation.
Table of Contents
- Why Monitor Power Consumption?
- How the Energy Meter Works
- Components Needed
- Understanding CT Sensors
- Circuit Design
- Power and Energy Calculations
- Display and Dashboard Options
- Frequently Asked Questions
- Conclusion
Why Monitor Power Consumption?
Most Indian households only see their electricity consumption when the monthly bill arrives. By then, it is too late to adjust. A real-time energy meter provides:
- Live power reading: See exactly how many watts your house is consuming right now
- Daily/monthly tracking: Know your consumption trends without waiting for the bill
- Appliance identification: Turn appliances on and off to see their individual contribution
- Slab management: Indian tariffs increase dramatically at higher consumption slabs. Stay informed to stay in cheaper slabs.
- Solar monitoring: If you have solar panels, compare generation vs consumption and grid import vs export
How the Energy Meter Works
The energy meter uses a non-invasive current transformer (CT) sensor clamped around the main power line to measure current. Combined with a voltage measurement (either actual or assumed 230V), the Arduino calculates real-time power in watts and accumulates energy in kilowatt-hours (kWh) — the same unit your electricity board uses for billing.
Components Needed
- Arduino Uno or Nano: Main controller
- CT sensor (SCT-013-030): Non-invasive current transformer, 30A range
- 10uF capacitor: For CT sensor output conditioning
- 2 x 10K resistors: Bias voltage divider for CT sensor
- 33 ohm burden resistor: For voltage-output CT sensors
- 16×2 LCD or OLED display: For real-time power display
- RTC module (DS3231): For timestamped data logging
- SD card module: For saving usage data
- ESP32 (optional): For WiFi-connected web dashboard
Understanding CT Sensors
A current transformer (CT) is a split-core transformer that clamps around a wire without cutting or touching it. As AC current flows through the wire, it induces a proportional current in the CT’s secondary winding.
The SCT-013-030 is the most popular CT sensor for Arduino projects:
- Range: 0-30A AC
- Output: 0-1V AC (voltage output version) or proportional current (current output version)
- Non-invasive: clamps around the wire, no electrical contact
- Safe: electrically isolated from the mains
For most Indian homes with single-phase supply and main breaker up to 32A, the 30A CT sensor is ideal.
Circuit Design
CT Sensor Conditioning
The CT sensor outputs an AC signal centred around 0V. Since Arduino ADC cannot read negative voltages, we need to bias the signal to sit around 2.5V (mid-point of the 0-5V ADC range):
- Create a 2.5V bias using two 10K resistors as a voltage divider from the Arduino’s 5V rail
- Connect the CT output through a 10uF capacitor to this bias point
- Connect the bias point to an analog input (A0)
The analog reading will oscillate around 512 (2.5V mid-point). The amplitude of the oscillation represents the current magnitude.
Voltage Measurement (Optional)
For accurate power measurement (not just current), you also need voltage. Use a small AC-AC adapter (9V or 12V) to get a scaled version of the mains voltage, or simply assume 230V for approximate calculations.
Power and Energy Calculations
RMS Current
Since the CT output is AC, we need to calculate the RMS (Root Mean Square) value:
// Sample over one full AC cycle (20ms at 50Hz)
float sumSquares = 0;
int samples = 0;
unsigned long start = millis();
while (millis() - start < 20) {
float reading = analogRead(A0) - 512; // Remove bias
sumSquares += reading * reading;
samples++;
}
float rms = sqrt(sumSquares / samples);
float current = rms * calibrationFactor; // Convert to amps
Power Calculation
Apparent Power (VA) = Voltage x Current
Real Power (W) = Apparent Power x Power Factor
For Indian residential loads, assume a power factor of 0.85-0.95. Without voltage measurement, use: Power(W) = 230V x Current(A) x 0.9
Energy Accumulation
Energy (kWh) = Sum of (Power x Time interval) / 1000 / 3600
Log the accumulated kWh to EEPROM or SD card to survive power cycles.
Display and Dashboard Options
Local LCD Display
Show current power (W), today’s energy (kWh), and estimated cost (₹) on a 16×2 LCD. The cost calculation uses your local tariff slab rates.
Web Dashboard (ESP32)
For remote monitoring, use an ESP32 instead of Arduino and create a web server or send data to ThingSpeak, Blynk, or Home Assistant. View real-time and historical consumption from your phone anywhere.
Cost Calculation for Indian Tariffs
Indian electricity tariffs are slab-based. For example, in Maharashtra (MSEDCL residential, 2026):
- 0-100 units: ₹4.71/unit
- 101-300 units: ₹9.43/unit
- 301-500 units: ₹12.05/unit
- 501+ units: ₹14.16/unit
Programme these slabs into the Arduino to show real-time estimated bill amount.
Frequently Asked Questions
Is it safe to install a CT sensor on the mains wire?
Yes, CT sensors are non-invasive and electrically isolated. You clamp them around the insulated wire without cutting or stripping it. Never open the CT sensor while it is clamped on an energised wire — the secondary voltage can spike dangerously. Always clamp first, then energise.
Can I measure three-phase power?
Yes, by using three CT sensors (one on each phase wire) and three analog channels. Sum the power from all three phases for total consumption. Most Indian homes are single-phase, but commercial and industrial connections are three-phase.
How accurate is this compared to the electricity board meter?
With proper calibration, this Arduino energy meter achieves 2-5% accuracy, which is sufficient for monitoring and budgeting purposes. The electricity board’s meter is calibrated to 1% accuracy. Do not use this for billing disputes — it is a monitoring tool.
Conclusion
Building an Arduino energy meter gives you unprecedented visibility into your household power consumption. Combined with a solar installation, it helps you maximise self-consumption and minimise grid import. The project cost is under ₹1,500 for a basic setup with LCD display. Find Arduino boards, current sensors, OLED displays, and all components at Zbotic’s online store.
Add comment