W tym artykule zobaczysz metodę użycia zegara w czasie rzeczywistym, aby śledzić czas na Raspberry Pi.
Jak używać zegara w czasie rzeczywistym (RTC) z Raspberry Pi
RTC to mały moduł sprzętowy, który służy do utrzymania dokładnej daty i godziny śledzenia. Moduł RTC składa się z interfejsu I2C, z powodu którego można go podłączyć do Raspberry Pi. Zwykle moduł RTC składa się z 4 pinów, ale może być więcej pinów. Cztery podstawowe szpilki RTC, które są używane do łączenia RTC z Raspberry Pi to:
Wszystkie te piny są oznaczone na poniższym obrazku, kolor modułu RTC może się zmieniać, może być niebieski, zielony lub czerwony:
Raspberry Pi ma również szpilki protokołu I2C SDA i SDL na pinu nr 3 i 5, aby podłączyć go do modułu RTC. Aby podłączyć Raspberry Pi z modułem RTC, użyjemy 4 pin Raspberry Pi, które są podświetlone na poniższym obrazku:
Postępuj zgodnie z poniższymi krokami, aby użyć RTC z Raspberry Pi:
Krok 1: Konfiguracja sprzętowa
Aby zbudować obwód sprzętowy Raspberry Pi i RTC, użyj poniższego schematu obwodu;
Krok 2: Włącz I2C na Raspberry Pi
Musisz włączyć I2C Interfejs na Raspberry Pi, otwierając narzędzie konfiguracyjne Raspberry Pi za pomocą następującego polecenia:
$ sudo raspi-config
Idź do Opcje interfejsu i uderz Wchodzić:
Następnie wjdź dalej I2C Opcja włączenia protokołu I2C na Raspberry Pi:
Po czym poprosi cię o pozwolenie na włączenie protokołu I2C, wybierz Tak Tutaj:
Wydaje się, że monit informuje, że I2C jest włączony; Kliknij OK Tutaj:
Następnie kliknij Skończyć przycisk, aby ukończyć proces.
Krok 3: Upewnij się, że połączenie modułu RTC z Raspberry Pi
Po włączeniu I2C upewnij się, że twój moduł sprzętowy RTC jest poprawnie podłączony z Raspberry Pi, co można potwierdzić poprzez uruchomienie polecenia poniżej:
$ sudo i2cdetect -y 1
Jeśli wyjście polecenia wyświetli się ID# 68 Następnie oznacza to, że płyta jest poprawnie podłączona:
Teraz edytujemy plik Boot/Config, aby skonfigurować czas Raspberry PI RTC:
$ sudo nano /boot /config.tekst
Po otwarciu pliku przejdź do dolnej części pliku i w zależności od modułu RTC, którego używasz, zmień linię poniżej i zapisz go na dole pliku Boot/Config:
Składnia
doToverLay = i2c-rtc,
Trzy powszechnie używane moduły RTC to DS1307, DS3231 I PCF8523 Możesz sprawdzić, z którego używasz i możesz zmienić tekst zgodnie z tym.
Przykład
Używam DS1307 Moduł, więc użyłem tego poniżej napisanego polecenia:
DTOOVERLAY = I2C-RTC, DS1307
Następnie zapisz plik za pomocą klawiszy Ctrl+x I Y.
Teraz ponownie uruchom system za pomocą komendy poniżej napisanego, aby można było załadować jądro RTC:
$ sudo restart
Teraz po ponownym uruchomieniu uruchom polecenie i2c ponownie wykryć i powinieneś zobaczyć Uu (oznacza, że urządzenie lub zasób jest zajęty) zamiast numeru 68. Uu Potwierdza, że jądro jest z powodzeniem załadowanym, a moduł RTC wreszcie komunikuje się z Raspberry Pi:
$ sudo i2cdetect -y 1
Ponieważ RTC zaczęło komunikować się z Raspberry Pi, więc nadszedł czas, aby usunąć stary fałszywy zegar w Raspberry Pi i w tym celu uruchom poniżej napisane polecenie:
$ sudo apt -y usuń fałszywy hwclock
I uruchom poniżej napisane polecenie, aby całkowicie usunąć fałszywy zegar, nawet z scenariuszy uruchamiania w Raspberry Pi:
$ sudo aktualizacja-rc.d -f fałszywe hwclock usuń
Teraz nadszedł czas, aby edytować skrypt sprzętowy RTC za pomocą nano edytora, a dla tego uruchom poniżej wspomniane polecenie:
$ sudo nano/lib/udev/hwclock-set
W pliku znajdź tekst podświetlony na poniższym obrazku:
Skomentuj wszystkie trzy linie, dodając # przed nimi:
Teraz, aby przeczytać czas bezpośrednio z modułu RTC, uruchom poniżej napisane polecenie:
$ sudo hwclock -d -r
Następnie uruchom poniższe polecenie, aby znaleźć datę systemu, upewnij się, że w tym momencie Raspberry Pi jest podłączony do Wi-Fi lub Ethernet, aby uzyskać prawidłową datę:
$ data
Teraz uruchom poniżej napisane polecenie, aby napisać prawidłową datę (które właśnie widziałeś powyżej według polecenia daty) na module RTC:
$ sudo hwclock -w
A teraz, aby sprawdzić, czy data została poprawnie napisana do modułu RTC, uruchom data polecenie, aby znaleźć datę systemu i Hwclock -r polecenie do znalezienia czasu modułu RTC i oba powinny być takie same:
$ data
$ sudo hwclock -r
Wniosek
Moduł RTC można połączyć z Raspberry Pi za pomocą protokołu synchronicznego I2C. Konfiguracja sprzętu i oprogramowania do korzystania z RTC z Raspberry Pi jest szczegółowo omówiona w artykule. Po prawidłowym skonfigurowaniu RTC z Raspberry Pi, nawet jeśli nie jesteś podłączony do sieci, Twój system nadal będzie wyświetlać dokładny czas z powodu modułu RTC (Real Clock Time).