Seite 1 von 1
RTC hwclock in python
Verfasst: Mittwoch 18. Januar 2017, 17:13
von egon11
Jetzt hab ich noch eine Frage zur hwclock.
Nachdem ich das andere fast erledigt hab, bin ich dabei die hwclock zu installieren.
Angeschlossen und alle Module installiert funktioniert die hwclock (rtc3231).
Aber in mein so geliebten Python Programm will es nicht laufen.
Gibt es ein hwclock Modul was ich importieren kann, oder muss ich alles selbst configurieren?
Re: RTC hwclock in python
Verfasst: Mittwoch 18. Januar 2017, 18:16
von BlackJack
@egon11: Was heisst „angeschlossen und alle Module installiert funktioniert die hwclock“? Heisst das es gibt Kernelmodule für den Chip die tatsächlich die Systemzeit darüber bestimmen? Oder zumindest einen Dienst der ab und zu die Systemzeit mit den Werten aus dem Chip abgleicht?
Und was heisst es funktioniert im Python-Programm *nicht*? Was genau machst Du denn dort?
Re: RTC hwclock in python
Verfasst: Mittwoch 18. Januar 2017, 18:40
von egon11
Sorry, ich hab mich falsch ausgedrückt. Mit angeschlossen meine ich die Hardware, und hab die dazugehörigen python module geladen (smbus,setup.py)
Im Terminal unter der ausgabe "sudo hwclock -r" zeigt es mir die richtige Uhrzeit an.
Jetzt möchte ich diese direkt hier einbringen, also anstatt ' time.strftime('%d.%m.%Y %H:%M:%S'' möchte ich die Zeit von der RTC haben.
Da muss man mit smbus arbeiten, oder gibt es eine andere Möglichkeit?
Code: Alles auswählen
import sys
import time
import RPi.GPIO as GPIO
import datetime
import picamera
import smbus
GPIO.setmode (GPIO.BOARD)
GPIO.setup (11, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup (32, GPIO.OUT)
cam = picamera.PiCamera()
cam.resolution = (1920,1080)
def motion (pin):
t = time.strftime('%d.%m.%Y %H:%M:%S')
cam.capture ('/home/pi/%s.jpg' %t)
GPIO.output(32, GPIO.HIGH)
time.sleep(1)
GPIO.output (32, GPIO.LOW)
return
GPIO.add_event_detect (11, GPIO.RISING)
GPIO.add_event_callback (11, motion)
try:
while True:
time.sleep (0.5)
except KeyboardInterrupt:
GPIO.cleanup ()
Es geht um die zeit, die Bilder sollen nach Zeit gespeichert werden.
Frage ist, wie ich das am unkomplizierten hin bekomme.
Re: RTC hwclock in python
Verfasst: Mittwoch 18. Januar 2017, 18:54
von BlackJack
@egon11: Das `hwclock`-Programm hat nichts mit dem angeschlossenen rtc3231 zu tun. Beziehungsweise wenn *das* die richtige Uhrzeit anzeigt und zum setzen der Systemzeit verwendet wird, dann kannst Du in Python einfach mit dem `datetime`- oder `time`-Modul arbeiten.
Das würde ich letztendlich so oder so machen, also auch wenn der Chip die einzige Zeitquelle ist, würde ich den nicht in einzelnen Programmen abfragen, sondern schauen das der verwendet wird um die Systemzeit zu setzen. So haben dann *alle* Programme etwas davon.
Re: RTC hwclock in python
Verfasst: Mittwoch 18. Januar 2017, 19:08
von egon11
Ja genau so hatte ich das vor, nur sobald das Lan-Kabel ab ist, fürhrt er wegen der Uhrzeit dieses Script nicht mehr aus.
Re: RTC hwclock in python
Verfasst: Mittwoch 18. Januar 2017, 19:27
von BlackJack
@egon11: Du musst halt irgendwie dafür sorgen, dass bei Systemstart die Zeit der Hardware-Uhr auf die Systemzeit übertragen wird. Also das was Linuxdistributionen üblicherweise bei Desktoprechnern und Servern machen. Wird wahrscheinlich irgendein Startskript sein welches beim Raspi nicht installiert oder aktiviert ist, weil der keine Hardware-Uhr an Bord hat.
Das sind letztendlich aber keine Python-Fragen sondern Linux-Fragen. Wahrscheinlich bist Du damit in einem Linux-Forum oder gar einem Raspi-Forum besser aufgehoben. Denn ich schätze Du bist dort nicht der einzige der eine RTC ins System integrieren möchte, und das haben sicher auch schon Leute erfolgreich getan.
Re: RTC hwclock in python
Verfasst: Mittwoch 18. Januar 2017, 19:29
von egon11
Ok danke @ BlackJack für die ganzen hilfreichen Kommentare.