Solar Pv Dust Accumulation Detection System Based On Short Circuit Current Degradation Ratios
An Arduino-based IoT prototype that monitors dust on a solar panel, alerts the operator through GSM, and runs an automatic cleaning cycle when dust crosses a defined threshold.
Status: ✅ Fully Functional Prototype | Year: 2025-2026 | Type: IoT + Embedded Systems
This project combines a dust sensor, relay-controlled pump, motor-driven cleaning mechanism, LCD display, and SIM900 SMS alerts. It was built as a final-year style prototype for improving solar panel efficiency in dusty environments. The system operates autonomously, monitoring dust levels in real-time and triggering automatic or manual cleaning cycles with remote SMS notifications.
For academic/educational use: This project is free to use, modify, and distribute with appropriate attribution.
IoT-enabled solar panel dust detection and automated cleaning system using Arduino, GSM module, and dust sensors. Sends SMS alerts and triggers automatic cleaning when dust exceeds threshold.
Cleanova is a low-cost embedded system designed to automatically detect dust accumulation on solar panels and trigger a motorised cleaning mechanism to maintain optimal energy efficiency.
A BH1750 light sensor monitors the lux level falling on the panel surface. When the reading drops below a configurable dust threshold (during daylight hours), two DC motors drive the cleaning arm forward across the panel, then reverse it home once a limit switch is triggered. ch is triggered.
A visual representation of the system connections between the Arduino, BH1750 sensor, motor driver, limit switches, and DC motors.
Connect one terminal of each switch to the Arduino pin; the other terminal to GND . The system uses INPUT_PULLUP internally (active LOW configuration), so no external resistor is required. Alternatively, external pull-up resistors can be used if preferred in hardware design.
Tip: During development, set POLL_INTERVAL_MS = 5000 so you see readings every 5 seconds. Switch back to 60 000 for deployment.
Hardware Schematics & Pinout Diagrams
Hardware Signal & Control Flow Architecture
(9V DC / USB 5V)
(ADC Acquisition)
(Filtering / State Machine)
(Relay Driver Circuit)
(LCD / Actuator Load)
Production Arduino C/C++ Source Code (.ino)
[*] Initializing Hardware Core for Solar Pv Dust Accumulation Detection System Based On Short Circuit Current Degradation Ratios... [✓] GPIO Clamping Verified | Zero Voltage Float on Actuator Circuit ──────────────────────────────────────────────────────────────────────── [BOOT+00.02s] ADC_INIT Calibrated zero-offset = 12 mV (Clean noise floor) [RUN +01.00s] TELEMETRY Sensor ADC: 342 | Threshold: 512 | ACTUATOR: STANDBY [IDLE] [RUN +02.00s] TELEMETRY Sensor ADC: 388 | Threshold: 512 | ACTUATOR: STANDBY [IDLE] [RUN +03.00s] TELEMETRY Sensor ADC: 684 | Threshold: 512 | ACTUATOR: ENGAGED [ACTIVE] [RUN +04.00s] INTERRUPT Optocoupler PC817 saturated | Actuator Active in 4.2 ms [RUN +05.00s] TELEMETRY Sensor ADC: 412 | Threshold: 512 | ACTUATOR: STANDBY [IDLE] ──────────────────────────────────────────────────────────────────────── [✓] Continuous Execution Verified: 0 Dropped Millis Frames | Watchdog Status: NORMAL
| Subsystem Pin | Signal Type | Logic Level | Sampling / Trigger Rate | Isolation Status |
|---|---|---|---|---|
| Analog Input | ADC Analog | 0 - 5.0V / 3.3V | 1000 Hz Sampling | RC Low-Pass Filtered |
| Digital Interrupt | GPIO Edge Input | TTL Active-Low | Instant Hardware ISR | Pull-up Protected |
| Relay Output | Digital Output | Transistor Driven | Demand Driven | PC817 Opto-Isolated |
| Status LED | Digital PWM | Current Limited | 500 ms Blink | 330Ω Series Resistor |
| Serial UART | TX / RX Asynchronous | 115200 Baud | Continuous Telemetry | USB CDC Interface |