- Ulike metoder for å minimere strømforbruket
- Komponenter kreves
- Typer søvnmodus i ESP8266
- ESP8266 Dyp hvilemodus programmering
- Testing av DeepSleep i ESP8266
Siden IoT-revolusjonen blomstrer med hver eneste dag, øker antallet tilkoblede enheter veldig raskt. I fremtiden vil de fleste enhetene være koblet til hverandre og kommunisere i sanntid. Et av problemet med disse enhetene er strømforbruket. Denne strømforbruksfaktoren er en av de viktigste og avgjørende faktorene for alle IoT-enheter og IoT-prosjekter.
Som vi vet at ESP8266 er en av de mest populære modulene for å bygge ethvert IoT-prosjekt, så i denne artikkelen lærer vi om å spare strøm mens du bruker ESP8266 i ethvert IoT-program. Her laster vi opp LM35 temperatursensordata til ThingSpeak sky i 15 sekunders intervall, og i løpet av de 15 sekundene forblir ESP8266 i DeepSleep-modus for å spare strøm
Ulike metoder for å minimere strømforbruket
Det er flere måter å optimalisere strømforbruket på innebygde og IoT-enheter. Optimaliseringen kan gjøres på maskinvare og programvare. Noen ganger kan vi ikke optimalisere maskinvarekomponenter for å redusere strømforbruket, men sikkert kan vi gjøre det på programvaresiden ved å endre og optimalisere kodeinstruksjoner og funksjoner. Ikke bare dette, utviklere kan også endre klokkefrekvensen for å redusere mikrokontrollerens strømforbruk.Vi kan skrive firmware for å få maskinvaren til å sove når det ikke er utveksling av data og utføre den definerte oppgaven i et bestemt intervall. I hvilemodus trekker den tilkoblede maskinvaren veldig mindre strøm, og dermed kan batteriet vare lenge. Du kan også lese Minimizing Power Consumption in Microcontrollers, hvis du vil vite mer om strømforbruksteknikker.
ESP8266-moduler er de mest brukte Wi-Fi-modulene kommer med mange funksjoner i liten størrelse som har forskjellige moduser, inkludert hvilemodus, og disse modusene kan nås ved hjelp av noen modifikasjoner i maskinvare og programvare. For å lære mer om ESP8266, kan du sjekke våre IoT-baserte prosjekter ved hjelp av ESP826 Wi-Fi-modulen, noen av dem er oppført nedenfor:
- Grensesnitt ESP8266 NodeMCU med Atmega16 Microcontroller for å sende en e-post
- Sende data om temperatur- og fuktighetssensorer til Firebase sanntidsdatabase ved hjelp av NodeMCU ESP8266
- IoT-kontrollert LED ved hjelp av Google Firebase Console og ESP8266 NodeMCU
Her vil vi forklare forskjellige hvilemodus tilgjengelig i ESP8266 og demonstrere dem ved å sende temperaturdata til Thingspeak-serveren med jevne mellomrom ved hjelp av dyp søvnmodus.
Komponenter kreves
- ESP8266 Wi-Fi-modul
- LM35 temperaturføler
- Jumper ledninger
Typer søvnmodus i ESP8266
Esp8266-modulen fungerer i følgende moduser:
- Aktiv modus: I denne modusen er hele brikken slått på, og brikken kan motta, overføre dataene. Åpenbart er dette den mest strømkrevende modusen.
- Modem-hvilemodus: I denne modusen er CPU-en i drift, og Wi-Fi-radioene er deaktivert. Denne modusen kan brukes i applikasjoner som krever at CPU-en skal fungere, som i PWM. Det får Wi-Fi-modemkretsen til å slå seg av mens den er koblet til Wi-Fi AP (Access Point) uten dataoverføring for å optimalisere strømforbruket.
- Lys-hvilemodus: I denne modusen er CPU og alt periferiutstyr satt på pause. Enhver vekking som eksterne avbrudd vil vekke brikken. Uten dataoverføring kan Wi-Fi-modemkretsen slås av og CPU suspenderes for å spare strømforbruk.
- Dyp-sovemodus: I denne modusen er bare RTC funksjonell, og alle andre komponenter i brikken slås av. Denne modusen er nyttig der dataene overføres etter lange tidsintervaller.
Koble LM35-temperatursensoren med A0-pinnen til NodeMCU.
Når ESP-modulen har HIGH på RST-pinnen, er den i gang. Så snart den mottar LAVT signal på RST-pinnen, starter ESP på nytt.
Still inn timeren ved hjelp av dyp hvilemodus, når timeren er avsluttet, sender D0-pinnen LAVT signal til RST-pinnen, og modulen våkner ved å starte den på nytt.
Nå er maskinvaren klar og godt konfigurert. Temperaturavlesningene vil bli sendt på Thingspeak-serveren. For dette, lag en konto på thingspeak.com og opprett en kanal ved å gå gjennom trinnene nedenfor.
Kopier nå Skriv API-nøkkelen. Som vil bli brukt i ESP-koden.
ESP8266 Dyp hvilemodus programmering
Den lett tilgjengelige Arduino IDE vil bli brukt til å programmere ESP8266-modulen. Forsikre deg om at alle ESP8266 tavlefiler er installert.
Begynn med å inkludere alle viktige biblioteker som kreves.
#inkludere
Når alle biblioteker er inkludert for å få tilgang til funksjonene, tildel deretter API-skrivenøkkelen, konfigurer Wi-Fi-navnet og passordet ditt. Deretter erklærer du alle variablene for videre bruk der data skal lagres.
String apiWritekey = "*************"; // erstatt med THINGSPEAK WRITEAPI-nøkkelen her char ssid = "******"; // ditt wifi SSID-navn char passord = "******"; // wifi passord
Gjør nå en funksjon for å koble modulen til Wi-Fi-nettverket ved hjelp av wifi.begin () -funksjonen, og kontroller deretter kontinuerlig til modulen ikke er koblet til Wi-Fi ved hjelp av mens loop.
ugyldig connect1 () { WiFi.disconnect (); forsinkelse (10); WiFi.begin (ssid, passord); mens (WiFi.status ()! = WL_CONNECTED) {
Lag en annen funksjon for å sende dataene til thingspeak-serveren. Her vil en streng sendes som inneholder API-skrivenøkkelen, feltnummer og data som må sendes. Send deretter denne strengen ved hjelp av client.print () -funksjonen.
ugyldige data () { if (client.connect (server, 80)) { String tsData = apiWritekey; tsData + = "& felt1 ="; tsData + = String (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / oppdater HTTP / 1.1 \ n"); client.print ("Vert: api.thingspeak.com \ n");
Ring connect1-funksjonen som vil kalle funksjonen for å koble til Wi-Fi, og ta deretter temperaturmålingene og konverter den til Celsius.
ugyldig oppsett () { Serial.begin (115200); Serial.println ("enheten er i vekke-modus"); connect1 (); int-verdi = analogRead (A0); flottørvolt = (verdi / 1024,0) * 5,0; tempC = volt * 100,0;
Nå, ring data () -funksjonen for å laste opp dataene på Thingspeak Cloud. Til slutt er den viktige funksjonen å ringe til ESP.deepSleep (); Dette vil få modulen til å sove i det definerte tidsintervallet som er i mikrosekunder.
data(); Serial.println ("dyp søvn i 15 sekunder"); ESP.deepSleep (15e6);
Sløyfefunksjonen vil forbli tom ettersom hele oppgaven må utføres en gang og deretter tilbakestille modulen etter det definerte tidsintervallet.
Arbeidsvideoen og fullkoden er gitt på slutten av denne opplæringen. Last opp koden i ESP8266-modulen. Fjern RST- og D0-tilkoblet ledning før du laster opp programmet, ellers vil det gi en feil.
Testing av DeepSleep i ESP8266
Etter at du har lastet opp programmet, vil du se at temperaturavlesningene lastes opp på ThingSpeak-skyen hvert 15. sekund, og deretter går modulen i dyp søvnmodus.
Dette fullfører opplæringen om bruk av dyp søvn i ESP8266-modulen. Søvn er veldig viktig, og det har blitt inkludert i de fleste enhetene. Du kan henvise til denne veiledningen og bruke denne metoden for forskjellige prosjekter. Hvis du er i tvil eller forslag, vennligst skriv og kommenter nedenfor. Du kan også nå til forumet vårt.