Introduction

Un élément clé dans de nombreux projets Arduino est la gestion du temps. Que ce soit pour réaliser un réveil, un enregistreur de données, ou tout autre système demandant une gestion précise du temps, l’utilisation d’un module RTC (Real Time Clock) s’avère être la solution parfaite.

Dans ce tutoriel, nous allons découvrir le module RTC pour ESP32 et voir comment il peut optimiser la précision et la fiabilité de vos projets.

Voici le schéma associé au projet : 

Lire l'heure du module d'horloge

 

 

 

Pour utiliser le moduel d’horloge DS1307, vous allez avoir besoin d’installer la librairie RTClib dans Arduino IDE. Pour cela cliquer sur Gestionnaire de bibliothèque puis RTClib :

#include <Wire.h>
#include <RTClib.h>

// Créez une instance de l'objet RTC_DS1307
RTC_DS1307 rtc;

void setup() {
  // Initialiser la communication série pour l'affichage des valeurs
  Serial.begin(115200);

  // Initialiser la communication I2C avec des pins spécifiques
  Wire.begin(21, 22); // SDA sur GPIO21, SCL sur GPIO22
  
  // Vérifiez si le DS1307 est bien connecté
  if (!rtc.begin()) {
    Serial.println("Impossible de trouver un RTC DS1307 !");
    while (1);
  }

  // Vérifiez si la montre RTC est correctement configurée
  if (!rtc.isrunning()) {
    Serial.println("RTC n'est pas en cours d'exécution, il va être configuré.");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Réglage automatique à la date et à l'heure de compilation du code
  }
}

void loop() {
  // Lire l'heure et la date depuis le DS1307
  DateTime now = rtc.now();

  // Afficher les valeurs sur le moniteur série
  Serial.print("Date et heure actuelles : ");
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.print(now.day(), DEC);
  Serial.print(" ");
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();

  // Attendre une seconde avant la prochaine lecture
  delay(1000);
}

 

Voici ce que l’on peut lire sur le moniteur série une fois le programme téléversé sur notre carte ESP32 :