1 Introduction

In 2014, approximately 1.19 billion people lived without electricity. Furthermore, in Asia, countries like Pakistan, Indonesia and Bangladesh respectively has approximately 51, 41 and 61 million people living without electricity access [1]. The demand for electricity still remains today and it is increasing twice as fast as overall energy use [2]. To combat this electricity crisis and to provide electricity to electricity deprived people, off-grid solar energy is playing a crucial role. Off-grid solar energy, in particular solar home systems has been one of the fastest growing industries in providing energy access [3]. As of 2016, more than 6 million Solar Home Systems (SHSs) are operational worldwide, with 25 million people benefiting from them [4]. Regarding SHSs, Bangladesh has the largest market worldwide with more than 4.5 million units installed [5]. The key element of a SHS is one or more PV modules and 98% of the installed solar panels used for SHS program in Bangladesh are imported from abroad [6, 7]. Currently there are still a vast demand of solar panels in Bangladesh. Unfortunately, it is seen in the local market that some of the imported solar panels are unspecified and substandard [8]. In addition, substandard solar panels are also seen in the market of many countries like India, USA and Malawi [9,10,11]. As there is no standard testing institution to monitor the quality of solar panels in Bangladesh, different size and power PV modules has flooded the market of Bangladesh. Solar panel testing is only possible in Bangladesh Council of Scientific and Industrial Research (BCSIR), Dhaka and is very difficult for rural area people to come to the Dhaka City with the solar panels for testing. Moreover, in BCSIR solar panel testing takes about 10,000–15,000 BDT per panel which is a lot of money for common people. In addition, various companies like Oriel Instruments, Solar Tester, Abet Technologies, Nvis Technologies Pvt. Ltd sell different commercial solar panel efficiency measurement system. Even though these commercial available systems are very accurate but they are very costly. Thus it is difficult to provide this costly equipment to different areas for testing in the under developed countries. Therefore, problems like substandard solar panels, few testing facilities and costly panel testing procedure in many underdeveloped countries are the main reasons to design and develop a simple low cost portable solar panel efficiency measurement system. There are simulation based works to find out the solar cell parameters, as well as solar radiation measurement and onsite PV plant monitoring systems [12,13,14,15,16]. However, few reports in literature have been found for onsite unspecified solar panel testing equipment. So recently the researches have been concentrating on developing a simple, low cost solar panel parameter and efficiency measurement system. In the experimental study Adilah et al. [17] used humidity sensor, light sensor (LDR), Arduino mega 2560, LCD display and GSM shielding to develop a solar efficiency monitoring system. However, the system can deduct voltage and power of a solar panel and efficiency of the system but not the efficiency of solar panels. The system also shows limited data on LCD display and there is no description how solar irradiation (W/m2) was calculated using light dependent resistor (LDR). In another study, Anand et al. [18] used two Arduino Uno, photo resistor light sensor module (VEE00067), current sensor (5A range ACS712), and voltage sensor module (KG045) to develop a PV analyzer system. The system uses photo resistor light sensor to calculate the irradiation (W/m2). Again here, calculation of irradiation (W/m2) has been not disclosed. Lately, Patil et al. [19] developed a solar panel efficiency measurement system and for that system, the irradiation was measured using solar power meter. However, to differentiate this work from Patil et al. lux meter has been used for solar irradiation measurement process. Furthermore, details of solar radiation measurement process has been disclosed in this paper.

Moreover, in this work, a simple prototype low cost portable solar panel efficiency measurement system has been designed and developed. The system includes a single Ardunio Uno, a voltage sensor, a current sensor (ACS712), a multi meter and a lux meter. Furthermore, measurement has been taken under real sun conditions. The system not only determine efficiency but also determines maximum voltage (Vmax), maximum current (Imax), maximum power (Pm), fill factor (FF) and efficiency (η) of the solar panel.

2 Solar panel efficiency measurement system

As stated earlier, the system requires to show the efficiency of the solar panel. From the references [20, 21] it is seen that the efficiency of the solar panel and the fill factor depends on the following equations:

$$FF = \frac{{V_{max} I_{max} }}{{V_{OC} I_{SC} }}$$
(1)
$$\eta = \frac{{V_{max} I_{max} }}{{P_{in} }}$$
(2)
$$\eta = \frac{{V_{OC} I_{SC} FF}}{{P_{in} }}$$
(3)

where FF is the fill factor, Voc is the open circuit voltage, Isc is the short circuit current, Vmax is the voltage at maximum output, Imax is the amperage at maximum output, Pin is the input power (Solar Irradiation) and η is the efficiency of solar cell. From Eq. 2 it is clear that, efficiency depends on voltage and current. So to determine the current and voltage a current and voltage sensor has been used (as shown in the block diagram, Fig. 1).

Fig. 1
figure 1

Block diagram of solar panel efficiency measurement system

The voltage sensor and current sensor measures voltage (Vmax) and current (Imax) individually from the solar panel and provides the relevant data to the microcontroller on Ardunio Uno R3 board. A switch has been used to select the voltage or current sensor. The Ardunio board is connected to the computer interface via USB cable. In the computer an open source Ardunio Software is installed. With this software, the source code for Ardunio Uno R3 is written and uploaded to the microcontroller. Furthermore, the solar radiation also known as input power (Pin) (measured manually by a lux meter, discussed details in Sect. 3), open circuit voltage (Voc) and short circuit current (Isc) are directly measured and inputted in the running open source Ardunio software. Once all the parameters are inputted in the software and the panel connection with Ardunio is given then the testing procedure starts and the results are shown on the screen of the computer monitor.

3 Solar panel input power (P in) calculation

One of the very important factor of calculating the efficiency of the solar panel is to utilize the solar panel input power (Pin) also known as solar radiation. Generally in the solar panel testing laboratory the input power is created artificially and considered Air-mass 1.5G condition (That is 1000 W/m2) [22]. However, in case of measurement under the real sun, 1000 W/m2 cannot be always considered as the intensity of the sun varies. The intensity of the sun at a moment is considered the input power (Pin) of the solar panel. Because of the real sun condition, it gives the actual input power (Pin) and thus actual efficiency at that moment. For input power (Pin) measurement a lux meter has been used. Lux meter may have accuracy limitation but it is the most available and low cost equipment in Bangladesh. Thus it is used for input power (Pin) measurement. The lux meter measures luminous flux per unit area. So this illuminance in lux (lx) needs to be converted in watts (W). The lux to watt (W) conversion is done using the following equation [23]:

$$P_{in} \left( W \right) = \frac{{E_{{V\left( {lx} \right)}} \times A_{{m^{2} }} }}{{\eta_{{\left( {\frac{lm}{w}} \right)}} }}$$
(4)

where \(E_{{V\left( {lx} \right)}}\) is illuminance (\(E_{V}\)) in lux (lx), A is the surface area of solar panel in square meter (m2) and η is the luminous efficacy in lumens per watt \(\left( {\frac{lm}{w}} \right)\). The input power is always measured in sunny condition. In this research, the luminous efficacy of day light is considered 105 \(\left( {\frac{lm}{w}} \right)\) [24,25,26]. For simplification it can be considered as 100 \(\left( {\frac{lm}{w}} \right)\). By using lux meter and Eq. 4, on 3rd March, 2018 at 12 pm (Bangladesh Standard Time/GMT + 6), the input power Pin (W) have been found 80 W/m2 and 4.0 W/m2 respectively for 0.1 m2, 10 W and 0.005 m2, 0.65 W silicon solar panel.

4 Experimental details

At first, to see that if the system works properly or not a prototype system has been designed and implemented with a 9 V Battery/5 V power supply as shown in Fig. 2a. After successful operation and obtaining data from the battery, it has been replaced with a solar panel (Fig. 2b).

Fig. 2
figure 2

Simplified system schematic: a with battery and b with solar panel

Both voltage sensor and current sensor module has an input section and an output section. In the input section of both voltage and current sensor modules has two pins. They are VCC and GND pin. The VCC and GND pin are connected to the positive and negative terminal of the Battery. Subsequently, the battery has been replaced with a solar panel but the connection procedure remained same. The output section of both voltage and current sensor module has three pins. They are S, + (positive) and − (negative). The positive and negative pin of the current and voltage sensor module are connected to the 5 V and GND pin of Ardunio Uno module. The Ardunio Uno provides necessary power through these pins and activates the current and voltage sensor modules. The S pin provides an analog signal to the Ardunio module in corresponds to the input signal from the sensor module. The S pins of voltage and current sensor are connected to the A0 and A1 pin of Ardunio module respectively. The A0 and A1 pin are analog to digital conversion (ADC) input pins. The Ardunio’s microcontroller program is written in the open source Ardunio Software. By using analogRead() function, the Ardunio can read the voltage applied to the ADC pin. The analogRead() is a Ardunio programming language function and is written like this in the programming language. However, in the first bracket input pin like A0, A1 etc. are written to represent analog data reading from the specified input. The relevant Ardunio of code of reading voltage is given below.

$${\text{Code:}}\quad {\text{value}} = {\text{analogRead}}\left( {{\text{A}}0} \right);$$
(5)

Because of usage of analogRead(A0) function, the Ardunio reads the voltage applied to the pin A0. Furthermore, this function returns a number between 0 and 1023. As Ardunio Uno R3 uses a 10 bit ATmega microcontroller and 210 = 1024, for this reason the analogRead() function converts the analog signal to a digital signal between 0 and 1023. The voltage sensor of the prototype device is a DIYmall Voltage Sensor DC 0-25 V. This Voltage sensor can detect the supply voltage from 0.0245 to 25 V. Ardunio Uno R3’s Atmega 328 microcontroller operates at 5 V, thus to operate the microcontroller within 5 V the solar panels voltage needs to be reduced (As a solar panel provides 12 V/24 V). The voltage reduction is done with the voltage divider circuitry in cooperated with the voltage sensor module and the following codes has been used.

$${\text{Code:}}\quad {\text{v}}_{\text{in}} = {\text{v}}_{\text{out}} /\left( {{\text{R}}2/\left( {{\text{R}}1 + {\text{R}}2} \right)} \right);$$
(6)
$$\quad {\text{v}}_{\text{out}} = \left( {{\text{value}}/1024.0} \right) \times 5.0;$$
(7)

The two line of the codes (Eqs. 6 and 7) keeps the inputted analog voltage in Ardunio module within 5 V. However, the microcontroller converts the input 5 V to the actual value and works with the actual value during processing. The system can also be designed with a SEN-00101 Voltage Sensor (0–25). It is to be noted that the output section of SEN-00101 Voltage Sensor (0–25) has two pins (does not have the positive pin) unlike DIYmall Voltage Sensor DC 0–25 V which has three pins. The current sensing has been done using ACS712 current sensor module. The significant portion of the current sensing code is given below.

$${\text{Code:}} \quad {\text{RawValue}} = {\text{analogRead}}\left( {{\text{A}}1} \right);$$
(8)
$$\quad {\text{Voltage}}\,\left( {{\text{V}}_{\hbox{max} } } \right) = \left( {{\text{RawValue}}/1024.0} \right)*5*1000;//\;{\text{Gets}}\;{\text{the}}\;{\text{voltage}}\;{\text{in}}\;{\text{mV}}$$
(9)
$$\begin{aligned} &\quad {\text{Current}}\,\left( {{\text{I}}_{\hbox{max} } } \right) = \left( {\left( {{\text{Voltage}}\,\left( {{\text{V}}_{\hbox{max} } } \right) - {\text{ACSoffset}}} \right)/{\text{scale}}\;{\text{ factor}}} \right);\quad \quad \quad \left( 10 \right)//{\text{Sensed}}\;{\text{voltage}}\;{\text{is}} \\ & \quad {\text{converter}}\;{\text{to}}\;{\text{current}} \\ \end{aligned}$$

Again, for current sensing the analogRead(A1) function converts the analog signal to a digital signal between 0 and 1023. This value is thus converted to corresponding voltage value (Eq. 9). However, in Eq. 7 the voltage value is in Volt. But in Eq. 9 the value is in millivolt, thus multiplication of 1000 is written in the code. This is because the acquired current value is small (In the milliampere range) so millivolt is considered for more accuracy. In Eq. 10, the millivolt value is converted to current. It is seen in Eq. 10 there is a term called ACSoffset and Scale factor. As voltage and current are different scale in order to proper fit a scale factor has been used. According to the Ref. [27] up to 5 A range the scale factor is 185 mV per Amp and up to 20 A range the scale factor is 100 mV per Amp. Also form the same Ref. [27] the equation for the offset value of ACS current sensor module is given below.

$${\text{ACSoffset}} = {\text{Vcc}}/2$$
(11)

The Ardunio Uno R3’s operating voltage is 5 V. So ACSoffset value 2.5 V or 2500 mV is considered for converting voltage to current. After inputting Pin, Voc and Isc the program is executed in the open source Ardunio Software. Then the solar panels voltage (Vmax) and current (Imax) value is obtained by Ardunio module and after processing (getting at least 10 reading) the maximum Voltage (Vmax), maximum current (Imax), maximum power (Pm), fill factor and Efficiency are calculated by the Ardunio’s microcontroller using equation [1,2,3] and shown in the computer monitor. Then if required the result are stored and tabulated in the computer. It is to be mentioned that the Voc and Isc are measured directly under the sun with the help of multi meter (please see the Ref. [28] for details). Once the Voc and Isc measurement is done the solar panel has been connected with the implemented prototype system and measurement has been taken. In this work, a 10 W (0.1 m2), 8 W (0.05 m2) and 0.65 W (0.005 m2) silicon solar panels parameters were individually measured by the system at 3rd March, 2018, 12–1 P.M. (Bangladesh Standard Time).

5 Result and discussion

Table 1 shows the data for battery and power supply. It is seen that for 9 V battery and 5 V USB power supply the multi meter reading of voltage and current are 7.88 V, 0.37 A and 5.02 V, 1.10 A respectively. Whereas the implemented prototype system shows 7.79 V, 0.34 A and 4.89 V, 1.03 A for 9 V battery and 5 V USB power supply. It is to be noted that, for ≤ 5 V scale factor is considered 185 and for > 5 V scale factor it is considered 185. Because the system provides better result with these scale factor conditions and these conditions are followed for solar panel as well.

Table 1 Data for battery/power supply

As the results from multi meter and the system is very similar in range it is suffice to say that the system can detect the voltage and current of a battery or power supply efficiently and the system works very well. After obtaining the data of the battery, the battery has been replaced by solar panel and the data obtained from the silicon solar panels are tabulated in Table 2.

Table 2 Data for silicon solar panels

From Table 2 it is seen that, the implemented prototype system successfully measures and shows the values of Vmax, Imax, Pm, fill factor (FF) and efficiency of the silicon solar panels. For the 10 W solar panel the Vmax, Imax and Pm values are 19.80 V, 0.39 A and 7.72 W respectively. That is the 10 W solar panel is behaving like a 7.72 W solar panel at an instant according to implemented system. Furthermore, the efficiencies are found 9.65%, 8.59% and 8.4% respectively for 10 W, 8 W and 0.65 W solar panel. The efficiency can increase more depending upon the sun intensity or if the measurement is taken under AM 1.5G that is 1000 W/m2 conditions. However, generally commercially available solar panel efficiency is about to 13% [29, 30]. As the result does not differ that much in respect to 13% efficiency and as the measurement has been taken under real sun condition it can be said that the efficiency result is in good agreement with the result of commercially available solar cell. It would have been better if all the solar panels efficiency could have been measured by the commercial solar panel efficiency measurement system. But due to high price charging of the commercial solar panel efficiency measurement system, it is our future work. In general, The PV panels usually have an FF somewhere between 0.4 and 0.8 [31]. But Table 2 indicates that the fill factor value is more than 0.8 for 10 W and 8 W panels. From Eq. 1, it is seen that fill factor value depends on maximum voltage (Vmax) and maximum current (Imax). May be because the Imax value is close to the value Isc thus the fill factor value is high. Therefore, until the fill factor value is improved, this is a limitation of this system. Further improvement of fill factor value is necessary before commercialization of this prototype. It should be mentioned that the maximum current value sometime appears as same as the short circuit (Isc) value. So a program code has been inserted so that it does not count short circuit current value even it appears. Improvement regarding this option is also a part of our future work.

6 Conclusion

In this work, a simple prototype portable solar cell parameters and efficiency measurement system has been designed and developed. The system has been developed with a single Ardunio Uno, a voltage sensor, a current sensor, a multi meter and a lux meter. The developed system measures and shows the efficiency, fill factor, maximum voltage, maximum current and maximum power of a solar panel. The developed solar panel efficiency measurement system will be able to determine any kind of (CIGS, CZTS, perovskites, tandem devices, silicon) solar panel efficiency in the direct sun if the solar panel has output contact lead. Three silicon solar panels parameters has been measured by the system. The system shows that the efficiency of a 10 W, 8 W and 0.65 W silicon solar panel are 9.65%, 8.59% and 8.4% respectively. Without considering the cost of computer and solar panel the system cost is around 40$. Which is very low compared to the commercial solar panel efficiency measurement system. The cost saving has been done by using lux meter instead of xenon arc lamp. Also the system measures efficiency under direct sunlight instead of laboratory AM 1.5G environment. Redundant power supply is also not needed for this system as the system draws power from the computer. Furthermore, the system uses low cost Ardunio microcontroller. Thus, the system overall cost is reduced in comparison with commercial portable solar panel measurement system. The system must be optimized more before it is used as a commercial product. Future research on machine learning and soft computing incorporated with this system must be given priority. In addition, research on this type of equipment must be given upmost importance as there are variant types substandard and unspecified solar panels in the market. If a portable low cost solar panel parameter efficiency measurement system is properly developed then solar panels parameters can be easily determined. Also, the customer rights to utilized proper quality product can be ensured. Moreover, a solar panel standard can be set on the market and that standard can be monitored easily with the solar panel efficiency measurement system.