Come usare l'orologio in tempo reale con il Raspberry Pi

Come usare l'orologio in tempo reale con il Raspberry Pi
Raspberry Pi tiene traccia del tempo utilizzando Internet ma quando non c'è rete, questa può essere una situazione problematica per gli utenti che lavorano su alcuni progetti basati sul tempo. Per una situazione del genere, esiste un protocollo I2C in Raspberry Pi. I2C è un circuito inter-integrato che può essere utilizzato per collegare Raspberry Pi a un orologio in tempo reale (RTC) per mantenere la traccia corretta del tempo anche se non c'è Internet.

In questo articolo, vedrai il metodo di utilizzo di un orologio in tempo reale per tenere traccia del tempo su Raspberry Pi.

Come usare un orologio in tempo reale (RTC) con il Raspberry Pi

RTC è un piccolo modulo hardware che viene utilizzato per mantenere il monitoraggio preciso della data e dell'ora. Un modulo RTC è costituito da un'interfaccia I2C a causa della quale può essere collegato a Raspberry Pi. Di solito, un modulo RTC è composto da 4 pin ma potrebbero esserci più pin. I quattro pin di base di RTC che vengono utilizzati per collegare RTC con Raspberry Pi sono:

  • PIN SDA
  • PIN SCL
  • Pin GND
  • Pin da 5 V o VCC

Tutti questi pin sono etichettati nell'immagine qui sotto, il colore del modulo RTC può variare che potrebbe essere blu, verde o rosso:

Il Raspberry Pi ha anche una pins protocollo I2C SDA e SDL al pin numero 3 e 5 per collegarlo al modulo RTC. Per collegare il Raspberry Pi con il modulo RTC utilizzeremo 4 pin di lampone PI che sono evidenziati nell'immagine qui sotto:

Segui i passaggi di seguito per utilizzare RTC con Raspberry Pi:

Passaggio 1: configurazione hardware

Per costruire il circuito hardware di Raspberry Pi e RTC, utilizzare lo schema del circuito inferiore;

  • SDA di RTC a Pin 3 di Raspberry Pi
  • SCL di RTC a Pin 5 di Raspberry Pi
  • GND di RTC a Pin 14 (GND) di Raspberry Pi
  • 5V o VCC a Pin 2 di Raspberry Pi

Passaggio 2: abilita I2C su Raspberry Pi

Devi abilitare I2c Interfaccia su Raspberry Pi aprendo lo strumento di configurazione Raspberry Pi usando il seguente comando:

$ sudo raspi-config

Vai al Opzioni di interfaccia e colpito accedere:

Quindi inserire ulteriormente il I2c Opzione per abilitare il protocollo I2C su Raspberry Pi:

Dopo di che ti chiederà il permesso di abilitare il protocollo I2C, scegli Qui:

Un prompt sembrerà informare che il I2c è abilitato; clic OK Qui:

Quindi fare clic su Fine pulsante per completare il processo.

Passaggio 3: assicurarsi il modulo RTC Connessione a Raspberry Pi

Dopo aver abilitato I2C, assicurati che il tuo modulo hardware RTC sia collegato correttamente con Raspberry Pi e che può essere confermato eseguendo il comando di seguito:

$ sudo i2cdetect -y 1

Se l'output del comando ha visualizzato il ID# 68 quindi significa che la scheda è collegata correttamente:

Ora modificheremo il file di avvio/configurazione per configurare il tempo Raspberry Pi RTC:

$ sudo nano /boot /config.TXT

Dopo aver aperto il file, vai in fondo al file e a seconda del modulo RTC che si sta usando altera la riga di seguito e scriverlo nella parte inferiore del file di avvio/configurazione:

Sintassi

dtoverlay = i2c-rtc,

I tre moduli RTC comunemente usati sono DS1307, DS3231 E PCF8523 Puoi controllare quale stai usando e puoi modificare il testo in base a quello.

Esempio

Sto usando il DS1307 Modulo Quindi ho usato questo comando sotto scrittura:

dtoverlay = i2c-rtc, ds1307

Quindi salva il file utilizzando i tasti Ctrl+X E Y.

Ora riavvia il sistema utilizzando il comando sotto scrittura in modo che il kernel RTC possa essere caricato:

$ sudo riavvia

Ora dopo un riavvio, esegui di nuovo il comando I2C Detect e dovresti vedere un Uu (significa che il dispositivo o la risorsa è occupato) anziché il numero 68. IL Uu conferma che il kernel viene caricato correttamente e il modulo RTC sta finalmente comunicando con Raspberry Pi:

$ sudo i2cdetect -y 1

Da quando l'RTC ha iniziato a comunicare con Raspberry Pi, quindi è tempo di rimuovere il vecchio orologio falso in Raspberry Pi e a tale scopo eseguire il comando sotto scrittura:

$ sudo apt -y rimuovi falso hwclock

Ed eseguire il comando sotto scrittura per rimuovere completamente l'orologio falso anche dagli script di avvio in Raspberry Pi:

$ sudo update-rc.D -f Rimuovi falso -hwclock

Ora è il momento di modificare lo script hardware RTC utilizzando Nano Editor e per questo eseguire il comando di seguito:

$ sudo nano/lib/udev/hwclock set

Nel file Trova il testo che è evidenziato nell'immagine qui sotto:

Commenta tutte e tre le righe aggiungendo # di fronte a loro:

Ora per leggere il tempo direttamente dal modulo RTC, eseguire il comando di seguito:

$ sudo hwclock -d -r

Quindi eseguire il comando seguente per scoprire la data del sistema Assicurati a questo punto il tuo Raspberry Pi sia collegato a Wi-Fi o Ethernet per ottenere la data corretta:

$ data

Ora esegui il comando di seguito per scrivere la data corretta (che hai appena visto sopra per data comando) sul modulo RTC:

$ sudo hwclock -w

E ora per verificare che la data sia stata scritta correttamente al modulo RTC, eseguire il data comanda di trovare la data del sistema e Hwclock -r comanda per trovare il tempo del modulo RTC ed entrambi dovrebbero essere gli stessi:

$ data
$ sudo hwclock -r

Conclusione

Il modulo RTC può essere collegato con Raspberry Pi usando il protocollo sincrono I2C. La configurazione hardware e software per utilizzare RTC con Raspberry Pi è discussa in dettaglio nell'articolo. Una volta che RTC è configurato correttamente con Raspberry Pi, anche se non sei connesso alla rete, il sistema mostrerà comunque il tempo accurato a causa del modulo RTC (tempo reale).