Hvordan bruke sanntidsklokke med Raspberry Pi

Hvordan bruke sanntidsklokke med Raspberry Pi
Raspberry Pi sporer tiden ved å bruke Internett, men når det ikke er noe nettverk, kan dette være en problematisk situasjon for brukere som jobber med noen tidsbaserte prosjekter. For en slik situasjon eksisterer det en I2C -protokoll i Raspberry Pi. I2C er en inter-integrert krets som kan brukes til å koble Raspberry Pi til en sanntidsklokke (RTC) for å holde riktig spor av tid selv om det ikke er Internett.

I denne artikkelen vil du se metoden for å bruke en sanntidsklokke for å holde oversikt over tid på Raspberry Pi.

Hvordan bruke en sanntidsklokke (RTC) med Raspberry Pi

RTC er en liten maskinvaremodul som brukes til å holde nøyaktig dato og tidssporing. En RTC -modul består av et I2C -grensesnitt som den kan kobles til Raspberry Pi. Vanligvis består en RTC -modul av 4 pinner, men det kan være flere pinner. De fire grunnleggende pinnene til RTC som brukes til å koble RTC med Raspberry Pi er:

  • SDA -pin
  • SCL -pinne
  • GND -pinne
  • 5 V eller VCC PIN -kode

Alle disse pinnene er merket på bildet nedenfor, fargen på RTC -modulen kan variere den kan være blå, grønn eller rød:

Raspberry Pi har også en I2C -protokollpinner SDA og SDL ved pinne nummer 3 og 5 for å koble den til RTC -modulen. For å koble Raspberry Pi med RTC -modulen vil vi bruke 4 Raspberry Pi -pinner som er uthevet på bildet nedenfor:

Følg trinnene under gitt for å bruke RTC med Raspberry Pi:

Trinn 1: Maskinvarekonfigurasjon

For å bygge maskinvarekretsen til Raspberry Pi og RTC, bruk kretskjemaet nedenfor;

  • SDA av RTC til pin 3 av Raspberry Pi
  • SCL av RTC for å pinne 5 av Raspberry Pi
  • GND av RTC til pin 14 (GND) av Raspberry Pi
  • 5V eller VCC for å pinne 2 av Raspberry Pi

Trinn 2: Aktiver I2C på Raspberry Pi

Du må aktivere I2C Grensesnitt på Raspberry Pi ved å åpne Raspberry PI -konfigurasjonsverktøyet ved å bruke følgende kommando:

$ Sudo Raspi-Config

Gå til Grensesnittalternativer og slå Tast inn:

Deretter går du videre inn i I2C Alternativ for å aktivere I2C -protokoll på Raspberry Pi:

Hvoretter det vil be deg om tillatelse til å aktivere I2C -protokollen, velg Ja her:

En ledetekst ser ut til å informere om at I2C Er på; Klikk Ok her:

Klikk deretter på Bli ferdig knapp for å fullføre prosessen.

Trinn 3: Forsikre deg om at RTC -modulforbindelse til Raspberry Pi

Etter å ha aktivert I2C, må du sørge for at RTC-maskinvaremodulen din er riktig koblet til Raspberry Pi, og som kan bekreftes ved å kjøre den underskrevne kommandoen:

$ sudo i2cdetect -y 1

Hvis kommandoen har vist ID# 68 Da betyr det at styret er koblet riktig:

Nå redigerer vi Boot/Config -filen for å konfigurere Raspberry Pi RTC -tiden:

$ sudo nano /boot /config.tekst

Etter å ha åpnet filen, gå til bunnen av filen, og avhengig av RTC-modulen som du bruker, endrer du den nedenfor-nevnte linjen og skriver den nederst i Boot/Config-filen:

Syntaks

dtoverlay = I2c-rtc,

De tre ofte brukte RTC -modulene er DS1307, DS3231 og PCF8523 Du kan sjekke hvilken du bruker og kan endre teksten i henhold til den.

Eksempel

Jeg bruker DS1307 Modul Så jeg har brukt denne underskrevne kommandoen:

DTOverlay = I2C-RTC, DS1307

Lagre deretter filen ved å bruke tastene Ctrl+x og Y.

Start nå systemet på nytt ved å bruke den nedenfor-skrevne kommandoen slik at RTC-kjernen kan lastes:

$ sudo omstart

Nå etter en omstart, kjør I2C Detect -kommandoen igjen, og du bør se en Uu (betyr enhet eller ressurs er opptatt) i stedet for nummer 68. De Uu bekrefter at kjernen er lastet med suksess og RTC -modulen kommuniserer endelig med Raspberry Pi:

$ sudo i2cdetect -y 1

Siden RTC begynte å kommunisere med Raspberry Pi, så er det på tide å fjerne den gamle falske klokken i Raspberry Pi og for det formålet kjøre den underskrevne kommandoen:

$ sudo apt -y fjern falske hwclock

Og kjør den nedenfor-skrevne kommandoen for å fjerne falske klokker fullstendig selv fra oppstartsskriptene i Raspberry Pi:

$ sudo update-rc.D -f Fake -HwClock Fjern

Nå er det på tide å redigere RTC-maskinvareskriptet ved hjelp av Nano Editor, og for det kjøres den nedenfor-nevnte kommandoen:

$ sudo nano/lib/udev/hwclock-sett

I filen finn teksten som er uthevet på bildet nedenfor:

Kommenter alle de tre linjene ved å legge til # foran dem:

Nå for å lese tiden direkte fra RTC-modulen, kjør den underskrevne kommandoen:

$ sudo hwclock -d -r

Kjør deretter kommandoen nedenfor for å finne ut systemets dato, sørg for på dette tidspunktet bringebærpi-en er koblet til Wi-Fi eller Ethernet for å få riktig dato:

$ Dato

Kjør nå den nedenfor-skrevne kommandoen for å skrive riktig dato (som du nettopp har sett ovenfor etter dato-kommando) på RTC-modul:

$ sudo hwclock -w

Og nå for å bekrefte at datoen er skrevet riktig til RTC -modulen, kjører du Dato kommando for å finne systemets dato og hwclock -r Kommando for å finne RTC -modultid og begge skal være den samme:

$ Dato
$ sudo hwclock -r

Konklusjon

RTC -modulen kan kobles til Raspberry Pi ved bruk av I2C synkron protokoll. Maskinvare- og programvarekonfigurasjonen for å bruke RTC med Raspberry Pi er diskutert i detalj i artikkelen. Når RTC er riktig konfigurert med Raspberry Pi, selv om du ikke er koblet til nettverket, vil systemet ditt fremdeles vise nøyaktig tid på grunn av RTC (ekte klokketid) -modul.