How to Build an AC Power Monitor Using Arduino and ACS712

Electricity is a mystery. We use it, we pay for it, but do we really understand how much each device is consuming? Ever felt like your electricity bill was higher than it should be, but you couldn’t pinpoint the culprit? Well, my friend, today we’re gonna unmask those energy-hogging appliances by building an AC Power Monitor using Arduino and ACS712!

This little DIY project is like giving your home X-ray vision for power usage. You’ll be able to measure voltage, current, and power consumption in real time. And, as a bonus, it’s fun to build. Seriously, watching numbers change on a screen never felt more satisfying.

AC power monitor systemFigure: Prototype of AC Power Monitor using Arduino

What’s the Plan?

We’re making a simple AC power monitoring system using an Arduino Nano, an ACS712 5A current sensor, a voltage sensor module, and an OLED display. Once it’s up and running, you’ll have a real-time energy meter, just like those expensive smart meters—except you built it yourself!

By the end of this project, you’ll be able to:

  1. Measure AC Voltage (like checking howfulla river is before stepping in).
  2. Measure AC Current (think of it as knowing how fast the river is flowing).
  3. Calculate Power (Watts) (because volts x amps = power).
  4. See it all on an OLED display in real-time.

Quick Note: AC voltage measurement is tricky (you can’t just stick your Arduino into a wall socket—unless you wanna BBQ your board). We’re doing it safely, but if you want a deeper dive into the process, check this:

How to Measure AC Voltage Using Arduino Without Transformer

Stuff You’ll Need

  • Arduino Nano (or Uno, but Nano fits nicely on a small PCB).
  • ACS712 5A Current Sensor (because guessing current is not an option).
  • Voltage Sensor Module (so we don’t fry the Arduino).
  • OLED Display (128×64, I2C) (real-time data, baby!).
  • A Light Bulb or Fan (AC Load) (something to test with).
  • Breadboard & Jumper Wires (because floating components are not a vibe).

Wiring Everything Up

ac power monitor using arduino

Here’s how the magic connects:

  • ACS712 Current Sensor:
    • IP+ / IP- → Connect in series with the live wire.
    • VCC → Arduino 5V, GND → Arduino GND.
    • OUT → Arduino A0 (Reads current).
  • Voltage Sensor Module:
    • VCC → Arduino 5V, GND → Arduino GND.
    • OUT → Arduino A1 (Reads voltage).
  • OLED Display (I2C Communication):
    • SDA → A4 (Arduino), SCL → A5 (Arduino).
    • VCC → 5V, GND → GND.

The Code That Brings It All to Life

This is where the numbers start dancing. Upload the code below, and your power monitor will be ALIVE.

Tuning the Offset for Accuracy

Here’s a common mistake people make:

They upload the code, look at the Serial Monitor, and go, Why is it showing 0.10A when no load is connected?”

That’s because the ACS712 has an idle offset (it doesn’t start at exactly 2.5V).

How to Fix It?

  1. Remove all load (disconnect any appliance).
  2. Check Serial Monitor.
  3. If the current is not precisely 0.00A, adjust:

Bingo! Now, your readings are accurate.

AC power monitor with loadFigure: AC Power Monitoring with Load

Final Thoughts

You just built a working Arduino AC Power Monitor! How cool is that?

Now, you can track your power consumption, optimize energy use, and impress your friends.

So what’s next? Maybe

  • Send this data wirelessly using ESP32.
  • Log it to an SD card?
  • Make a full home energy monitoring system.

Whatever it is, keep building, keep learning, and keep having fun!

Comment below if you built this, I’d love to hear your experience!

Leave a Comment