Qui discuteremo di come possiamo impostare ESP32 in modalità Sleep Deep in tempo fisso per salvare Power. Prima di imparare a svegliare ESP32 dal sonno profondo usando il timer, comprendiamo il concetto di sonno profondo:
Cosa è il sonno profondo in ESP32
ESP32 può essere un dispositivo affamato di potenza a causa del suo modulo WiFi e Bluetooth integrato. ESP32 in genere disegna 75mA per le operazioni nominali mentre può salire 240 mA Quando si trasmettono i dati su WiFi. Tuttavia, possiamo ottimizzarlo abilitando la modalità di sonno profondo.
In modalità di sonno profondo, le periferiche digitali ESP32, RAM inutilizzate e CPU sono disattivate. Solo il seguente elenco di parti rimane operativo:
Quando la modalità di sospensione profonda è abilitata, la CPU principale viene chiusa; Tuttavia, il coprocessore ULP (UltralowPower) può ancora leggere i dati dai sensori e svegliare la CPU ogni volta che è necessario.
Questa applicazione di ESP32 è utile in cui vogliamo generare output in un momento specifico o quando si verifica un interrupt o un evento esterno. Ciò salva il potere ESP32 poiché la sua CPU rimane fuori per il resto del tempo e si accende solo quando viene chiamata.
Insieme alla memoria principale della CPU ESP32 è anche lampeggiata o cancellata, quindi qualsiasi cosa memorizzata all'interno di questa memoria non sarà più disponibile. Solo la memoria RTC è mantenuta lì. Pertanto, ESP32 salva i dati WiFi e Bluetooth all'interno della memoria RTC prima di andare in modalità di sonno profondo.
Una volta ripristinata la modalità di sospensione profonda o rimossa, il chip ESP32 avvia l'esecuzione del programma fin dall'inizio.
Dal sonno profondo possiamo svegliarci ESP32 usando metodi diversi.
Sveglia le fonti in ESP32
Sono disponibili più fonti per svegliarsi ESP32 dal sonno profondo:
In questa guida ci tratteremo Il timer si sveglia Fonte per ESP32.
Come usare il timer per svegliare ESP32 dal sonno profondo
ESP32 viene fornito con un controller RTC che ha un modulo timer incorporato che può svegliare ESP32 dopo un periodo di tempo predefinito. Questa funzione ha vaste applicazioni in cui abbiamo bisogno di timestamp o dobbiamo eseguire istruzioni in momenti specifici, pur mantenendo un consumo di energia ottimale.
Per mettere ESP32 in modalità di sonno profondo usando il codice microphon sonno profondo() funzione da Modulo macchina sarà usato. Di seguito è riportata la sintassi della funzione di sonno profondo in Micropython:
macchina.DeepSleep (sleep_time_ms)Questa funzione prende 1 Argomento che è un momento predefinito in millisecondi.
Per comprendere l'uso del timer ESP32 per il risveglio faremo un esempio che le palpebre le led dopo ogni ora di set passa e tornano a dormire una volta che l'attività è terminata.
Codice di esempio
Apri qualsiasi editor di MicroPython e carica il codice indicato di seguito nella scheda ESP32. Qui useremo Thonny IDE per il caricamento di schizzi di microphon.
# Code Source LinuxHint.comCodice avviato importando librerie necessarie come abbiamo importato la libreria Deepsleep.
Dopodiché viene creato un nuovo oggetto per ESP32 Pin 4. Questo pin mostrerà l'output ogni volta che ESP32 si sveglia.
LED = pin (4, pin.FUORI)Di seguito i comandi indicati le lampeggono con un ritardo di 1 sec.
guidato.valore (1)Qui per scopi dimostrativi, lampeggiamo il LED. Tuttavia, qualsiasi altro dispositivo può anche essere controllato.
Prima di andare a dormire abbiamo stampato un messaggio che ESP32 sta andando in modalità Sleep.
stampa ("andare a dormire ora")Nota: Possiamo anche aggiungere un ritardo di 5 o più secondi qui prima che ESP32 entri in modalità Sleep. Questo ci aiuta quando si costruisce un progetto e si scrive una nuova sceneggiatura. Durante il caricamento di un nuovo codice, la scheda deve essere sveglia e non in modalità Sleep. Se non aggiungiamo il ritardo, sarà difficile per noi catturare ESP32 in modalità sveglia e caricare un nuovo script.
Dopo aver scritto il nuovo script e una volta pronto il codice finale, possiamo rimuovere questo ritardo nella versione finale di Script.
Infine, la scheda ESP32 viene messa in un sonno profondo per 5 sec (5000 ms).
macchina.Deepsleep (5000)Una volta che il tempo di 5 secondi passa, l'ESP32 si sveglia e riavvia il codice simile al En pulsante.
Produzione
Seguendo l'output può essere osservato sul terminale di guscio di Thonny IDE. Qui possiamo vedere che ogni 5 sec ESP32 si sveglia dal sonno profondo e sbatte il led al pin GPIO 4.
Il LED a GPIO 4 si girerà SU per 1 sec.
Dopo 1 sec il LED girerà SPENTO.
Ora la scheda ESP32 andrà di nuovo in modalità sospensione per 5 secondi e dopo l'intero processo si ripete. Quindi è così che abbiamo controllato con successo la modalità di sospensione ESP32 profonda usando il codice timer.
Conclusione
Qui in questo tutorial, abbiamo configurato ESP32 per svegliarci dal sonno profondo usando un programma di timer scritto in MicroPython. Abbiamo caricato il codice usando il Thonny Ide. Abbiamo semplicemente stampato un messaggio una volta che l'ESP32 si sveglia e sbatte le palpebre un LED; Tuttavia, usando questo articolo si può eseguire qualsiasi attività quando l'ESP32 si sveglia dal sonno profondo.