III. METHODOLOGY
-
A.
Proposed System
Figure 1.
Proposed model for Arduino based relay control system.
Figure 1.
Proposed model for Arduino based relay control system.
The proposed system presents an intelligent and cost-effective architecture for real-time photovoltaic (PV) panel health monitoring and automated cleaning using a fusion of IoT sensor data and image-based analysis through YOLO. The system is composed of two tightly integrated subsystems: an Arduino Uno-based sensor and control unit, and a Raspberry Pi-based AI and IoT communication module. The Arduino is connected to a set of sensors including a DHT11 for temperature and humidity, an LDR for light intensity, and an INA219 sensor for voltage, current, and power measurement of the panel and connected floodlight load. Based on predefined threshold conditions, the Arduino controls a relay module that activates a battery-powered submersible pump to clean the panel surface through a sprinkler mechanism.
Figure 2.
Raspberry pi IoT integration model.
Figure 2.
Raspberry pi IoT integration model.
The Arduino also interfaced with the Raspberry Pi Model B via UART serial communication, acts as the edge processor for advanced decision-making. The Raspberry Pi captures real-time panel images using the Pi Camera and performs brightness analysis and object detection using the YOLOv8 model. When dusty conditions are confirmed by both sensor data and visual evidence, the Pi sends a control signal back to the Arduino to trigger the relay. Additionally, the Raspberry Pi uploads sensor and panel condition data to the ThingSpeak cloud platform using HTTP GET (REST) protocol and provides real-time visualization of key metrics. This integrated setup ensures autonomous, accurate, and energy-efficient maintenance of solar panels, reducing manual intervention and enhancing long-term performance in varying environmental conditions.
-
B.
Hardware Setup
Table 2.
List of Hardware.
Table 2.
List of Hardware.
| No |
Component |
Description |
| 1 |
Arduino Uno |
Acts as the main microcontroller to read sensor data and control the relay module. |
| 2 |
DHT11 Sensor |
Measures ambient temperature and humidity around the solar panel. |
| 3 |
LDR (Light Sensor) |
Detects sunlight intensity to estimate solar irradiance conditions. |
| 4 |
INA219 Sensor |
Monitors the voltage, current, and power output of the solar panel and floodlight. |
| 5 |
Relay Module (1-Channel) |
Switches ON/OFF the submersible pump based on cleaning decisions. |
| 6 |
Submersible Water Pump |
Sprays water on the panel through a sprinkler when cleaning is triggered. |
| 7 |
Battery Pack (4 × 3.7V) |
Powers the submersible pump independently of the Arduino board. |
| 8 |
Floodlight (12V, 25W) |
Acts as a load connected to the panel for simulating real-time energy usage. |
| 9 |
Solar Panel (20W, 12V) |
Generates power and serves as the primary surface being monitored and cleaned. |
| 10 |
Raspberry Pi Model B (4GB) |
Serves as the edge AI processor running YOLOv8 and communicating with Arduino. |
| 11 |
Raspberry Pi Camera Module |
Captures real-time images of the solar panel for brightness analysis and detection. |
| 12 |
VM Elite 64GB MicroSD Card |
Stores the Raspberry Pi OS, Python scripts, YOLO model, and logging data. |
| 13 |
Ethernet Cable |
Connects the Raspberry Pi to the laptop or network for IoT data transmission. |
| 14 |
Laptop |
Used for Arduino IDE programming, serial monitoring, Excel data logging, and remote VNC access. |
-
1)
Arduino Uno
The Arduino Uno serves as the core microcontroller for the embedded control unit. It processes real-time data from environmental and electrical sensors, applies threshold-based logic, and controls peripheral devices such as the relay module. With its digital and analog, I/O capabilities, the Arduino is well-suited for sensor interfacing and is programmed via USB using the Arduino IDE. It also supports serial communication with external devices, such as the Raspberry Pi, enabling data transmission and command reception. All sensor and module interfaces, data processing, logic application, and output control are under its purview. It contains enough analog and digital input/output pins to support a number of devices, including the relay module, DHT11, LDR, and INA219 sensor. Continuous data collection from the sensors is done by the microcontroller, which then compares the data with preset threshold values kept in its program memory and acts appropriately. In order to log data in real time, it also controls serial communication with the linked laptop. The Arduino, which may be powered by an external power source via USB, is essential to automating the system's cleaning and environmental monitoring processes.
Figure 3.
Arduino uno with pin configuration.
Figure 3.
Arduino uno with pin configuration.
-
2)
Humidity and Temperature sensor (DHT11)
By monitoring both relative humidity and ambient temperature, the DHT11 sensor offers dual functionality. These factors are crucial in assessing the possibility of dust buildup on the solar panel. For example, dry and dusty conditions are frequently indicated by high temperatures and low humidity, which can reduce solar efficiency. The Arduino receives digital data from the sensor and evaluates it to determine whether cleaning is necessary. Because of its small size, affordability, and adequate precision, the DHT11 is the best option for environmental monitoring in this project.
Figure 4.
(a) DHT11 (b) Pin configuration.
Figure 4.
(a) DHT11 (b) Pin configuration.
-
3)
Light Sensor (LDR Module)
Ambient light intensity is sensed using a Light Dependent Resistor (LDR). Variations in light levels cause the resistance of the LDR to change; this change is translated into a voltage and read using the analog input pin on the Arduino. If the light intensity drops below a certain point, it may be a sign of dust buildup or shadowing on the panel. The LDR aids in more precise decision-making about the necessity for cleaning when combined with information from the temperature and humidity sensors. Value is added by this straightforward but efficient sensor, which makes it possible to monitor panel performance optically. Connected to the analog input pin of the Arduino, this sensor plays a crucial role in determining sunlight availability. It helps detect scenarios where a drop in light may indicate dust accumulation or partial shading of the panel.
Figure 5.
(a) Light sensor(b) Pin configuration.
Figure 5.
(a) Light sensor(b) Pin configuration.
-
4)
Relay Module (1-Channel)
The relay module acts as a digital switch controlled by the Arduino. It is used to activate or deactivate the submersible water pump based on sensor and image fusion logic. Operating at 5V, the relay can safely control higher-voltage loads without exposing the microcontroller to high currents, ensuring reliable hardware-level automation. The low-power microcontroller circuit and the high-power pump circuit are separated by the 5V single-channel relay, which functions as an electrically actuated switch. The relay module receives a signal from the Arduino that activates the pump when the ambient conditions reach the threshold. By enabling automation without the need for human interaction, this mechanism guarantees the cleaning system operates safely and effectively.
Figure 6.
Relay module single channel.
Figure 6.
Relay module single channel.
-
5)
Solar Panel (20W,12V Polycrystalline)
The system's main renewable energy source is a 20-watt, 12-volt Loom Solar photovoltaic (PV) panel. Under typical test settings, this panel can generate a peak open-circuit voltage of 19.25 volts and a maximum current of roughly 1.04 amperes. It is tiny, effective, and appropriate for research-based energy applications or small-scale do-it-yourself projects. In this configuration, during daylight hours, the solar panel powers the battery charging circuit in addition to the 12V LED lighting. The strategy guarantees off-grid, environmentally friendly power generation by directly utilizing solar energy, which makes it sustainable and financially feasible for long-term deployment, particularly in rural or isolated places. Any drop in output voltage or current, due to dirt or environmental interference, is detected and used as part of the cleaning decision logic.
-
6)
Floodlight (12V,25W)
To show how much power the system uses, a 12-volt, 25-watt direct current LED floodlight is utilized as the main load. This floodlight mimics real-world solar illumination configurations in order to replicate realistic energy usage circumstances. It demonstrates the solar panel's capacity to drive resistive loads since it is driven directly by the panel throughout the day or whenever enough power is available. The floodlight's operation aids in testing the system's voltage drop and current draw, which are tracked by the INA219 sensor. This permits testing of the system's energy management capabilities under various load levels and guarantees that the panel is efficiently supplying power.
-
7)
Current-Voltage Sensor (INA219)
The INA219 current and voltage sensor is incorporated between the load (battery or floodlight) and the power source (solar panel) to provide real-time electrical parameter monitoring. High-side current sensing is possible with this I2C-enabled sensor module, which also enables accurate power (in watts), voltage (in volts), and current (in amperes) measurements. These measurements are essential for evaluating load behaviour, energy efficiency, and system performance in a variety of environmental circumstances. The Arduino Uno receives the data collected by the INA219, processes it, and then uses pre-programmed logic to initiate control actions. Additionally, over time, the data recorded by the INA219 aids in system diagnostics and energy profiling.
Figure 9.
(a)INA219(b)pin configuration.
Figure 9.
(a)INA219(b)pin configuration.
-
8)
Submersible water pump with sprinkler
When cleaning is necessary, a 12V brushless DC water pump with a 700 liters per hour (L/H) flow rate is triggered. In order to improve the efficiency of energy absorption, the pump is connected to a sprinkler mechanism that sprays water over the surface of the solar panel to clear dust and debris. The relay, which gets signals from the Arduino based on sensor evaluations, controls the pump, which runs on the battery power that has been stored. For panel cleaning applications, a submersible pump is the best option because it guarantees adequate water pressure and velocity. This part shows how automation can be used for PV system maintenance in real time. This DC-powered water pump is used to physically clean the surface of the solar panel by spraying water through a sprinkler attachment. It is triggered by the relay when dust accumulation is detected. The pump operates on a separate power source to prevent interference with control circuitry and is optimized for small-scale panel cleaning applications.
Figure 10.
(a) DC submersible pump (b) water sprinkler.
Figure 10.
(a) DC submersible pump (b) water sprinkler.
-
9)
Raspberry Pi Model B (4GB RAM)
The core edge computing node in the suggested system is the Raspberry Pi Model B (4GB RAM), which handles cloud connectivity, decision-making, and real-time processing. Through UART serial communication, it obtains electrical and environmental sensor data from the Arduino Uno. This enables it to combine sensor readings with visual input to make informed cleaning decisions. Sensor parsing, OpenCV brightness calculation, YOLOv8 model object detection, and integration with IoT cloud platforms are all included in the Python-based script that the Pi runs. The Raspberry Pi's capacity to manage local AI inference operations, which allows it to evaluate panel images taken with the Pi Camera without the need for external servers, is one of its main advantages. The Pi is equipped with a 64GB VM Elite microSD card, which holds the Raspberry Pi OS, YOLOv8 model weights, Python libraries (e.g., OpenCV, NumPy, ultralytics), and logs for offline diagnostics. To facilitate live monitoring and remote system control, the Raspberry Pi is accessed wirelessly using RealVNC, which mirrors its desktop interface onto a laptop or mobile device. This allows researchers to observe the terminal output, debug the code, and visually inspect the classification results in real time without needing physical access.
Figure 11.
(a) Pi camera module (b) Pi camera connection with raspberry.
Figure 11.
(a) Pi camera module (b) Pi camera connection with raspberry.
-
10)
Raspberry Pi-Camera Module
The Raspberry Pi Camera Module is directly connected to the Pi’s CSI (Camera Serial Interface) port and is responsible for capturing real-time images of the solar panel surface. This camera plays a critical role in enabling the visual analytics layer of the system. Images are captured periodically using libcamera-still commands, stored locally, and then processed using OpenCV to calculate image brightness. This is used to estimate surface clarity, detect shadowing, or identify potential dust layers. Additionally, a YOLOv8 object identification pipeline that runs on the Raspberry Pi processes the camera images. Its output, along with brightness thresholds, helps determine whether the panel is in a "dusty" or "clean" state, even though the model being used is a blank YOLOv8 model. By combining real-time sensor data with image-based detection, the system is able to minimize false triggers brought on by transient environmental changes and make more accurate decisions. Thus, the Pi Camera acts as the system's visual eye, allowing for intelligent automation that is based on both numerical sensor inputs and real-world physical observations of the panel's condition.
Figure 12.
(a) Pi camera module (b) Pi camera connection with raspberry.
Figure 12.
(a) Pi camera module (b) Pi camera connection with raspberry.
-
C.
Flowchart
Figure 13.
Flowchart of proposed YOLO-IoT panel cleaning system.
Figure 13.
Flowchart of proposed YOLO-IoT panel cleaning system.
The flowchart illustrates the complete operational workflow of the proposed YOLO-integrated photovoltaic (PV) health monitoring and automated cleaning system. The process begins with the initialization of environmental and electrical sensors—namely, the INA219 (for voltage, current, and power), DHT11 (for temperature and humidity), and LDR (for light intensity)—all interfaced to the Arduino Uno. Once initialized, these sensors begin collecting real-time data from the solar panel environment and the connected electrical load (floodlight). This sensor data is simultaneously directed to PLX-DAQ macros in Microsoft Excel through serial communication, enabling live visualization and timestamped data logging during initial testing calibration phases.
The same sensor data is then transmitted via UART protocol to the Raspberry Pi Model B, which acts as the system’s edge processing unit. Concurrently, the Raspberry Pi captures real-time images of the solar panel using the Pi Camera, controlled by the libcamera-still command-line utility. The captured image is processed locally on the Pi using the YOLOv8 object detection model, and further analysed using OpenCV for brightness evaluation using thonny IDE in Real VNC viewer. This two-layered analysis provides both physical surface assessment and contextual lighting conditions, essential for accurate detection of dust accumulation or shading on the panel. Following the image and data acquisition, the fusion logic is applied, wherein the system checks whether the YOLO model identifies a “dusty” condition OR if the image’s brightness is below a specified threshold in conjunction with low LDR light readings. If the logic returns a negative result, the system continues monitoring and loops back after a short delay. However, if the logic confirms a dirty or low-performance panel, it proceeds to the cleaning stage.
At this point, the Raspberry Pi sends a control command ("ON" or "OFF") via serial interface to the Arduino, instructing it to activate the relay module. This relay energizes the submersible pump, which is powered independently by a battery pack and connected to a sprinkler system that sprays water on the solar panel surface. The system waits for two seconds to complete the cleaning action before resetting and returning to the monitoring state. Meanwhile, all relevant data—sensor values, brightness level, and panel status—is uploaded to ThingSpeak cloud using the HTTP GET (REST) protocol for real-time IoT-based monitoring and historical visualization. This integrated workflow enables intelligent, energy-aware, and automated panel cleaning based on multi-modal analysis, offering a significant improvement over traditional threshold-only or manually operated maintenance systems.
-
D.
Experimental Setup
Figure 14.
Experimental Setup for Arduino based hardware integration.
Figure 14.
Experimental Setup for Arduino based hardware integration.
The experimental setup of the proposed system involves a comprehensive integration of environmental sensors, power monitoring modules, image capture hardware, automation controls, and cloud connectivity. The setup is divided into two interconnected subsystems: one based on the Arduino Uno for real-time data acquisition and control, and another based on the Raspberry Pi Model B for image processing, decision-making, and IoT communication.
In the Arduino subsystem, the following hardware connections are established: a DHT11 sensor is connected to a digital pin to measure temperature and humidity, an LDR is connected to the analog pin (A0) to sense ambient light intensity, and the INA219 current and voltage sensor is interfaced via I²C protocol to monitor the power output from a 20W solar panel supplying a 12V floodlight as load. These sensors are powered via the Arduino’s 5V and GND pins, and the entire board is initially connected to a laptop for serial communication and code uploading through the Arduino IDE. A 1-channel 5V relay module is connected to a digital output pin of the Arduino and used to control a DC submersible pump. This pump is powered by an external 4-cell 3.7V lithium battery pack, ensuring that its high-current operation is isolated from the sensor and control circuitry. The relay activation is governed by the Arduino based on the threshold conditions defined in the program logic, including low light, high humidity, and poor panel output.
Figure 15.
Block diagram of IoT based system with raspberry and cloud link.
Figure 15.
Block diagram of IoT based system with raspberry and cloud link.
The second subsystem involves Raspberry Pi Model B connection to the Arduino via UART (USB serial communication) and operates as the decision-making and cloud communication node. A Pi Camera module is connected to the Pi’s CSI interface and is used to capture live images of the solar panel at regular intervals using the libcamera-still command. These images are analyzed locally using OpenCV for brightness measurement and processed through a YOLOv8 object detection model to classify the panel condition. If the image indicates low clarity or detects potential dust, and the brightness or light level also falls below set thresholds, the Pi sends a command to the Arduino to trigger the relay and initiate the cleaning cycle.
Simultaneously, the Pi uploads all processed sensor data and image-derived brightness values to the ThingSpeak IoT cloud using HTTP GET (REST) API calls, enabling real-time online visualization of system parameters like temperature, humidity, brightness, voltage, current, and power. The Raspberry Pi is powered through its micro-USB port from the laptop and connected to the internet via Ethernet for stable cloud transmission. The laptop also serves as a remote interface via RealVNC, allowing users to access the Pi’s desktop environment, monitor logs, and visualize the processing pipeline live. This complete experimental setup replicates a real-world edge-enabled IoT environment, demonstrating autonomous decision-making for solar panel maintenance based on multi-modal data fusion. The circuit was tested under varying light conditions using both real solar exposure and artificial lighting, and the relay-actuated cleaning system was validated using a functional submersible pump and water spray mechanism, confirming the feasibility of the proposed intelligent PV maintenance framework.
-
E.
Hardware Installation
Arduino uno microcontroller setup: Powered via USB port from laptop during programming and via Raspberry Pi during real-time execution which serves as the central unit for interfacing sensors and controlling the relay.
DHT11 Temperature and humidity sensor: VCC pin connected to 5V pin of Arduino followed by GND pin and DATA pin connected to GND and digital pin D8 of the Arduino microcontroller.
LDR light sensor: The VCC, GND and analog pin A0 of the light sensor is connected to 5V, GND and A0 of the Arduino.
INA219 Voltage-current sensor: The VCC pin of the sensor is connected to 5V on Arduino followed by the connection of GND pin to GND of Arduino. Corresponding SDA and SCL pins connected to A4 (SDA) and A5 (SCL) of Arduino for I²C communication. Vin+ and Vin− terminals connected in series between solar panel and floodlight (load) for power measurement.
Floodlight (12V Load): The positive terminal of the floodlight load is connected to Vin+ of INA219 with its corresponding negative Vin− terminal connection to solar panel negative output. This Acts as real-time load to simulate energy consumption.
Solar panel (20W,12V): The positive output connected to INA219 Vin+ terminal. Negative output connected to GND/common of system and INA219 Vin− thus enhancing provision for power and serves as the surface for cleaning and analysis.
Relay Module (1-Channel, 5V): The module VCC is connected to 5V on microcontroller followed by the connection of GND and digital signal pin to GND and digital pin D3 of the Arduino. The COM and NO (Normally opened) terminals connected to positive terminal of submersible pump circuit.
Submersible pump: - The pump is powered by separate 4 × 3.7V Li-ion battery pack where the positive terminal of battery connected to the COM of the relay. The NO terminal connected to pump positive wire. Pump GND wire connected directly to battery GND with 1N4007 diode placed across the relay and pump terminals to prevent back-EMF.
Raspberry Pi Model B(4GB) : The board is powered using micro-USB from laptop or external adapter which is connected to Arduino via USB cable for serial UART communication. The former is also Connected to laptop or router via Ethernet cable for internet access and ThingSpeak connectivity.
Pi camera Module: The pi camera setup connected to CSI port of Raspberry Pi witch use libcamera-still command for capturing static images. The camera is mounted to face solar panel for real-time image capture.
VM Elite 64GB Micro SD card: Inserted into Raspberry Pi to boot Raspberry Pi OS which Stores Python scripts, YOLOv8 model, OpenCV packages, and log files.
Figure 16.
Labeled hardware setup showing complete system components.
Figure 16.
Labeled hardware setup showing complete system components.
-
F.
Software Setup
The software setup of the proposed system includes multiple tools and platforms for programming, data acquisition, edge processing, and cloud communication. The Arduino Uno is programmed using the Arduino IDE, where C/C++ code is developed for reading sensor data (DHT11, LDR, INA219), applying threshold logic, and controlling the relay. Necessary sensor libraries such as DHT.h and Adafruit_INA219.h are imported to enable I²C and digital sensor interfacing. Serial communication is configured at 9600 baud rate to enable UART-based data exchange with the Raspberry Pi.
The Arduino IDE integration for programming, sensor interfacing, data collecting, and automation control is the main component of the project's software configuration. The Arduino Integrated Development Environment (IDE) is used to program the Arduino Uno microcontroller. A condensed form of C/C++ is used to write the source code. The IDE offers an easy-to-use interface for USB code uploading to the board. The code includes libraries like Wire.h, Adafruit_INA219.h, DHT.h, and LiquidCrystal.h (if an LCD is used) to handle I2C communication and the corresponding sensor modules. Adafruit_INA219.h reads the current, voltage, and power values from the INA219 module, and the DHT.h library gathers temperature and humidity data from the DHT11 sensor. The analogRead () function is used to read the values from the LDR sensor, which is interfaced via analog pins. The code pre-defines threshold values for temperature, humidity, and light intensity. To decide whether to trigger the relay, these thresholds are employed.
|
Algorithm 1. Arduino sensor code for relay activation in IDE.
|
 |
 |
On the Raspberry Pi, the code is written and executed using Python 3, managed via the Thonny IDE or terminal. Libraries such as OpenCV-python, ultralytics (for YOLOv8), pyserial, NumPy, and requests are installed using pip. The YOLOv8 model (yolov8n.pt) is run on the Pi using the Ultralytics library for real-time inference on captured images. The Pi Camera is accessed via the libcamera-still command to capture solar panel images, which are then processed using OpenCV for brightness estimation. For cloud integration, the Raspberry Pi communicates with ThingSpeak using HTTP GET (REST) API calls. A user-specific API key is used to upload environmental and power data to predefined fields for live visualization. Additionally, the Arduino is initially tested using PLX-DAQ macros in Excel, which log timestamped sensor data during development. Remote access to the Raspberry Pi's GUI and terminal is achieved through RealVNC, allowing real-time debugging, image inspection, and system control without physical access.
Figure 17.
Serial link between raspberry pi and arduino via thonny and Real VNC.
Figure 17.
Serial link between raspberry pi and arduino via thonny and Real VNC.
The entire software system is loaded onto a VM Elite 64GB microSD card, which boots the Pi OS and hosts all necessary files, scripts, and libraries. Together, this software setup enables seamless integration of hardware and software layers, supporting intelligent decision-making and fully autonomous operation
Figure 18.
Live sensor and YOLO status output on raspberry pi terminal.
Figure 18.
Live sensor and YOLO status output on raspberry pi terminal.
The robust data logging tool PLX-DAQ (Parallax Data Acquisition) was created by Parallax Inc. and allows direct serial communication between a microcontroller board, like an Arduino, and Microsoft Excel. It is a VBA-written Excel macro that opens a computer's serial port and records data in real time into Excel spreadsheets. This enables users to continuously monitor, capture, and evaluate data from linked sensors or devices. In order to enable real-time data collection and sensor value tracking, PLX DAQ serves as a bridge between the Arduino Uno and Microsoft Excel. Using Serial.println() commands, the data gathered from the DHT11 (temperature and humidity), LDR (light intensity), and INA219 (voltage, current, and power) sensors is continuously sent over the Arduino's serial port. This serial stream is captured by PLX-DAQ, which then directly enters it into designated Excel spreadsheet columns.
Figure 19.
Real-time Arduino sensor plotting in IDE.
Figure 19.
Real-time Arduino sensor plotting in IDE.
Figure 20.
Arduino data logging to Excel via PLX-DAQ.
Figure 20.
Arduino data logging to Excel via PLX-DAQ.
The Parallax Data Acquisition Tool (PLX-DAQ) is used to provide real-time data logging from the Arduino microcontroller to a spreadsheet interface. Direct serial connection between the Arduino and Microsoft Excel is made possible by the Excel-based macro application PLX-DAQ. The program is published as a zipped ZIP file and is available for download from the official Parallax website. The user must use a compatible 32-bit version of Microsoft Excel to open the macro-enabled Excel file (PLX-DAQ Spreadsheet.xls) after extraction. To enable communication through the Visual Basic for Applications (VBA) environment, the tool must be launched with macro rights allowed. The tool provides an interface wherein the appropriate communication port (COM port) and baud rate—typically 9600 bps—are selected to match those configured in the Arduino code. Once the serial connection is established, PLX-DAQ continuously logs incoming sensor data into the Excel spreadsheet with timestamped entries. This method offers a reliable and efficient mechanism for monitoring and recording environmental parameters, thereby facilitating early-stage validation and calibration of the sensor network prior to deployment within the proposed system.
Figure 21.
Closeup of sensor and camera connection.
Figure 21.
Closeup of sensor and camera connection.
Figure 22.
System displaying live data on thingspeak.
Figure 22.
System displaying live data on thingspeak.
-
G.
Implementation
The following steps describe the workflow of the complete implementation of the proposed YOLO-IoT-based solar panel monitoring and cleaning system:
Step 1: All hardware components including Arduino Uno, sensors (DHT11, LDR, INA219), relay module, pump, battery, Raspberry Pi, and Pi Camera are physically assembled and wired as per the designed circuit.
Step 2: The Arduino Uno is programmed using the Arduino IDE with code to read sensor data, apply threshold logic, and control the relay output.
Step 3: Sensor readings from the Arduino (temperature, humidity, light intensity, voltage, current, and power) are transmitted via UART to the Raspberry Pi at 9600 baud rate.
Step 4: The Pi Camera captures real-time images of the solar panel using the libcamera-still command on Raspberry Pi.
Step 5: Python scripts on the Raspberry Pi perform image brightness analysis using OpenCV and detect dust presence using the YOLOv8 model.
Step 6: Sensor data and image results are processed through fusion logic combining image output, brightness level, and light intensity.
Step 7: If the panel is determined as dusty, the Raspberry Pi sends an "ON" command to the Arduino to activate the relay.
Step 8: The relay triggers the submersible pump powered by a separate battery pack, which sprays water on the panel for cleaning.
Step 9: After a short delay (e.g., 2 seconds), the system returns to the monitoring state and continues to repeat the detection-cleaning cycle.
Step 10: All sensor and image data are uploaded to ThingSpeak via HTTP GET requests for IoT-based monitoring and visualization.
Step 11: The Raspberry Pi is accessed remotely using RealVNC for code execution, monitoring, and debugging during live operations.
Figure 23.
Complete experimental setup with solar panel and cleaning system.
Figure 23.
Complete experimental setup with solar panel and cleaning system.