Module RTC ds1307 : installer et configurer une horloge externe pour votre Raspberry Pi

Module RTC ds1307 :

Un problème récurrent des utilisateurs de Raspberry Pi est que celui ci ne possède pas d’horloge interne.
Ceci a pour effet de ne pas pouvoir réaliser d’application utilisant des informations sur l’heure absolue (par exemple faire une actions tous les jours à 20h) sans être connecté à un internet. En effet, votre connection internet, vous permet de récupérer leur sur un serveur donné.

Pour pouvoir réaliser ce genre d’opération, il faut avoir recours à un module RTC (Real-Time Clock) qu’on peut traduire « horloge temps réel ».
Ce genre de module n’est ni plus ni moins une horloge externe alimentée par une pile bouton, qui après une première initialisation, peut être interrogée par le raspberry pi pour obtenir l’heure.

Dans mon cas, j’ai choisi le Module RTC ds1307. Ce choix est expliqué pour plusieurs raisons :

  • le module est très courant
  • le module ce trouve pour moins 5€ (par exemple sur aliexpress)
  • ce module a un support natif par la version Jessie du système raspbian
  • il est i2c ce qui réduit le nombre de boches mobilisées sur le port GPIO

Connection du module

Le module est très simple à brancher. Vous devez uniquement connecter :

  • VCC
  • GND
  • SCL
  • SDA

du module sur les broches du même nom du Raspberry Pi.

Vérification de la détection du nodule sur le Bus i2c

Si votre port i2c n’est pas activé, rien de plus simple. Il suffit d’exécuter :

 sudo raspi-config

Dans le menu Advenced, il faut rendre actif le port i2c.
Nous allons vérifier que le module est bien détecté mais , au péralable, il faut installer les outils nécessaire à cette tâche.

sudo apt-get install python-smbus i2c-tools

Puis nous pouvons utiliser l’utilitaire i2cdetect :

sudo i2cdetect -y 1

L’instruction est différente suivant les versions du Raspberry Pi1

Cette instruction devrait vous retourner l’équivalent de l’écran suivant :

On voit que le RPi a détecté un composant à l’adresse 0x68 qui d’après la doc constructeur l’adresse par défaut.

Installation du Module RTC ds1307

On va ajouter la gestion du module en éditant le fichier de configuration de boot.

sudo nano /boot/config.txt

Auquel on va ajouter un la ligne suivante à la fin du fichier :

dtoverlay=i2c-rtc,ds1307

A ce stade, vous devez redémarrez votre système :

sudo reboot

Une fois le système de nouveau actif, il vous pouvez éxécuter de nouveau:

sudo i2cdetect -y 1

Vous devriez observer si le prise en charge de l’horloge est effective en obtenant les caractères UU à l’adresse 0X68

Il vous est maintenant nécessaire de désactiver l’horloge qui émule l’horloge hardware «fake hwclock> avec les instructions suivantes :

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

Puis décommenter les lignes suivantes du fichier (en début de fichier) /lib/udev/hwclock-set :

#if [ -e /run/systemd/system ] ; then
# exit 0
#fi

Configuration de l’horloge du Module RTC ds1307

Pour configuer votre horloge RTC, à partir de l’heure système (nécessite donc une connexion à Internet):

sudo hwclock -w

NB : W pour Write

Pour vérifier que votre horloge est bien à l’heure, il suffit cette fois-ci de lire

sudo hwclock -r

NB : R pour Read

Vérification du fonctionnement

Pour vérifier, le bonctionnement du système, couper la connexion internet (faite éventuellement un reboot) et exécuté :

date

Si tous c’est bien passé vous devriez obtenir l’heure exact!

Alors prêt à utiliser le Module RTC ds1307?


  1. Si votre raspberry est une version antérieur au Pi 3 et Pi Zero, l’instruction est sudo i2cdetect -y 0 

Une pensée sur “Module RTC ds1307 : installer et configurer une horloge externe pour votre Raspberry Pi”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.