Premessa:
Con questa guida andremo a illustrare i vari passaggi su come impostare e collegare un RTC (Real Time Clock) i2c alla Raspberry Pi. Il modulo RTC permette di tenere in tempo reale l’ora e la data anche quando il Raspberry Pi è spento grazie alla sua coin cell (classica batteria bottone).
LISTA DEI MATERIALI:
Procedimento:
Come prima cosa dovremo abilitare la comunicazione i2c dal kernel della Raspberry Pi per fare ciò dovremo entrare nelle impostazioni di configurazione:
sudo raspi-config
Una volta entrati dirigetevi Su Advanced option:
Poi abilitare la riga A7 riguardante il modulo kernel i2c
Una volta abilitato da kernel la comunicazione i2c sempre da raspi-config andremo a configurare il Time Zone per assicurarci di avere la data corretta in base alla località dove ci troviamo quindi:
sudo raspi-config selezionare Internationalisation Option Change Time Zone - Europe - Rome
Effettuiamo il Reboot del sistema
Come collegare Real Time Clock:
Potete usare questa guida con qualsiasi tipo di modulo o marca che utilizza l’integrato DS1307 quindi potete scegliere di utilizzare qualsiasi tipo di Real Time Clock.
VCC = 5.0V pin Raspberry Pi
GND = GND pin Raspberry Pi
SDA = SDA pin(3) Raspberry Pi
SCL = SCL pin(5) Raspberry Pi
Poi per chi ha una Raspberry Pi 2 o B+ per testare il funzionamento del modulo usare il comando:
sudo i2cdetect -y 1
Mentre per chi ha versioni precedenti usare:
sudo i2cdetect -y 0
Dovresti vedere un ID = 68 che corrisponde al modulo RTC i2c
Configurare RTC:
Vediamo un po di istruzioni prima di realizzare il file eseguibile da boot.
sudo modprobe rtc-ds1307
Serve per caricare il modulo DS1307 i2c
Poi digitare il comando su per entrare come root ed inserire la riga sottostante in base alla versione di raspberry che si possiede.
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device (Model B+ e Pi 2) echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device (Versioni Precendenti Pi)
Una volta inserito riuscite dalla root con il comando exit
Ora se eseguite il processo sudo hwclock -r dovreste vedere la data e l’ora
Se siete collegati via Ethernet o Wifi linux stesso dovrebbe avere la data corretta in “memoria” quindi con il comando:
sudo hwclock -w
Scriverete la data e ora corretta nel RTC presa dal Server tramite internet e se ridigitate il comando sudo hwclock -r vedrete la data inizializzata.
Avviare la data e l’ora Corretta anche dopo aver spento la Raspberry Pi:
Ci sono varie possibilità che possa andar via la corrente oppure che in un determinato istante non abbiamo più la connessione internet o semplicemente non ci troviamo coperti dalla Rete per ovviare a questo problema creeremo una sincronizzazione del tempo del server e quello del modulo RTC. Questa procedura è molto utile in tutti quegli automi dove la data e l’ora non possono essere un dato superfluo.
Vediamo come fare:
Da terminale:
sudo nano /etc/rc.local
E andiamo a inserire:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device sudo hwclock -s
Le due righe devono essere contenute nel file rc.local prima dell’istruzione exit 0.
NB:Se invece versione precedente Raspberry: echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device .
Ed infine:
sudo nano /etc/modules
E aggiungiamo rtc-ds1307
Così:
Ora se la Raspberry Pi è spenta e a qualsiasi riavvio avrete sempre la data aggiornata a meno che togliete la batteria dal modulo 🙂
Buon Progetto.