- Diferents mètodes per minimitzar el consum d'energia
- Components necessaris
- Tipus de modes de son a ESP8266
- ESP8266 Programació en mode de son profund
- Prova DeepSleep a l’ESP8266
A mesura que la revolució IoT creix cada dia, el nombre de dispositius connectats augmenta molt ràpidament. En el futur, la majoria dels dispositius es connectaran entre ells i es comunicaran en temps real. Un dels problemes als quals s’enfronten aquests dispositius és el consum d’energia. Aquest factor de consum d'energia és un dels factors crítics i decisius per a qualsevol dispositiu IoT i projectes IoT.
Com sabem, ESP8266 és un dels mòduls més populars per construir qualsevol projecte IoT, de manera que en aquest article aprendrem com estalviar energia mentre s’utilitza ESP8266 en qualsevol aplicació IoT. Aquí carreguem les dades del sensor de temperatura LM35 al núvol ThingSpeak en un interval de 15 segons i durant aquests 15 segons l’ ESP8266 roman en mode DeepSleep per estalviar energia
Diferents mètodes per minimitzar el consum d'energia
Hi ha diverses maneres d’optimitzar el consum d’energia als dispositius incrustats i IoT. L'optimització es pot fer amb maquinari i programari. De vegades no podem optimitzar components de maquinari per reduir el consum d'energia, però segur que ho podem fer pel costat del programari canviant i optimitzant les instruccions i les funcions del codi. No només això, els desenvolupadors també poden modificar la freqüència del rellotge per reduir el consum d'energia del microcontrolador.Podem escriure un microprogramari per fer dormir el maquinari quan no hi ha intercanvi de dades i realitzar la tasca definida en un interval concret. En mode de repòs, el maquinari connectat consumeix molt menys energia i, per tant, la bateria pot durar molt de temps. També podeu llegir Minimitzar el consum d’energia als microcontroladors, si voleu saber més sobre les tècniques de consum d’energia.
Els mòduls ESP8266 són els mòduls Wi-Fi més utilitzats que inclouen moltes funcions de mida petita amb diferents modes, inclòs el mode de suspensió, i es pot accedir a aquests modes mitjançant alguna modificació de maquinari i programari. Per obtenir més informació sobre ESP8266, podeu consultar els nostres projectes basats en IoT mitjançant el mòdul Wi-Fi ESP826, alguns d’ells es detallen a continuació:
- Interfície ESP8266 NodeMCU amb microcontrolador Atmega16 per enviar un correu electrònic
- Enviament de dades del sensor de temperatura i humitat a la base de dades en temps real de Firebase mitjançant NodeMCU ESP8266
- LED controlat per IoT mitjançant Google Firebase Console i ESP8266 NodeMCU
Aquí explicarem els diferents modes de son disponibles a ESP8266 i els demostrarem enviant dades de temperatura al servidor Thingspeak en un interval regular mitjançant el mode de son profund.
Components necessaris
- Mòdul Wi-Fi ESP8266
- Sensor de temperatura LM35
- Filferros de pont
Tipus de modes de son a ESP8266
El mòdul Esp8266 funciona en els modes següents:
- Mode actiu: en aquest mode s’encén tot el xip i el xip pot rebre i transmetre les dades. Viouslybviament, aquest és el mode que consumeix més energia.
- Mode de repòs del mòdem: en aquest mode, la CPU està operativa i les ràdios Wi-Fi estan desactivades. Aquest mode es pot utilitzar a les aplicacions que requereixen que la CPU funcioni, com a PWM. Fa que el circuit del mòdem Wi-Fi s’apagui mentre es connecta amb el punt d’accés Wi-Fi AP (punt d’accés) sense transmissió de dades per optimitzar el consum d’energia.
- Mode llum-repòs: en aquest mode, la CPU i tots els perifèrics estan en pausa. Qualsevol despertador, com ara interrupcions externes, despertarà el xip. Sense transmissió de dades, el circuit del mòdem Wi-Fi es pot apagar i suspendre la CPU per estalviar consum d'energia.
- Mode de son profund: en aquest mode només l'RTC és funcional i tots els altres components del xip estan apagats. Aquest mode és útil quan les dades es transmeten després de llargs intervals de temps.
Connecteu el sensor de temperatura LM35 amb el pin A0 de NodeMCU.

Quan el mòdul ESP té HIGH al pin RST, està en estat de funcionament. Tan bon punt rep el senyal BAIX al pin RST, es reinicia l'ESP.
Configureu el temporitzador mitjançant el mode de repòs profund, un cop finalitzi el temporitzador, el pin D0 envia el senyal LOW al pin RST i el mòdul es despertarà en reiniciar-lo.
Ara, el maquinari està preparat i està ben configurat. Les lectures de temperatura s’enviaran al servidor Thingspeak. Per a això, feu un compte a thingspeak.com i creeu un canal seguint els passos següents.
Ara, copieu la clau API API. Que s’utilitzarà al codi ESP.

ESP8266 Programació en mode de son profund
L’IDE Arduino fàcilment disponible s’utilitzarà per programar el mòdul ESP8266. Assegureu-vos que tots els fitxers de la placa ESP8266 estiguin instal·lats.
Comenceu per incloure totes les biblioteques importants necessàries.
#incloure
Un cop s'incloguin totes les biblioteques per accedir a les funcions, assigneu la clau d'escriptura de l'API, configureu el vostre nom i contrasenya de Wi-Fi. A continuació, declareu totes les variables per a un ús posterior on es desaran les dades.
String apiWritekey = "*************"; // substituïu per la vostra clau THINGSPEAK WRITEAPI aquí char ssid = "******"; // el vostre nom SSID wifi char password = "******"; // contrasenya wifi
Ara, feu una funció per connectar el mòdul amb la xarxa Wi-Fi mitjançant la funció wifi.begin () i, a continuació, comproveu que el mòdul no estigui connectat a Wi-Fi mitjançant el bucle while.
void connect1 () { WiFi.disconnect (); retard (10); WiFi.begin (ssid, contrasenya); while (WiFi.status ()! = WL_CONNECTED) {
Feu una altra funció per enviar les dades al servidor Thingspeak. Aquí s’enviarà una cadena que conté la clau d’escriptura de l’API, el número de camp i les dades que s’han d’enviar. A continuació, envieu aquesta cadena mitjançant la funció client.print ().
void data () { if (client.connect (servidor, 80)) { String tsData = apiWritekey; tsData + = "& field1 ="; tsData + = String (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / actualització HTTP / 1.1 \ n"); client.print ("Amfitrió: api.thingspeak.com \ n");
Truqueu a la funció connect1, que cridarà la funció per connectar Wi-Fi i, a continuació, agafeu les lectures de la temperatura i convertiu-la en centígrads.
configuració nul·la () { Serial.begin (115200); Serial.println ("el dispositiu està en mode despertador"); connect1 (); valor int = analogRead (A0); volts flotants = (valor / 1024,0) * 5,0; tempC = volts * 100,0;
Ara, truqueu a la funció data () per penjar les dades al núvol Thingspeak. Finalment, la funció important a trucar és ESP.deepSleep (); això farà que el mòdul dormi durant l'interval de temps definit en microsegons.
data (); Serial.println ("son profund durant 15 segons"); ESP.deepSleep (15e6);
La funció de bucle romandrà buida ja que s'ha de realitzar tota la tasca una vegada i després restablir el mòdul després de l'interval de temps definit.
El vídeo de treball i el codi complet es donen al final d’aquest tutorial. Pengeu el codi al mòdul ESP8266. Traieu el cable connectat RST i D0 abans de carregar el programa, ja que donarà un error.
Prova DeepSleep a l’ESP8266
Després de carregar el programa, veureu que les lectures de temperatura es carreguen al núvol ThingSpeak cada 15 segons i després el mòdul passa al mode de repòs profund.

Això completa el tutorial sobre l'ús de Deep Sleep al mòdul ESP8266. El deepsleep és una característica molt important i s’ha inclòs a la majoria de dispositius. Podeu consultar aquest tutorial i aplicar aquest mètode a diferents projectes. En cas de dubtes o suggeriments, escriviu i comenteu a continuació. També podeu accedir al nostre fòrum.
