:::: MENU ::::

Installation d’un module « Real Time Clock »

Les cartes Raspberry Pi actuelles sont dépourvues de tout moyen de sauvegarde de la date et de l’heure comme ceux présents sur les ordinateurs classiques. La synchronisation se fait à chaque démarrage via la connexion internet et un serveur NTP. Cependant cela peut devenir un problème si le montage est destiné à être utilisé dans un environnement dépourvu d’une connexion internet et dont la date et l’heure sont nécessaires au fonctionnement du système (horodatage, monitoring…). La solution consiste à installer via les ports GPIO un module permettant d’ajouter cette fonctionnalité.

Il existe différents modules permettant d’ajouter la fonctionnalité RTC sur Raspberry (Petit comparatif sur Framboise314). La procédure suivante se basera sur le « RTC Module » de CJEmicros disponible sur Ebay autour d’une dizaine d’euros.

Mise en place physique

L’installation physique est aisée. Il suffit simplement de glisser la pile dans son logement puis d’enficher le module sur les ports GPIO qui sont à l’extrémité de la carte Raspberry.

Le module une fois en place rentre dans la plupart des boitier pour Raspberry.

Mise en place logicielle

Le grand avantage de cette carte est le support natif de celle-ci par le système Raspbian via le protocole i2c.

Pour activer le support de RTC sur les Distribution Raspbian ‘Wheezy’ (2012-10-28 et après), il suffit d’ajouter les lignes suivantes dans le fichier /etc/rc.local  avant la ligne exit0  (avec les permissions root) :

nano /etc/rc.local

modprobe i2c-bcm2708
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
modprobe rtc-ds1307
hwclock -s

Si votre Rpi est un version 1, la ligne à ajouter au rc.local est différente, il faut remplacer i2c-1 par i2c-0 .

En cas de difficultés, ne pas hésiter à rajouter ces deux lignes au fichier /etc/modules  :

i2c-bcm2708
rtc-ds1307

 

Quelques commandes pour interagir avec l’heure :

  • date  : afficher la date et l’heure actuelle du système
  • date -s HH:MM:SS  : changer uniquement l’heure du système
  • date -s MM/JJ/AAAA  : changer uniquement la date du système
  • hwclock -r  : lire la date et l’heure du module RTC
  • hwclock -w  : copie de la date et heure du système vers le module RTC
  • hwclock -s  : copie de la date et heure du module RTC vers le système

Pour mettre à jour l’heure via un serveur NTP (nécessite une connexion internet) :

apt-get install ntpdate
ntpdate fr.pool.ntp.org

Vous voilà en posséssion d’une carte Raspberry qui sera à l’heure en toute condition, que ce soit avec ou sans connexion internet !

[EDIT 14/01/2016]

Depuis un certain temps (changement de noyau Linux) cette méthode n’était plus fonctionnelle. C’est le cas si vous obtenez ce type d’erreur à l’exécution de la commande sudo i2cdetect -y 1 ou sudo i2cdetect -y 0 (pour la rev1) :

Error: Could not open file `/dev/i2c-1′ or `/dev/i2c/1′: No such file or directory

Pour que le module RTC soit de nouveau opérationnel il est nécessaire d’ajouter les lignes suivantes au fichier /boot/config.txt  :

device_tree=bcm2708-rpi-b.dtb
device_tree_param=i2c1=on
device_tree_param=spi=on

 

A propos de l'auteur :

Passionné par le monde informatique et ses applications dans la vie quotidienne. Chez moi sont hébergées deux RPi, l'une dédié multimédia, l'autre centre domotique. J'ai également conçu une solution de monitoring de chaufferie collective où notre chère carte fruité est le point central.


5 Comments

  • Répondre Burbr |

    Salut les loulous, c’est burbr (ou ba(r)bar pour les intimes).

    Petits détails :

    Si votre Rpi est un version 1, la ligne à ajouter au rc.local est différente, il faut remplacer « i2c-1 » par « i2c-0 ».

    En cas de difficultés, ne pas hésiter à rajouter ces deux lignes au fichier /etc/modules :
    I2c-bcm2708
    Rtc-ds1307

    Vous devriez ajouter aussi les info pour le mettre à l’heure avec un NTP :

    sudo apt-get install ntpdate
    sudo ntpdate ntp.ubuntu.com (pour le ntp ubuntu)

    Bisous partout ! <3

    • Répondre Manu |

      Théoriquement la distribution Ubuntu étant basée sur Debian la méthode devrait fonctionner, mais n’ayant jamais testé en pratique je ne peux pas le garantir.

Laissez un commentaire