Datum und Zeit speichern.

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Schlangenmensch
User
Beiträge: 60
Registriert: Freitag 18. Februar 2022, 10:13

Hallo,
ich bastel mir gerade eine Art Datenlogger mit einem Raspberry Pi Pico zusammen.

Im Groben wird mit dem Pico ein Sensor ausgelesen und die Werte in einer Datei gespeichert. Das Programm läuft soweit. Jetzt würde ich den Messwerten gerne noch Zeit und Datum hinzufügen.

Mit : from datetime import datetime bringt mich nicht weiter, weil mir die datetime library fehlt.
Leider konnte ich bis jetzt keine entsprechende library finden.
Gibt es eine Seite, auf der Standard-Librarys stehen?

Ich hoffe ich konnte mein Anliegen verständlich rüberbringen.

Viele Grüße
Patrick
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das geht auch nicht, weil der Pico keine Uhr hat. Wenn du das willst, musst du selbst einen RTC Chip anbinden, den dauerhaft mit Strom versorgen, und einmal richtig stellen. Und aus dem dann die Zeiten entnehmen.

Wenn du am Einsatzort WIFI hast, dann kann zb ein ESP32 sich darüber die Zeit holen. Sowas habe ich gerade für ein ähnliches Projekt programmiert.
Schlangenmensch
User
Beiträge: 60
Registriert: Freitag 18. Februar 2022, 10:13

Ok, dann habe ich die Beschreibung des Pico falsch gelesen.
Ich dachte RTC steht für Real Time Clock und gibt die Uhrzeit aus nachdem diese einmal eingestellt und nicht vom Strom getrenn wurde.

Dann werd ich mich mal durch deinen Vorschlag wursteln und hoffen das ich da weiter komme.

Danke Dir jedenfalls fürs Erste.

Gruß
Patrick
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich weiß nicht, was genau du da gelesen hast. Aber sowas hier https://www.berrybase.de/raspberry-pi/r ... ico-ds3231 ist notwendig. Selbst wenn der Pico nicht vom Strom getrennt werden würde, hat er keine stabile Zeit Quelle an Bord. Und wird zb deutlich driften. Darum braucht es eine RTC.
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Soweit ich weiß hat der Pico eine RTC an Bord. Zugriff darauf hat man über das utime-Modul (oder vieleicht über RTC. Zumindest habe ich das so mal recherchiert, als ich überlegt habe, ob das Board für ein Projekt in Frage kommt.
Trotzdem ist die nicht Batterie-gepuffert und daher nur bedingt sinnvoll einsetzbar.

Die entsprechend Information, die mich zu der Annahme brachte, fand ich hier.
Zum Einsatz kam dann am Ende aber kein Pico, deshalb kann ich das aus der Praxis nicht bestätigen.
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ah, interessant. Dann hat er eine bessere Zeitreferenz, als ich dachte. Ich würde das trotzdem nicht benutzen, weil man das System sonst nur umständlich handhaben kann.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1017
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Könnte sein, dass dieser Code hier ggf. bald in die micropython-lib integriert wird.

Code: Alles auswählen

# clonen, patchen, uploaden

git clone https://github.com/lorcap/upy-micropython-lib.git -b datetime
cd upy-micropython-lib/python-stdlib/datetime/
patch -p1 < localtz.patch

# pip3 install rshelll
rshell cp datetime.py /pyboard/lib/

# remote repl
rshell repl

>>> from datetime import datetime, date, timezone, timedelta, time
>>> datetime.now()
datetime.datetime(2022, 3, 14, 13, 16, 58, 0, None, fold=0)
>>> datetime.now() + timedelta(hours=1, minutes=1)
datetime.datetime(2022, 3, 14, 14, 18, 31, 0, None, fold=0)
>>> berlin = timezone(timedelta(hours=1), "Europe/Berlin")
>>> datetime.now(berlin)
datetime.datetime(2022, 3, 14, 14, 19, 34, 0, datetime.timezone(datetime.timedelta(microseconds=3600000000), 'Europe/Berlin'), fold=0)
>>> datetime(2022, 1, 1) + timedelta(days=10)
datetime.datetime(2022, 1, 11, 0, 0, 0, 0, None, fold=0)
Interessant... ich frage mich gerade, woher mein RP2040 die aktuelle Zeit hat.
Wird die automatisch via USB gesetzt?

Edit: rshell macht das: https://github.com/dhylands/rshell/blob ... n.py#L1534
Zuletzt geändert von DeaD_EyE am Montag 14. März 2022, 13:36, insgesamt 1-mal geändert.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das würde mich überraschen. Allerdings gibt es of Mechanismen, die zb das build datum als Referenz nutzen. YOCTO zb macht das so. Schau mal was der morgen sagt.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1017
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Lag an rshell. Das Programm setzt die Zeit. Praktisch.

Hier noch der ausstehende pull-request: https://github.com/micropython/micropython-lib/pull/449
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten