:::: MENU ::::

Installation du PiRTC sous Raspbian Jessie

Le module PiRTC vendu par Adafruit est une « horloge temps réel ». Il permet de sauvegarder l’heure et la date par l’intermédiaire d’une pile lithium et d’un quartz lorsque le Raspberry n’est plus alimenté électriquement. En effet aucun modèle de Raspberry Pi ne possède cette fonctionnalité, pourtant basique sur nos ordinateurs conventionnels. Dans un démarrage classique, Raspbian profite de la connexion internet pour se synchroniser avec un serveur de temps. Mais sans connexion le système n’est pas capable de se mettre à l’heure tout seul. Il reprends alors la dernière heure connue avant l’extinction du Raspberry Pi. Si celui-ci a été éteint pendant 3 heures 4 minutes et 12 secondes il y aura alors un décalage de 3 heures 4 minutes et 12 secondes. Cela peut être contraignant pour des projets de mesures de données dans le temps, de photo timelapse…

Nous avions déjà vu comment installer ce genre de module, mais la méthode diffère sur la dernière version de Raspbian. Voici donc la méthode à appliquer sous Jessie.

Configuration du système

Il faut tout d’abord activer l’interface I2C via l’utilitaire raspi-config :

sudo raspi-config

On redémarre le système pour appliquer la configuration :

sudo shutdown -r now

On installe ensuite des utilitaire pour vérifier le bon déroulement du paramétrage :

sudo apt-get install python-smbus i2c-tools

On exécute la commande suivante pour effectuer la détection du module :

sudo i2cdetect -y 1

Un ID #68 devrait être présent dans le tableau pour les composants RTC communs : DS1307, PCF8523 ou DS3231.

On édite ensuite le fichier de configuration du boot :

sudo nano /boot/config.txt

Pour ajouter la ligne correspondant au module à la fin du fichier :

Dans mon cas dtoverlay=i2c-rtc,pcf8523. La valeur pcf8523 est à adapter en fonction du composant de votre module RTC.

On redémarre une nouvelle fois :

sudo shutdown -r now

L’utilitaire de détection i2c devrait maintenant fournir UU comme valeur dans le tableau à la place de l’ID #68.

sudo i2cdetect -y 1

On désactive maintenant la « fake hwclock » qui permettait d’enregistrer l’heure et la date avant l’arrêt de la Raspberry.

sudo apt-get -y remove fake-hwclock
sudo update-rc.d -f fake-hwclock remove

Et on active le script « hardware clock » de démarrage en commentant le premier bloc if du script.

sudo nano /lib/udev/hwclock-set

Synchroniser le module RTC avec l’heure actuelle

On vérifie l’heure et la date actuelle. Ne pas oublier d’être connecté à internet pour simplifier l’opération.

date

Lire la date du module RTC :

sudo hwclock -v -r

Pour écrire la date du système dans le module RTC :

sudo hwclock -w

Pour lire la date du module RTC :

sudo hwclock -r

Au prochain démarrage même isolé d’une connexion internet votre Raspberry devrait être à l’heure.

Attention ce genre de module est assez sensible aux changements de températures. La fréquence du quartz peut varier en fonction de la température et donc engendrer un décalage de quelques secondes par semaine en fonction des conditions. Certains modules disposent d’un capteur de température pour diminuer cet effet via un algorithme interne. Faites donc attention lors du choix de votre module en fonction du delta de précision que vous pouvez accepter.

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.


2 Comments

  • Répondre milhaut |

    bonjour

    j’ai installé rtc ds3231 sur ma raspberry b
    je l’ai flashé dans le systeme avec hwclok -w
    mais à chaque coupure de courant il ya une perte de 2 ou 3 min au démarrage
    pourtant quand je tape hwclok -r : l’horloge est ok
    comment faire pour résoudre de décalage ?

    merci pour votre réponse

    • Répondre Manu |

      Le décalage est-il de la durée de la coupure de courant ? Le système récupère-t-il vraiment l’heure de l’horloge RTC au démarrage ?
      Comme précisé dans le tutoriel ce type d’horloge n’est pas le plus fiable. Malgré tout un décalage de plusieurs minutes ne se produit pas avant quelques semaines. De plus l’horloge RTC semble renvoyer une valeur cohérente. Je penche donc plutôt sur le fait que le système ne récupère pas l’heure de l’horloge RTC au démarrage.
      Je n’ai pas eu l’occasion de tester ce module avec les nouvelles versions de Raspbian, il est donc possible que ma procédure ne soit plus à jour.

Laissez un commentaire