Wach eSptop 10 aus dem tiefen Schlaf mit Timer-Micropython auf

Wach eSptop 10 aus dem tiefen Schlaf mit Timer-Micropython auf
ESP32 ist eine Mikrocontroller -basierte IoT -Plattform. Der Stromverbrauch ist eines der Hauptprobleme bei der Arbeit mit einem Mikrocontroller -Board. Solange wir ESP32 mit einem DC -Versorgung mit Strom versetzen.

Hier werden wir diskutieren, wie wir ESP32 zum festgelegten Zeitpunkt im tiefen Schlafmodus festlegen können, um Strom zu sparen. Bevor wir lernen, wie man ESP32 aus dem tiefen Schlaf mit Timer aufwacht, verstehen wir das Konzept des tiefen Schlafes:

Was ist tiefer Schlaf in ESP32

ESP32 kann aufgrund seines integrierten WLAN- und Bluetooth-Moduls ein leistungshungriges Gerät sein. ESP32 zeichnet normalerweise 75 mA für nominelle Operationen, während es bis zu einem Anstieg sein kann 240 mA Beim Übertragen von Daten über WLAN. Wir können dies jedoch optimieren, indem wir den tiefen Schlafmodus aktivieren.

Im tiefen Schlafmodus werden ESP32 Digitale Peripheriegeräte, nicht verwendete RAM und CPUs ausgeschaltet. Nur folgende Liste der Teile bleibt operativ:

  • RTC -Controller
  • ULP Coprozessor
  • RTC schnell und langsamer Speicher
  • RTC -Peripheriegeräte

Wenn der tiefe Schlafmodus aktiviert ist, wird die Haupt -CPU heruntergefahren. Der Coprozessor von ULP (UltraloWPower) kann jedoch weiterhin Daten von Sensoren lesen und die CPU bei Bedarf aufwecken.

Diese Anwendung von ESP32 ist praktisch, wo wir zu einem bestimmten Zeitpunkt oder bei einem externen Interrupt oder Ereignis eine Ausgabe erzeugen möchten. Dies spart ESP32 -Strom, da seine CPU für den Rest der Zeit nach wie vor und nur dann eingeschaltet wird, wenn sie aufgerufen wird.

Zusammen mit der CPU ESP32 wird auch der Hauptspeicher geblitzt oder gelöscht, sodass alles, was in diesem Speicher gespeichert ist. Nur RTC -Speicher wird dort aufbewahrt. Daher speichert ESP32 WLAN- und Bluetooth -Daten im RTC -Speicher, bevor Sie in den Tiefschlafmodus gehen.

Sobald der tiefe Schlafmodus zurückgesetzt oder entfernt wurde, startet der ESP32 -Chip die Ausführung des Programms von Anfang an.

Aus dem tiefen Schlaf können wir ESP32 mit verschiedenen Methoden aufwachen.

Wachquellen in ESP32 aufwachen

Es stehen mehrere Quellen zur Verfügung, um ESP32 aus dem Deep Sleep aufzuwachen:

  • Timer
  • Berühren Sie Stifte
  • Externes Aufwachen ext0
  • Externes Aufwachen ext1

In diesem Leitfaden werden wir abdecken Timer wach auf Quelle für ESP32.

So verwenden Sie Timer, um ESP32 aus dem tiefen Schlaf aufzuwachen

ESP32 verfügt über einen RTC-Controller, der über ein integriertes Timer-Modul verfügt, das ESP32 nach einer vordefinierten Zeitspanne aufwachen kann. Diese Funktion verfügt über große Anwendungen, bei denen wir Zeitstempel benötigen oder Anweisungen zu bestimmten Zeiten ausführen müssen, während wir einen optimalen Stromverbrauch beibehalten.

Um ESP32 mit dem Micropython -Code in den tiefen Schlafmodus zu setzen Tiefschlaf() Funktion von der Maschinenmodul wird verwendet. Im Folgenden finden Sie die Syntax der tiefen Schlaffunktion in Micropython:

Maschine.DeepSleep (slep_time_ms)

Diese Funktion nimmt 1 Argument, das eine vordefinierte Zeit in ist Millisekunden.

Um die Verwendung von ESP32 -Timer zum Aufwachen zu verstehen.

Beispielcode

Öffnen Sie einen beliebigen Micropython -Editor und laden Sie den folgenden Code in ESP32 -Board hoch. Hier werden wir Thonny IDE zum Hochladen von Mikropython -Skizzen verwenden.

# Code Source LinuxHint.com
von Maschine importieren DeepSleep
vom Maschinenimportstift
Zum Zeitpunkt des Imports
LED = PIN (4, PIN.Out) #pin 4 definiert für die LED -Ausgabe
LED.Wert (1) #Turn on LED für 1 Sek
Schlaf (1)
LED.Wert (0) #Turn Off LED für 1 Sek
Schlaf (1)
print ('jetzt schlafen gehen')
DeepSleep (5000) #sleep für 5 Sekunden

Der Code importierte mit dem Importieren der erforderlichen Bibliotheken wie wir die DeepSleep -Bibliothek importiert haben.

Danach wird ein neues Objekt für ESP32 Pin 4 erstellt. Dieser Stift zeigt die Ausgabe jedes Mal, wenn ESP32 aufwacht.

LED = PIN (4, PIN.AUS)

Nachfolgend werden angegebene Befehle mit einer Verzögerung von 1 Sek. Blinzel blinken.

LED.Wert (1)
Schlaf (1)
LED.Wert (0)
Schlaf (1)

Hier zu Demonstrationszwecken blinken wir die LED. Jedes andere Gerät kann jedoch ebenfalls gesteuert werden.

Vor dem Schlafengehen drucken wir eine Nachricht, dass ESP32 im Schlafmodus geht.

print ('jetzt schlafen gehen')

Notiz: Wir können hier auch eine Verzögerung von 5 oder mehr Sekunden hinzufügen, bevor ESP32 in den Schlafmodus geht. Dies hilft uns beim Erstellen eines Projekts und beim Schreiben eines neuen Skripts. Beim Hochladen eines neuen Code muss die Board wach und nicht im Schlafmodus sein. Wenn wir die Verzögerung nicht hinzufügen, fällt es uns schwierig, ESP32 im AWAKE -Modus zu fangen und ein neues Skript hochzuladen.

Nach dem Schreiben des neuen Skripts und nach dem Abschluss des endgültigen Code können wir diese Verzögerung in der endgültigen Version des Skripts entfernen.

Schließlich wird das ESP32 -Board 5 Sek. 5000 ms in tiefen Schlaf gebracht.

Maschine.DeepSleep (5000)

Sobald die 5 -Sekunden -Zeit übergeht, wacht die ESP32 auf und startet den Code ähnlich wie der En Taste.

Ausgang

Nach Ausgang kann an der Schalenklemme der Thonny IDE beobachtet werden. Hier können wir sehen, dass nach allen 5 Sekunden ESP32 aus dem tiefen Schlaf aufwacht und die LED am GPIO Pin 4 blinzeln.

Die LED in GPIO 4 wird sich drehen AN für 1 Sek.

Nach 1 Sek. Die LED wird sich drehen AUS.

Jetzt wird das ESP32 -Board 5 Sekunden lang wieder in den Schlafmodus gehen und danach wiederholt sich der gesamte Vorgang. Das ist es also, dass wir den ESP32 Deep Sleep Mode mit dem Timer -Code erfolgreich kontrolliert haben.

Abschluss

Hier in diesem Tutorial haben wir ESP32 so konfiguriert, dass wir mit einem Timer -Programm, das in Micropython geschrieben wurde. Wir haben den Code mit dem hochgeladen Thonny Ide. Wir haben einfach eine Nachricht gedruckt, sobald das ESP32 aufwacht und eine LED blinkt. Mit diesem Artikel kann man jedoch jede Aufgabe ausführen, sobald der ESP32 aus dem tiefen Schlaf aufwacht.