Damit das RaspberryPi auch nach längerer Zeit im ausgeschalteten Zustand die korrekte Systemzeit anzeigt, muss es beim Booten entweder eine Internetverbindung haben und über das NTP-Protokoll die lokale Zeit aktualisieren - oder die Entscheidung fällt auf ein RTC-Modul (Real-Time-Clock).

Es existieren verschiedene Modelle auf dem Markt. Für das vorliegende RaspberryPi Model 3 B scheint folgender Artikel von AZ-Delivery gut geeignet zu sein, aufgrund der guten Rezensionen habe ich mich zuerst daran versucht:

DS3231 RTC Real Time Clock   

Das Modul besitzt sechs Pins, vier davon müssen mit den GPIO-Pins des Raspberry verbunden werden.

Folgendes Diagramm zeigt die Belegung der Pins eines Raspberry 3 Model B (Quelle):

Raspberry pi pin belegungDie Pin-Belegung eines Raspberry Pi Model 3 B

Da es sich um das DS3231-Modul handelt, muss der VCC-Pin an einen 3.3V-Ausgang angeschlossen werden.

Dieser Blogeintrag erklärt das Vorgehen genauer. Befolgt man alle Anweisungen darin, ist man fast am Ziel.

Synchronisieren der Zeit bei Systemstart

In unserem Fall baute das Raspberry jedoch keine dauerhafte Verbindung zum RTC-Modul auf. Zu Testzwecken lief lief der Befehl

sudo hwclock -D -r  

zum Abfragen der Zeit aus dem RTC-Modul sporadisch ins Leere.

Damit das automatische Starten der Software (Definiert in der Datei /etc/rc.local) auch bei einer negativen Antwort auf den Synchronisationsbefehl noch funktioniert, hilft folgender Workaround:

Durch das Einbauen einer While-Schleife vor dem Aufruf der eigentlichen Anwendung MedDoser wartet das Boot-Skript mit der weiteren Ausführung so lange, bis die lokale Systemzeit korrekt vom RTC-Modul gelesen wurde. Der Befehl hwclock -s sorgt dafür, dass die Zeit des RTC-Moduls mit der lokalen Systemzeit überschrieben (synchronisiert) wird:

while ! hwclock -s  do     echo "Failed to sync RTC to local time."  done     echo "Successfully synced RTC to local time"  

Der im obigen Blogbeitrag empfohlene Befehl

echo ds3231 0x68 > /sys/class/i2c-adapter/i2c-1/new_device  

funktioniert in unserem Szenario nicht und kann daher aus der Datei /etc/rc.local auskommentiert bzw. entfernt werden.

Setzen der Systemzeit auf dem RTC-Modul

Es ist wichtig, dass einmalig die korrekte Systemzeit (z.B. bei bestehender Internetverbindung) auf das RTC-Modul geschrieben wird. Ob die lokale Systemzeit richtig ist, kann mit folgendem Befehl überprüft werden:

date  

Das Schreiben der lokalen Zeit auf das RTC-Modul geschieht mit folgendem Befehl:

sudo hwclock -w

Testen der Konfiguration

Ob das Einrichten der RTC funktioniert hat, prüft man am Einfachsten, indem das Gerät über den Zeitraum von ein paar Stunden ausgeschaltet und dann wieder hochgefahren wird. Stimmt die Systemzeit dann mit der realen Tageszeit überein, passt alles (Voraussetzung: Die Zeitzone wurde in der Raspberry-Konfiguration an den Aufenthaltsort angepasst).

Einfacher ist es jedoch, die Systemzeit manuell auf einen Wert in der Vergangenheit zu setzen, z.B. mit

sudo date -s "Wed Nov 29 14:00:00 UTC+1 2017"  

Danach das Gerät neu starten und prüfen, ob trotzdem die richtige Zeit angezeigt wird.

rtc liveDie RTC unter die Lupe genommen. Vier Jumper-Wires wurden hier bereits mit den GPIO-Pins des RaspberryPi verbunden

See also

  • Der MedDoser.
    MedDoser: Medikationsplan auf dem Raspberry Pi 3 (Java)

    Das Gerät MedDoser ist ein mit einem Touchscreen und weiteren Komponenten versehenes RaspberryPi, das eine Erinnerungsfunktion samt Medikationsdokumentation auf Basis eines eingescannten Medikationsplans ermöglicht und die Medikation eines Patienten visuell darstellt.

  • JavaFX
    JavaFX und Raspbian OS

    Seit der Version 8u33 der ARM-Version von Oracle gibt es keinen Support mehr für JavaFX-Anwendungen out-of-the-box. Die offizielle Meldung dazu findet sich hier. Aus diesem Grund benötigt ein Raspberry-System eine manuelle Erweiterung. Die Voraussetzung dafür ist ein aktuelles installiertes JDK von Oracle auf dem Raspberry-System (siehe dieser Wiki-Artikel).

  • Samba-Logo
    Einrichten eines Samba-Servers auf dem Raspberry Pi

    Der Austausch von Dateien zwischen einem Windows-PC und dem Raspberry Pi über USB-Sticks ist umständlich - ein Ordner auf dem Einplatinencomputer lässt sich stattdessen dank Samba auch ganz einfach über ein Netzlaufwerk in den Windows-Explorer einbinden!

Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.
Ok