Contrôle du module Raspberry Pi RTC – Horloge temps réel I2C

1591858915 Controle du module Raspberry Pi RTC Horloge temps reel
1591858915 Controle du module Raspberry Pi RTC Horloge temps reel

Le Raspberry Pi n’enregistre pas la date de façon permanente. Avec l’aide du module Raspberry Pi RTC (horloge en temps réel) DS1307, vous disposez d’une horloge en temps réel, quelle que soit la connexion Internet existante. C’est un avantage dans de nombreuses applications qui nécessitent un horodatage mais ne peuvent pas être connectées à Internet. Surtout pour les Pi d’extérieur et les systèmes d’enregistrement, il est important de connaître la date et l’heure exactes.

Ce tutoriel concerne l’installation d’une horloge en temps réel (RTC) et la synchronisation de l’heure système de Linux / Raspbian.

Matériel requis

Vous aurez besoin des pièces de matériel suivantes:

Alternativement, le module RTC DS3231 devrait également fonctionner, mais je ne l’ai pas (encore) testé avec.

Préparation

Les modules Tiny RTC sont en fait conçus pour l’Arduino, dont les broches IO fonctionnent à 5V. Étant donné que les GPIO du Raspberry Pi ne fonctionnent qu’à 3,3 V et qu’une tension plus élevée peut les endommager, nous devons retirer deux résistances de la carte.

Module RTC Raspberry Pi avant avant Module avant Raspberry Pi RTC
Au dos se trouvent les deux résistances (R2 et R3) qui sont retirées. Pour ce faire, nous chauffons les fixations avec la panne à souder. De plus, des bandes de broches peuvent être soudées, qui sont généralement incluses. Nous avons seulement besoin du côté avec 7 broches (à droite):

Modules Raspberry Pi Tiny RTC I2C

Les résistances R2 et R3 doivent être retirées pour ne pas endommager le Raspberry Pi avec une tension trop élevée.

Alternativement, un convertisseur de niveau logique (comme ici) pourrait être interposé.

Connexion du module Raspberry Pi RTC I2C

Le module est connecté via I²C interface. Pour cela, nous utilisons le côté droit de la broche (qui a 7 broches), car dans le mode hors ligne du Raspberry, le courant doit être tiré de la batterie afin que l’horloge ne s’arrête pas. D’autres modules ne peuvent avoir qu’une barrette de broches. La mission est la suivante:

Module RTC Raspberry
SCL GPIO 3 / SCL (broche 5)
SDA GPIO 2 / SDA (broche 3)
VCC / 5V 5 V (broche 2)
GND GND (broche 6)

Les modules RTC diffèrent légèrement de la structure, donc l’image suivante ne doit être prise qu’à titre indicatif. Il est important que les broches connectées soient correctes:

Structure d'horloge en temps réel du Raspberry Pi RTC

Logiciel Raspberry Pi RTC

Avant de pouvoir vraiment commencer, il faut s’assurer que tous les packages et sources de packages sont à jour, nous les mettons donc à jour en premier puis installons le logiciel I2C:

sudo apt-get update && sudo apt-get upgrade --yes
sudo apt-get install i2c-tools

Ensuite, le bus I2C doit être activé, si ce n’est pas déjà fait:

sudo raspi-config

Activez tout sous «Options avancées»> «I2C» (confirmez simplement avec Oui). Un redémarrage peut être nécessaire.

Maintenant, nous éditons le fichier des modules

sudo nano /etc/modules

et ajoutez les entrées manquantes à la fin:

i2c-bcm2708
i2c-dev
rtc-ds1307

Vous enregistrez et quittez avec CTRL + O, CTRL + X.

Pour activer les modules, ils doivent être chargés:

sudo modprobe i2c_bcm2708
sudo modprobe i2c_dev
sudo modprobe rtc-ds1307

Nous pouvons maintenant voir si le module RTC a été reconnu par I2C (le paramètre -y 1 indique qu’il s’agit de la Rev.2. Seulement que le premier Raspberry Pi correspond à la révision 1):

i2cdetect -y 1

Vous devriez voir la sortie suivante:

pi@raspberrypi:~ $ i2cdetect -y 1
 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Le module est donc reconnu et peut être interrogé en utilisant i2cget -y 1 0x68. Puisqu’un code hexadécimal est difficile à lire, nous entrons dans le module comme un nouvel appareil I2C:

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

Ensuite, nous pouvons simplement lire l’heure en utilisant sudo hwclock -r. Vous pouvez obtenir l’heure locale du système avec date.

Pour moi, l’horloge temps réel n’a pas été réglée correctement (1er janvier 2000), c’est pourquoi j’ai dû la régler en premier. Étant donné que l’heure du système local est correcte (accessible automatiquement via un serveur NTP), je l’ai synchronisée comme suit (en passant, toutes les commandes peuvent être trouvées dans la documentation hwclock):

sudo hwclock --set --date="$(date "+%m/%d/%y %H:%M:%S")"

Si vous souhaitez modifier l’heure système (et le fuseau horaire!), Vous devez le faire en utilisant sudo raspi-config, Avant de synchroniser les heures.

Afin de régler l’heure système automatiquement à chaque redémarrage, nous devons écrire une commande set dans le démarrage automatique. Pour ce faire, nous éditons le fichier:

sudo nano /etc/rc.local

Les deux lignes suivantes sont ajoutées avant exit 0:

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

Après un redémarrage, l’heure correcte devrait maintenant être lue et réglée à partir du module Raspberry Pi RTC – sans aucune connexion Internet.

  • AZDelivery Real Time Clock RTC I2C Compatible avec DS3231, Horloge en Temps Réel avec Batterie RTC DS3231 I2C, Module d’Horloge Haute Précision Compatible avec Arduino et Raspberry Pi incluant
    ✅ Le cristal d'horloge compatible avec DS3231 de haute précision, utilisé dans l'AZDelivery DS3231 RTC, réduit l'écart à quelques minutes par an! ✅ Grâce à la batterie intégrée, l'heure est stockée même en cas de panne de courant. De plus, cela permet la mise en œuvre de la date en tenant compte des années bissextiles jusqu'à 2100. ✅ Câblage simple via seulement quatre broches grâce à l'interface I2C. ✅ Intégration facile dans les projets grâce à des bibliothèques open source prêtes à l'emploi. Nos horloges en temps réel sont compatibles avec tous les modèles actuels de Raspberry Pi. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.
  • AZDelivery 3X Real Time Clock RTC I2C Compatible avec DS3231, Horloge en Temps Réel avec Batterie RTC DS3231 I2C, Module d’Horloge Haute Précision Compatible avec Arduino et Raspberry Pi
    ✅ Obtenez trois modules d'horloge en temps réel compatible avec DS3231 maintenant à un prix spécial avec remise sur quantité ! ✅ Le cristal d'horloge compatible avec DS3231 de haute précision utilisé dans l'AZDelivery DS3231 RTC réduit l'écart à quelques minutes par an ! ✅ Grâce à la batterie intégrée, l'heure est toujours stockée même en cas de panne de courant. De plus, cela permet la mise en œuvre de la date en tenant compte des années bissextiles jusqu'à 2100. ✅ Câblage simple en utilisant seulement quatre broches grâce à l'interface I2C, ainsi qu'une intégration facile dans les projets grâce à des bibliothèques open source prêtes à l'emploi. Nos horloges en temps réel sont compatibles avec tous les modèles Raspberry Pi courants. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.
  • AZDelivery 5 x Real Time Clock RTC I2C Compatible avec DS3231, Horloge en Temps Réel avec Batterie RTC DS3231 I2C, Module d’Horloge Haute Précision Compatible avec Arduino et Raspberry Pi
    ✅ Obtenez cinq modules d'horloge en temps réel compatible avec DS3231 maintenant à un prix special avec remise sur quantité ! ✅ Le cristal d'horloge compatible avec DS3231 de haute précision utilisé dans l'AZDelivery DS3231 RTC réduit l'écart à quelques minutes par an ! ✅ Grâce à la batterie intégrée, l'heure est toujours stockée même en cas de panne de courant. De plus, cela permet la mise en œuvre de la date en tenant compte des années bissextiles jusqu'à 2100. ✅ Câblage simple en utilisant seulement quatre broches grâce à l'interface I2C, ainsi qu'une intégration facile dans les projets grâce à des bibliothèques open source prêtes à l'emploi. Nos horloges en temps réel sont compatibles avec tous les modèles Raspberry Pi courants. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.