ESP32 - Module RTC DS1307

Dans ce guide, nous allons apprendre à utiliser le module RTC DS1307 avec l'ESP32. En détail, nous aborderons les sujets suivants :

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×Real-Time Clock DS1307 Module
1×CR2032 battery
1×Jumper Wires
1×Breadboard
1×(Optional) DC Power Jack
1×(Recommended) ESP32 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module d'horloge temps réel DS1307

ESP32 dispose lui-même de certaines fonctions liées au temps telles que millis(), micros(). Cependant, elles ne peuvent pas fournir la date et l'heure (secondes, minutes, heures, jour, date, mois et année). Pour obtenir la date et l'heure, nous devons utiliser un module d'Horloge Temps Réel (RTC) tel que DS3231, DS1370. Le module DS3231 a une précision supérieure à celle du DS1370. Voir DS3231 vs DS1307

Brochage

Le module d'horloge en temps réel DS1307 comprend 12 broches. Toutefois, pour une utilisation normale, il faut utiliser 4 broches : VCC, GND, SDA, SCL.

  • Broche SCL : est une broche d'horloge pour l'interface I2C.
  • Broche SDA : est une broche de données pour l'interface I2C.
  • Broche VCC : alimente le module. Elle peut varier entre 3,3V et 5,5V.
  • Broche GND : est une broche de masse.
Module d'horloge temps réel DS1307 Brochage

Le module DS1307 dispose également d'un support de batterie.

  • Si nous insérons une pile CR2032, elle maintient l'heure du module lorsque l'alimentation principale est coupée.
  • Si nous n'insérons pas la pile, les informations d'heure sont perdues si l'alimentation principale est coupée et vous devez régler l'heure à nouveau.

Diagramme de câblage

Schéma de câblage de l'horloge temps réel DS1307 pour ESP32

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

Module ESP32 - DS1307 RTC

DS1307 RTC Module ESP32
Vin 3.3V
GND GND
SDA GPIO21
SCL GPIO22

Comment programmer le module RTC DS1307

  • Inclure la bibliothèque :
#include <RTClib.h>
  • Déclarez un objet RTC :
RTC_DS1307 rtc;
  • Initialiser le RTC:
if (! rtc.begin()) { Serial.println("RTC module is NOT found"); while (1); }
  • Pour la première fois, configurez la RTC à la date et à l'heure de la compilation du sketch sur PC.
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  • Lit les informations de date et d'heure depuis le module RTC.
DateTime now = rtc.now(); Serial.print("ESP32 RTC Date Time: "); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(" ("); Serial.print(now.dayOfTheWeek()); Serial.print(") "); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.println(now.second(), DEC);

Code ESP32 - Comment obtenir la date et l'heure

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-ds1307-rtc-module */ #include <RTClib.h> RTC_DS1307 rtc; char daysOfWeek[7][12] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; void setup () { Serial.begin(9600); // SETUP RTC MODULE if (! rtc.begin()) { Serial.println("RTC module is NOT found"); Serial.flush(); while (1); } // automatically sets the RTC to the date & time on PC this sketch was compiled rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // manually sets the RTC with an explicit date & time, for example to set // January 21, 2021 at 3am you would call: // rtc.adjust(DateTime(2021, 1, 21, 3, 0, 0)); } void loop () { DateTime now = rtc.now(); Serial.print("ESP32 RTC Date Time: "); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(" ("); Serial.print(daysOfWeek[now.dayOfTheWeek()]); Serial.print(") "); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.println(now.second(), DEC); delay(1000); // delay 1 seconds }

Étapes rapides

  • Si c'est la première fois que vous utilisez un ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
  • Réalisez le câblage comme sur l'image ci-dessus.
  • Connectez la carte ESP32 à votre PC via un câble micro USB.
  • Ouvrez Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 (par exemple, Module de développement ESP32) et le port COM.
  • Ouvrez le gestionnaire de bibliothèques en cliquant sur l'icône Gestionnaire de bibliothèques dans la barre de navigation gauche de Arduino IDE.
  • Recherchez "RTClib", puis trouvez la bibliothèque RTC d'Adafruit.
  • Cliquez sur le bouton Install pour installer la bibliothèque RTC.
Bibliothèque RTC ESP32
  • Il se peut que vous soyez invité à installer les dépendances pour la bibliothèque
  • Installez toutes les dépendances pour la bibliothèque en cliquant sur le bouton Install All.
Bibliothèque BusIO Adafruit ESP32
  • Copiez le code ci-dessus et collez-le dans l'IDE Arduino
  • Compilez et téléchargez le code vers la carte ESP32 en cliquant sur le bouton Upload dans l'IDE Arduino
  • Ouvrez le moniteur série sur l'IDE Arduino
  • Vérifiez la sortie sur le moniteur série.
COM6
Send
ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:35 ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:36 ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:37 ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:38 ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:39 ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:40 ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:41 ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:42 ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:43 ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:44
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!