- Diferite metode de minimizare a consumului de energie
- Componente necesare
- Tipuri de moduri de somn în ESP8266
- Programare modul Deep Sleep ESP8266
- Testarea DeepSleep în ESP8266
Pe măsură ce revoluția IoT crește în fiecare zi, numărul de dispozitive conectate crește foarte rapid. În viitor, majoritatea dispozitivelor vor fi conectate între ele și vor comunica în timp real. Una dintre problemele cu care se confruntă aceste dispozitive este consumul de energie. Acest factor de consum de energie este unul dintre factorul critic și decisiv pentru orice dispozitiv IoT și proiecte IoT.
După cum știm că ESP8266 este unul dintre cele mai populare module pentru a construi orice proiect IoT, așa că în acest articol aflăm despre economisirea energiei în timp ce utilizați ESP8266 în orice aplicație IoT. Aici încărcăm datele senzorului de temperatură LM35 în cloud ThingSpeak în interval de 15 secunde și în acele 15 secunde ESP8266 rămâne în modul DeepSleep pentru a economisi energie
Diferite metode de minimizare a consumului de energie
Există mai multe moduri de a optimiza consumul de energie în dispozitivele încorporate și IoT. Optimizarea se poate face pe hardware și software. Uneori nu putem optimiza componentele hardware pentru a reduce consumul de energie, dar cu siguranță o putem face din partea software-ului schimbând și optimizând instrucțiunile și funcțiile codului. Nu numai acest lucru, dezvoltatorii pot modifica și frecvența ceasului pentru a reduce consumul de energie al microcontrolerului.Putem scrie un firmware pentru a face hardware-ul să se oprească atunci când nu există schimb de date și să realizăm sarcina definită într-un anumit interval. În modul de repaus, hardware-ul conectat consumă foarte puțină energie și, prin urmare, bateria poate dura mult. De asemenea, puteți citi Minimizarea consumului de energie în microcontrolere, dacă doriți să aflați mai multe despre tehnicile de consum de energie.
Modulele ESP8266 sunt cele mai utilizate module Wi-Fi cu multe caracteristici de dimensiuni mici, cu moduri diferite, inclusiv modul de repaus, iar aceste moduri pot fi accesate utilizând unele modificări în hardware și software. Pentru a afla mai multe despre ESP8266, puteți verifica proiectele noastre bazate pe IoT utilizând modulul Wi-Fi ESP826, unele dintre ele sunt enumerate mai jos:
- Interfațarea ESP8266 NodeMCU cu microcontrolerul Atmega16 pentru a trimite un e-mail
- Trimiterea datelor senzorului de temperatură și umiditate către baza de date în timp real Firebase utilizând NodeMCU ESP8266
- LED controlat de IoT utilizând Google Firebase Console și ESP8266 NodeMCU
Aici vom explica diferitele moduri de somn disponibile în ESP8266 și le vom demonstra prin trimiterea datelor de temperatură către serverul Thingspeak într-un interval regulat folosind modul de somn profund.
Componente necesare
- Modul Wi-Fi ESP8266
- Senzor de temperatură LM35
- Sârme de jumper
Tipuri de moduri de somn în ESP8266
Modulul Esp8266 funcționează în următoarele moduri:
- Mod activ: În acest mod, întregul cip este pornit și cipul poate primi, transmite datele. Evident, acesta este modul cel mai consumator de energie.
- Mod modem-sleep: În acest mod, CPU este operațional și radiourile Wi-Fi sunt dezactivate. Acest mod poate fi utilizat în aplicațiile care necesită ca CPU să funcționeze, ca în PWM. Face ca circuitul modemului Wi-Fi să se oprească în timp ce sunteți conectat la punctul Wi-Fi AP (punct de acces) fără transmisie de date pentru a optimiza consumul de energie.
- Mod lumină-repaus: în acest mod, CPU și toate perifericele sunt întrerupte. Orice trezire, cum ar fi întreruperile externe, va trezi cipul. Fără transmisie de date, circuitul modemului Wi-Fi poate fi oprit și CPU suspendat pentru a economisi consumul de energie.
- Mod de somn profund: În acest mod, numai RTC este funcțional și toate celelalte componente ale cipului sunt oprite. Acest mod este util atunci când datele sunt transmise după intervale lungi de timp.
Conectați senzorul de temperatură LM35 cu pinul A0 al NodeMCU.
Când modulul ESP are HIGH pe pinul RST, acesta este în stare de funcționare. De îndată ce primește semnal LOW pe pinul RST, ESP repornește.
Setați temporizatorul utilizând modul de repaus profund, odată ce temporizatorul se termină, atunci pinul D0 trimite semnalul LOW către pinul RST și modulul se va trezi prin repornirea acestuia.
Acum, hardware-ul este gata și este bine configurat. Citirile de temperatură vor fi trimise pe serverul Thingspeak. Pentru aceasta, creați un cont pe thingspeak.com și creați un canal parcurgând pașii de mai jos.
Acum, copiați cheia API de scriere. Care va fi folosit în codul ESP.
Programare modul Deep Sleep ESP8266
ID-ul Arduino ușor disponibil va fi utilizat pentru a programa modulul ESP8266. Asigurați-vă că toate fișierele de bord ESP8266 sunt instalate.
Începeți cu includerea tuturor bibliotecilor importante necesare.
#include
Odată ce toate bibliotecile sunt incluse pentru accesarea funcțiilor, alocați tasta de scriere API, configurați numele și parola Wi-Fi. Declarați apoi toate variabilele pentru utilizare ulterioară în cazul în care datele vor fi stocate.
String apiWritekey = "*************"; // înlocuiți cu cheia THINGSPEAK WRITEAPI aici char ssid = "******"; // numele dvs. SSID wifi char password = "******"; // parolă wifi
Acum, creați o funcție pentru a conecta modulul la rețeaua Wi-Fi utilizând funcția wifi.begin () și apoi verificați continuu până când modulul nu este conectat la Wi-Fi folosind bucla while.
void connect1 () { WiFi.disconnect (); întârziere (10); WiFi.begin (ssid, parolă); while (WiFi.status ()! = WL_CONNECTED) {
Faceți o altă funcție pentru a trimite datele către serverul thingspeak. Aici va fi trimis un șir care conține cheia de scriere API, numărul câmpului și datele care trebuie trimise. Apoi trimiteți acest șir folosind funcția client.print ().
void data () { if (client.connect (server, 80)) { String tsData = apiWritekey; tsData + = "& field1 ="; tsData + = String (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / actualizare HTTP / 1.1 \ n"); client.print ("Gazdă: api.thingspeak.com \ n");
Apelați funcția connect1 care va apela funcția de conectare Wi-Fi, apoi faceți citirile temperaturii și convertiți-o în Celsius.
void setup () { Serial.begin (115200); Serial.println („dispozitivul este în modul Wake up”); conectare1 (); valoare int = analogRead (A0); volți plutitori = (valoare / 1024.0) * 5,0; tempC = volți * 100,0;
Acum, apelați funcția data () pentru a încărca datele pe cloud-ul thingspeak. În cele din urmă, funcția importantă de apelat este ESP.deepSleep (); acest lucru va face modulul să adoarmă pentru intervalul de timp definit, care este în microsecunde.
date(); Serial.println („somn profund 15 secunde”); ESP.deepSleep (15e6);
Funcția de buclă va rămâne goală deoarece toată sarcina trebuie efectuată o singură dată și apoi resetați modulul după intervalul de timp definit.
Videoclipul de lucru și codul complet sunt date la sfârșitul acestui tutorial. Încărcați codul în modulul ESP8266. Scoateți firul conectat RST și D0 înainte de a încărca programul, altfel va da o eroare.
Testarea DeepSleep în ESP8266
După încărcarea programului, veți vedea că citirile de temperatură se încarcă pe norul ThingSpeak după fiecare 15 secunde și apoi modulul merge în modul de somn profund.
Aceasta completează tutorialul despre utilizarea Deep Sleep în modulul ESP8266. Deepsleep este o caracteristică foarte importantă și a fost inclusă în majoritatea dispozitivelor. Puteți consulta acest tutorial și puteți aplica această metodă pentru diferite proiecte. În caz de dubii sau sugestii, vă rugăm să scrieți și să comentați mai jos. De asemenea, puteți accesa forumul nostru.