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
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.
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.
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.
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.
Koniec
Dajcie znać czy wam wszystko działa i jest ok w komentarzach.