Notre framboise314 n’a pas de « garde temps » d’origine. Pas de montre, d’horloge, de pendule interne. Raspbian par exemple, se connecte à un serveur NTP pour récupérer l’heure, et synchroniser l’horloge du système dessus. Et si votre Raspberry Pi n’est pas relié à Internet, s’il est autonome (datalogger, station météo…) : Il vous faut une horloge RTC, alimentée par une pile pendant que le courant de votre Raspberry Pi est coupé. Dans cet article, vous trouverez un aperçu des solutions disponibles à ce jour.
Au sommaire :
Le besoin
A la recherche d’une horloge RTC pour ma framboise314, j’ai fait l’inventaire de ce qui peut se trouver aujourd’hui sur le marché. Le besoin est simple : Lorsque le Raspberry Pi est éteint, ou s’il démarre sans pouvoir se connecter à Internet, il ne connait ni le jour ni l’heure.
J’ai un projet d’écran d’accueil à base de Raspberry Pi. Cet écran doit afficher les événements de l’entreprise pour la journée en cours. La liste des événements est préchargée en mémoire, mais que va-t-il se passer si le Raspberry Pi redémarre à un moment où, pour une raison X ou Y, il ne peut accéder au réseau de l’entreprise?
C’est la catastrophe, l’affichage devient incohérent. Pour éviter cela, une seule solution : doter la framboise314 de sa propre montre, une horloge RTC alimentée par pile.
Ce système a été introduit par IBM en 1984 dans les PC/AT, sur la carte mère. Avant ça ? Eh bien à chaque démarrage d’un PC, on regardait sa montre pour répondre aux sempiternelles questions : date et time. Ensuite, en attendant que l’horloge soit intégrée sur les cartes mères, on a ajouté des « cartes d’extension RTC » sur le bus IDE, elles étaient dotées d’une batterie Cd-Ni, puis plus tard d’une pile Lithium 3 volts (la célèbre CR2032 de votre PC).
Les différentes cartes sur le marché
Adafruit
Photos de la carte
Descriptif
On retrouve ici un classique DS1307, un circuit RTC, fournissant également 56 octets de NV SRAM (c’est là que votre PC range le Setup du BIOS). Il est relié au Raspberry Pi par le bus I2C. La dérive mensuelle est d’environ +/- 2 secondes. A sa droite un quartz horloger à 32.768 kHz (215 Hz) qui donne la fréquence de référence (après 15 divisions par 2, on obtient du 1 Hz). En bas à droite, le support pour la pile de type non précisé (mais j’opterai pour une CR1025). La durée de vie de la pile est donnée pour 5 ans.
La carte dispose de 2 trous de fixation.
Prix
9$ auxquels on ajoutera les frais de port. Adafruit livre en quelques jours. Une commande de câble de liaison GPIO <==> Breadboard a mis une semaine à arriver en France.
Disponibilité de la documentation
Les documentations et tutoriels sont abondants chez Adafruit. Plusieurs tutoriels utilisant la carte RTC décrite ici sont disponibles sur le site, pour des horloges utilisant différents afficheurs.
Tutoriels
Un tutoriel est disponible en ligne et également sous forme de document PDF. Il nécessite un Raspberry Pi exécutant un noyau comportant les modules RTC et DS1307. Ce n’est pas le cas des distributions « Wheezy » et « Occidentalis v0.1 ». Il fonctionne avec « Occidentalis v0.2 » ou supérieure.
100randomtasks.com
Photos de la carte
Descriptif
Le circuit RTC est ici un MCP7940 de Microchip. Il est relié au Raspberry Pi par le bus I2C et offre 64 octets de SRAM (RAM statique sauvegardée par la batterie). La dérive mensuelle est d’environ +/- 2 secondes. A sa droite un quartz horloger à 32.768 kHz (215 Hz) qui donne la fréquence de référence (après 15 divisions par 2, on obtient du 1 Hz). La sauvegarde est confiée à une batterie CR1025 (non fournie). La carte fait 25mmx16mm.
Prix
Le prix est le même sur ebay que sur le site 100RandomTasks.com : 10,95$ (8,40€) auxquels s’ajoutent 2,69€ de frais de port.
Disponibilité de la documentation
La documentation est assez succincte :
Tutoriels
Voir ci-dessus…
MODMYPI
Photos de la carte
Descriptif
La carte RasClock est une carte horloge temps réel qui s’enfiche directement sur le connecteur GPIO du Raspberry Pi. Pas besoin de souder ou de relier par des fils. Le connecteur est un GPIO « réduit » à 6 trous. RasClock utilise le 3,3v, la masse et les signaux SDA et SCL. Ce module est relativement bas, il ne dépasse pas la prise vidéo en hauteur et il tient dans la plupart des boîtiers. La carte utilise un circuit PCF2127 AT de NXP et assure une précision meilleure que 2 minutes par an. Le quartz intégré est corrigé pour éliminer les dérives dues à l’âge et à la température. La pile 3v (CR1220 fournie) garantit un fonctionnement minimum de 2 ans si elle est seule à alimenter le module. SI l’alimentation du Raspberry Pi prend le relais, cette durée est considérablement allongée. Le PCF2127 AT dispose de 512 octets de SRAM, sauvegardés par la pile.
Prix
La carte est vendue 9,99£ (non, non, pas 10£…) auxquels s’ajouteront les frais de port (à partir de 1,99£… non, pas 2£… ah! Vous avez compris que ça m’agace ?).
Disponibilité de la documentation
De la documentation est disponible en ligne pour le CI PCF2127 de NXP.
Tutoriels
La carte utilise un driver qui n’est pas inclus actuellement dans Raspbian. Vous pouvez télécharger le code source pour le compiler vous-même, ou télécharger le package fourni par MODMYPI. Un tutoriel est disponible sur Afterthought Sofware.
Un tutoriel est disponible en ligne et également au format .pdf.
CJEmicros
Photos de la carte
Descriptif
La carte de CJEmicros s’enfiche (complètement… oui je sais, elle était facile !) sur le port GPIO du Raspberry Pi. Le connecteur est un GPIO « réduit » à 6 trous. Cette fois c’est le circuit DS1338 de Maxim qui est au boulot ! Comme les précédents, c’est un circuit I2C. La pile, une CR1620 (fournie), donnée pour une durée de vie de 9 ans. La précision annoncée est meilleure qu’une minute par mois. Le site 4D informe que Raspbian Wheezy supporte maintenant l’horloge temps réel, et renvoie aux instructions d’installation pour autoriser cette gestion.
/!\ ATTENTION : Les cartes deux modèles sont vendus par par CJEmicros : Une carte intègre également un capteur de température, et met à disposition des pastilles supplémentaires (LEDs, accès à l’I2C)
Prix
La carte est vendue 13 £ ou 10 £ selon qu’elle intègre le capteur de température ou pas.
On trouve également la carte sur ebay :
Disponibilité de la documentation
La documentation du DS1338 est disponible en ligne au format .pdf.
Tutoriels
Les tutoriels d’installation sont en ligne, ainsi qu’un guide d’installation.
Yadom
Photos de la carte
Descriptif
En rupture de stock pour l’instant (vous pouvez vous inscrire à une mailing list pour connaître la disponibilité), cette carte RPI RTC embarque également un DS1338. Elle est annoncée comme reconnue et gérée par les distributions Linux courantes. 56 octets de SRAM sont disponibles, et la connexion se fait par le bus I2C. Contrairement aux cartes précédentes, la carte Yadom est équipée d’un connecteur GPIO « complet », c’est-à-dire avec les 26 trous, ce qui devrait assurer plus de stabilité.
Prix
La carte est vendue 19,90€ auxquels s’ajouteront les frais de port … Enfin quand elle sera disponible !
Disponibilité de la documentation
La documentation du DS1338 est disponible en ligne.
Tutoriels
Le tutoriel est inclus dans la page du site vendeur.
Hobby Electronics
Photos de la carte
Descriptif
La carte de Hobby Electronics embarque un DS1302 de Maxim. Ce circuit utilise une entrée /sortie série et intègre 31 octets de RAM sauvegardés par la pile.
Prix
La carte est vendue 5,17 € auxquels s’ajouteront les frais de port (xxxx). Une remarque au passage, la T.V.A. s’applique également sur les frais de port, tenez en compte lors de votre commande.
Disponibilité de la documentation
La documentation du CI DS1302 est disponible en ligne. Un guide de mise en œuvre est sur le site de Hobby Electronics.
Tutoriels
Le code source rtc-pi.c est téléchargeable sur le site Hobby Electronics. Il faudra le compiler pour l’utiliser sur votre Raspberry Pi, puis l’intégrer aux scripts lancés lors du démarrage, la doc vous laisse décider de votre méthode préférée. A réserver à des utilisateurs (un peu) avancés de Linux…
/!\ ATTENTION : Les ports GPIO ont été modifiés entre les versions v1 et v2 du Raspberry Pi. Il faudra être attentif lors du raccordement sur les broches du connecteur GPIO.
Conclusion
Après avoir fait le tour des cartes disponibles (ou pas => Yadom), mon choix s’est arrêté sur la carte de Hobby Electronics (GB). Outre la rubrique Raspberry Pi, ce vendeur propose également des extensions pour Arduino, mais aussi bien d’autres choses. A visiter si vous expérimentez dans ces domaines…
Mon choix a été influencé par l’absence de connecteur GPIO, ce qui me permettra de caser la carte RTC où je le veux (c’est qui le chef, hein ?). Mais surtout ça laisse libre accès au port GPIO pour y connecter un câble d’extension (Adafruit).
Aussitôt dit, aussitôt fait, au jour du début de l’écriture de cet article, j’ai passé la commande, payée par Paypal. Le mail de confirmation est arrivé rapidement, et en fin d’après-midi j’avais un mail m’annonçant que le produit avait été expédié ! Je mettrai un complément à cet article pour vous donner la date de livraison et les conditions d’emballage.
La mise en œuvre de cette carte RTC fera (bien sûr) l’objet d’un article à paraître sur www.framboise314.fr.
Votre choix est peut-être (certainement) différent du mien ! Vos critères de sélection ne sont pas les mêmes : Facilité de connexion avec le port GPIO, précision requise, durée de vie de la pile, prix, look de la carte … N’hésitez pas à en faire part dans les commentaires et si vous avez d’autres sources d’approvisionnement en carte RTC, signalez les…
Mise à jour du 29 avril 2013
La carte RTC de Hobby Electronics est arrivée ce matin. Emballage sérieux : enveloppe matelassée, contenant un sachet scellé, contenant plusieurs tours de plastique à bulles, contenant un sachet antistatique scellé… contenant la carte ! Rien à redire !
Commande le 24 avril, livraison le 29 avril…
Il ne reste plus qu’à brancher la chose et à rédiger l’article sur la mise en œuvre de l’horloge RTC.
Bonjour cher François,
Bien vu le parallèle avec les stations météo et leur datalogger (pour
certaines) !!
Votre choix de carte d’extension est judicieux, car il faut dire que les
différents boîtiers commercialisés, étant adaptés aux dimensions de la
« Framboise », ne laissent guère de place aux différents accessoires que l’on
veut y greffer. Ainsi pour y adapter un système de refroidissement autre que
de simples radiateurs, j’ai dû jongler quelque peu pour y intégrer une
alimention par socle « japon ». Il devrait me rester suffisamment de place pour
intégrer une platine RTC.C’est là que votre choix présente toute sa pertinence.
Dans mon cas cette référence est essentielle, toutefois eu égard à
l’impossibilité temporaire de récupérer les données du datalogger (coupure
système) un fonctionnement 24/7 a été la seule solution. Bien évidemment tout
ce qui est en rapport avec le serveur météo et le serveur apache est alimenté
via un onduleur, ne serait-ce que pour assurer la continuité du service, mais
surtout pour éviter les différents processus « zombies » ou corruption de la
base de données qui peuvent se produire en cas de micro-coupures secteur ou
autres … car je ne connais pas les capacités du Pi à réagir à de telles
conditions, la base de données sqlite étant le coeur du système.
Nous travaillons actuellement à solutionner ce pb de datalogger, mais il faut
reconnaître que les utilisateurs de ce système sur linux et avec ce logiciel
(wview), ne sont pas légion surtout dans la langue de Molière !
Comme ceci passe par la modification des sources en corrélation avec le type de
station (Oregon WMR200), des compétences en la matière sont indispensables.
Ma spécialité lorsque j’étais en activité ne m’ayant pas donné un cursus
identique au votre (construction de maisons de retraite), explique la solution
temporaire que nous avons adoptée, mais qui tourne cependant parfaitement
bien. De surcroît, ceux qui veulent mettre à disposition de la communauté leurs
données et statistiques en temps réel, via un site spécifique, doivent être
connectés en permanence et ce avec un tansfert ftp adapté.Ce devrait être le cas
de Chrisophe qui travaille avec moi sur ce projet et pourquoi pas sous
WordPress!, d’autant plus qu’il a déja réalisé ce principe sous win cependant!
Avec toutes mes amitiés.
Didier
Merci pour cet article fort bien documenté !
J’ai pris ce module RTC qui va très bien et qui permet d’utiliser ausi les ports GPIO =) –> http://www.abelectronics.co.uk/products/3/Raspberry%20Pi/15/RTC-Pi-Real-time-Clock-Module
le driver du module RTC du site MODMYPI doit patcher le noyau …. donc nouveau noyau nouveau path ….. j’ai un peu peur pour la maintenance du code de ce driver ….
Ping : Horloge temps réel pour le Raspberry Pi | Carnet
Bonsoir,
et bravo pour votre site toujours passionnant.
je me permet de vous rappeller que vous deviez
« brancher la chose et à rédiger l’article sur la mise en œuvre de l’horloge RTC. »
d’avance merci
bonjour
merci pour ce rappel 🙂
cordialement
François
Bonjour Bob
Après un long délai (écriture du bouquin… de mai à décembre), l’article est enfin en ligne !
https://www.framboise314.fr/un-module-rtc-a-base-de-ds1302-pour-le-raspberry-pi/
Cordialement
François
Ping : Un module RTC à base de DS1302 pour le Raspberry Pi | Framboise 314, le Raspberry Pi à la sauce française….
Ping : Raspberry Pi Home Server - Ajouter une horloge RTC DS1307 sur le bus I2C
Ping : Un boîtier DIN Yadom pour le Raspberry Pi | Framboise 314, le Raspberry Pi à la sauce française….
Bonjour
je suis tombé lors de mes recherches sur le module de chez wvshare qui contiens une sortie d’interruption qui pourrait servir a réveiller notre framboise.
Avez vous déjà tester leurs modules?
http://www.wvshare.com/product/PCF8563-RTC-Board.htm
bonjour
non pas encore, merci pour cette information !
Cordialement
François
bonjour Axel
Le module vers lequel pointe le lien (PCF8563 RTC Board) est accessible en I2C. La sortie INT n’est pas dispo sur le connecteur (patte 3 du PCF8563 http://www.wvshare.com/product/PCF8563.htm). Seuls les signaux I2C SDA et SCL sont disponibles.
Il faudrait ressortir cette info d’interruption et l envoyer sur un GPIO pour « réveiller » le RasPi. Et celui ci devrait être sous tension et opérationnel pour répondre à l’interruption.
L’autre solution serait de piloter un « interrupteur » électronique qui mettrait le RasPi sous tension à une heure déterminée pour réaliser une tâche déterminée. Je ne sais pas si ce genre de module existe.
Quelle serait l’application dans votre cas ?
Cordialement
François
Bonjour, j’ai réalisé quelques modifications sur ce logiciel :
+ajout de la détection automatique de la version de la Raspberry Pi (V1 et V2)
+ajout de quelques options sur la ligne de commande (-h pour avoir une liste) mais en conservant une compatibilité « ascendante »
+ajout d’option pour lire/écrire dans la SRAM de l’horloge (chaîne hexadécimale de 62 caractères très basique)
+reformatage afin de rendre le tout plus « lisible et structuré » mais là c’est assez personnel
Bref, avant de tout mettre en ligne, je voulais savoir sous quelle licence il faut faire référence (lien, citation) à cet article: mentions souhaitées, etc…
J’ai prévu de mettre mon dépôt « public » sous les mêmes conditions que votre site.
De même, je recherche les condit
Bonjour
tout ce que je publie sur le site est en CC BY NC SA comme indiqué en bas de la page, avec un lien vers https://creativecommons.org/licenses/by-sa/3.0/.
Quel logiciel avez vous modifié?
Cordialement
François
j’ai lu avec attention le détail pour l’installation, hélas je suis bien obligé de reconnaître que c’est pour des spécialiste .
bien dommage, car j’ai acquis lors d’une vente aux enchères une centrale téléphonique adept 250 avec obox bref complet mais je ne sais pas comment l’installer
as grave je vais continuer ma recherche
Bonjour Pierrick
l’Obox est un PABX complet qui se connecte sur des lignes Numeris T0.
Il était fabriqué au Creusot (j’y habite) par Adept Telecom. C’est un très bon produit
mais il se suffit à lui-même, pas besoin de Raspberry Pi… Vous avez déjà tout ce qu’il faut dans l’Obax.
Cordialement
François
Ping : Installation d'un module "Real Time Clock" - Code 4 Pi
Bonjour,
Comment synchroniser la date et l’heure du Pi avec une RTC lorsque l’on a pas de réseau ?
A+
Merci
Bonjour Estelle
vous êtes au bon endroit
sinon cherchez RTC sur le blog vous aurez d’autres articles.
En l’absence de réseau il n’y a que 2 solutions : une horloge RTC qui conserve l’heure grace à une pile le système vient récupérer l’heure pour se synchroniser, ou la mise à l’heure du Raspberry Pi manuellement, mais dans ce cas une dérive de l’heure est probable…
La commande date utilisée avec des arguments permet de configurer l’heure du système. Seul le super-utilisateur (sudo) peut modifier l’heure système.
Syntaxe
date MMJJhhmm[YYAA.ss]
MM Mois
JJ Jour du mois
hh Heure
mm Minute
YY Deux premiers chiffres de l’année (facultatif)
AA Deux derniers chiffres de l’année (facultatif)
.ss Secondes (facultatif)
Exemple :
pi@raspberrypi ~ $ sudo date 011819492017.15
mercredi 18 janvier 2017, 19:49:15 (UTC+0100)
cordialement
François
Bonjour,
D’abord merci pour cette article, intéressant, comme beaucoup d’autres que tu/vous écrivez.
un détail néanmoins, qui sera utile pour les personnes qui cherchent une certaine précision. La doc d’adafruit précise que sont module est précis à +/- 2 secondes par jour et non par mois, comme vous le dites dans votre article.
https://www.adafruit.com/product/264
« The DS1307 is simple and inexpensive but not a high precision device. It may lose or gain up to 2 seconds a day. »
Bonjour Alain
La précision dépend du quartz
Effectivement un 10ppm avec environ 30 000 000 sec pour un an donnerait
300sec d erreur sur 1 an soit environ 1 sec par jour
Apres si vous prenez un 50ppm…. on multiplie l’erreur par 5
.2013 ça date un peu mais à l’époque j’avais du lire cette valeur de 2sec par mois dans la doc ou la pib d’adafruit… j’avoue que je ne me rappelle pas ?