Introduction: Solar Panel Dual Management System(SP DMS)

About: Utilizing the spare time to Learn, Make and Share DIY Electronics and IoT projects with the online maker community.

This IoT prototype performs two functions: 1) Theft prevention and 2) Maintenance Indication of solar panel using LinkIt ONE and Sensors

1) Theft Prevention: To achieve this we use the GPS and GPRS features of LinkIt ONE Board with accelerometer. If the Panel moves or unauthorized activity occurs then there is change in axis value of accelerometer which will be detected by LinkIt ONE. It will process the data and notify the GPS location of Panel for tracking on webserver as well as on mobile app. Alert action is defined on webserver like email alert or sms.

2) Maintenance Indication: To achieve this function we use Dust, Voltage and Current Sensors. So when the deposition of dust on Panel increases the efficiency start to reduce, this can be monitored by LinkIt ONE using the sensor values. It will update this data on webserver which can be viewed to know the time for maintenance of Panel.

In both cases we use GPRS feature of LinkIt ONE to send data on Ubidots webserver.

In above image lists you will find components required for this DIY with their quantities.

Lets begin with development...

Step 1: Getting Started With LinkIt One Board

We need to interface various sensor, so during testing process keep switch position of LinkIt Board as UART, USB and SPI mode as shown in above image.

At final installation change only the position of supply switch for battery mode.

Here are various links for getting started with LinkIt ONE board and setups:

This guides you through the process of installing drivers and uploading codes to LinkIt ONE. Also you will find details of board.

Step 2: Interfacing and Testing of Sensors With LinkIt ONE

Above video demonstrates interfacing details of each sensor and step by step testing process.

1. Voltage Sensor:

Since the analog pins of LinkIt ONE is tolerant upto 5V only, so we need to use potential divider network to bring down voltage of panel within the range of LinkIt ONE (0-5V).

So select R1=470k and R2=47k

Voltage at A2 = VINxR2/ (R1+R2)


So upto 0-55V range we can measure

2. Current Sensor:

The ACS712 sensor read the current value and convert it into a relevant voltage value, The value that links the two measurements is sensitivity (you can find it on the datasheet) which – for 5A model – has a typical value of 185mV/A. The sensor can measure positive and negative currents (range -5A…5A), and power supply is 5V for the sensor, and the middle sensing voltage is 2.5V when no current. It measure both AC and DC current.

LinkIt ONE AnalogRead() function outputs a value between 0 (0V in input) and 1023 (5V in input) that is 0.0049V for each increment. We will use the following formula to covert the 0 ~1023 value to an ampere value.

A = (0.0049 X units - 2.5 / 0.185)

For testing, I have use 12V supply given to DC fan whose current is measured.

3. Grove dust sensor:
Following are links to get details of working of sensors:

4. Grove 3-Axis_Digital_Accelerometer(±16g):

Download accelerometer zip file from below link and extract it in libraries folder of arduino

you can find demo example with above library.

Here are the arduino code files for testing of individual sensors and their combine test.

Step 3: Setting Up Ubidots Webserver for Project

I have used Ubidots webserver for my prototype. Above video shows the ubidots setup process for solar panel dual management system.

Step 4: Building Standalone WebApp

If you don’t want to login again and again to your webserver just to view data than you can build standalone webapp. This can be open directly to visualize you webserver data.

To Makewebapp for your webserver steps are:

1. Copy/Download index.html and position.html in one folder from

2. Copy the embed code of variable setup at webserver which is in iframe format from dashboard as shown in above image.

3. Open index.html and position.html file in any text editor. Replace iframe section with your iframe obtained from previous step in index file for variables and location in position file as shown in image

4. Open index.html in browser and you are done

Step 5: Final Assembly

Step wise assembly of everything is shown in above images.

After this you can upload final code given below to LinkIt ONE for testing.

Step 6: Result

Above images shows the test results of project.

Arduino All The Things! Contest

Participated in the
Arduino All The Things! Contest