Benutzer-Werkzeuge

Webseiten-Werkzeuge


rtc

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
rtc [2017/12/08 20:54] noonertc [2019/10/27 09:46] (aktuell) noone
Zeile 1: Zeile 1:
 +====RTC Modul====
 +
 +===Warum eine RTC?===
 +Eine Echtzeituhr (realtimeclock) misst die physikalische Uhrzeit. Eine RTC hat einen Quarz der den Takt der Uhr vorgibt. Ein Chip (hier DS1307) berechnet daraus sie aktuelle Uhrzeit.
 +
 +Normalerweise wird die aktuelle Uhrzeit über das Internet via ntp synchronisiert. Wenn jedoch kein Netzwerk zur Verfügung steht und man eine aktuelle Uhrzeit benötigt greift man zu einer RTC.
 +
 +{{ :rtc_2.jpg?200|Rückseite}} {{ :rtc_1.jpg?200|Vorderseite}}
 +
 +Dieses Modul hat eine 3,6V Lithium Ion Batterie verbaut. Dadurch läuft dieses Modul, und somit auch die Uhrzeit, weiter wenn der Raspberry Pi ausgeschaltet ist.
 +
 +===Was wird benötigt?===
 +  * Raspberry Pi Modell A oder B
 +  * Tiny RTC Modul (I2C RTC DS1307) Ebay(sehr lange Lieferzeiten) Amazon1 oder Amazon2
 +  * SD-Karte mit aktuellen Raspbian installiert
 +  * einen Lötkolben sowie Hilfsmittel
 +
 +===Kommen wir nun zu der Anleitung:===
 +
 +==Schritt 1: Widerstände des RTC Moduls entlöten und anschließen==
 +Damit das Modul mit dem Raspberry Pi funktioniert müssen zwei PullUp Widerstände (R2 und R3) entfernt werden.
 +Diese entlöten wir mit Hilfe des Lötkolbens. Zusätzlich kann man noch eine Stiftleiste verlöten, damit man das Modul zum Beispiel auf einem Steckbrett/Breadboard nutzten kann.\\
 +**Wichtig!** Die Widerstände müssen entlötet werden, da die 5V den Raspberry Pi schwer beschädigen könnten.
 +
 +{{ :3.1.jpg?200 |angepasstes Modul (R2 und R3 ausgelötet sowie Stiftleiste hinzugefügt)
 +}}
 +
 +Nun können wir das Modul am ausgeschalteten Raspberry Pi anschließen.
 +
 +| RPI GPIO | RTC P1 | TJBot |
 +| Pin 2 5V | VCC | schwarz |
 +| Pin 3 SDA | SDA | gelb |
 +| Pin 5 SCL | SCL | braun |
 +| Pin 6 GND | GND | grau |
 +
 +{{ :rtc_fritzing.jpg?200 |Verkabelung}}
 +
 +==Schritt 2: Software konfigurieren==
 +Unter Umständen kann es nötig sein "Expand filesystem" auszuführen!
 +
 +Den Raspberry Pi nach Überprüfung der Verkabelung starten.
 +Als erstes aktualisieren wir das System mit folgenden Befehlen:
 +   sudo apt update && sudo apt upgrade -y
 +
 +**WICHTIG:** Als nächstes installieren wir das Paket "i2c-tools" und holen wir uns sudo Rechte für die nächsten Schritte:
 +   sudo apt install i2c-tools
 +   sudo su
 +
 +Nun aktivieren wir I²C
 +   nano /etc/modprobe.d/raspi-blacklist.conf
 +
 +Wenn vorhanden, kommentieren wir "spi-bcm2708" und "i2c-bcm2708" aus. So sollte eure Datei nun aussehen:
 +   # blacklist spi and i2c by default (many users don't need them)
 +   
 +   #blacklist spi-bcm2708
 +   #blacklist i2c-bcm2708
 +
 +Als nächstes legen wir fest, welche Module beim starten automatisch geladen werden sollen.
 +   nano /etc/modules
 +
 +Dort tragen wir folgende Module ein:
 +   snd-bcm2835
 +   spi-bcm2708
 +   i2c-bcm2708
 +   i2c-dev
 +   rtc-ds1307
 +
 +==Schritt 3: Testen==
 +Wir laden folgende Module:
 +   modprobe i2c_bcm2708
 +   modprobe i2c_dev
 +   modprobe rtc-ds1307
 +
 +Jetzt schauen wir ob die RTC am i2c Bus angezeigt wird, dazu geben wir folgenden Befehl ein:
 +   i2cdetect -y 1
 +
 +Für die Rev 1 gebt ihr "i2cdetect -y 0" ein.
 +Ihr solltet folgendes sehen:
 +   root@raspberrypi:~# i2cdetect -y 0
 +        0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
 +   00:          -- -- -- -- -- -- -- -- -- -- -- -- --
 +   10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +   20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +   30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +   40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +   50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +   60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
 +   70: -- -- -- -- -- -- -- --
 +
 +Die Uhr wurde also unter der Adresse 68 gefunden. Unter der Adresse 50 verbirgt sich ein nichtflüchtiger Speicher, der ebenfalls auf dem Modul verbaut ist. Dieser interessiert uns aber nicht weiter.
 +
 +Nun testen wir die Verbindung zur Uhr. Wenn das klappt sollte er euch die Sekunden, Minuten und Stunden wie folgt anzeigen
 +   root@raspberrypi:~# i2cget -y 1 0x68 0
 +   0x38
 +   root@raspberrypi:~# i2cget -y 1 0x68 1
 +   0x16
 +   root@raspberrypi:~# i2cget -y 1 0x68 2
 +   0x16
 +
 +==Schritt 4:  Uhr in das System einbinden und mit hwclock testen==
 +   echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
 +
 +"echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device" für Rev 1
 +
 +Mit dem Befehl "hwclock -r" können wir nun die Zeit der RTC auslesen.
 +   root@raspberrypi:~# hwclock -r
 +   Tue 03 Sep 2013 16:23:17 UTC  -0.781864 seconds
 +
 +Falls die Uhrzeit nicht korrekt ist, könnt ihr mit dem Befehl "date" die Systemzeit anzeigen lassen und bei Bedarf mit "hwclock -w" die RTC Zeit auf die System zeit setzten. Mit "hwclock -r" könnt ihr es überprüfen.
 +Am besten studiert ihr die manpage zu hwclock.
 +
 +==Schritt 5: RTC Uhrzeit dauerhaft einbinden==
 +   nano /etc/rc.local
 +
 +Ihr fügt vor exit 0 folgendes ein:
 +   echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
 +   sudo hwclock -s
 +
 +hwclock -s setzt die RTC Zeit als Systemzeit
 +"echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device für Rev 1"
 +
 +Nach einem Neustart mit "reboot" testet ihr die Uhr mit "sudo hwclock -r"
 +
 +Ab sofort sollte eure Systemzeit immer aktuell sein. Natürlich rate ich euch die korrekte Zeitzone einzustellen. Im Moment ist diese noch auf "UTC" eingestellt. über "sudo raspi-config" könnt ihr diese auf die korrekte Zeitzone einstellen.
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki