ESP32 RTC clock im Deep Sleep Modus mit MicroPython

Ausgehend von…

fragte @IngoP

HI. OK.
Wäre es machbar sich die Zeit vom NTP Server zu holen (FritzBox , NAS o.ä.) ?

Vielleicht macht das der FiPy sogar schon, ich meine mich zu erinnern, dass in einer früheren Version der Firmware schon mal das aktuelle Datum im log code auftauchte.

Jedenfalls hat der FiPy / ESP eine RTC, die auf für solche Dinge in Zukunft nutzen können wie lokales timestamps oder Tag / Nacht-Rhythmus-Umschaltung, die RTC-Zeit lässt sich mit dem richtigen code auch über den deep sleep retten s. RTC in combinattion with deepsleep unusable | Pycom user forum

Die folgen Zeilen in hiverize/Fipy von Vincent funktionieren:

      if _wlan.mode() == network.WLAN.STA and _wlan.isconnected():
            try:
                rtc.ntp_sync("pool.ntp.org")
1 Like

Im Gegensatz zu entsprechenden Beobachtungen im Pycom Forum

kann ich bestätigen, dass die Uhr des RTC mit dem Pycom Firmware Release 1.20.1 über einen Deep-Sleep hinaus ordnungsgemäß funktioniert und weiterläuft.

>>> from machine import RTC; rtc = RTC(); rtc.now()
(2019, 10, 28, 1, 18, 0, 729064, None)

>>> import machine; machine.deepsleep(10000)
# Some boot procedure here, yadda yadda until CTRL+C.

>>> from machine import RTC; rtc = RTC(); rtc.now()
(2019, 10, 28, 1, 18, 20, 111231, None)

Nach einem Reset ist die Uhr natürlich zurückgesetzt:

>>> import machine; machine.reset()

>>> from machine import RTC; rtc = RTC(); rtc.now()
(1970, 1, 1, 0, 0, 7, 126995, None)
2 Likes

Allerdings wird es Ungenauigkeiten geben, sofern kein externer Oszillator verwendet wird. Wobei selbst dies bis auf weiteres unklar zu sein scheint.

See also.

Slightly off-topic as this is about the ESP8266.

1 Like

Das, finde ich, ist in unserem setting kein großes Problem. Da wir eh mindestens einmal am Tag Kontakt zum Server aufnehmen können wir dann auch die Zeit holen (ggf. sogar als http responds bei Post).

2 Likes

… muss der Abgleich denn aktiv angestoßen werden ?
oder wie ist der Abgleich, wenn ich den NTP Server deklariere aufgehängt?

Mein NTP Server (NAS / Fritzbox) gleichen die Zeit ja selber immer wieder ab, somit steht in meinem Netzwerk dann auch die Zeitangabe zur Verfügung.

Another compile-time option which might be interesting in this regard.

CONFIG_ESP32_RTC_CLK_SRC

https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/kconfig.html#config-esp32-rtc-clk-src

1 Like