- Forskellige metoder til minimering af strømforbrug
- Komponenter, der kræves
- Typer af søvntilstande i ESP8266
- ESP8266 Deep Sleep Mode Programmering
- Test af DeepSleep i ESP8266
Da IoT-revolutionen blomstrer med hver eneste dag, stiger antallet af tilsluttede enheder meget hurtigt. I fremtiden vil de fleste enheder være forbundet med hinanden og kommunikere i realtid. Et af problemerne med denne enhed er strømforbrug. Denne strømforbrugsfaktor er en af de kritiske og afgørende faktorer for enhver IoT-enhed og IoT-projekter.
Som vi ved, at ESP8266 er et af de mest populære moduler til at opbygge ethvert IoT-projekt, så i denne artikel lærer vi om at spare strøm, mens du bruger ESP8266 i ethvert IoT-program. Her uploader vi LM35-temperatursensordata til ThingSpeak-skyen i 15 sekunders interval, og i løbet af disse 15 sekunder forbliver ESP8266 i DeepSleep-tilstand for at spare strøm
Forskellige metoder til minimering af strømforbrug
Der er flere måder at optimere strømforbruget på de integrerede enheder og IoT-enheder. Optimeringen kan udføres på hardware og software. Nogle gange kan vi ikke optimere hardwarekomponenter for at reducere strømforbruget, men vi kan helt sikkert gøre det på softwaresiden ved at ændre og optimere kodeinstruktioner og funktioner. Ikke kun dette, udviklere kan også ændre urfrekvensen for at reducere mikrokontrollerens strømforbrug.Vi kan skrive en firmware for at få hardwaren til at sove, når der ikke er nogen udveksling af data og udføre den definerede opgave i et bestemt interval. I dvaletilstand trækker den tilsluttede hardware meget mindre strøm, og derfor kan batteriet vare længe. Du kan også læse Minimering af strømforbrug i mikrocontrollere, hvis du vil vide mere om strømforbrugsteknikker.
ESP8266-moduler er de mest anvendte Wi-Fi-moduler leveres med mange funktioner i lille størrelse med forskellige tilstande, herunder dvaletilstand, og disse tilstande kan tilgås ved hjælp af nogle ændringer i hardware og software. For at lære mere om ESP8266 kan du tjekke vores IoT-baserede projekter ved hjælp af ESP826 Wi-Fi-modul, nogle af dem er anført nedenfor:
- Interfacing ESP8266 NodeMCU med Atmega16 Microcontroller for at sende en e-mail
- Afsendelse af temperatur- og fugtighedssensordata til Firebase Real-Time Database ved hjælp af NodeMCU ESP8266
- IoT-kontrolleret LED ved hjælp af Google Firebase Console og ESP8266 NodeMCU
Her forklarer vi de forskellige dvaletilstande, der er tilgængelige i ESP8266, og demonstrerer dem ved at sende temperaturdata til Thingspeak-serveren med jævne mellemrum ved hjælp af dyb dvaletilstand.
Komponenter, der kræves
- ESP8266 Wi-Fi-modul
- LM35 temperaturføler
- Jumper ledninger
Typer af søvntilstande i ESP8266
Esp8266-modulet fungerer i følgende tilstande:
- Aktiv tilstand: I denne tilstand er hele chip tændt, og chip kan modtage, overføre dataene. Dette er åbenbart den mest strømforbrugende tilstand.
- Modem-slumretilstand: I denne tilstand er CPU'en i drift, og Wi-Fi-radioer deaktiveres. Denne tilstand kan bruges i de applikationer, der kræver, at CPU'en fungerer, som i PWM. Det får Wi-Fi-modemkredsen til at slukke, mens den er forbundet med Wi-Fi AP (Access Point) uden datatransmission for at optimere strømforbruget.
- Lys-slumretilstand: I denne tilstand er CPU'en og alt perifert udstyr sat på pause. Enhver vækning såsom eksterne afbrydelser vil vække chippen. Uden datatransmission kan Wi-Fi-modemkredsløbet slukkes og CPU'en suspenderes for at spare strømforbrug.
- Deep-sleep-tilstand: I denne tilstand er kun RTC funktionel, og alle andre komponenter i chippen er slukket. Denne tilstand er nyttig, når dataene transmitteres efter lange tidsintervaller.
Tilslut LM35-temperatursensoren med A0-stiften på NodeMCU.
Når ESP-modulet har HIGH på RST-pin, er det i kørende tilstand. Så snart det modtager LAVT signal på RST-pin, genstartes ESP.
Indstil timeren ved hjælp af dyb dvaletilstand, når timeren slutter, sender D0-stiften det lave signal til RST-stiften, og modulet vågner ved at genstarte det.
Nu er hardwaren klar og godt konfigureret. Temperaturmålingerne sendes på Thingspeak-serveren. For dette skal du oprette en konto på thingspeak.com og oprette en kanal ved at gennemgå nedenstående trin.
Kopier nu Write API-nøglen. Hvilket vil blive brugt i ESP-koden.
ESP8266 Deep Sleep Mode Programmering
Den let tilgængelige Arduino IDE vil blive brugt til at programmere ESP8266-modulet. Sørg for, at alle ESP8266-kortfiler er installeret.
Start med at inkludere alle de vigtige biblioteker, der kræves.
#omfatte
Når alle biblioteker er inkluderet for at få adgang til funktionerne, tildel derefter API-skrivenøglen, konfigurer dit Wi-Fi-navn og din adgangskode. Derefter erklæres alle variabler til yderligere brug, hvor data skal gemmes.
String apiWritekey = "*************"; // erstat med din THINGSPEAK WRITEAPI-nøgle her char ssid = "******"; // dit wifi-SSID-navn char password = "******"; // wifi pasword
Lav nu en funktion til at forbinde modulet med Wi-Fi-netværket ved hjælp af wifi.begin () -funktionen, og kontroller derefter kontinuerligt, indtil modulet ikke er forbundet til Wi-Fi ved hjælp af mens loop.
ugyldig connect1 () { WiFi.disconnect (); forsinkelse (10); WiFi.begin (ssid, password); mens (WiFi.status ()! = WL_CONNECTED) {
Opret en anden funktion til at sende dataene til thingspeak-serveren. Her sendes en streng, der indeholder API-skrivenøglen, feltnummer og data, der skal sendes. Send derefter denne streng ved hjælp af client.print () -funktionen.
ugyldige data () { if (client.connect (server, 80)) { String tsData = apiWritekey; tsData + = "& felt1 ="; tsData + = String (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / opdater HTTP / 1.1 \ n"); client.print ("Vært: api.thingspeak.com \ n");
Ring til connect1-funktionen, som kalder funktionen til at forbinde Wi-Fi, og tag derefter aflæsningerne af temperaturen og konverter den til Celsius.
ugyldig opsætning () { Serial.begin (115200); Serial.println ("enheden er i vækningstilstand"); forbinde1 (); int-værdi = analogRead (A0); flydevolt = (værdi / 1024,0) * 5,0; tempC = volt * 100,0;
Ring nu til data () -funktionen for at uploade dataene på Thingspeak Cloud. Endelig er den vigtige funktion, du skal ringe til, ESP.deepSleep (); dette får modulet til at sove i det definerede tidsinterval i mikrosekunder.
data(); Serial.println ("dyb søvn i 15 sekunder"); ESP.deepSleep (15e6);
Loop-funktionen forbliver tom, da al opgaven skal udføres en gang og derefter nulstiller modulet efter det definerede tidsinterval.
Arbejdsvideoen og den fulde kode findes i slutningen af denne vejledning. Upload koden i ESP8266-modulet. Fjern den tilsluttede RST- og D0-ledning, før du uploader programmet, ellers vil det give en fejl.
Test af DeepSleep i ESP8266
Efter upload af programmet vil du se, at temperaturaflæsninger uploades på ThingSpeak-skyen efter hvert 15. sekund, og derefter går modulet i dyb søvntilstand.
Dette afslutter selvstudiet om brug af Deep Sleep i ESP8266-modulet. Deepsleep er meget vigtig funktion, og den er inkluderet i de fleste enheder. Du kan se denne vejledning og anvende denne metode til forskellige projekter. I tvivlstilfælde eller forslag, så skriv og kommenter nedenfor. Du kan også nå til vores forum.