Jak używać zegara w czasie rzeczywistym z Raspberry Pi

Jak używać zegara w czasie rzeczywistym z Raspberry Pi
Raspberry Pi śledzi czas korzystania z Internetu, ale gdy nie ma sieci, może to być problematyczna sytuacja dla użytkowników, którzy pracują nad projektami opartymi na czasie. W takiej sytuacji istnieje protokół I2C w Raspberry Pi. I2C to obwód zintegrowany, którego można użyć do podłączenia Raspberry Pi z zegarem w czasie rzeczywistym (RTC), aby utrzymać prawidłowy czas, nawet jeśli nie ma Internetu.

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:

  • SDA PIN
  • Pin SCL
  • Pin GND
  • 5 V lub PIN VCC

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;

  • SDA RTC do przypinania 3 Raspberry Pi
  • SCL RTC do przypinania 5 Raspberry Pi
  • GND z RTC do pin 14 (GND) Raspberry Pi
  • 5V lub VCC do przypinania 2 Raspberry Pi

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).