Comment utiliser l'horloge en temps réel avec le Raspberry Pi

Comment utiliser l'horloge en temps réel avec le Raspberry Pi
Raspberry Pi suit l'heure à l'aide d'Internet, mais lorsqu'il n'y a pas de réseau, cela peut être une situation problématique pour les utilisateurs qui travaillent sur des projets basés sur le temps. Pour une telle situation, il existe un protocole I2C dans Raspberry Pi. I2C est un circuit inter-intégré qui peut être utilisé pour connecter Raspberry Pi à une horloge en temps réel (RTC) pour garder la bonne voie du temps même s'il n'y a pas d'Internet.

Dans cet article, vous verrez la méthode d'utilisation d'une horloge en temps réel pour garder une trace du temps sur Raspberry Pi.

Comment utiliser une horloge en temps réel (RTC) avec le Raspberry Pi

RTC est un petit module matériel qui est utilisé pour garder le suivi de la date et de l'heure précis. Un module RTC se compose d'une interface I2C en raison de laquelle il peut être connecté à Raspberry Pi. Habituellement, un module RTC se compose de 4 broches mais il pourrait y avoir plus d'épingles. Les quatre broches de base de RTC qui sont utilisées pour connecter RTC à Raspberry Pi sont:

  • Pin SDA
  • Broche
  • Broche
  • PIN 5 V ou VCC

Toutes ces épingles sont étiquetées dans l'image ci-dessous, la couleur du module RTC peut varier en bleu, vert ou rouge:

Le Raspberry Pi possède également un protocole I2C Pins SDA et SDL au PIN numéro 3 et 5 pour le connecter au module RTC. Pour connecter le Raspberry Pi avec le module RTC, nous utiliserons 4 broches Raspberry Pi qui sont mises en évidence dans l'image ci-dessous:

Suivez les étapes ci-dessous pour utiliser RTC avec Raspberry Pi:

Étape 1: configuration matérielle

Pour construire le circuit matériel de Raspberry Pi et RTC, utilisez le diagramme du circuit ci-dessous;

  • SDA de RTC à la broche 3 de Raspberry Pi
  • SCL de RTC à la broche 5 de Raspberry Pi
  • GND de RTC à la broche 14 (GND) de Raspberry Pi
  • 5V ou VCC à la broche 2 de Raspberry Pi

Étape 2: Activer I2C sur Raspberry Pi

Vous devez activer I2C Interface sur Raspberry Pi en ouvrant l'outil de configuration Raspberry Pi à l'aide de la commande suivante:

$ sudo raspi-config

Aller au Options d'interface et frapper Entrer:

Ensuite, entrez en outre le I2C Option pour activer le protocole I2C sur Raspberry Pi:

Après quoi il vous demandera une autorisation d'activer le protocole I2C, choisissez Oui ici:

Une invite semblera informer que le I2C est autorisé; Cliquez sur D'accord ici:

Puis cliquez sur le Finir bouton pour terminer le processus.

Étape 3: Assurer la connexion du module RTC à Raspberry Pi

Après avoir activé I2C, assurez-vous que votre module matériel RTC est correctement connecté avec Raspberry Pi et cela peut être confirmé en exécutant la commande ci-dessous:

$ sudo i2cdetect -y 1

Si la sortie de la commande a affiché le ID # 68 alors cela signifie que la carte est correctement connectée:

Nous allons maintenant modifier le fichier de démarrage / configuration pour configurer l'heure RTC Raspberry PI:

$ sudo nano / boot / config.SMS

Après avoir ouvert le fichier, allez en bas du fichier et en fonction du module RTC que vous utilisez, modifiez la ligne mentionnée ci-dessous et écrivez-la en bas du fichier de démarrage / configuration:

Syntaxe

dtoverlay = i2c-rtc,

Les trois modules RTC couramment utilisés sont DS1307, DS3231 et PCF8523 vous pouvez vérifier celui que vous utilisez et modifier le texte en fonction de cela.

Exemple

J'utilise le DS1307 module donc j'ai utilisé cette commande ci-dessous:

dToverlay = i2c-rtc, ds1307

Ensuite, enregistrez le fichier en utilisant les clés Ctrl + x et Y.

Redémarrez maintenant le système en utilisant la commande ci-dessous-écrite afin que le noyau RTC puisse être chargé:

$ sudo redémarrer

Maintenant, après un redémarrage, exécutez à nouveau la commande I2C Detect et vous devriez voir un Uu (signifie que l'appareil ou la ressource est occupé) au lieu du numéro 68. Le Uu confirme que le noyau est chargé avec succès et que le module RTC communique enfin avec Raspberry Pi:

$ sudo i2cdetect -y 1

Depuis que le RTC a commencé à communiquer avec Raspberry Pi, il est donc temps de supprimer l'ancienne fausse horloge dans Raspberry Pi et à cet effet, exécutez la commande ci-dessous:

$ sudo apt -y supprimer le faux-hwclock

Et exécutez la commande inférieure à l'écriture pour supprimer complètement la fausse horloge même des scripts de démarrage dans Raspberry Pi:

$ sudo update-rc.D -f Fake-Hwclock Supprimer

Il est maintenant temps de modifier le script matériel RTC à l'aide de Nano Editor, et pour cela, exécutez la commande mentionnée ci-dessous:

$ sudo nano / lib / udev / hwclock-set

Dans le fichier, trouver le texte qui est mis en surbrillance dans l'image ci-dessous:

Commentez les trois lignes en ajoutant # devant eux:

Maintenant, pour lire l'heure directement à partir du module RTC, exécutez la commande ci-dessous:

$ sudo hwclock -d -r

Ensuite, exécutez la commande ci-dessous pour découvrir la date du système Assurez-vous qu'à ce stade, votre Raspberry Pi est connecté au Wi-Fi ou à Ethernet pour obtenir la date correcte:

$ date

Maintenant, exécutez la commande ci-dessous écrite pour écrire la date correcte (que vous venez de voir ci-dessus par commande de date) sur le module RTC:

$ sudo hwclock -w

Et maintenant, pour vérifier que la date a été écrite correctement sur le module RTC, exécutez le date commande pour trouver la date du système et hwclock -r Commande pour trouver l'heure du module RTC et les deux devraient être les mêmes:

$ date
$ sudo hwclock -r

Conclusion

Le module RTC peut être connecté à Raspberry Pi en utilisant un protocole synchrone I2C. La configuration matérielle et logicielle pour utiliser RTC avec Raspberry Pi est discutée en détail dans l'article. Une fois le RTC correctement configuré avec Raspberry Pi, même si vous n'êtes pas connecté au réseau, votre système affichera toujours le temps précis en raison du module RTC (temps de l'horloge réel).