Solar Panel
Solar Panel
ACTIVITY
REPORT
1
Solar Panel Parameters Monitoring
Using Arduino
Submitted By
SRIDHARAN M
191EE228
SATHYAMANGALAM-638401
MAY 2020
2
DECLARATION
I affirm that the Faculty Initiative Reward Point task work “Solar Panel
Parameters Monitoring Using Arduino” being submitted as the record of
original work done by me under the guidance of Mrs. Mohanapriya V,
Assistant Professor Level II, Department of Electrical and Electronics
Engineering.
SRIDHARAN M
191EE228
(Signature of Guide)
MOHANAPRIYA V
3
TABLE OF CONTENTS
SNO TITTLE PAGE NO
2 COMPONENTS REQUIRED 1
3 BLOCK DIAGRAM 2
4 CIRCUIT DIAGRAM 2
5 THEORY
5
6.2 Current sensor
4
7 CIRCUIT OPERATION 8
8 SYSTEM SIMULATION 9
9 PROGRAM CODE 10
10 RESULT 13
11 CONCLUSION 13
12 REFERENCE 14
5
Solar Panel Parameters Monitoring system
2.COMPONENTS REQUIRED:
Arduino Uno
Bread board
Solar panel (12v)
16*2 LCD display
LDR sensor
Temperature sensor
Voltage sensor
Current sensor
9v battery
USB cable
Capacitor
Push button
LEDs
Jumper wires
SIMULATION:
Proteus
Arduino
1
3.BLOCK DIAGRAM:
4.CIRCUIT DIAGRAM:
2
5.THEORY:
5.1. Arduino Uno:
The 16x2 LCD screen is a very simple module that is often used in
various device circuits. 16x2 LCD means that it can display 16
3
characters per line, there are 2 lines. Each character on this LCD is
displayed with a 5x7 pixel matrix.
6.SENSORS AND WORKING:
The B25 voltage sensor module is used to measure the output voltage
of the photovoltaic panel. The voltage sensor B25 uses the principle
of voltage divider, in essence, a voltage divider of 30 kΩ resistance
and 7.5 kΩ resistance, as shown in the figure. This is used to reduce
the input voltage by up to 5 times the initial voltage, since the
maximum analog input voltage of the Arduino microcontroller is 5 V.
The voltage sensor module will be installed in parallel with the load
on the photovoltaic panel, as shown in the figure.
4
The sensor reading is a digital value (Vout) between 0 and 1023.
Since the microcontroller ADC is encoded in 10 bits, the resolution of
the PV panel module voltage is 0.00489 V (5/1023) and the input
voltage must be greater than 0.02445V (0.00489V × 5) this module.
The output voltage of the PV panel can be:
V=5*Vout*(5/1023)
The output voltage (Vo) of the INA169 module is the input voltage of
the analog pins of the Arduino, between 0 and 1023. The current
sensor module must be daisy-chained to the positive side of the
photovoltaic panel as shown in Figure (c).
6
Temperature and barometric pressure were measured with a BMP180
temperature-pressure sensor. The BMP180 sensor is an environmental
sensor for a variety of meteorological sensors and can be used with
I2C (Inter-Integral Circuit) and SPI (Serial Peripheral Interface)
communication protocols.
This precision sensor from BOSCH company is a popular low-cost
precision sensing solution for measuring barometric pressure with
±1 hPa absolute accuracy, and at temperature ±1.0°C accuracy.
Figure 4 show the BMP180 sensor with the connection pins for
interface with the Arduino board.
7.CIRCUIT OPERATION:
8
programming of the Arduino in C-language which provides
central control for the system operation. The program used for the
system testing on the PROTEUS ISIS software was downloaded to
the board to complete the circuit construction.
8.SYSTEM SIMULATION:
#include<LiquidCrystal.h>
#define sensor A0
#define VOLT A1
#define LUX A3
LiquidCrystal lcd(2,3,4,5,6,7);
byte degree[8] =
0b00011,
0b00011,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000
};
void setup()
lcd.begin(16,2);
10
lcd.createChar(1, degree);
Serial.begin(9600);
lcd.setCursor(0,0);
lcd.setCursor(0,1);
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.setCursor(0,1);
lcd.print("ENGINEERS GARAGE");
delay(2000);
lcd.clear();
void loop()
/*---------Temperature-------*/
float reading=analogRead(sensor);
Temperature=reading*(5.0/1023.0)*100;
delay(10);
/*---------Voltage----------*/
temp1=analogRead(VOLT);
volts= (temp1/511.5)*5;
11
delay(10);
/*-----Light Intensity------*/
value=analogRead(LUX);
volt=(value/1023.0)*5;
lux=((2500/volt)-500)/3.3;
delay(10);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("T:");
lcd.print((int)analog_value);
lcd.write(1);
lcd.print("C");
lcd.setCursor(8,0);
lcd.print("V:");
lcd.print(volts);
lcd.setCursor(0,1);
lcd.print("Intens: ");
lcd.print((int)lux);
lcd.print(" Lux");
Serial.println((int)Temp);
Serial.println(volts);
12
Serial.println((int)lux);
delay(500);
10.RESULT:
11.CONCLUSION:
12.REFERENCE:
https://www.engineersgarage.com/electronic-projects/solar-panel-
parameters-monitoring-using-arduino/
Adib, R., Murdock, H., Appavou, F., Brown, A., Epp, B., Leidreiter,
A., Lins, C., Murdock, H., Musolino, E. and Petrichenko, K. 2015.
Renewables 2015 global status report. REN21 Secretariat, Paris, France:
162.
14