Fiabilisez l’heure hors ligne et affichez un calendrier propre sur votre Pi, même sans Wi-Fi.
Quand on fait de la domotique ou un projet DIY, l’heure “juste” n’est pas un détail. Un Raspberry Pi sans réseau peut oublier l’heure au redémarrage, ce qui casse des logs, des automatisations et des sauvegardes. Pour vérifier rapidement l’heure actuelle, comparez avec l’heure affichée par votre système avant de commencer.
Réponse rapide : Sur Raspberry Pi, une RTC (ex. DS3231) garde l’heure même sans Internet. Activez I2C, détectez le module, chargez le driver, puis synchronisez au moins une fois via NTP. Enfin, configurez le fuseau horaire et affichez un calendrier dans le terminal ou sur un petit écran pour valider que tout reste cohérent après redémarrage.
Option Android : si vous voulez vérifier l’heure et la date rapidement sur votre téléphone (sans ouvrir un terminal), vous pouvez utiliser notre application : Télécharger l’APK Android.
Comprendre RTC, NTP et fuseau horaire
Le duo gagnant, c’est RTC pour tenir l’heure hors ligne, et NTP pour remettre tout à l’heure exacte dès que le réseau revient. Pour le protocole, vous pouvez lire la spécification officielle du Network Time Protocol via le lien IETF RFC 5905 (NTPv4), utile si vous aimez comprendre ce qui se passe “sous le capot”.
Une RTC ne remplace pas NTP. Elle évite surtout le saut à une date incohérente au boot. NTP apporte la précision et corrige une dérive éventuelle.
Le fuseau horaire, lui, n’est pas “l’heure”. C’est une règle d’affichage. Gardez en tête que Linux stocke souvent l’heure système en UTC et applique le fuseau pour l’affichage.
Quel module RTC choisir pour un Raspberry Pi (DS3231 ou DS1307) ?
Le DS3231 est généralement le plus simple à vivre. Il est plus précis, plus stable en température, et très répandu dans les kits Raspberry Pi.
Le DS1307 fonctionne aussi, mais il est en général plus sensible à la dérive. Pour un projet domotique où l’on veut des horaires fiables, le DS3231 est souvent le choix le plus serein.
Checklist matériel avant de brancher
- Un module RTC I2C (DS3231 ou DS1307) avec pile CR2032
- 4 fils Dupont (VCC, GND, SDA, SCL)
- Un Raspberry Pi avec Raspberry Pi OS à jour
- Accès au terminal (local ou SSH)
- Un redémarrage possible pendant le test
Activer I2C et vérifier que le module RTC est détecté
Commencez par activer I2C. Sur Raspberry Pi OS, vous pouvez passer par raspi-config ou l’interface graphique selon votre setup.
Dans le terminal :
sudo raspi-config
Allez dans les options d’interface, puis activez I2C. Redémarrez ensuite.
Installez l’outil de scan I2C si nécessaire :
sudo apt update
sudo apt install -y i2c-tools
Lancez un scan :
sudo i2cdetect -y 1
Vous devriez voir une adresse apparaître.
Pour un DS3231, l’adresse typique est 0x68. Pour un DS1307, c’est aussi souvent 0x68. Si vous ne voyez rien, vérifiez d’abord le câblage SDA et SCL, puis la masse, puis l’alimentation.
Comment activer I2C et vérifier que le module RTC est détecté ?
Si i2cdetect affiche une grille pleine de –, c’est que le bus ne voit rien. La cause est presque toujours un I2C non activé, un câble inversé, ou un mauvais pinout.
Assurez-vous aussi d’être sur le bon bus. Sur Raspberry Pi, c’est très souvent le bus 1. Sur certains anciens modèles, des variations existent, mais en pratique 1 est le standard.
Charger le driver RTC et éviter les conflits
Une fois le module détecté, l’objectif est que Linux le traite comme une horloge matérielle. Selon le module, on charge un overlay.
Ouvrez le fichier de configuration :
sudo nano /boot/config.txt
Ajoutez une ligne selon votre matériel :
- DS3231 :
dtoverlay=i2c-rtc,ds3231
- DS1307 :
dtoverlay=i2c-rtc,ds1307
Redémarrez :
sudo reboot
Après reboot, vérifiez que le périphérique RTC existe :
ls -l /dev/rtc*
Puis contrôlez la lecture de l’horloge matérielle :
sudo hwclock -r
Erreur fréquente : “rtc0: probe failed” ou heure incohérente
Si le module est bien détecté mais que le driver ne se charge pas, retournez à i2cdetect. Un module visible en 0x68 mais un driver qui échoue peut indiquer un overlay incorrect.
Autre piège classique : un service de synchronisation ou un ancien overlay entre en conflit. Gardez un seul overlay RTC actif.
Synchronisation NTP, timezone, et bon ordre des opérations
Le bon réflexe est simple : on règle d’abord l’heure système, puis on écrit cette heure dans la RTC. Ensuite, au prochain démarrage hors ligne, l’heure système peut être initialisée depuis la RTC.
Vérifiez l’état de la synchronisation :
timedatectl status
Vous cherchez surtout System clock synchronized: yes quand le réseau est disponible.
Ensuite, configurez le fuseau horaire :
sudo timedatectl set-timezone Europe/Paris
Quand l’heure système est correcte, poussez-la vers la RTC :
sudo hwclock -w
Comment savoir si l’heure de mon Raspberry Pi est correcte ?
Le test le plus fiable est de vérifier d’abord timedatectl, puis de lire la RTC avec hwclock -r. Si les deux valeurs sont cohérentes, vous êtes bien.
Pour un contrôle rapide et pratique, vous pouvez aussi ouvrir un calendrier en ligne et comparer l’affichage date et jour avec votre Raspberry Pi. Faites-le après un redémarrage, idéalement sans Wi-Fi, pour valider la tenue hors ligne.
Afficher un calendrier dans le terminal ou sur un petit écran
Pour un affichage simple dans le terminal, la commande cal est parfaite :
cal
Pour afficher le mois courant avec plus d’infos :
cal -m
Et pour afficher une date précise :
cal 2 2026
Si vous avez un petit écran (OLED I2C, écran HDMI, e-paper), l’idée reste la même : votre application lit l’heure du système. Si l’heure système est stable, l’affichage le sera aussi.
Option domotique : logs et automatisations plus fiables
Dès que la date est stable, vos journaux système deviennent exploitables. Les déclencheurs basés sur l’heure, les scripts cron, et les règles domotiques évitent les “sauts” de date au redémarrage.
Pensez à tester un reboot “réseau coupé”. C’est le scénario qui révèle les vraies faiblesses.
Dépannage rapide avec une table de symptômes
Voici une table simple pour diagnostiquer sans tourner en rond.
| Symptôme | Cause probable | Action rapide |
| i2cdetect ne montre aucune adresse | I2C désactivé ou câblage | Activer I2C, vérifier SDA/SCL, GND |
| Adresse visible mais pas de /dev/rtc0 | Overlay incorrect | Vérifier dtoverlay=i2c-rtc,… dans /boot/config.txt |
| Heure RTC OK, heure système fausse après reboot | Ordre de sync pas fait | Réseau ON, timedatectl, puis hwclock -w |
| Heure décalée d’une ou deux heures | Fuseau horaire | timedatectl set-timezone Europe/Paris |
| L’heure dérive trop vite | Module moins précis ou pile faible | Préférer DS3231, changer la pile |
FAQ en prose
Comment activer I2C et vérifier que le module RTC est détecté ? Activez I2C via raspi-config, redémarrez, installez i2c-tools, puis lancez i2cdetect -y 1. Une adresse comme 0x68 indique que le module répond.
Comment éviter que l’heure dérive quand le Wi-Fi est coupé ? Installez une RTC, écrivez-y l’heure après une synchronisation NTP, puis testez un redémarrage sans réseau. Le Raspberry Pi récupérera une heure cohérente dès le boot, même hors ligne.
Quel module RTC choisir pour un Raspberry Pi (DS3231 ou DS1307) ? Pour la plupart des projets, le DS3231 est le plus recommandé car il est généralement plus précis et stable. Le DS1307 peut dépanner, mais il dérive plus facilement selon les conditions.
Comment afficher un calendrier sur un petit écran ou dans le terminal ? Dans le terminal, cal suffit pour afficher le mois. Sur un écran, faites afficher l’heure système et un rendu de calendrier, par exemple via un petit script Python ou une interface locale. La clé reste une heure système fiable.
Comment savoir si l’heure de mon Raspberry Pi est correcte ? Vérifiez timedatectl status pour la synchro, comparez date et hwclock -r, puis redémarrez sans Wi-Fi. Si l’heure reste correcte, votre chaîne RTC plus timezone est solide.



