As fossil fuel alternatives gain prominence, solar energy has emerged as a key renewable source. With the rapid expansion of photovoltaic (PV) installations worldwide, maximizing power generation efficiency has become a critical research focus. Among various factors affecting performance, dust accumulation on solar panel surfaces—resulting from prolonged outdoor exposure—significantly reduces power output and lifespan. Traditional cleaning methods, such as periodic manual washing, are inefficient and labor-intensive, failing to address real-time soiling issues. To overcome these limitations, we propose an intelligent solar panel cleaning system that autonomously detects dust levels and initiates cleaning, thereby enhancing energy yield. This system integrates NB-IoT (Narrow Band Internet of Things) technology for remote cloud-based monitoring and control, enabling data analytics, fault alerts, and reduced operational costs. In this article, we detail the hardware and software design, analyze efficiency improvements, and present experimental results validating the system’s effectiveness.
The intelligent solar panel cleaning system comprises a host control unit and a computer-based monitoring platform. The host unit collects ambient light intensity and solar panel power generation data to assess dust accumulation. Based on predefined thresholds, it triggers cleaning mechanisms when necessary. During operation, parameters such as light intensity, power output, cleaning position, and system power status are transmitted via an NB-IoT module to a cloud platform. Users can access real-time data through web or mobile interfaces, monitor device status, and send remote control commands. This design facilitates proactive maintenance, minimizes human intervention, and optimizes solar panel performance. The overall system architecture is illustrated below, highlighting the integration of sensing, actuation, and communication modules.

Solar panel technology continues to evolve, with innovations like bifacial modules capturing light from both sides to boost efficiency. However, dust deposition remains a universal challenge, underscoring the need for automated cleaning solutions. Our system leverages low-power, wide-area NB-IoT connectivity to ensure reliable data transmission even in remote locations, making it suitable for small to medium-scale solar installations.
System Hardware Design
The hardware of the intelligent solar panel cleaning system is designed for robustness, accuracy, and energy efficiency. It includes a primary control module, light intensity detection circuit, power generation monitoring circuit, limit switch inputs, motor drive circuits, NB-IoT communication module, and a dedicated solar panel for system power. Below, we elaborate on each component.
Control Module
We selected the STM32F103C8T6 microcontroller as the core processor, featuring a 32-bit ARM Cortex-M3 core operating at up to 72 MHz. This chip offers multiple communication interfaces (USART, SPI, I2C, CAN), facilitating peripheral integration and future upgrades. The microcontroller manages data acquisition, motor control, and wireless communication. Its low-power capabilities align with the system’s energy-efficient design. Figure 2 (referenced in the original text) depicts the MCU circuit, but here we describe key connections: external 8 MHz crystal for clock generation, SWD interface for debugging, and GPIO pins allocated for sensors and actuators. The STM32F103 processes analog and digital inputs to compute dust levels and coordinate cleaning actions.
Light Intensity Detection
Accurate ambient light sensing is crucial for dust assessment. We employed the MAX44009 digital ambient light sensor from Maxim Integrated, which provides I2C output with 22-bit dynamic range and a resolution of 0.045 lux. Its built-in filters mitigate infrared and ultraviolet interference, ensuring reliable measurements. The sensor connects to the microcontroller via I2C, and an interrupt pin alerts the system to significant light changes. By comparing the ratio of light intensity to solar panel output voltage under clean and dusty conditions, the system derives a dustiness index. The circuit design includes proper pull-up resistors and decoupling capacitors for stable operation. The light intensity $I_{\text{light}}$ is read periodically and used in the following relationship to estimate soiling:
$$ \text{Dustiness Factor} = \frac{V_{\text{output, clean}} / I_{\text{light, clean}}}{V_{\text{output, dirty}} / I_{\text{light, dirty}}} $$
where $V_{\text{output}}$ is the solar panel voltage. A higher factor indicates greater dust accumulation, triggering cleaning.
Motor Drive Circuit
The cleaning mechanism involves three DC motors for horizontal movement, vertical movement, and roller rotation. We used two MPC17529 H-bridge driver chips from NXP to control motor direction and speed via PWM signals. The microcontroller outputs logic levels to enable forward/reverse motion and adjusts duty cycles for speed control. This allows precise positioning of the cleaning assembly across the solar panel surface. The drive circuit includes protection diodes and current-sensing resistors to prevent overload. Motor control sequences are programmed to ensure thorough coverage without mechanical collisions.
NB-IoT Communication Module
For remote connectivity, we integrated the NB86-G module based on the Huawei Boudica150 chipset, compliant with 3GPP Release 13 standards. It supports multiple frequency bands (e.g., Band 5, Band 8) for global deployment. The module communicates with the microcontroller via UART, using AT commands for network attachment and data transmission. Data packets containing device ID, light intensity, power metrics, and status flags are sent to a cloud platform (e.g., AWS IoT or Azure IoT Hub) at configurable intervals. The circuit ensures stable power supply and antenna matching for reliable wireless performance. This enables real-time monitoring and control from anywhere, enhancing system manageability.
Limit Switches and Power Management
Limit switches installed at the solar panel edges provide binary feedback to prevent the cleaning assembly from over-traveling. When triggered, the microcontroller reverses motor direction, ensuring safe operation. The system is powered by a separate solar panel with a battery backup, ensuring uninterrupted function during low-light conditions. Voltage and current sensors monitor the solar panel’s output, feeding data to the ADC pins of the STM32 for efficiency calculations.
Software Architecture and Algorithms
The software framework is built around a real-time operating system (RTOS) on the STM32 microcontroller, comprising multiple tasks for concurrent processing. We developed firmware in C language, emphasizing modularity and scalability.
Overall Software Structure
After initializing hardware peripherals, the RTOS creates five primary tasks: (1) light and power data acquisition, (2) limit switch scanning, (3) motor control, (4) human-machine interface (HMI) handling, and (5) NB-IoT communication. Task scheduling ensures responsive performance. The main program flow, as shown in Figure 6 of the original text, involves continuous sensing, decision-making based on dust algorithms, and periodic data uploads. The HMI task manages a local LCD display for onsite diagnostics, while the communication task handles cloud interactions.
Data Acquisition and Dust Analysis
The data acquisition task reads light intensity from the MAX44009 via I2C and solar panel voltage/current via ADC. Pseudo-code for light sensing is as follows:
uint32_t read_light_intensity(void) {
uint8_t low_byte, high_byte;
i2c_write(MAX44009_ADDR, REGISTER_LOW, 1);
i2c_read(MAX44009_ADDR, &low_byte, 1);
i2c_write(MAX44009_ADDR, REGISTER_HIGH, 1);
i2c_read(MAX44009_ADDR, &high_byte, 1);
float exponent = (low_byte >> 4) & 0x0F;
float mantissa = ((high_byte << 4) | (low_byte & 0x0F));
return (uint32_t)(pow(2, exponent) * mantissa * 0.045);
}
To quantify dust impact, we define a performance ratio $PR$ as:
$$ PR = \frac{P_{\text{measured}}}{P_{\text{expected}}} $$
where $P_{\text{measured}}$ is the actual power output and $P_{\text{expected}}$ is the theoretical output under clean conditions, estimated from light intensity and solar panel specifications. When $PR$ falls below a threshold (e.g., 0.95), cleaning is initiated. This dynamic approach avoids unnecessary cleaning cycles, conserving energy.
Motion Control Algorithm
The cleaning sequence is programmed as a state machine. Starting from a home position, the horizontal motor moves the assembly by one roller width. Then, the vertical motor traverses up and down while the roller rotates, scrubbing the solar panel surface. Upon reaching vertical limits, the horizontal motor advances incrementally until the entire panel is covered. Limit switch interrupts ensure safe reversal at boundaries. The control logic minimizes wear and optimizes cleaning time. Figure 7 (original text) outlines this flow, but we present a simplified version here:
- Initialize all motors to home position.
- Move horizontally by step $\Delta x$.
- Activate roller motor and move vertically from bottom to top.
- Reverse vertical direction at top limit switch.
- Repeat vertical sweep until bottom limit is reached.
- Deactivate roller, step horizontally again.
- Continue until right limit switch triggers, then return to home.
This algorithm ensures comprehensive coverage of each solar panel section.
Wireless Communication Protocol
The NB-IoT module communicates using AT commands over UART. After resetting with “AT+NRB”, the device attaches to the network with appropriate APN settings. Data is sent in hex format via “AT+NMGS” commands. We implemented a lightweight MQTT-SN protocol for cloud messaging, transmitting JSON packets like:
{
"device_id": "SPC-001",
"timestamp": "2023-10-05T12:00:00Z",
"light_lux": 85000,
"voltage_v": 48.2,
"current_a": 10.5,
"dust_index": 0.92,
"status": "cleaning"
}
Cloud-side applications process this data for visualization and alert generation, allowing remote command issuance (e.g., “start cleaning” or “adjust threshold”).
Performance Evaluation and Results
We conducted extensive field tests from July 2020 to March 2021 on an 8 kW fixed-tilt solar panel array. The setup included two identical arrays: one with the intelligent cleaning system and another without (control group). Environmental conditions—location, tilt angle, orientation—were kept constant. Data was collected monthly to assess power generation improvements.
Efficiency Analysis Model
The theoretical power output of a solar panel under ideal conditions is given by:
$$ P_{\text{ideal}} = \eta_{\text{panel}} \cdot A \cdot I_{\text{light}} \cdot (1 – \alpha \cdot (T – T_{\text{ref}})) $$
where $\eta_{\text{panel}}$ is the panel efficiency, $A$ is area, $I_{\text{light}}$ is irradiance, $\alpha$ is temperature coefficient, and $T$ is cell temperature. Dust accumulation introduces a soiling loss factor $\delta$, reducing effective irradiance:
$$ P_{\text{actual}} = \eta_{\text{panel}} \cdot A \cdot (I_{\text{light}} \cdot (1 – \delta)) \cdot (1 – \alpha \cdot (T – T_{\text{ref}})) $$
Our system aims to minimize $\delta$ through timely cleaning. The soiling loss can be estimated from measured data as:
$$ \delta = 1 – \frac{P_{\text{actual}}}{P_{\text{clean}}} $$
where $P_{\text{clean}}$ is the power output immediately after cleaning. Over time, $\delta$ increases without intervention, as shown in our tests.
Test Data and Tables
Monthly energy generation for both arrays is summarized in Table 1. The cleaned solar panel consistently outperformed the uncleaned one, with efficiency gains escalating as dust accumulated. Cumulative results demonstrate a 9.6% overall increase in energy yield.
| Month | Uncleaned Solar Panel | Cleaned Solar Panel | Increase (kWh) | Efficiency Gain (%) |
|---|---|---|---|---|
| 2020-07 | 620 | 645 | 25 | 4.0 |
| 2020-08 | 931 | 975 | 44 | 4.7 |
| 2020-09 | 865 | 919 | 54 | 6.3 |
| 2020-10 | 521 | 560 | 39 | 7.5 |
| 2020-11 | 523 | 569 | 46 | 10.4 |
| 2020-12 | 535 | 592 | 57 | 10.7 |
| 2021-01 | 668 | 744 | 76 | 11.4 |
| 2021-02 | 669 | 788 | 119 | 17.7 |
| 2021-03 | 722 | 843 | 121 | 16.7 |
| Total | 6054 | 6635 | 581 | 9.6 |
The data indicates that gains are more pronounced in drier, dustier periods (e.g., February-March), highlighting the system’s adaptability. We also recorded light intensity and voltage ratios to validate the dustiness algorithm. A sample calculation for January:
$$ \text{Dustiness Factor} = \frac{48.0\,\text{V} / 80000\,\text{lux}}{44.5\,\text{V} / 78000\,\text{lux}} \approx 1.08 $$
Values above 1.05 typically triggered cleaning, aligning with observed power drops.
Cloud Platform Monitoring
The NB-IoT transmission enabled real-time cloud dashboards, displaying metrics like power output, cleaning status, and environmental data. Figure 8 (original text) shows a sample visualization, but we describe key features: historical trends, alert logs, and remote control buttons. Users could adjust cleaning thresholds based on seasonal variations, further optimizing performance. The system’s reliability was confirmed with over 99% data transmission success rate in varied weather.
Discussion and Implications
Our intelligent solar panel cleaning system demonstrates significant practical benefits. By automating dust removal, it mitigates efficiency losses that can reach 20% in arid regions. The integration of NB-IoT facilitates scalable deployment across distributed solar farms, reducing manual inspection costs. Moreover, the data-driven approach allows predictive maintenance—analyzing trends to forecast cleaning needs and identify panel defects.
Comparative studies show that our design outperforms periodic cleaning methods by responding dynamically to soiling levels. For instance, after a sandstorm, the system can initiate immediate cleaning, whereas scheduled cleaning might wait days, incurring substantial energy loss. The use of a dedicated solar panel for power ensures sustainability, creating a self-sufficient loop.
Future enhancements could incorporate machine learning to refine dust prediction models or add drone-based cleaning for large installations. Additionally, integrating with smart grid systems could enable demand-response actions based on solar panel output forecasts.
Conclusion
We have presented a comprehensive intelligent solar panel cleaning system leveraging NB-IoT for remote monitoring and control. The hardware design ensures accurate sensing and reliable actuation, while the software implements efficient algorithms for dust detection and motion control. Experimental results confirm that automated cleaning boosts energy yield by up to 17.7% monthly, with a cumulative 9.6% improvement over nine months. This system offers a cost-effective solution for small to medium-scale solar installations, promoting higher renewable energy utilization. As solar panel adoption grows, such intelligent maintenance tools will be crucial for maximizing returns and supporting sustainable energy goals.
