DS1307 RTC I2C-Echtzeituhr verwenden

Den Raspberry Pi um eine Echtzeituhr (RTC) erweitern. Dazu kann ein DS1307 RTC Modul über I2C angeschlossen werden.

rtc-board

  1. I2C auf dem Gerät aktivieren: Anleitung
  2. Das Modul anschließen (Maxim-Dallas DS1307 IC)
  3.         +3,3V   GND   SDA (daten)   SCL (clock)

  4. Prüfen ob das Gerät mit der Adresse 0x68 vorhanden ist
  5. sudo i2cdetect -y 1
  6. Den Treiber rtc-ds1307 beim Systemhochlauf laden (/etc/modules bearbeiten)
  7. pi@raspberrypi ~ $ cat /etc/modules 
    # /etc/modules: kernel modules to load at boot time.
    #
    # This file contains the names of kernel modules that should be loaded
    # at boot time, one per line. Lines beginning with "#" are ignored.
    # Parameters can be specified after the module name.
    snd-bcm2835
    #wire
    #w1-gpio
    #w1-therm
    i2c-dev
    rtc-ds1307
    pi@raspberrypi ~ $ 
    
  8. Das I2C Device 0x68 beim Hochlauf in das System einbinden sowie die Uhrzeit (UTC) aus der RTC übernehmen. Dazu die beiden markierten Zeilen in die Datei /etc/rc.local schreiben.
  9. pi@raspberrypi ~ $ cat /etc/rc.local
    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.
    # Print the IP address
    _IP=$(hostname -I) || true
    if [ "$_IP" ]; then
      printf "My IP address is %s\n" "$_IP"
    fi
    #/home/pi/scripts/gpio.sh
    echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
    hwclock -us 
    exit 0
    pi@raspberrypi ~ $ 
    
  10. Die aktuelle Uhrzeit auf dem System setzen und die UTC-Zeit in die RTC schreiben
  11. pi@raspberrypi ~ $ sudo date -s "2016-03-26 17:18:00"
    Fri Mar 26 17:18:00 CET 2016
    pi@raspberrypi ~ $ sudo hwclock -uw