DIY Energy Monitoring House: A Fun Robotics Project for Kids

DIY Energy Monitoring House: A Fun Robotics Project for Kids
🤖 Robotics Project · Ages 11+

Build an Energy Monitoring House!

A model smart house that watches every room's electricity use, shows it live on a tiny screen, and switches itself off the moment something draws too much power — just like a real smart home.

⏱️ A weekend project 🧩 Intermediate 🏠 4 rooms 👨‍👩‍👧 Adult help needed for wiring

🧰 What You'll Need

This model uses four rooms as an example — a dollhouse or cardboard model house works perfectly.

🔷

Arduino Uno (1x)

Reads every room's sensor and runs the dashboard.

🔋

ACS712 current sensor modules (4x)

One per room, measuring how much current that room is using.

🔌

5V relay modules (4x)

One per room, able to cut power automatically on overload.

💡

Small LEDs or hobby motors (4x)

Stand in for each room's "appliance" — always low-voltage, battery powered.

📟

0.96" I2C OLED display (1x)

Your live power dashboard, showing each room's readings.

🔘

Push button (1x)

Cycles the dashboard between rooms.

🔔

Small piezo buzzer

Beeps when a room is automatically shut off.

🔋

Battery pack (4–6V) for appliances

Powers the room loads — kept completely separate from mains electricity.

🏠

Model house with 4 rooms

Cardboard or foam board, divided into labelled rooms.

⚙️ How Does It Work?

Three things happen continuously, for every room, at the same time.

1. Sensors track current

Each room's ACS712 sensor measures the power flowing to it.

0.42A

2. Dashboard updates

The OLED screen shows live readings for the room you're viewing.

3. Overload = shut-off

If current is too high, that room's relay cuts power instantly.

Every room in the model has its own ACS712 current sensor sitting in that room's power line. As current flows through it, the sensor outputs a small voltage that rises and falls with how much power is being used — the Arduino reads this and converts it into an amps value.

The Arduino constantly checks each room's reading against a safe limit. If a room ever goes over that limit — imagine a fault or something left running too long — the Arduino immediately switches off that room's relay, instantly cutting its power, beeps the buzzer, and shows an alert on the OLED.

Pressing the button cycles the small screen through each room, so you always have a live "power dashboard" for the whole house.

Room 1 Room 2 Room 3 Room 4

🔌 The Circuit Diagram

Each room has its own current sensor and relay, and all four report back to one Arduino and one OLED dashboard.

Arduino Uno USB A0–A3 sensors, D4–D7 relays 4x ACS712 Sensors OUT → A0, A1, A2, A3 4x Relay Modules IN → D4, D5, D6, D7 4x Room Loads LEDs / hobby motors, low-voltage Battery Pack (4–6V) powers the room loads only OLED Dashboard I2C — A4 / A5 Button pin 8 Buzzer pin 9
Arduino PinConnects ToNotes
A0 – A3Each room's ACS712 OUT pinOne analog pin per room
D4 – D7Each room's relay IN pinOne digital pin per room
A4 / A5OLED SDA / SCLShared I2C dashboard display
Pin 8Push buttonUse `INPUT_PULLUP`, cycles the room view
Pin 9BuzzerBeeps on an auto shut-off
Relay COM / NO contactsBattery pack → room loadCuts the low-voltage load's power, never mains

🛠️ Let's Build It — Step by Step

Build the model house

Divide a cardboard or foam-board box into four labelled rooms, leaving space to mount the sensors and relays out of sight.

Add each room's load

Place a small LED or hobby motor in each room to represent its "appliance," wired to the battery pack through that room's relay.

Wire the current sensors

Connect each ACS712 module in series with its room's load wiring, and its OUT pin to the matching Arduino analog pin.

Wire the relays

Connect each relay's IN pin to its Arduino digital pin, with its switching contacts controlling that room's load power.

Add the OLED, button, and buzzer

Wire the OLED over I2C, the button with a pull-up, and the buzzer to its digital pin.

Upload the code

Flash the sketch from the next section using the Arduino IDE, after installing the required libraries.

Calibrate the sensors

With all loads off, check that each sensor reads close to zero amps, and adjust the code's zero-point if needed.

Test the dashboard

Turn on each room's load, watch its current appear on the OLED, and press the button to cycle between rooms.

💻 Time to Code!

This sketch reads every room's current, updates the OLED dashboard, and shuts off any room that goes over its safe limit.

Install the Adafruit GFX and Adafruit SSD1306 libraries from the Library Manager, then upload this sketch to your Arduino Uno.

// Energy Monitoring House
// Tracks current in 4 rooms, shows a live dashboard, and auto shuts-off overloads

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

#define NUM_ROOMS 4
const int currentPins[NUM_ROOMS] = {A0, A1, A2, A3};
const int relayPins[NUM_ROOMS]   = {4, 5, 6, 7};
const char* roomNames[NUM_ROOMS] = {"Living Room", "Kitchen", "Bedroom", "Bathroom"};

#define BUTTON_PIN 8
#define BUZZER_PIN 9

const float sensitivity  = 0.185;  // volts per amp, for a 5A ACS712 module
const float currentLimit = 2.0;    // auto shut-off threshold, in amps

bool roomOn[NUM_ROOMS] = {true, true, true, true};
int currentRoomView = 0;

void setup() {
  for (int i = 0; i < NUM_ROOMS; i++) {
    pinMode(relayPins[i], OUTPUT);
    digitalWrite(relayPins[i], HIGH);  // HIGH = relay ON (check your module — some are active LOW)
  }
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  pinMode(BUZZER_PIN, OUTPUT);

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextColor(SSD1306_WHITE);
}

float readCurrent(int pin) {
  int raw = analogRead(pin);
  float voltage = (raw / 1023.0) * 5.0;
  float amps = (voltage - 2.5) / sensitivity;  // 2.5V = zero current for this sensor
  return abs(amps);
}

void loop() {
  for (int i = 0; i < NUM_ROOMS; i++) {
    float amps = readCurrent(currentPins[i]);
    if (amps > currentLimit && roomOn[i]) {
      shutOffRoom(i);
    }
  }

  if (digitalRead(BUTTON_PIN) == LOW) {
    currentRoomView = (currentRoomView + 1) % NUM_ROOMS;
    delay(250);  // simple debounce
  }

  updateDashboard();
  delay(200);
}

void shutOffRoom(int room) {
  roomOn[room] = false;
  digitalWrite(relayPins[room], LOW);  // cut that room's power
  tone(BUZZER_PIN, 1000, 400);

  display.clearDisplay();
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.print("OVERLOAD!");
  display.setCursor(0, 20);
  display.print(roomNames[room]);
  display.setCursor(0, 40);
  display.print("Auto shut-off");
  display.display();
  delay(1500);
}

void updateDashboard() {
  int r = currentRoomView;
  float amps = readCurrent(currentPins[r]);

  display.clearDisplay();
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.print(roomNames[r]);
  display.setCursor(0, 20);
  display.print("Current: ");
  display.print(amps, 2);
  display.print(" A");
  display.setCursor(0, 40);
  display.print(roomOn[r] ? "Status: ON" : "Status: OFF");
  display.display();
}
Tip: Different ACS712 modules have different sensitivity values (0.185, 0.100, or 0.066 V/A) — check your module's rating and update the code to match.
Tip: Relay boards vary too — some switch ON with HIGH, others with LOW. Test yours before wiring the loads.
Challenge: Add a fifth "total house" reading that adds up all four rooms' current on one dashboard screen.

🛡️ Safety First

⚠️

Never connect this project to real household mains electricity.

  • Only use low-voltage, battery-powered loads (small LEDs or hobby motors) for every room in the model.
  • Real home energy monitoring uses special current-transformer (CT) clamps installed by a licensed electrician — never attempt to wire into your home's actual electrical panel.
  • Ask an adult to help with wiring the sensors, relays, and battery pack.
  • Double-check relay wiring before powering on, since a wrongly wired relay can stay on instead of switching off.
  • Disconnect the battery pack before changing any wiring.

✨ Fun Energy Facts

A little knowledge to share while your dashboard tracks the house.

📊

Real "smart meters" track a whole home's electricity use and send readings straight to the power company.

⚡

Current is measured in amps, while the total power used is measured in watts — power equals volts times amps.

🌍

Monitoring energy use is one of the easiest ways to spot waste and save electricity at home.

🔌

Circuit breakers in a real home do a similar job to this project's relays — cutting power automatically when something's wrong.

❓ Frequently Asked Questions

How does a current sensor measure electricity use?

The ACS712 sits in the power line and outputs a voltage that changes with how much current is flowing through it. The Arduino reads that voltage and converts it into an amps value.

How does the auto shut-off feature work?

The Arduino compares each room's current reading to a safe limit. If a reading goes over that limit, it instantly switches off that room's relay and shows an alert on the OLED.

Is it safe for kids to build this project?

Yes, as long as it only controls low-voltage, battery-powered loads. It should never be wired into real household mains electricity — that's a job for a licensed electrician.

What does the OLED dashboard show?

It displays the current room's name, its live current reading in amps, and whether that room's power is on or has been automatically shut off.

⚡
Made with ♥ for young makers who care about saving energy. Share your dashboard with #WattWatchersLab!

Comments

Product Cards
Buddy Bot eBook
⭐ New 2026 Release
Build Your
Own Robot!
3D design, wiring &
Arduino coding.
★★★★★ Young inventors love it!
🖨️
3D Print
All parts
⚡
Wire it
Circuit guide
💻
Code it
Arduino IDE
🤖
Watch it
Walk & react
📋 Your Details
Enter your name
Valid 10-digit no.
Enter a valid email
Special Website Offer
₹499 ₹300
🌍 International: $5 USD
One-time · Instant digital delivery
🔒 Secured by Razorpay · Your data is safe
📄 Download Free Sample Copy
🔒 Secured by Razorpay · Your data is safe
🍓
Raspberry Pi Pico Mastery
21 Projects
⚡ Launch Price — 80% OFF
Learn Pico
Build 21 Projects!
MicroPython · Wokwi
IoT · Certificate
★★★★★ Perfect for beginners!
🖥️
Wokwi
No hardware
🐍
MicroPy
From zero
🔨
21 Projects
IoT + sensors
📄
Certificate
Verified cert
📋 Your Details
Enter your name
Valid 10-digit no.
Enter a valid email
Special Launch Offer
₹999 ₹200 80% OFF
🌍 International: $5 USD
One-time · Lifetime access · No subscription
🔒 Secured by Razorpay · UPI · Cards · NetBanking
🎉

You're in!

Payment successful! Your Buddy Bot eBook is ready. Time to build!

📖 Access Your eBook Now
🎉

Enrolled!

Payment successful! Lifetime access to all 21 Pico Projects is yours!

🍓 Go to My Course