RTC DS1302 und Frage zu I2C&Booten

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,

    ich baue mir eine kleines "Smartes Thermometer",
    dazu verwende ich aktuell ein 16x2 Display (wird durch I2C ausgetauscht)
    und ein DHT22 mit dabei ist das Shutdown Script welches ein User hier im Forum mal als Tutorial gepostet hat.

    Nun würde ich gerne noch in mein Python Script die RTC Zeit statt der Internetzeit (import datetime) nehmen.

    Leider hab ich zu diesem RTC Modul echt wenig gefunden bezüglich Beleung und Programmierung in Python (Bibliotheken etc.)

    Die Anschlüsse sind
    -VCC (3.3V?)
    -GND (GND)
    -CLCK
    -DAT
    -RST (reset?)

    Kann mir wer dazu ggf. hilfe leisten? :)

    Außerdem ne Frage zu I2C, der Bus läuft auf GPIO 2 und GPIO 3, wenn ich den Pi mit dem Bootscript herunter fahre mache ich das aktuell mit GPIO 3, diesen muss ich schließlich auch später gegen GND ziehen um wieder hoch zu fahren, wie ist es möglich das ich den hoch fahren kann und I2C nutzen mit einem Taster.

    [code=php]
    # shutdown script fuer Raspberry Pi
    # status led auf GPIO 6 : ON = ready, BLINK = button wurde gedrueckt

    import RPi.GPIO as GPIO
    import os
    import time

    # use the pin number as on the raspi board

    GPIO.setmode(GPIO.BCM)

    # set pin 7 as output and HIGH, pin 5 is input

    GPIO.setup(6, GPIO.OUT)
    GPIO.output(6, True)
    GPIO.setup(3, GPIO.IN)

    # start the loop for every .5 seconds, waiting for LOW on pin 5
    # then 2 short flashes with led to confirm and shutdown to sleep mode

    while True:
    if not (GPIO.input(3)):
    GPIO.output(6, False)
    time.sleep(.1)
    GPIO.output(6, True)
    time.sleep(.1)
    GPIO.output(6, False)
    time.sleep(.1)
    GPIO.output(6, True)
    os.system("sudo shutdown -h now")
    time.sleep(.5)
    [/php]

    Grüße

  • Servus Zakuma,


    ... Nun würde ich gerne noch in mein Python Script die RTC Zeit statt der Internetzeit (import datetime) nehmen.

    die RTC wirkt sich direkt auf das System aus, so dass es in einem Programm keinen Unterschied machen dürfte.
    Warum willst Du auf die RTC direkt zugreifen?


    ... das Shutdown Script welches ein User hier im Forum mal als Tutorial gepostet hat. ...


    Ich kenne das jetzt nicht im Einzelnen, u.a. weil Schlangen-Code ...
    Aber: zum Herunterfahren wirst Du einen anderen Pin nehmen müssen, wenn Du den O2C Bus nutzen willst. Zum Starten ist das egal ...


    ... Leider hab ich zu diesem RTC Modul echt wenig gefunden ...


    wie schon erwähnt ist der direkte Zugriff in der Regel nicht notwendig. Die Installation dürfte ziemlich ähnlich wenn nicht sogar genau so sein, wie die der DS1307.
    Dazu aber zwei Anmerkungen:
    die DS1307 hat sich in der Vergangenheit als sehr unzuverlässig herausgestellt. Es macht da Sinn stattdessen eine DS3231 zu verwenden ( > click <- ). Inwieweit das jetzt auch auf die von Dir verwendete DS1302 zutrifft vermag ich allerdings nicht zu sagen.
    und ... sehr wichtig! ... überprüfe vor dem Anschliessen auf alle Fälle, ob Dein Modul pullup-Widerstände nach 5V verbaut hat. Im Zweifelsfall grillst Du mindestens die beiden I2C I/Os des Raspi, wenn nicht schlimmer.
    //EDIT:
    Eine schöne Anleitung für die DS1307 hat ps915 verfasst. Dort wird auch extra auch die Widerstände hingewiesen: Realtime Clock (RTC DS1307) am Raspberry Pi betreiben
    Vielleicht passz die ja auch für Dich.

    cu,
    -ds-

  • Guten morgen dreamshader,

    Zum heruntfahren würde ich dann 2 Taster benötigen oder ein Kipp Taster für aus und ein Signal das der zwei Stellungen hat falls es so was gibt.

    Mein eigentlicher Code beinhaltet die Ausgabe von Zeit auf dem 16x2 Display.

    Ggf werde ich mir dann für ein paar euros eine andere rtc zu legen, der Unterschied wird ja das schieberegister an der uhr machen wir gut oder schlecht diese läuft.

    Vielen Dank für die Anleitung, testen werde ich es mal aber wenn ich merke ist mir zu ungenau fliegt die raus :)

    Hab die Anleitung mal eben überflogen, der nimmt anstelle der Internet Zeit die rtc Zeit als System zeit somit bleibt der Code gleich.

    Gesendet von meinem D6603 mit Tapatalk

    Einmal editiert, zuletzt von Zakuma (8. Mai 2017 um 07:47)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!