Her vil vi diskutere hvordan vi kan stille esp32 i dyp søvnmodus til fast tid for å spare strøm. La oss forstå begrepet dyp søvn:
Hva er dyp søvn i ESP32
ESP32 kan være en strømsultne enhet på grunn av sin integrerte wifi og Bluetooth-modul. ESP32 trekker vanligvis 75mA for nominelle operasjoner mens den kan gå opp til 240mA Når du overfører data over wifi. Vi kan imidlertid optimalisere dette ved å aktivere dyp søvnmodus.
I dyp søvnmodus er ESP32 digitale periferiutstyr, ubrukte RAM og CPUer slått av. Bare følgende liste over deler forblir i drift:
Når dyp søvnmodus er aktivert, blir hoved CPU lagt ned; Imidlertid kan ULP (UltralowPower) koprocessor fremdeles lese data fra sensorer og vekke CPU når det er nødvendig.
Denne applikasjonen av ESP32 er praktisk der vi ønsker å generere produksjon på et bestemt tidspunkt eller når et eksternt avbrudd eller hendelse skjer. Dette sparer ESP32 -strøm da CPUen forblir av resten av tiden og bare slås på når den kalles.
Sammen med CPU ESP32 blir hovedminnet også blinket eller slettet, så alt som er lagret i dette minnet vil ikke lenger være tilgjengelig. Bare RTC -minne holdes der. Derfor lagrer ESP32 WiFi og Bluetooth -data i RTC -minnet før du går i dyp søvnmodus.
Når den dype søvnmodus er tilbakestilt eller fjernet, starter ESP32 -brikken utførelsen av programmet helt fra begynnelsen.
Fra dyp søvn kan vi våkne opp ESP32 ved hjelp av forskjellige metoder.
Våkn opp kilder i ESP32
Flere kilder er tilgjengelige for å vekke ESP32 fra dyp søvn:
I denne guiden vil vi dekke Timer våkner Kilde for ESP32.
Hvordan bruke tidtakeren til å våkne opp ESP32 fra dyp søvn
ESP32 kommer med en RTC-kontroller som har en innebygd tidtakmodul som kan våkne opp ESP32 etter en forhåndsdefinert tid. Denne funksjonen har enorme applikasjoner der vi trenger tidsstempel eller trenger å utføre instruksjoner på bestemte tidspunkter mens vi opprettholder optimalt strømforbruk.
For å sette ESP32 i dyp søvnmodus ved hjelp av mikropython -koden dyp søvn() funksjon fra Maskinmodul vil bli brukt. Følgende er syntaks for dyp søvnfunksjon i mikropyton:
maskin.DeepSleep (sleep_time_ms)Denne funksjonen tar 1 argument som er en forhåndsdefinert tid i millisekunder.
For å forstå bruken av ESP32 Timer for Wake Up, vil vi ta et eksempel som Blinks ledet etter at hver tid går og går tilbake i dvale når oppgaven er ferdig.
Eksempelkode
Åpne hvilken som helst Micropython -redaktør og last opp den nedenfor gitte koden i ESP32 -styret. Her vil vi bruke Thonny IDE for å laste opp mikropytonskisser.
# Kodekilde linuxhint.comKode startet med å importere nødvendige biblioteker som vi importerte DeepSleep -biblioteket.
Etter det opprettes et nytt objekt for ESP32 PIN 4. Denne pinnen vil vise utgangen hver gang ESP32 våkner.
LED = PIN (4, PIN.UTE)Nedenfor gitte kommandoer vil blinke ledet med forsinkelse på 1 sek.
Led.verdi (1)Her for demonstrasjonsformål blinker vi ledningen. Imidlertid kan enhver annen enhet også kontrolleres.
Før vi skal sove skrev vi ut en melding om at ESP32 går i søvnmodus.
trykk ('Gå til å sove nå')Merk: Vi kan også legge til en forsinkelse på 5 eller flere sekunder her før ESP32 går i søvnmodus. Dette hjelper oss når vi bygger et prosjekt og skriver et nytt manus. Mens du laster opp en ny kode, må styret være våken og ikke i søvnmodus. Hvis vi ikke legger til forsinkelsen, vil det være vanskelig for oss å fange ESP32 i våken modus og laste opp et nytt skript.
Etter å ha skrevet det nye skriptet, og når den endelige koden er klar, kan vi fjerne denne forsinkelsen i den endelige versjonen av skriptet.
Endelig blir ESP32 -styret satt i dyp søvn i 5 sekunder (5000 ms).
maskin.DeepSleep (5000)Når de 5 sekunders tiden passerer, våkner ESP32 opp og starter koden på nytt som ligner på No knapp.
Produksjon
Følgende utgang kan observeres på skallterminalen til Thonny IDE. Her kan vi se at etter hver 5 sek. ESP32 våkner fra dyp søvn og blinker LED på GPIO PIN 4.
Ledet på GPIO 4 vil snu PÅ i 1 sek.
Etter 1 sek vil lysdioden snu AV.
Nå vil ESP32 -styret igjen gå i søvnmodus i 5 sekunder, og etter det gjentar hele prosessen. Så det er det vi har kontrollert ESP32 Deep Sleep Mode ved hjelp av timerkoden.
Konklusjon
Her i denne opplæringen har vi konfigurert ESP32 til å våkne opp fra dyp søvn ved hjelp av et tidtakerprogram skrevet i Micropython. Vi lastet opp koden ved hjelp av Thonny Ide. Vi har ganske enkelt skrevet ut en melding når ESP32 våkner og blinker en LED; Ved å bruke denne artikkelen kan man imidlertid utføre enhver oppgave når ESP32 våkner fra dyp søvn.