- Različite metode za smanjenje potrošnje energije
- Komponente potrebne
- Vrste načina mirovanja u ESP8266
- ESP8266 Programiranje dubokog mirovanja
- Testiranje dubokog sna u ESP8266
Kako IoT revolucija cvjeta svakim danom, tako se broj povezanih uređaja vrlo brzo povećava. U budućnosti će većina uređaja biti međusobno povezana i komunicirat će u stvarnom vremenu. Jedan od problema s kojim se susreću ovi uređaji je potrošnja energije. Ovaj faktor potrošnje energije jedan je od kritičnih i presudnih čimbenika za bilo koji IoT uređaj i IoT projekte.
Kao što znamo da je ESP8266 jedan od najpopularnijih modula za izradu bilo kojeg IoT projekta, tako u ovom članku učimo o uštedi energije tijekom upotrebe ESP8266 u bilo kojoj IoT aplikaciji. Ovdje prenosimo podatke osjetnika temperature LM35 na oblak ThingSpeak u intervalu od 15 sekundi i tijekom tih 15 sekundi ESP8266 ostaje u načinu dubokog spavanja radi uštede energije
Različite metode za smanjenje potrošnje energije
Postoji nekoliko načina za optimizaciju potrošnje energije u ugrađenim i IoT uređajima. Optimizacija se može izvršiti na hardveru i softveru. Ponekad ne možemo optimizirati hardverske komponente kako bismo smanjili potrošnju energije, ali to sigurno možemo učiniti sa softverske strane mijenjanjem i optimizacijom uputa i funkcija koda. I ne samo to, programeri također mogu prilagoditi frekvenciju takta kako bi smanjili potrošnju energije mikrokontrolera.Možemo napisati firmware kako bismo hardver uspavali kada nema razmjene podataka i izvršili definirani zadatak u određenom intervalu. U načinu mirovanja povezani hardver troši vrlo manje energije i stoga baterija može dugo trajati. Također možete pročitati Minimiziranje potrošnje energije u mikrokontrolerima ako želite znati više o tehnikama potrošnje energije.
Moduli ESP8266 najčešće su korišteni Wi-Fi moduli, a nude brojne značajke male veličine s različitim načinima rada, uključujući način mirovanja, a tim se načinima može pristupiti pomoću nekih izmjena u hardveru i softveru. Da biste saznali više o ESP8266, možete provjeriti naše IoT projekte temeljene na ESP826 Wi-Fi modulu, neki od njih su navedeni u nastavku:
- Povezivanje ESP8266 NodeMCU s mikrokontrolerom Atmega16 za slanje e-pošte
- Slanje podataka senzora temperature i vlažnosti u Firebase bazu podataka u stvarnom vremenu pomoću NodeMCU ESP8266
- IoT kontrolirana LED pomoću Google Firebase Console i ESP8266 NodeMCU
Ovdje ćemo objasniti različite načine mirovanja dostupne u ESP8266 i demonstrirati ih slanjem podataka o temperaturi na Thingspeak poslužitelj u redovnom intervalu koristeći način dubokog spavanja.
Komponente potrebne
- ESP8266 Wi-Fi modul
- LM35 temperaturni senzor
- Žice kratkospojnika
Vrste načina mirovanja u ESP8266
Modul Esp8266 radi u sljedećim načinima:
- Aktivni način rada: U ovom načinu rada uključen je cijeli čip i čip može primati i prenositi podatke. Očito je da je ovo način rada koji najviše troši energiju.
- Mod mod spavanja: U ovom načinu rada CPU radi, a Wi-Fi radio prijemnici su onemogućeni. Ovaj se način može koristiti u aplikacijama koje zahtijevaju da CPU radi, kao u PWM-u. Omogućuje isključivanje Wi-Fi modemskog kruga dok je povezan s Wi-Fi AP (pristupnom točkom) bez prijenosa podataka radi optimizacije potrošnje energije.
- Lagani način mirovanja: U ovom načinu rada CPU i sva periferna oprema su pauzirani. Svako buđenje, poput vanjskih prekida, probudit će čip. Bez prijenosa podataka, krug Wi-Fi modema može se isključiti i obustaviti CPU radi uštede energije.
- Način dubokog spavanja: U ovom načinu rada samo je RTC funkcionalan, a sve ostale komponente čipa su isključene. Ovaj je način koristan kada se podaci prenose nakon dužih vremenskih intervala.
Spojite temperaturni osjetnik LM35 s A0 pinom NodeMCU.

Kada ESP modul ima HIGH na RST pinu, on je u radnom stanju. Čim primi NIZKI signal na RST pinu, ESP se ponovno pokreće.
Podesite odbrojavanje pomoću načina dubokog spavanja, kada završi odbrojavanje, D0 pin šalje LOW signal na RST pin i modul će se probuditi ponovnim pokretanjem.
Sada je hardver spreman i dobro konfiguriran. Očitavanja temperature bit će poslana na Thingspeak poslužitelj. Za to napravite račun na thingspeak.com i stvorite kanal prolazeći kroz korake u nastavku.
Sada kopirajte API API ključ. Koji će se koristiti u ESP kodu.

ESP8266 Programiranje dubokog mirovanja
Lako dostupan Arduino IDE koristit će se za programiranje modula ESP8266. Provjerite jesu li instalirane sve datoteke ploče ESP8266.
Započnite s uključivanjem svih važnih potrebnih knjižnica.
#include
Jednom kad su sve knjižnice uključene za pristup funkcijama, dodijelite API ključ za pisanje, konfigurirajte svoje Wi-Fi ime i lozinku. Zatim prijavite sve varijable za daljnju upotrebu tamo gdje će se podaci pohranjivati.
String apiWritekey = "*************"; // zamijenite svojim THINGSPEAK WRITEAPI ključem ovdje char ssid = "******"; // vaš wifi SSID naziv char lozinka = "******"; // wifi lozinka
Sada napravite funkciju povezivanja modula s Wi-Fi mrežom pomoću funkcije wifi.begin (), a zatim kontinuirano provjeravajte dok modul nije povezan s Wi-Fi mrežom pomoću petlje while.
void connect1 () { WiFi.disconnect (); kašnjenje (10); WiFi.begin (ssid, lozinka); dok (WiFi.status ()! = WL_CONNECTED) {
Napravite drugu funkciju za slanje podataka na thingspeak poslužitelj. Ovdje će se poslati niz koji sadrži API ključ za pisanje, broj polja i podatke koje treba poslati. Zatim pošaljite ovaj niz pomoću funkcije 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 / ažuriraj HTTP / 1.1 \ n"); client.print ("Domaćin: api.thingspeak.com \ n");
Pozovite funkciju connect1 koja će pozvati funkciju za povezivanje Wi-Fi mreže, a zatim snimite očitanja temperature i pretvorite je u Celzijus.
void setup () { Serial.begin (115200); Serial.println ("uređaj je u načinu buđenja"); connect1 (); int vrijednost = analogRead (A0); plutajući volti = (vrijednost / 1024,0) * 5,0; tempC = volti * 100,0;
Sada pozovite funkciju data () da biste podatke prenijeli na thingspeak cloud. Konačno, važna funkcija koju treba pozvati je ESP.deepSleep (); to će modul uspavati tijekom određenog vremenskog intervala koji je u mikrosekundama.
podaci(); Serial.println ("duboko spavanje 15 sekundi"); ESP.deepSleep (15e6);
Funkcija petlje ostat će prazna jer sav zadatak treba izvršiti jednom, a zatim resetirati modul nakon definiranog vremenskog intervala.
Radni video i puni kod dati su na kraju ovog vodiča. Prenesite kod u modul ESP8266. Uklonite RST i D0 spojenu žicu prije slanja programa jer će u suprotnom doći do pogreške.
Testiranje dubokog sna u ESP8266
Nakon prijenosa programa vidjet ćete da se očitanja temperature prenose na oblak ThingSpeak nakon svakih 15 sekundi, a zatim modul prelazi u režim dubokog spavanja.

Ovim je dovršen vodič o korištenju dubokog spavanja u modulu ESP8266. Duboko spavanje je vrlo važna značajka i uključeno je u većinu uređaja. Možete se uputiti u ovaj vodič i primijeniti ovu metodu za različite projekte. U slučaju bilo kakvih sumnji ili prijedloga, molimo napišite i komentirajte u nastavku. Također možete doći do našeg foruma.
