ESP-01+ ESP8266 Deep Sleep Entwicklerplatine Bausatz Konfiguration
ESP-01+ ESP8266 Deep Sleep Board

EI-OT ESP-01+ ESP8266 Entwicklerplatine Deep Sleep und Wake Up

ESP8266 Deep Sleep

Der ESP8266EX unterstützt folgende Sleep Arten

  1. Modem Sleep, deaktiviert das WLan Modem benötigt zwischen 15mA – 16,2mA
  2. Light Sleep, deaktiviert das Wlan Modem und Systemzeit, die CPU ist im pending modus zwischen 0,4mA – 1,8mA
  3. Deep Sleep, jeglicher Prozess wird beendet lediglich die RTC Funktion ist aktiv, benötigt ø 20µA

Wurde ein ESP8266 erst einmal in den Deep Sleep Modus versetzt, kann dieser nur noch über ein Hardware Reset aktiviert werden.

Da im Deep Sleep Modus die CPU als auch Systemzeit deaktiviert ist, bedarf es typischerweise einem entsprechenden

  • Auslöser / Trigger im Detail einem zeitlichem Intervall welcher über RTC (Real Time Clock) überwacht und ausgelöst wird
  • Signal über die Hardware, im Detail GPIO16

der ein Reset auslöst um den ESP8266 in einen aktiven Modus zu versetzen.

Mit einfachen Worten, wird der der Endpunkt des vorgegebenen Zeitintervalls erreicht, wird GPIO16 auf LOW gesetzt. In Anlehnung an die Funktion des ESP8266 Reset Pin – LOW löst ein Reset aus – bedarf es lediglich GPIO16 und Reset zu verbinden.

ESP8266 Deep Sleep

The ESP8266EX supports 3 sleep modes

  1. Modem Sleep, WiFi Modem disabled 15mA – 16,2mA current consumption
  2. Light Sleep, WiFi Modem and System clock disabled, CPU pending mode  0,4mA – 1,8mA current consumption
  3. Deep Sleep, WiFi Modem, System Clock and CPU disabled only RTC is enabled ø 20µA current consumption

Soon as an ESP8266 is in Deep Sleep Mode, it requires a hardware reset to wake up the ESP8266.

Based on Deep Sleep Mode only RTC is active 2 Parameters are required

  • Trigger in Detail a timer intervall controlled thru RTC (Real Time Clock)
  • hardware based signal, in detail GPIO16

to execute a reset to activate the ESP8266.

In simple words, soon as the endpoint of the timer interval is reached, GPIO16 is set LOW. Based on Reset Pin function – soon as Reset Pin is LOW a reset is executed – GPIO16 and Reset must be connected.

Tasmota Console Deep Sleep function ESP-01+ Development Board
Deep Sleep aktivieren

Im Eigentlichen erfolgt die Deep Sleep Aktivierung stets über über einen Befehl über die Software / Firmware.

Beispielsweise innerhalb Tasmota wird über die Konsole mittels Eingabe von

DeepSleep 60

in die Kommandozeile und drücken der Taste Enter (nicht ausführen, bitte weiterlesen). Der ESP8266 aktiviert den Deep Sleep Modus für 60 Sekunden, erstattet Meldung / sendet aktuellen Status und fällt wieder in den Deep Sleep Modus zurück. Dementsprechend ist der ESP8266 nicht mehr erreichbar weder über WLan noch seriell über die UART Schnittstelle, es bedarf einer Wake Up Funktion um den ESP8266 wieder zu aktivieren.

enable Deep Sleep

Normally Deep Sleep Mode is enabled thru a command, for example to enable Tasmota deep sleep mode open console window and type

DeepSleep 60

into command line and press Enter key (don’t perform Deep Sleep, please continue reading). The ESP8266 enables Deep Sleep mode for 60 seconds, then actual status data will be send before the MCU enables again deep sleep. Therefore the ESP8266 is not reachable thru WiFi nor thru serial UART Interface.

ESP-01+ Development Board Tasmota Deep Sleep Wake Up GPIO
ESP8266 Wake Up

Eine Wake Up Funktion ist eine Routine die ausgeführt wird wenn der ESP8266 ein Reset ausführt (den Deep Sleep unterbricht GPIO16 übergibt LOW an Reset). In Anlehnung an die Tasmota Firmware funktioniert dies mittels eines GPIO, im Bezug des EI-OT ESP-01+ Entwicklerboard GPIO12.

Im Detail ist die DeepSleep Wake Up Routine denkbar einfach, bei einem Reset / Bootvorgang wird der aktuelle Status des DeepSleep GPIO = GPIO12 ermittelt,

  • LOW = unterbreche Deep Sleep

und der ESP-01+ startet wie gewohnt mit aktiver WLan Verbindung.

Zusammenfassend:

  1. GPIO16 führt das Reset aus = übergibt LOW an Reset
  2. GPIO12 = Wake Up Trigger, wenn LOW wird Deep Sleep unterbrochen
ESP8266 Wake Up

Function of a Wake Up Routine is performed during Reset (Deep Sleep interruption thru GPIO16 sets Reset to LOW). Based on Tasmota Firmware a Wake Up Routine is triggered thru actual GPIO state, related to EI-OT ESP-01+ Development Board GPIO12.

In Detail the Deep Sleep Wake Up function it’s quite simple, during Reset and ESP-01+ start process, status of DeepSleep GPIO =  GPIO12 is determined

  • LOW = interrupt Deep Sleep

and the ESP-01+ will start with active WiFi Modem.

In summary:

  1. GPIO16 executes Reset = set Reset to LOW
  2. GPIO12 = Wake Up Trigger, if LOW Deep Sleep is interrupted
ESP-01+ Development Board Tasmota Deep Sleep Wake Up Setup
Wake Up aktivieren

Wie bereits im Vorfeld erwähnt erfolgt das Tasmota Deep Sleep Wake Up über GPIO12 mittels einem LOW Signal. Hierzu wurde die EI-OT ESP-01+ Entwicklerplatine zum Einen mit einem Schiebeschalter bestückt und zum Anderen GPIO12 mit einem notwendigen Pull Up Widerstand vorbereitet.

  1. brücke die 2 Lötpads 12PU auf der Platinenoberseite
  2. brücke die DS Pins mittels des beiliegend Jumper (GPIO16 auf Reset)
  3. mittels dem Schiebeschalter kann nun
    • WU, Schalterposition = links Wake UP aktiviert werden, der ESP8266 unterbricht beim nächsten Reset den Deep Sleep Modus
    • IO12, Schalterposition = rechts Wake Up ist deaktiviert, der ESP8266 bleibt im Deep Sleep Modus

Abschliessend muss lediglich die DeepSleep Funktion mittels Tasmota Konsole durch Eingabe von

DeepSleep 60

in die Befehlszeile und drücken der Taste ENTER. Der Wert hinter dem Befehl DeepSleep (60) gibt dabei den Intervall / Deep Sleep Dauer in Sekunden vor (Beispiel 3600 = 1 Stunde / 86400 = 1 Tag).

enable Wake Up

As mentioned before the Tasmota Deep Sleep Wake Up is performed thru GPIO12 LOW level state. Therefore the EI-OT ESP-01+ Development Board has a slide switch, connected to GPIO12, also a required Pull Up resistor.

  1. to enable GPIO12 pull up resistor close / connect solder pads 12PU
  2. close DS Pins with Jumper / connect GPIO16 to Reset
  3. Enable or Disable Deep Sleep Function thru slide switch
    • WU, switch position left Wake Up function is enabled, Deep Sleep is interrupted during next Reset
    • IO12, switch position right, Wake Up function is disabled

ESP-01+ Development Board is now ready to enable Tasmota deep sleep mode, open console window and type

DeepSleep 60

into command line and press Enter key. The integer after DeepSleep (60) is the value of Deep Sleep interval in seconds (Example 3600 = 1 hour / 86400 = 1day.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert