Solar Power WiFi Test

Implementarea unui proiect cu alimentare solară prezintă mai multe avantaje printre care, bineînțeles, se evidențiază independența de rețeaua electrică tradițională. În același timp un astfel de proiect ridică și multe probleme legate de dimensionarea soluției de alimentare și alegerea componentelor potrivite. Care este dimensiunea panoului solar? Ce soluție de stocare a energiei electrice alegem? Ce soluție de încărcare a acumulatorilor este cea mai potrivită? Acestea sunt câteva dintre întrebările la care vom încerca să răspundem în cadrul acestui proiect. Chiar dacă se poate face o evaluare inițială la nivel teoretic, în cadrul testului nostru vom alege varianta testării efective a soluției alese și evidențierea avantajelor și a punctelor slabe ale acesteia.

Ca soluție de maximizare a eficienței captării energiei solare și de încărcare a acumulatorului vom utiliza o componentă MPPT: Sunny Buddy – MPPT Solar Charger.

2

Această componentă permite conectarea unei celule solare cu ieșirea între 6V și 20V și încărcarea unui acumulator LiIon sau LiPo cu o singură celulă (3.7V). Curentul maxim de încărcare este de 450mA deci este necesară utilizarea unui acumulator de capacitate minimă 450mAh. În testul nostru vom utiliza o celulă solară de 2.5W / 9V și un acumulator LiPo de 800mAh. Pentru a supraveghea procesul de încărcare / descărcare a acumulatorului vom utiliza o placă de dezvoltare Adafruit Feather HUZZAH ce va raporta datele măsurate prin intermediul conexiunii WiFi către serviciul cloud iot.robofun.ro. Placa de dezvoltare se va alimenta de la acumulatorul LiPo conectat la componenta MPPT și va servi ca element de descărcare pentru acesta. Pentru o acuratețe mai bună a măsurătorilor vom utiliza o componentă ce va monitoriza nivelul de încărcare a bateriei: LiPo Fuel Gauge. Componenta de monitorizare se va intercala între ieșirea componentei MPPT și alimentarea plăcii de dezvoltare și va raporta prin intermediul unei magistrale I2C nivelul de încărcare a bateriei.

3

Diagrama de interconectare între componentele sistemului de test este următoarea:

4

Înainte de realizarea montajului și punerea lui în funcțiune este recomandată parcurgerea documentațiilor oficiale ale componentelor utilizate:

Atenție!!! Schema precedentă este schema finală de test. În momentul programării plăcii de dezvoltare trebuie să deconectăm alimentarea plăcii prin intermediul componentei de măsurare (să deconectăm placa de dezvoltare de componenta LiPo Fuel Gauge) și să deconectăm pinul Reset de pinul Wake (GPIO16) – firul galben.

Programul sistemului a fost dezvoltat și testat utilizând Arduino IDE 1.8.5, extensia ESP8266 Community 2.4.0 și biblioteca LiFuelGauge 1.0.

#include <Wire.h>

#include <ESP8266WiFi.h>

#include <ESP8266HTTPClient.h>

#include <LiFuelGauge.h>

În cadrul programului trebuie personalizate datele de conectare la rețeaua WiFi (variabilele ssid[] și pass[]).

char ssid[] = “…”;

char pass[] = “…”;

LiFuelGauge gauge(MAX17043);

Secțiunea setup() se va ocupa cu inițializarea comunicației cu modulul de măsurare a tensiunii din acumulator și cu inițializarea comunicației WiFi.

void setup() {

  gauge.reset();

  WiFi.mode(WIFI_STA);

  WiFi.hostname(“ESP_SolarMeter”);

  WiFi.begin(ssid, pass);

  byte retry = 0;

  while ((WiFi.status() != WL_CONNECTED) && (retry<10)) {

    delay(1000);

    retry++;

    if (retry==10) ESP.restart();

  }

}

Secțiunea loop() conține partea de citire a măsurătorilor efectuate de componenta LiPo Fuel Gauge și de trimiterea acestor măsurători către serviciul IoT. În cadrul programului trebuie personalizate cheile de autentificare (SENZOR_TOKEN1 și SENZOR_TOKEN2) obținute în urma înregistrării gratuite pe iot.robofun.ro. Postarea măsurătorilor se va face la un interval de o oră. Între măsurători sistemul va funcționa în mod de consum redus (deepSleep) pentru a minimiza consumul de energie și maximiza durata de funcționare.

void loop() {

  float batPercentage = gauge.getSOC();

  float batVoltage = gauge.getVoltage(); 

  String SENSOR_TOKEN1=”…”;

  String SENSOR_TOKEN2=”…”;

  HTTPClient http;

  String data =

String(“http://iot.robofun.ro/api/v1/senzor/&#8221;) + SENSOR_TOKEN1 + “/input?value=” + String(batVoltage, DEC);

  http.begin(data);

  int httpCode = http.GET();

  delay(100);

  http.end();

  data = String(“http://iot.robofun.ro/api/v1/senzor/&#8221;) + SENSOR_TOKEN2 + “/input?value=”  + String(batPercentage, DEC);

  http.begin(data);

  httpCode = http.GET();

  delay(100);

  http.end();

  ESP.deepSleep(3600L*1000000L);

}

Testarea sistemului va indica următoarele lucruri esențiale în funcționarea acestuia:

  • Sistemul de încărcare solar este capabil să înmagazineze într-o zi însorită suficientă energie pentru funcționarea sistemului pentru 24 de ore – sistemul poate funcționa autonom într-o perioadă însorită. Mai jos este graficul furnizat de serviciul iot.robofun pentru o succesiune de două zile însorite consecutive. Se poate observa că sistemul recuperează energia consumată peste noapte în timpul zilei.

5

6

  • Peste noapte sistemul pierde circa 30% din capacitatea acumulatorului. Asta înseamnă că sistemul poate funcționa circa trei zile fără reîncărcare (zile fără soare / înorate).

7

  • După epuizarea completă a energiei din acumulator sistemul nu este capabil să repornească singur chiar dacă urmează o zi însorită. Acest lucru este cauzat de curentul mare necesar la inițializarea plăcii de dezvoltare (peste 450mA, peste curentul furnizat de componenta Sunny Buddy). Sistemul nu va reuși să intre în mod de consum redus pentru a lăsa acumulatorul să se reîncarce și va rămâne într-o secvență infinită de inițializare ce va opri procesul de reacumulare a energiei solare.

Testul relevă posibilitatea limitată de funcționare a sistemului propus. Acesta poate funcționa o perioadă nedeterminată de timp în mod autonom atâta timp cât nu apare o succesiune de mai mult de două zile complet înnorate. Curentul mare necesar la inițializarea plăcii de dezvoltare blochează reluarea procesului de reîncărcare solară. Totuși, cu un alt consumator ce necesită un curent mai mic de inițializare, sistemul ar putea funcționa autonom și și-ar putea relua activitatea după o perioadă lungă fără lumină solară.