Instalujemy zegar czasu rzeczywistego (RTC) w RaspberryPi

7 lat temu 64

Wydrukuj to Wpis

Zegar czasu rzeczywistego

Zegar czasu rzeczywistego (Real Time Clock – RTC) – jest układem scalonym przechowującym aktualną datę oraz godzinę, zasilany osobną baterią. Układ przechowuje czas nie tylko gdy urządzenie jest wyłączone, ale także gdy jest całkowicie pozbawione zasilania.

RTC, a RaspberryPi

DS3231

Układ DS3231

Jedną z wad RaspberryPi jest brak zegara czasu rzeczywistego, co znacznie utrudnia pracę na nim gdy urządzenie nie jest na stałe podłączone do sieci, aby mógł pobrać czas z jednego z serwerów NTP.

Istnieje jednak możliwość dokupienia zegara czasu rzeczywistego dodatkowo. Tak zakupiony zegar wpinamy w odpowiednie piny interfejsu GPIO. Osobiście zakupiłem układ DS3231.

Implementacja

Raspberry_Pi_GPIO

Piny interfejsu GPIO w RaspberryPi 2

DS3231_MONTAŻ

Sposób montażu układu DS3231 w RaspberryPi

Wykorzystujemy do tego piny I2C, w przypadku RaspbberryPi 2 B piny 1, 3, 5, 7, 9.

Przed podłączeniem należy wyłączyć nasze urządzenie najlepiej komendą:

sudo halt

Po wpięciu i uruchomieniu urządzenia możemy przystąpić do konfiguracji naszej malinki.
Na początku musimy zainstalować pakiet i2c-tools.
apt-get update
apt-get install i2c-tools
Po instalacji należy wydołać komendę:
sudo i2cdetect -y 1
W przypadku RaspberryPi 1 wykujemy komendę ze zmienionym parametrem.
sudo i2cdetect -y 0
Powinieneś zobaczyć ID #68, jest to adres układu DS3231. Układ jest tożsamy z układem DS1307.
i2cdetect
Następnie ładujemy moduł RTC do jądra systemu
sudo modprobe rtc-ds1307
następnie wykonujemy kolejno komendy:
sudo bash
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
w przypadku RaspberryPi 1
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device

Zegar czasu rzeczywistego został skonfigurowany teraz musimy wgrać w niego aktualną datę oraz godzinę.
Na początku musimy ustawić datę na urządzeniu możemy to zrobić komendą date lub pobrać z jednego z serwerów NTP np. ntpdate ntp.task.gda.pl.
Teraz możemy zapisać czas systemowy do układu. Robimy to komendą:
sudo hwclock -w
Aby sprawdzić jaki czas jest zapisany w układzie wystarczy wykonać komendę z parametrem -r.
sudo hwclock -r
hwclock -r

Możliwe kompilacje w RaspberryPi 2

Zdarza się często, że podczas próby wykonania komendy i2cdetect -y 1 pojawia się następujący błąd
Error: Could not open file `/dev/i2c-1' or `/dev/i2c/1': No such file or directory.

Wtedy musimy wykonać następujące czynności.

Edytujemy plik /boot/config.txt
nano /boot/config.txt
zmieniając następującą linijkę poprzez usunięcie komentarza (usuń #).
#device_tree_param=i2c_arm=on
Kolejnym plikiem do edycji jest /boot/cmdline.txt
nano /boot/cmdline.txt
dodajemy na jego końcu:
bcm2708.vc_i2c_override=1
Na koniec zmieniamy plik raspberrypi.conf.
nano /etc/modules-load.d/raspberrypi.conf
dodając:
i2c-bcm2708
i2c-dev
Po wszystkim restartujemy urządzenie sudo reboot .

Linki:

Dokumentacja układu DS3231

Permalink do tego artykułu: https://geek.net.pl/poradniki/instalujemy-zegar-czasu-rzeczywistego-raspberrypi/

Czytaj więcej