Sunteți pe pagina 1din 8

Textul și imaginile din acest document sunt licențiate

Attribution-NonCommercial-NoDerivs
CC BY-NC-ND

Codul sursă din acest document este licențiat


Public-Domain

Ești liber să distribui acest document prin orice mijloace consideri (email, publicare pe website /
blog, tipărire, sau orice alt mijloc), atât timp cât nu aduci nici un fel de modificări acestuia. Codul
sursă din acest document poate fi utilizat în orice fel de scop, de natură comercială sau nu, fără nici
un fel de limitări dar autorii nu își asumă nici o răspundere pentru pagubele pricinuite de
implementările realizate de utilizatori. Schemele și codul sursă au un rol educativ și nu sunt gândite
pentru a fi utilizate în mediu de producție (industrial, casnic sau comercial).
Solar Power WiFi Test
Implementarea unui proiect cu alimentare
solară prezintă mai multe avantaje printre
care, bineîț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 această lecție. 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 [1]: 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 [3] și un acumulator LiPo de 800mAh [4].
Pentru a supraveghea procesul de încărcare / descărcare a acumulatorului vom utiliza
o placă de dezvoltare Adafruit Feather HUZZAH [5] ce va raporta datele măsurate prin
intermediul conexiunii WiFi către serviciul cloud
iot.robofun.ro [6]. 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
[7]. 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.

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

https://www.robofun.ro/forum/
Înainte de realizarea montajului și punerea lui în funcțiune este recomandată
parcurgerea documentațiilor oficiale ale componentelor utilizate:
 Sunny Buddy Solar Charger V13 Hookup Guide [8]
 Adafruit Feather HUZZAH ESP8266 | Adafruit Learning System [9]

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 [10].

#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[] = "BLACK";


char pass[] = "radu7788";

LiFuelGauge gauge(MAX17043);

https://www.robofun.ro/forum/
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.roborfun.ro [6].
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/") +
SENSOR_TOKEN1 + "/input?value=" +
String(batVoltage, DEC);

https://www.robofun.ro/forum/
http.begin(data);
int httpCode = http.GET();
delay(100);
http.end();
data = String("http://iot.robofun.ro/api/v1/senzor/") +
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.

https://www.robofun.ro/forum/
 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).

 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

https://www.robofun.ro/forum/
î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ă.

Referințe on-line

[1] Maximum power point tracking


https://en.wikipedia.org/wiki/Maximum_power_point_tracking

[2] Sunny Buddy - MPPT Solar Charger


https://www.robofun.ro/sunny-buddy-mppt-incarcator solar?utm_source=newsletter&utm_medium=email&utm_content=productLink&utm_campaign=CURS_EMAIL

[3] Solar Cell Large - 2.5W


https://www.sparkfun.com/products/7840

[4] Acumulator LiPo - 3.7v 800mAh


https://www.robofun.ro/Acumulator-LiPo-3.7v-800mAh?utm_source=newsletter&utm_medium=email&utm_content=productLink&utm_campaign=CURS_EMAIL

[5] Feather HUZZAH cu ESP8266 WiFi


https://www.robofun.ro/adafruit-feather-huzzah-with-esp8266-wifi?utm_source=newsletter&utm_medium=email&utm_content=productLink&utm_campaign=CURS_EMAIL

[6] Robofun IoT


https://iot.robofun.ro/

[7] LiPo Fuel Gauge


https://www.robofun.ro/lipo_gauge_fuel?utm_source=newsletter&utm_medium=email&utm_content=productLink&utm_campaign=CURS_EMAIL

https://www.robofun.ro/forum/
[8] Sunny Buddy Solar Charger V13 Hookup Guide
https://learn.sparkfun.com/tutorials/sunny-buddy-solar-charger-v13-hookup-guide-

[9] Adafruit Feather HUZZAH ESP8266 | Adafruit Learning System


https://learn.adafruit.com/adafruit-feather-huzzah-esp8266

[10] LiFuelGauge: Arduino library for interfacing with the MAXIM MAX17043 /
MAX17044 Li+ fuel gauge
https://github.com/nlamprian/LiFuelGauge

https://www.robofun.ro/forum/