• Première étape
  • Matériel et accessoires ; GPIO
  • Projets
  • Logiciel
    • Serveur Web
  • Arduino & ESP8266
  • Automatisation de la maison
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Matériel et accessoires ; GPIO
  • Projets
  • Logiciel
  • Serveur Web
  • Première étape
  • Automatisation de la maison
  • Anglais
  • Allemand
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Logiciel»Contrôler le module RTC de Raspberry Pi – Horloge temps réel I2C

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

Facebook Twitter LinkedIn Tumblr Email Reddit
Raspberry Pi RTC Real Time Clock
Share
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

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

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

 

Pièces de matériel requises

Vous aurez besoin des pièces de quincaillerie suivantes :

  • Petit module I2C RTC DS1307
  • kit de soudure (important, voir l’explication)
  • Câble de connexion femelle-femelle

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. Comme les GPIOs du Raspberry Pi ne fonctionnent qu’à 3.3V et qu’une tension plus élevée peut les endommager, nous devons enlever deux résistances de la carte.

Raspberry Pi RTC Module Back Before Raspberry Pi RTC Module Front

A l’arrière se trouvent les deux résistances (R2 et R3) que l’on retire. Pour ce faire, on chauffe les fixations avec la pointe à souder. En outre, on peut souder des bandes de broches, qui sont généralement incluses. Nous n’avons besoin que du côté avec 7 broches (à droite) :

Raspberry Pi Tiny RTC I2C Modules
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 RTC I2C de Raspberry Pi

Le module est connecté via l’interface I²C. Pour cela, nous utilisons le côté droit des broches (qui en compte 7), car en mode hors ligne du Raspberry, le courant doit être tiré de la batterie pour que l’horloge ne s’arrête pas. D’autres modules peuvent n’avoir qu’une bande de broches. L’affectation est la suivante :

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

 

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

Raspberry Pi RTC Real Time Clock Structure

 

 

Logiciel RTC pour Raspberry Pi

Avant de pouvoir réellement commencer, il faut s’assurer que tous les paquets et sources de paquets sont à jour, nous les mettons donc d’abord à jour, puis nous 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 encore fait :

sudo raspi-config

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

Maintenant nous éditons le fichier des modules

sudo nano /etc/modules

et ajouter les entrées manquantes à la fin :

i2c-bcm2708
i2c-dev
rtc-ds1307

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

Pour activer les modules, il faut les charger :

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 révision 2. Seulement que le premier Raspberry Pi correspond à la Révision 1) :

i2cdetect -y 1

Vous devriez voir le résultat suivant :

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é à l’aide de la fonction i2cget -y 1 0x68. Comme un code hexadécimal est difficile à lire, nous entrons le module comme un nouveau périphérique 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 en temps réel n’était pas réglée correctement (1er janvier 2000), c’est pourquoi j’ai dû la régler d’abord. Puisque l’heure du système local est correcte (accès automatique via un serveur NTP), je l’ai synchronisée comme suit (à propos, toutes les commandes peuvent être trouvées dans la documentation de hwclock) :

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

Si vous voulez changer l’heure du 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 du système automatiquement à chaque redémarrage, nous devons écrire une commande set dans l’autostart. 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 RTC du Raspberry Pi – sans connexion Internet.

DS1307 Horloge en temps réel i2c Mini RTC Modules Mini RTC I2C RTC
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Previous ArticleTransfert de données Bluetooth de Raspberry Pi vers le Smartphone
Next Article How to build a Smart Agriculture System using IoT

Related Posts

Connecter un clavier Raspberry Pi – Code Lock

Enregistrer les données des capteurs Raspberry Pi avec ThingSpeak et les analyser

Construire un capteur de porte / fenêtre Raspberry Pi avec Reed Relais

MCP3008 : Lire des signaux analogiques sur le Raspberry Pi

Leave A Reply Cancel Reply

Lecture des étiquettes RFID RC522 de Raspberry Pi (NFC)

Utilisation d’un capteur de distance Raspberry Pi (capteur ultrasonique HC-SR04)

Raspberry Pi Autostart : Démarrez le programme automatiquement

Création d’un certificat SSL Raspberry Pi gratuit avec Let’s Encrypt

Utiliser un joystick sur le Raspberry Pi (avec MCP3008)

Apprendre à programmer sur le Raspberry Pi – Partie 1 : Introduction

ABONNEZ-VOUS MAINTENANT
Et recevez de nouveaux tutoriels dans votre boîte de réception.
Cliquez ici pour soumettre!

Merci!

Nous vous contacterons bientôt.

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Politique de confidentialité
  • Conditions de service & Politique sur les cookies

Type above and press Enter to search. Press Esc to cancel.