Podobno tej jednej funkcji brakuje w Raspberry Pi najbardziej, podtrzymania czasu rzeczywistego za pomocą bateryjki. Razpberry Pi nie zostało wyposażone w RTC pewnie z tego powodu że istnieje alternatywa w postacji NTP. Jednak czasem z różnych powodów RTC jest potrzebne i poniżej pokażę jak podłączyć i zainstalować taki moduł w Raspberry Pi.

Sprzęt

Na początek trzeba zakupić moduł RTC, ja zakupiłem go na banggood.com

techfreak_raspberry_pi_rtc_ds1307_2_1 techfreak_raspberry_pi_rtc_ds1307_1_1

Połączenie

Połączenie jest bardzo proste bo łączę moduł do szyny i2c na Raspberry Pi. VCC do 5V, GND – GND, SDA – SDA, SDC – SDC.

techfreak_raspberry_pi_rtc_ds1307_3_1

Uruchomienie

Na pewno trzeba mieć załadowane moduły I2C. I2C w Raspberry Pi można uruchomić w programie raspi-config wchodząc do Advanced Options a następnie do I2C. Po tych czynnościach można wykonać restart i sprawdzić i2cdetect -y 0 lub i2cdetect -y 1 czy moduł RTC został poprawnie wykryty. Jeśli nie masz i2cdetect zainstaluj i2c-tools. W zależności jaką wersję Raspberry Pi posiadasz taki masz numer szyny i2c-1, i2c-0

sudo apt-get install i2c-tools

Przechodząc dalej, trzeba uruchomić moduł odpowiedzialny za pracę z RTC i wskazać na jakim adresie jest dostępny

modprobe rtc-ds1307
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device

Dodaj do autostartu

sudo echo "rtc-ds1307" >> /etc/modules
sudo sed -i '/exit 0/i echo ds1307 0x68 > \/sys\/class\/i2c-adapter\/'$(ls /dev/i2c-* |awk -F/ '{print $3}')'\/new_device && hwclock -s' /etc/rc.local

Po wydaniu polecenia hwclock powinien pokazać datę z 2000 roku, to oznacza że działa.

2

Aby zsynchronizować czas systemowy z RTC trzeba wydać polecenie hwclock -w ale jeśli nie jest poprawny to trzeba wydać polecenie ntp -qg aby synchronizować czas systemowy z jakimś serwerem czasu a dopiero wtedy zapisać go w pamięci DS1307. Jesli nie masz ntp w systemie trzeba go zainstalować.

sudo apt-get install ntp
sudo service ntp restart
ntpd -qg
hwclock -w

Po takiej operacji zapisał się poprawny czas w module i podtrzymywany jest bateryjką 3.6V. Aby sprawdzić czy na pewno wydaj polecenie hwclock.

4

Teraz w systemie działa Ci NTP i RTC. Jeśli nie będzie połączenia do internetu po restarcie Raspberry Pi weźmie czas z modułu który podłączyłeś.

Nettemp

Jeśli masz zainstalowanego nettempa na Raspberry Pi wystarczy przejść do Settings > Time gdzie przygotowałem menu w którym można powyższe czynności wyklikać i nie trzeba martwić się o moduły czy wpisywanie czegoś do plików.

10

Koniec

Dajcie znać czy wam wszystko działa i jest ok w komentarzach.