- Različni načini za zmanjšanje porabe energije
- Potrebne komponente
- Vrste načinov spanja v ESP8266
- ESP8266 Programiranje v globokem načinu mirovanja
- Testiranje DeepSleep v ESP8266
Ker revolucija IoT vsak dan cveti, število povezanih naprav zelo hitro narašča. V prihodnosti bo večina naprav medsebojno povezanih in bo komunicirala v realnem času. Ena izmed težav, s katero se srečujejo te naprave, je poraba energije. Ta faktor porabe energije je eden ključnih in odločilnih dejavnikov za katero koli napravo IoT in projekte IoT.
Kot vemo, da je ESP8266 eden najbolj priljubljenih modulov za izdelavo katerega koli projekta interneta stvari, se v tem članku učimo o varčevanju z energijo med uporabo ESP8266 v kateri koli aplikaciji IoT. Sem naložimo podatke temperaturnega senzorja LM35 v oblak ThingSpeak v intervalu 15 sekund in v teh 15 sekundah ESP8266 ostane v načinu DeepSleep, da prihrani energijo
Različni načini za zmanjšanje porabe energije
Obstaja več načinov za optimizacijo porabe energije v vdelanih napravah in napravah IoT. Optimizacijo lahko izvedemo na strojni in programski opremi. Včasih ne moremo optimizirati komponent strojne opreme za zmanjšanje porabe energije, zagotovo pa lahko to storimo na strani programske opreme s spreminjanjem in optimizacijo navodil in funkcij kode. Ne samo to, razvijalci lahko tudi spremenijo frekvenco ure, da zmanjšajo porabo energije mikrokrmilnika.Lahko napišemo vdelano programsko opremo, da strojna oprema preklopi v stanje mirovanja, kadar ni izmenjave podatkov, in v določenem intervalu izvedemo določeno nalogo. V načinu spanja povezana strojna oprema porabi zelo manj energije, zato lahko baterija zdrži dolgo. Če želite izvedeti več o tehnikah porabe energije, lahko preberete tudi Minimiziranje porabe energije v mikrokrmilnikih.
Moduli ESP8266 so najpogosteje uporabljeni moduli Wi-Fi in imajo veliko majhnih funkcij, ki imajo različne načine, vključno s načinom mirovanja, do teh načinov pa je mogoče dostopati z nekaj spremembami v strojni in programski opremi. Če želite izvedeti več o ESP8266, si lahko ogledate naše IoT projekte, ki uporabljajo Wi-Fi modul ESP826, nekateri izmed njih so navedeni spodaj:
- Povezava ESP8266 NodeMCU z mikrokrmilnikom Atmega16 za pošiljanje e-pošte
- Pošiljanje podatkov senzorja temperature in vlažnosti v zbirko podatkov Firebase v realnem času z uporabo NodeMCU ESP8266
- IoT nadzorovana LED z uporabo Google Firebase Console in ESP8266 NodeMCU
Tu bomo razložili različne načine spanja, ki so na voljo v ESP8266, in jih prikazali tako, da v rednem intervalu pošljemo podatke o temperaturi na strežnik Thingspeak z uporabo načina globokega spanja.
Potrebne komponente
- ESP8266 Wi-Fi modul
- LM35 temperaturni senzor
- Jumper žice
Vrste načinov spanja v ESP8266
Modul Esp8266 deluje v naslednjih načinih:
- Aktivni način: V tem načinu je vklopljen celoten čip in čip lahko sprejema in prenaša podatke. Očitno je to način, ki najbolj porablja energijo.
- Modem v načinu spanja: v tem načinu CPU deluje in radijski sprejemniki Wi-Fi so onemogočeni. Ta način se lahko uporablja v aplikacijah, ki zahtevajo, da CPU deluje, kot v PWM. Zaradi tega se vezje modema Wi-Fi izklopi, ko je povezan z dostopno točko Wi-Fi (AP) brez prenosa podatkov, da se optimizira poraba energije.
- Način lahkega spanja: v tem načinu so CPU in vse zunanje naprave zaustavljene. Vsako prebujanje, kot so zunanje prekinitve, bo zbudilo čip. Brez prenosa podatkov lahko vezje Wi-Fi modema izklopite in CPU začasno ustavite, da prihranite porabo energije.
- Način globokega spanja: v tem načinu deluje samo RTC, vsi drugi deli čipa pa so izključeni. Ta način je uporaben, kadar se podatki prenašajo po daljšem časovnem razmiku.
Temperaturni senzor LM35 povežite z zatičem A0 NodeMCU.
Ko ima modul ESP HIGH na zatiču RST, je v stanju delovanja. Takoj, ko prejme LOW signal na RST pin, se ESP znova zažene.
Nastavite časovnik v načinu globokega spanja, ko se časovnik konča, zatič D0 pošlje signal LOW na zatič RST in modul se znova zažene.
Zdaj je strojna oprema pripravljena in dobro konfigurirana. Odčitki temperature bodo poslani na strežniku Thingspeak. Za to ustvarite račun na thingspeak.com in ustvarite kanal, tako da sledite spodnjim korakom.
Zdaj kopirajte ključ API API. Katera bo uporabljena v kodi ESP.
ESP8266 Programiranje v globokem načinu mirovanja
Preprosto dostopen Arduino IDE bo uporabljen za programiranje modula ESP8266. Prepričajte se, da so nameščene vse datoteke plošče ESP8266.
Začnite z vključitvijo vseh pomembnih knjižnic, ki so potrebne.
#include
Ko so za dostop do funkcij vključene vse knjižnice, dodelite ključ za pisanje API-ja, konfigurirajte svoje ime in geslo za Wi-Fi. Nato prijavite vse spremenljivke za nadaljnjo uporabo, kje bodo shranjeni podatki.
String apiWritekey = "*************"; // zamenjajte s ključem THINGSPEAK WRITEAPI tukaj char ssid = "******"; // vaše wifi SSID ime char geslo = "******"; // wifi geslo
Zdaj naredite funkcijo za povezavo modula z omrežjem Wi-Fi s pomočjo funkcije wifi.begin () in nato neprekinjeno preverjajte, dokler modul ni povezan z Wi-Fi z uporabo zanke while.
void connect1 () { WiFi.disconnect (); zamuda (10); WiFi.begin (ssid, geslo); medtem ko (WiFi.status ()! = WL_CONNECTED) {
Naredite drugo funkcijo za pošiljanje podatkov na Thingspeak strežnik. Tu bo poslan niz, ki vsebuje ključ za zapis API, številko polja in podatke, ki jih je treba poslati. Nato pošljite ta niz s funkcijo client.print ().
void data () { if (client.connect (server, 80)) { String tsData = apiWritekey; tsData + = "& field1 ="; tsData + = niz (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / posodobitev HTTP / 1.1 \ n"); client.print ("Gostitelj: api.thingspeak.com \ n");
Pokličite funkcijo connect1, ki bo poklicala funkcijo za povezavo Wi-Fi, nato zajemite odčitke temperature in jo pretvorite v Celzijeve vrednosti.
void setup () { Serial.begin (115200); Serial.println ("naprava je v načinu bujenja"); connect1 (); int vrednost = analogRead (A0); plavajoči volti = (vrednost / 1024,0) * 5,0; tempC = volti * 100,0;
Zdaj pokličite funkcijo data (), če želite podatke naložiti v oblak thingspeak. Nazadnje je pomembna funkcija, ki jo je treba poklicati, ESP.deepSleep (); to bo modul preklopilo v določenem časovnem intervalu, ki je v mikrosekundah.
podatki (); Serial.println ("globok spanec 15 sekund"); ESP.deepSleep (15e6);
Funkcija zanke ostane prazna, saj je treba vse naloge izvesti enkrat, nato pa modul ponastaviti po določenem časovnem intervalu.
Delovni video in celotna koda sta podana na koncu te vadnice. Naložite kodo v modul ESP8266. Pred nalaganjem programa odstranite priključeno žico RST in D0, sicer bo prišlo do napake.
Testiranje DeepSleep v ESP8266
Po nalaganju programa boste videli, da se odčitki temperature nalagajo v oblak ThingSpeak po vsakih 15 sekundah, nato pa modul preide v način globokega spanja.
S tem je vadnica o uporabi globokega spanja v modulu ESP8266 zaključena. Globoko spanje je zelo pomembna lastnost in je vključena v večino naprav. Lahko se obrnete na to vadnico in uporabite to metodo za različne projekte. V primeru kakršnih koli dvomov ali predlogov pišite in komentirajte spodaj. Lahko se obrnete tudi na naš forum.