Solar Monitoring System


ESP-12 based Solar Panel Monitoring System

This system helps us to remotely monitor the power of the solar panels, batteries and the DC load  from anywhere.

It’s based on the Nodemcu ESP-12 WiFi module and Blynk application. The battery voltage will be displayed on the Gauge and by using buttons you can switch batteries under charger.

Hardware Requirements

  • ESP-12 WiFi module
  • 2 x VOLTAGE SENSOR (INA219) for Batteries (from 0 to 26 V)
  • VOLTAGE SENSOR (INA229) for Solar
  • 2 x ACS712 Current sensing Module in 20A
  • 4 x resistors used as voltage divider
  • 4 Channels ADS1115 16 Bit ADC Board (I2C, address 0x48)
  • 2 x DS18b20 Temperature sensors
  • Temperature  Sensor Devices:
    • LM35 Integrated Circuit (range of 0-100°C)
    • DHT11 Temperature/Humidity sensor
    • BMP280 Barometric Pressure + Temperature Sensor 
  • Two power supply 3.3v for ESP module and the others module and 5v for  2xACS712 modules
  • Two Channel Relays 

To measure the voltage of solar panel, I’m using an INA229 and for two batteries INA219.
The maximum input voltage for INA219 is 26 V and  for INA229 is limited to 36 V. 
The devices use a 3 to 5.5-V supply and can be assigned to 4 different I2C addresses (0x40, 0x41, 0x42, 0x43).

  1. #include <Wire.h>
  2. #include <Adafruit_INA219.h>
  4. Adafruit_INA219 ina219_B1;
  5. Adafruit_INA219 ina219_B2(0x41);

  6. void setup(void){
  7.   ina219_B1.begin(); // Initialize first board (default address 0x40)
  8.   ina219_B2.begin(); // Initialize second board with the address 0x41
  9. }

The esp8266 is a 3.3v microcontroller a hall effect device so it can be affected by stray magnetic fields that are nearby.

I’m using two ACS712 modules to measure the currents.

One sensor measures the current of charger and other the current of the load.
The ACS712 has to supply with 5V. It will give 2.5V output for 0.0A current and can use in different mode.
 This mode the ACS712 20A module gives a sensitivity of 0.1V/A.

The ADS1115 is a 16-bit analog-to-digital converter and  I’m using to read voltage from Hall sensor. 
The ADS115 with one of four I2C  addresses. (0x48, 0x49, 0x4a, 0x4b).

Voltage Supply (Vdd): 2 ~ 5V
Measurement range: -300mV to Vdd+300mV
Data rate: 8 ~ 860 SPS
Active current: ~150uA (200uA max)

I’m using it in two channel Mode and in GAIN_ONE mode.
In GAIN_ONE i can measure the voltage up to maximum 4V with a voltage divider  and this provides me a resolution of 0.125mV per bit.  (4.096 volts / 32767 bits )

I calculated the ADC in gain_one program mode together with ACS as followed:

  1. #include <Wire.h>
  2. #include <Adafruit_ADS1015.h>
  3. Adafruit_ADS1115 ads(0x48);  // use for the 16-bit
  4. void setup(void) {
  5.   // ads.setGain(GAIN_TWOTHIRDS);  // 2/3x gain +/- 6.144V  1 bit = 3mV      0.1875mV (default)
  6.   // ads.setGain(GAIN_ONE);        // 1x gain   +/- 4.096V  1 bit = 2mV      0.125mV
  7.   ads.begin(); 
  8.   ...
  9. }

Hot temperatures could be dangerous for batteries health.
The proposed to using DHT11 sensor is to get battery temperature and compere it with the environment temperature.
The mobile app will display the current temperature and humidity.


The whole system:


Waiting for delivery of items 
Continue …

Post your comment





See more website here...

  • ganada
  • Farsi-News
  • Advertise Here