URJA: Smart Energy Monitoring Solution

IoT
February 2025 GitHub Live Demo

A comprehensive IoT-based energy monitoring dashboard that helps users track, analyze, and optimize their energy consumption in real-time

Technologies

IoT ESP32 Flutter Firebase MQTT Arduino Cloud Functions

Urja (ऊर्जा - “Energy”)

IoT-Based Smart Energy Monitoring and Control System

Biju Patnaik University of Technology, Odisha


Overview

Urja transforms household energy management by providing real-time monitoring and intelligent control of electrical consumption. Built on proven IoT architecture, it addresses critical problems like energy theft, improper power factor management, and unexpected blackouts through a seamless hardware-software ecosystem.

The system empowers users with granular insights into their energy usage patterns while offering predictive alerts and cost optimization—making energy efficiency accessible to both residential and industrial applications.

Tech Stack

  • Hardware: ESP32, PZEM-004T sensor, I2C LCD display
  • Backend: Firebase Cloud Database
  • Mobile: Flutter/Dart (Android/iOS)
  • Connectivity: Wi-Fi, Cloud-based data sync
  • Data Visualization: Real-time charts and historical analytics

Key Features

Core Monitoring

  • Real-time tracking of voltage, current, and power factor
  • Multi-device support with individual appliance monitoring
  • Dual operation modes: Offline local display + Online cloud sync
  • Historical data analysis with trend visualization

Smart Alerts & Control

  • Sudden consumption spikes detection and notifications
  • Power theft identification through anomaly detection
  • Blackout predictions based on consumption patterns
  • Bill budgeting with cost forecasting

User Experience

  • Clean mobile dashboard with intuitive energy insights
  • Graph/Table toggle for data preferences
  • Device categorization (Cooler, Heater, Bulb & Fan, Desktop)
  • Cloud-first architecture ensuring data persistence

Hardware Architecture

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   PZEM-004T     │───▶│     ESP32        │───▶│   Firebase      │
│   Sensor        │    │   Controller     │    │   Cloud         │
│ (V,I,PF Monitor)│    │                  │    │                 │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                              │                          │
                              ▼                          ▼
                       ┌─────────────────┐    ┌─────────────────┐
                       │   I2C LCD       │    │   Mobile App    │
                       │   Local Display │    │   (Flutter)     │
                       └─────────────────┘    └─────────────────┘

Code Snippet: Sensor Data Processing

// ESP32 - Energy monitoring core
void readEnergyData() {
    voltage = pzem.voltage();
    current = pzem.current();
    power = pzem.power();
    powerFactor = pzem.pf();
    
    if(!isnan(voltage) && !isnan(current)) {
        // Local display update
        updateLCD(voltage, current, power);
        
        // Cloud sync if connected
        if(WiFi.status() == WL_CONNECTED) {
            sendToFirebase({
                "timestamp": millis(),
                "voltage": voltage,
                "current": current,
                "power": power,
                "pf": powerFactor
            });
        }
    }
}

How It Works

  1. Data Acquisition: PZEM-004T sensor continuously monitors electrical parameters
  2. Local Processing: ESP32 processes data and displays on LCD screen (offline mode)
  3. Cloud Synchronization: Real-time data push to Firebase when internet available
  4. Mobile Interface: Flutter app fetches cloud data for visualization and analytics
  5. Smart Analysis: Algorithm detects anomalies, predicts issues, sends notifications

Screenshots

Dashboard Overview Main dashboard showing real-time energy consumption with device breakdown

Device Monitoring The hardware that does individual appliance tracking with historical data and power status

Addressing Real Problems

ProblemSolution
Energy TheftAnomaly detection in consumption patterns
Poor Power FactorReal-time PF monitoring with optimization alerts
Bill ShockPredictive budgeting and consumption forecasting
Blackout ManagementEarly warning system based on grid patterns
Usage AwarenessGranular appliance-level insights

Future Scope

  • Machine Learning integration for predictive maintenance
  • Solar panel compatibility with bi-directional energy flow
  • Smart home automation with device control capabilities
  • Multi-premise support for commercial applications
  • Energy trading marketplace integration
  • Voice assistant compatibility (Alexa, Google Home)
  • Advanced analytics with seasonal pattern recognition

Sustainability Impact

Urja promotes energy consciousness through transparent consumption visibility, helping reduce carbon footprints while optimizing costs. The modular design ensures longevity and minimal electronic waste.


Built with ❤️ for sustainable energy management

Tags: IoT Energy Monitoring ESP32 Flutter Firebase Smart Home Sustainability

Have a wild project idea?

I'm open to collaboration!