InstrumentationPublished Paper3 citations

IoT Load Monitoring for Hybrid Plants

ESP32 TTGO SIM800L monitoring system for wind-solar hybrid power plants. Real-time fault detection via GSM, Android dashboard, and predictive maintenance for remote agricultural installations.

Full Citation
IoT-based load monitoring system for wind-solar hybrid power plants with GSM connectivity
Bulletin of Electrical Engineering and Informatics (BEEI) · 2023 · 3 citations

The Problem

Hybrid renewable energy systems in remote agricultural locations typically operate without any oversight. When a solar panel fails, a wind turbine bearing seizes, or a battery drops below safe voltage, nobody knows until the next site visit — which could be days or weeks later. By then, batteries may be permanently damaged, crops may have lost irrigation, and repair costs multiply.

Site visits for status checks are expensive and time-consuming. For agricultural applications where hybrid plants power critical irrigation pumps, undetected failures can mean crop loss. A real-time monitoring system that transmits data from remote sites to a central dashboard would enable proactive maintenance and continuous operational awareness.

The challenge for remote installations is connectivity: these sites lack WiFi and often have marginal cellular coverage. The solution must work with basic GSM/GPRS data, operate reliably on solar power, and present information in an accessible format — in this case, an Android app designed for farmers and field technicians.

The System

The monitoring system is built around the ESP32 TTGO SIM800L development board, which integrates a dual-core ESP32 microcontroller with a SIM800L GSM/GPRS module on a single PCB. This eliminates the need for separate communication hardware and reduces power consumption compared to WiFi-based alternatives.

Sensors measure PV array voltage and current (via INA219 or voltage divider + ACS712), wind turbine output (AC rectified to DC for measurement), battery voltage and temperature (via voltage divider + DS18B20), and total load consumption. The ESP32 firmware samples all channels, timestamps readings with NTP-synced time, packages data into JSON, and transmits to a cloud database (Firebase or similar) via GPRS at configurable intervals.

The Android companion app provides a farmer-friendly dashboard showing real-time power generation (solar + wind separately), battery state of charge with percentage and voltage, load consumption trend, and GSM signal strength. Alert thresholds trigger notifications for low battery, over-current, or communication failures.

System architecture spans four layers: sensor hardware -> ESP32 firmware -> GSM/cloud bridge -> Android visualization. The design prioritizes low power consumption (deep sleep between transmissions), robust error handling (retry logic for failed GSM transmissions), and offline buffering (local storage for data during connectivity gaps).

System Architecture
1
PV Array
Voltage divider + ACS712 current sensor
2
Wind Turbine
Rectified AC measurement
3
Battery Bank
Voltage divider + DS18B20 temperature
4
ESP32 TTGO SIM800L
Dual-core MCU + GSM/GPRS module
5
Cloud Database
Firebase / custom REST endpoint
6
Android App
Real-time dashboard + alert notifications

Results

The IoT system enabled detection of system faults within minutes rather than days. Battery under-voltage events triggered immediate alerts, preventing deep discharge damage that previously went unnoticed between quarterly site visits. Battery damage incidents were reduced by approximately 60% compared to the pre-monitoring baseline.

Remote monitoring eliminated roughly 70% of unnecessary site visits for routine status checks. Technicians could verify system health from the Android app before dispatching a field team, focusing in-person visits on actual maintenance needs.

The Android app provided farmers with visibility into energy availability for irrigation scheduling. Knowing the battery state of charge let them plan pump operation during peak solar hours, improving water management and reducing diesel generator backup usage.

Performance Metrics
< 5 min
Fault detection
~60%
Battery damage reduction
~70%
Site visits eliminated
GSM/GPRS
Connectivity
3
Citations

Implementation

The ESP32 firmware is written in Arduino C/C++ using the TinyGSM library for GPRS connectivity and ArduinoJson for payload construction. The main loop reads all sensor channels, applies calibration constants, constructs a JSON payload, and transmits via HTTP POST to the cloud endpoint.

Power management uses ESP32 deep sleep between transmission cycles to conserve battery. A watchdog timer resets the system if the GSM module hangs during transmission — a common failure mode in marginal-signal areas. NTP time synchronization ensures all data points carry accurate timestamps for time-series analysis.

The Android app was built with Java/Kotlin using standard Android SDK components. It polls the cloud database for latest readings, renders a simple dashboard with gauge-style widgets, and uses Android's notification system for threshold alerts. The UI was designed for outdoor visibility with large text and high-contrast colors.

Technology Stack
Firmware Language
C/C++ (Arduino)
App Language
Java/Kotlin (Android)
Hardware
ESP32 TTGO SIM800L
Connectivity
GSM/GPRS