- Įvairūs energijos vartojimo sumažinimo metodai
- Būtini komponentai
- ESP8266 miego režimų tipai
- ESP8266 gilaus miego režimo programavimas
- „DeepSleep“ testavimas ESP8266
Kadangi daiktų daiktų revoliucija kiekvieną dieną klesti, prijungtų įrenginių skaičius auga labai greitai. Ateityje dauguma prietaisų bus prijungti vienas prie kito ir bendraus realiuoju laiku. Viena iš problemų, su kuriomis susiduria šis įrenginys, yra energijos suvartojimas. Šis energijos suvartojimo koeficientas yra vienas iš svarbiausių ir lemiamų veiksnių, susijusių su bet kuriuo daiktų interneto įrenginiu ir daiktų interneto projektais.
Kaip žinome, kad ESP8266 yra vienas iš populiariausių modulių kuriant bet kokį IoT projektą, todėl šiame straipsnyje mes sužinome apie energijos taupymą naudojant ESP8266 bet kurioje IoT programoje. Čia į „ThingSpeak“ debesį per 15 sekundžių įkeliame LM35 temperatūros jutiklio duomenis ir per tas 15 sekundžių ESP8266 lieka „DeepSleep“ režime, kad taupytų energiją
Įvairūs energijos vartojimo sumažinimo metodai
Yra keli būdai, kaip optimizuoti energijos sąnaudas įterptuosiuose ir daiktų interneto įrenginiuose. Optimizavimą galima atlikti aparatinėje ir programinėje įrangoje. Kartais mes negalime optimizuoti aparatūros komponentų, kad sumažintume energijos sąnaudas, tačiau tikrai galime tai padaryti programinės įrangos pusėje, keisdami ir optimizuodami kodo instrukcijas ir funkcijas. Maža to, kūrėjai taip pat gali modifikuoti laikrodžio dažnį, kad sumažintų mikrovaldiklio energijos suvartojimą.Mes galime parašyti programinę aparatinę įrangą, kad aparatinė įranga veiktų miego režimu, kai nėra keitimosi duomenimis, ir atlikti apibrėžtą užduotį tam tikru intervalu. Miego režimu prijungta aparatinė įranga sunaudoja labai mažai energijos, todėl baterija gali ilgai tarnauti. Jei norite daugiau sužinoti apie energijos suvartojimo būdus, taip pat galite perskaityti „Maitinimo sąnaudų sumažinimas mikrovaldikliuose“.
ESP8266 moduliai yra plačiausiai naudojami „Wi-Fi“ moduliai, turintys daugybę nedidelio dydžio funkcijų, turinčių skirtingus režimus, įskaitant miego režimą, ir šiuos režimus galima pasiekti naudojant tam tikrą techninės ir programinės įrangos modifikaciją. Norėdami sužinoti daugiau apie ESP8266, galite patikrinti mūsų interneto projektus, naudodami ESP826 „Wi-Fi“ modulį, kai kurie iš jų yra išvardyti toliau:
- Sąsaja ESP8266 „NodeMCU“ su „Atmega16“ mikrovaldikliu, kad galėtumėte siųsti el. Laišką
- Temperatūros ir drėgmės jutiklio duomenų siuntimas į „Firebase“ realaus laiko duomenų bazę naudojant „NodeMCU ESP8266“
- „IoT“ valdomas šviesos diodas naudojant „Google Firebase Console“ ir ESP8266 „NodeMCU“
Čia mes paaiškinsime įvairius miego režimus, galimus ESP8266, ir pademonstruosime juos, siųsdami temperatūros duomenis į „ Thingspeak“ serverį reguliariai, naudodami gilaus miego režimą.
Būtini komponentai
- ESP8266 „Wi-Fi“ modulis
- LM35 temperatūros jutiklis
- Džemperių laidai
ESP8266 miego režimų tipai
„Esp8266“ modulis veikia šiais režimais:
- Aktyvus režimas: šiuo režimu įjungiama visa lustas ir lustas gali priimti, perduoti duomenis. Akivaizdu, kad tai yra daugiausiai energijos sunaudojantis režimas.
- Modemo miego režimas: Šiame režime veikia centrinis procesorius ir „Wi-Fi“ radijo imtuvai yra išjungti. Šis režimas gali būti naudojamas programose, kurioms reikalingas procesoriaus veikimas, kaip ir PWM. Dėl to „Wi-Fi“ modemo grandinė išsijungia, kai jis yra prijungtas prie „Wi-Fi AP“ (prieigos taško) be duomenų perdavimo, kad būtų optimizuotas energijos suvartojimas.
- Lengvo miego režimas: šiame režime procesorius ir visi išoriniai įrenginiai pristabdyti. Bet koks pabudimas, pavyzdžiui, išoriniai pertraukimai, pažadins lustą. Be duomenų perdavimo „Wi-Fi“ modemo grandinę galima išjungti ir sustabdyti procesorių, kad būtų sutaupyta energijos.
- Gilaus miego režimas: šiuo režimu veikia tik RTC, o visi kiti lusto komponentai yra išjungti. Šis režimas yra naudingas, kai duomenys perduodami po ilgų laiko tarpų.
LM35 temperatūros jutiklį prijunkite prie „ NodeMCU“ A0 kaiščio.
Kai ESP modulis turi HIGH ant RST kaiščio, jis veikia. Kai tik jis gauna LOW signalą ant RST kaiščio, ESP vėl paleidžiamas.
Laikmatį nustatykite naudodami gilaus miego režimą, kai laikmatis baigsis, tada D0 kaištis siunčia LOW signalą į RST kaištį ir modulis pabus jį iš naujo paleidęs.
Dabar aparatinė įranga yra paruošta ir gerai sukonfigūruota. Temperatūros rodmenys bus siunčiami į „Thingspeak“ serverį. Norėdami tai padaryti, sukurkite paskyrą thingspeak.com ir sukurkite kanalą atlikdami toliau nurodytus veiksmus.
Dabar nukopijuokite „Write API“ raktą. Kuris bus naudojamas ESP kode.
ESP8266 gilaus miego režimo programavimas
Lengvai prieinamas „Arduino IDE“ bus naudojamas programuoti ESP8266 modulį. Įsitikinkite, kad visi ESP8266 plokštės failai yra įdiegti.
Pradėkite įtraukdami visas reikalingas svarbias bibliotekas.
# įtraukti
Įtraukę visas bibliotekas prieigą prie funkcijų, paskirkite API rašymo raktą, sukonfigūruokite „Wi-Fi“ pavadinimą ir slaptažodį. Tada deklaruokite visus kintamuosius tolesniam naudojimui, kur bus saugomi duomenys.
Eilutė apiWritekey = "*************"; // čia pakeiskite savo THINGSPEAK WRITEAPI raktą char ssid = "******"; // jūsų „wifi“ SSID vardas char slaptažodis = "******"; // „wifi“ slaptažodis
Dabar sukurkite funkciją, kad modulis būtų prijungtas prie „Wi-Fi“ tinklo, naudojant funkciją „wifi.begin ()“, tada nuolat tikrinkite, kol modulis nebus prijungtas prie „Wi-Fi“ naudojant „loop“.
void connect1 () { WiFi.disconnect (); vėlavimas (10); „WiFi.begin“ (ssid, slaptažodis); o („WiFi.status ()! = WL_CONNECTED] {
Padarykite kitą funkciją, norėdami siųsti duomenis į „thingspeak“ serverį. Čia bus išsiųsta eilutė, kurioje yra API rašymo raktas, lauko numeris ir duomenys, kuriuos reikia išsiųsti. Tada nusiųskite šią eilutę naudodami funkciją client.print ().
negaliojantys duomenys () { if (klientas. prisijungti (serveris, 80)) { String tsData = apiWritekey; tsData + = "& laukas1 ="; tsData + = eilutė (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / atnaujinti HTTP / 1.1 \ n"); klientas.printas ("Priimančioji: api.thingspeak.com \ n");
Iškvieskite „connect1“ funkciją, kuri iškvies funkciją, kad būtų galima prisijungti prie „Wi-Fi“, tada paimkite temperatūros rodmenis ir paverskite jį Celsijaus laipsniais.
negaliojanti sąranka () { Serial.begin (115200); Serial.println („įrenginys veikia pažadinimo režimu“); prisijungti1 (); int reikšmė = analogasRead (A0); plūduriuojantis voltas = (vertė / 1024,0) * 5,0; tempC = voltai * 100,0;
Dabar iškvieskite funkciją „data ()“, norėdami įkelti duomenis į „thingspeak“ debesį. Galiausiai svarbi paskambinimo funkcija yra ESP.deepSleep (); tai leis moduliui miegoti nustatytą laiko tarpą, kuris yra mikrosekundėmis.
duomenys (); Serial.println („gilus miegas 15 sekundžių“); ESP.deepSleep (15e6);
Ciklo funkcija liks tuščia, nes visą užduotį reikia atlikti vieną kartą, o po nustatyto laiko intervalo iš naujo nustatyti modulį.
Darbinis vaizdo įrašas ir visas kodas pateikiami šios pamokos pabaigoje. Įkelkite kodą į ESP8266 modulį. Prieš įkeldami programą, nuimkite prijungtą laidą RST ir D0, kitaip tai sukels klaidą.
„DeepSleep“ testavimas ESP8266
Įkėlę programą pamatysite, kad temperatūros rodmenys į „ThingSpeak“ debesį įkeliami kas 15 sekundžių, tada modulis eina gilaus miego režimu.
Tai užbaigia gilaus miego naudojimo ESP8266 modulyje pamoką. „Miegas“ yra labai svarbi savybė ir jis buvo įtrauktas į daugumą prietaisų. Galite kreiptis į šią mokymo programą ir pritaikyti šį metodą skirtingiems projektams. Jei kyla abejonių ar pasiūlymų, parašykite ir pakomentuokite žemiau. Taip pat galite patekti į mūsų forumą.