Welcome to Kerala Project Center.

Home Energy Monitor

Home Energy Monitor

Bank of electricity meters measuring household energy use

Image: India - Kolkata electricity meters - 3832.jpg by Jorge Royan via Wikimedia Commons, CC BY-SA 3.0

Monthly electricity bills show total consumption after the fact, with no visibility into which appliances or habits are actually driving the cost, making it hard to change behavior in a targeted way.

This project uses a current sensor (ACS712) to measure real-time electrical current draw, calculating instantaneous power consumption and displaying it on an LCD or transmitting it to a cloud platform for ongoing tracking, giving the user live feedback rather than waiting for a monthly total.

How It Works

  • An ACS712 Hall-effect current sensor is wired in series with the load circuit, outputting an analog voltage proportional to current draw.
  • The Arduino reads this voltage, converts it to amperes, and multiplies by the known/measured voltage to calculate real-time power in watts.
  • Running power readings are integrated over time to estimate energy consumption (kWh), shown on an LCD or logged to a cloud platform.
  • Comparing readings across different times of day highlights which usage patterns actually drive consumption.

Components



Arduino Uno / ESP8266 (for cloud variant)
ACS712 current sensor module
16x2 LCD display
Optional: IoT platform (ThingSpeak/Blynk) for cloud logging
Appropriate mains-safety enclosure


Applications

  • Residential energy consumption tracking
  • Identifying high-consumption appliances
  • Small office/lab energy audits

Advantages

  • Gives real-time feedback instead of a delayed monthly total
  • Helps identify specific high-consumption habits or appliances
  • Cloud variant enables tracking trends over days or weeks

Sample Code — Current-to-Power Calculation



// Simplified ACS712 power monitoring - Arduino
int acs712Pin = A0;
float sensitivity = 0.185; // V/A, for ACS712-05B variant
float acVoltage = 230.0;   // assumed mains voltage

void setup() {
  Serial.begin(9600);
}

void loop() {
  int raw = analogRead(acs712Pin);
  float voltage = (raw / 1023.0) * 5.0;
  float current = (voltage - 2.5) / sensitivity; // 2.5V = zero-current midpoint
  float power = abs(current) * acVoltage;

  Serial.print("Power: ");
  Serial.print(power);
  Serial.println(" W");
  delay(1000);
}


Related Research


Hours

Monday - Saturday: 9:00 AM - 5:00 PM
Sunday: Not Working

Location

2nd Floor, Comptron Arcade, Kallattumukku,
Thiruvananthapuram, Kerala 695012

Book Now

+91 9633118080