Laufzeit seit dem Start

Die integrierte Uhr des ESP läuft ab dessen Start. Die Laufzeit seit dem Start erhält man mit Hilfe des Moduls time/utime wie folgt:

import time
print(time.time())
print(time.ticks_ms())
print(time.ticks_us())

Man kann also die Zeit seit dem Start in Sekunden, Millisekunden und Mikrosekunden anzeigen lassen.

Datum und Uhrzeit

Datum und Uhrzeit kann man wie folgt ermitteln:

import time
print(time.localtime())

Man bekommt dann z.B. einen Wert (2000, 1, 1, 0, 7, 19, 5, 1). Das ist ein Tupel bestehend aus:

  • Jahr
  • Monat (1-12)
  • Tag (1-31)
  • Stunde (0-24)
  • Minute (0-59)
  • Sekunde (0-59)
  • Wochentag (0-6 für Montag bis Sonntag)
  • Tag des Jahres (1-366)

Der Beginn der Zeitrechnung startet dabei am 01.01.2000 (= Zeitpunkt des Einschaltens)

Zeit aus dem Internet beziehen

Um eine korrektes Datum und die korrekte Uhrzeit zu erhalten, kann man die Zeit mit dem Network-Time-Protokoll (NTP) aus dem Internet beziehen. Dafür ist eine WLAN-Verbindung zum Internet erforderlich.

import ntptime
import time
ntptime.settime()
print(time.localtime())

Manchmal läuft die NTP-Abfrage auf einen Fehler. Folgendes Programm frag daher so oft ab, bis nicht mehr das Jahr 2000 angezeigt wird.

import ntptime
import time

year = 2000

while year == 2000:
    try:
        ntptime.settime()
    except:
        print("Fehler beim Zeitholen")
    year = time.localtime()[0]
    time.sleep_ms(500)
print(time.localtime())

Sleep - Verzögerungen einbauen

Das Modul time bietet auch die Möglichkeit, Verzögerungen in das Programm einzubauen. Wir haben dies z.B. beim Neopixel genutzt.

In den drei unterschiedlichen Varianten von sleep kann der Zeitraum in Sekunden, in Millisekunden oder in Mikrosekunden angegeben werden:

time.sleep(seconds)
time.sleep_ms(ms)
time.sleep_us(us)

Weitere Infos: https://docs.micropython.org/en/latest/library/utime.html