Arduino Energy Monitoring Project with ZMCT103C

⚙️Measure Real-Time Power Consumption Safely and Smartly

If you’ve ever wondered how much power your gadgets really use — this project is for you!
Using the ZMCT103C 5A Current Sensor (HW670 module) and an Arduino Uno, you can build a simple energy monitor that reads current draw and calculates power usage in real time.

It’s safe, educational, and a great way to explore IoT energy tracking.

“In this project, your Arduino becomes a mini power meter — no electrician’s license required.”


🧰 What You’ll Need

ComponentDescription
Arduino UnoMain controller board
ZMCT103C HW670 SensorAC current transformer module
LCD Display (16×2 or I2C)To show live readings
Resistor / Calibration LoadFor testing and scaling
Jumper Wires + BreadboardFor safe connections
AC Load (Lamp or Fan)Example current source

⚙️ Wiring the Circuit

HW670 PinArduino PinDescription
VCC5VPower to the sensor board
OUTA0Reads analog voltage output
GNDGNDCommon ground reference
LCD SDA / SCLA4 / A5I²C connection for display

“Double-check connections — remember, we’re measuring AC current indirectly. Keep mains wiring separate and insulated.”


💻 Example Arduino Sketch

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);
int sensorPin = A0;
float calibrationFactor = 0.050; // Adjust after calibration

void setup() {
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  lcd.print("Energy Monitor");
  delay(2000);
  lcd.clear();
}

void loop() {
  int rawValue = analogRead(sensorPin);
  float voltage = (rawValue / 1023.0) * 5.0;
  float current = voltage / calibrationFactor;  // Convert to amps
  float power = current * 120.0;                // Assuming 120V AC
  
  lcd.setCursor(0, 0);
  lcd.print("I: ");
  lcd.print(current, 2);
  lcd.print(" A   ");

  lcd.setCursor(0, 1);
  lcd.print("P: ");
  lcd.print(power, 1);
  lcd.print(" W   ");

  Serial.print("Current: ");
  Serial.print(current);
  Serial.print(" A, Power: ");
  Serial.print(power);
  Serial.println(" W");
  
  delay(1000);
}

✅ Displays current (A) and power (W) on the LCD
✅ Sends real-time readings to the Serial Monitor


🧮 Calibration Tips

To calibrate:
1️⃣ Plug in a known load (like a 60W bulb).
2️⃣ Compare expected current (≈0.5A @120V) to your displayed current.
3️⃣ Adjust the calibrationFactor until values match closely.

Once set, your readings will be accurate for most household devices within 5A.


📊 Optional Add-Ons

  • 🔹 Add an SD card module for data logging
  • 🔹 Use an ESP32 to send data to a web dashboard
  • 🔹 Include a ZMPT101B voltage sensor for full wattage and energy (kWh) calculation
  • 🔹 Display running cost based on your electricity rate

“With a few tweaks, this simple circuit becomes a full-blown smart energy meter.”


🧠 What You’ll Learn

  • How to safely measure AC current with isolation
  • How analog sensors translate physical signals into digital data
  • How to calculate power and energy
  • How to display live readings on an LCD
  • How to calibrate and scale real-world measurements

💬 In Simple Terms

“This project turns an Arduino, a few wires, and a current sensor into your own energy detective — tracking what’s really powering your home.”

It’s an easy, hands-on way to learn about electrical measurement, sensor calibration, and embedded monitoring.