rtc
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| rtc [2017/10/16 23:43] – Externe Bearbeitung 127.0.0.1 | rtc [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. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | 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/ | ||
| + | **Wichtig!** Die Widerstände müssen entlötet werden, da die 5V den Raspberry Pi schwer beschädigen könnten. | ||
| + | |||
| + | {{ : | ||
| + | }} | ||
| + | |||
| + | 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 | | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | ==Schritt 2: Software konfigurieren== | ||
| + | Unter Umständen kann es nötig sein " | ||
| + | |||
| + | 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: | ||
| + | sudo apt install i2c-tools | ||
| + | sudo su | ||
| + | |||
| + | Nun aktivieren wir I²C | ||
| + | nano / | ||
| + | |||
| + | Wenn vorhanden, kommentieren wir " | ||
| + | # blacklist spi and i2c by default (many users don't need them) | ||
| + | |||
| + | # | ||
| + | # | ||
| + | |||
| + | Als nächstes legen wir fest, welche Module beim starten automatisch geladen werden sollen. | ||
| + | nano / | ||
| + | |||
| + | Dort tragen wir folgende Module ein: | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | ==Schritt 3: Testen== | ||
| + | Wir laden folgende Module: | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | Jetzt schauen wir ob die RTC am i2c Bus angezeigt wird, dazu geben wir folgenden Befehl ein: | ||
| + | | ||
| + | |||
| + | Für die Rev 1 gebt ihr " | ||
| + | Ihr solltet folgendes sehen: | ||
| + | | ||
| + | 0 1 2 3 4 5 6 7 8 9 a b c d e f | ||
| + | | ||
| + | 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 | ||
| + | | ||
| + | 0x38 | ||
| + | | ||
| + | 0x16 | ||
| + | | ||
| + | 0x16 | ||
| + | |||
| + | ==Schritt 4: Uhr in das System einbinden und mit hwclock testen== | ||
| + | echo ds1307 0x68 > / | ||
| + | |||
| + | "echo ds1307 0x68 > / | ||
| + | |||
| + | Mit dem Befehl " | ||
| + | | ||
| + | Tue 03 Sep 2013 16:23:17 UTC -0.781864 seconds | ||
| + | |||
| + | Falls die Uhrzeit nicht korrekt ist, könnt ihr mit dem Befehl " | ||
| + | Am besten studiert ihr die manpage zu hwclock. | ||
| + | |||
| + | ==Schritt 5: RTC Uhrzeit dauerhaft einbinden== | ||
| + | nano / | ||
| + | |||
| + | Ihr fügt vor exit 0 folgendes ein: | ||
| + | echo ds1307 0x68 > / | ||
| + | sudo hwclock -s | ||
| + | |||
| + | hwclock -s setzt die RTC Zeit als Systemzeit | ||
| + | "echo ds1307 0x68 > / | ||
| + | |||
| + | Nach einem Neustart mit " | ||
| + | |||
| + | Ab sofort sollte eure Systemzeit immer aktuell sein. Natürlich rate ich euch die korrekte Zeitzone einzustellen. Im Moment ist diese noch auf " | ||
