Ajout d’une horloge en temps réel à votre Raspberry Pi

Ajout d'une horloge en temps réel à votre Raspberry Pi

Lorsque vous allumez votre PC ou Mac, devez-vous changer son heure? Hautement improbable! Devez-vous le faire sur votre Raspberry Pi? Peut-être.

Chaque fois que votre Raspberry Pi démarre, il se connecte à ce qu’on appelle un NTP – Protocole de temps réseau – serveur et lui demande l’heure. Mais que se passe-t-il si votre Pi n’est pas connecté à Internet? Vous n’avez pas de chance (ou est-ce le moment?). Votre Pi n’a aucun moyen de savoir quelle heure il est.

Mais il existe une solution sous la forme d’une «horloge en temps réel» ou d’une carte RTC. Ces cartes d’extension bon marché se branchent sur les broches GPIO de votre Pi et contiennent une puce d’horloge et une batterie qui indiquent Raspberry Pi quelle heure il est. Le Pi vend une telle planche.

100282 medium

Configuration d’I2C

La carte RTC utilise ce que l’on appelle I2C (prononcé «eye squared see») pour communiquer entre lui et le Raspberry Pi. L’I2C permet au Raspberry Pi pour communiquer avec un grand nombre d’appareils différents en même temps qui sont également connectés aux mêmes broches I2C sur le Raspberry Pi.

Simon Monk a écrit de très bonnes instructions sur la façon de configurer votre Raspberry Pi pour pouvoir utiliser i2c sur le Site d’Adafruit. Suivez les instructions complètes, notamment en vérifiant que tout a fonctionné en suivant également les instructions du manuel.

Brancher la carte

Il est toujours préférable de Raspberry Pi off avant de brancher quoi que ce soit sur les broches GPIO. Faites toujours cela en utilisant le sudo halt ou sudo shutdown -h now commandes.

Branchez maintenant la carte sur vos broches GPIO du Raspberry Pi dans le coin intérieur, la carte RTC pointant vers l’intérieur, comme illustré ci-dessous.

Brancher le RTC sur le Raspberry Pi

Configuration du RTC

Vous devez maintenant configurer votre Raspberry Pi pour reconnaître et utiliser la carte.

Allume le Raspberry Pi et vérifiez que la carte est vue en exécutant sudo i2cdetect -y 1 sur la ligne de commande. Vous devriez voir l’ID # 68 apparaître (l’adresse I2C de la puce d’horloge en temps réel DS1307):

Détection de périphérique I2C

Si vous avez une ancienne Rev.1 Raspberry Pi, tu devras courir sudo i2cdetect -y 0 car l’adresse du bus I2C est passée de 0 à 1 à partir de la révision 2.

Réglage de l’horloge RTC

Le module RTC doit être chargé par le noyau en exécutant:

sudo modprobe rtc-ds1307

Vous devez maintenant exécuter en tant que super utilisateur; tapez:

sudo bash

puis, si vous avez une Rev.2 Raspberry Pi ou version ultérieure:

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

Ou si vous avez l’ancienne Rev.1 Raspberry Pi, utilisez:

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device

Type exit pour ne plus être l’utilisateur « root ».

Vérifiez l’heure sur l’appareil RTC en utilisant:

sudo hwclock -r

Si c’est la première fois que le module est utilisé, il fera rapport le 1er janvier 2000 et vous devrez régler l’heure sur l’heure actuelle.

Le moyen le plus simple est de le connecter à Ethernet ou Wifi. Il réglera automatiquement l’heure à partir du réseau. Vous pouvez vérifier l’heure en utilisant le date commander:

Date

Courir sudo hwclock -w pour écrire l’heure du système sur la carte RTC.

Vous pouvez ensuite le vérifier avec sudo hwclock -r:

Réglage de l'horloge RTC

Alors maintenant, l’horloge RTC est réglée, c’est ça? Et bien non. La prochaine fois que vous démarrerez votre Pi, il ne saura pas qu’il doit lire l’horloge du RTC, donc s’il n’est pas connecté à Internet, il affichera à nouveau le mauvais moment.

Faire votre Raspberry Pi Utiliser l’horloge en temps réel

Vous devrez ajouter le module du noyau RTC au fichier /etc/modules il est donc chargé lorsque le Raspberry Bottes Pi. Dans une fenêtre de terminal, exécutez sudo nano /etc/modules et ajouter rtc-ds1307 à la fin du fichier:

1592866808 739 Ajout dune horloge en temps reel a votre Raspberry Pi

Ensuite, vous devrez ajouter la création du périphérique DS1307 au démarrage en modifiant le /etc/rc.local fichier en exécutant

sudo nano /etc/rc.local

et ajoutez les lignes suivantes au fichier:

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s

date

Juste avant le exit 0. Remarque: Si vous avez une Rev 1 Raspberry Pi, remplacer i2c-1 par i2c-0 au dessus de.

Définition du RTC au démarrage

Pour enregistrer le fichier, appuyez sur Ctrl + X, Y puis revenez.

Pour tester cela, arrêtez votre Raspberry Pi, débranchez tout câble Ethernet ou dongle wifi, puis rallumez le Raspberry Pi. Utilisez la commande suivante dans une fenêtre de terminal pour vérifier que la date est toujours définie:

date

Maintenant, la prochaine fois que vous redémarrerez votre Raspberry Pi, il lira l’heure de l’horloge en temps réel.

  • 3X Real Time Clock, Modules d'Horloge Temps Réel Haute Précision, Compatibles avec Montre en Temps Réel I2C RTC DS3231, Module Precision Real Time Clock Module Compatible avec Arduino et Raspberry Pi
  • AZDelivery 3 x DS1302 Horloge série en Temps réel Horloge RTC Horloge Temps réel Module Compatible avec Arduino et Raspberry Pi y Compris Un eBook