Sources

http://hardware-libre.fr/2013/08/raspberry-pi-ajouter-une-horloge-rtc-en-i%C2%B2c/

 

Outre le pléonasme, l'horloge RTC ou, donc, module RTC, permet de conserver la date et l'heure quand le Raspberry Pi est débranché.

Dans un ordinateur ou une tablette voire certains téléphones cette possibilité est permise par une pile bouton de 3 volts.

Pour obtenir le même résultat sur le Raspberry, on ajoutera donc ce module avec sa pile.

Plan

je reprends les premiers points importants du tutoriel :

  • Branchement
  • Activation et configuration du module logiciel I²C
  • Test de l’interface I²C
  • Installation et configuration du module RTC
  • Démarrage automatique

et, pour le branchement d'un module TinyRC

  • connectez VCC à une broche +5v du Pi
  • connectez GND à une broche GND du Pi
  • connectez SDA à la broche SDA0 du Pi
  • connectez SCL à la broche SCL0 du Pi

NB : Si vous n’avez pas de pile bouton de 3V sous la main, connectez également 2 piles de 1.5V entre les bornes BAT et GND du module RTC.

Modules au démarrage

sudo nano /etc/modules 

Ajouter ces 2 lignes :

i2c-bcm2708
i2c-dev

On redémarre : sudo reboot now

On installe les outils

sudo apt-get install python-smbus i2c-tools

On supprime les modules I²C de la blacklist (si c’est le cas) :

sudo nano /etc/modprobe.d/raspi-blacklist.conf

les lignes

    blacklist spi-bcm2708
    blacklist i2c-bcm2708

deviennent

    #blacklist spi-bcm2708
    #blacklist i2c-bcm2708

On redémarre, et le Raspberry devrait être prêt à utiliser les périphériques I²C.

 Test de l’interface I²C

On va utiliser la commande i2cdetect, qui permet de voir la liste des périphériques I²C reliés au Pi. La commande est différente si vous utiliser un Raspberry Pi Rev 1 ou Rev 2 (l’adresse du bus I²C est différente), donc choisissez la bonne :

sudo i2cdetect -y 0 (pour la Rev 1)

sudo i2cdetect -y 1 (pour la Rev 2)

Si, vous voyez votre RTC avec l’ID #68, tout est correctement câblé et configuré. Dans le cas contraire, il faudra reprendre depuis le début et vérifier chaque étape.

Installation et configuration du module RTC

Maintenant que notre RTC est correctement câblé et que notre système est prêt à utiliser le bus I²C, nous pouvons passer à la configuration du module. Commençons par lancer le module logiciel RTC :

sudo modprobe rtc-ds1307

On va maintenant activer le module DS1307 dans le module logiciel I²C. Encore une fois, la commande dépend de la version de Raspberry Pi.

Ouvrons un bash en tant que root :

sudo bash echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device  (pour la Rev 1) echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device  (pour la Rev 2)

On ressort du bash :

exit

Nous allons vérifier l’heure de la RTC. En effet, si c’est la première fois que le circuit est utilisé (ou si la pile vient d’être changée), il devrait indiquer le 1er Janvier 2000, et il faudra le mettre à l’heure.

sudo hwclock -r

Pour commencer, on va devoir mettre le Raspberry à l’heure. Le plus simple est de le connecter à internet via câble ou Wifi : l’heure et la date seront ajustés par le réseau.

Ensuite on pourra inscrire ces données dans le module RTC.

Vérifier l’heure du Raspberry

date

 Le Raspberry est bien à l’heure Régler l’heure de la RTC, et vérifier :

sudo hwclock -w

sudo hwclock -r

le module RTC est maintenant à l’heure !

Démarrage automatique

Nous allons maintenant rajouter le module logiciel RTC au fichier /etc/modules, afin qu’il soit chargé au démarrage de la machine.

sudo nano /etc/modules

Ajouter à la fin du fichier la ligne :

rtc-ds1307

Il faut maintenant créer le périphérique DS1307 au démarrage en modifiant le fichier /etc/rc.local :

sudo nano /etc/rc.local

Ajouter, avant la ligne « exit 0 » : pour la Rev 1 :

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device
sudo hwclock -s

pour la Rev 2 :

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s

Vous pouvez également y rajouter un hwclock -r pour vérifier visuellement l’heure du module RTC au démarrage…

C’est terminé, désormais votre Raspberry Pi sera constamment à l’heure, qu’il soit connecté à internet ou pas !