ESP32 - DS1307 RTC Module

In deze gids leert u hoe u de DS1307 RTC-module gebruikt met de ESP32. We behandelen de volgende onderwerpen in detail:

Hardware vereist

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×DS1307 Realtime Klok (RTC)-Module
1×CR2032 batterij
1×Jumperdraden
1×Breadboard (experimenteerprint)
1×(optioneel) DC-voedingsconnector
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Real-Time Clock DS1307 Module

De ESP32 heeft zelf een aantal tijd-gerelateerde functies zoals millis() en micros(). Echter, deze bieden geen datum en tijd (seconden, minuten, uren, dag, datum, maand en jaar). Om datum en tijd te verkrijgen, is een Real-Time Clock (RTC) module nodig, zoals de DS3231 of DS1307. De DS3231 module heeft een hogere precisie dan de DS1307. Zie voor meer informatie DS3231 vs DS1307.

Pinout

De Real-Time Clock DS1307 Module heeft 12 pinnen. Voor normaal gebruik zijn er vier pinnen die gebruikt worden: VCC, GND, SDA, en SCL:

  • SCL pin: de klokpin voor de I2C-interface.
  • SDA pin: de dataprin voor de I2C-interface.
  • VCC pin: levert voeding aan de module, dit kan tussen 3.3V en 5.5V liggen.
  • GND pin: de aardingspin.
Real-Time Clock DS1307 Module Pinout

De DS1307 module heeft ook een batterijhouder.

  • Plaatst u een CR2032 batterij, dan houdt deze de tijd bij wanneer de hoofdvoeding is uitgeschakeld.
  • Zonder batterij gaat de tijdsinformatie verloren bij het uitschakelen van de hoofdvoeding en moet u de tijd opnieuw instellen.

Bedradingsschema

ESP32 Real-Time Clock DS1307 Bedradingsschema

This image is created using Fritzing. Click to enlarge image

ESP32 - DS1307 RTC Module

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

Hoe te programmeren voor de DS1307 RTC Module

  • Bibliotheek includeren:
#include <RTClib.h>
  • Declareer een RTC object:
RTC_DS1307 rtc;
  • Initialiseer de RTC:
if (! rtc.begin()) { Serial.println("RTC module is NIET gevonden"); while (1); }
  • Stel de RTC voor de eerste keer in op de datum en tijd van de PC waarop de sketch is gecompileerd:
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  • Lees datum- en tijdinformatie uit de RTC-module:
DateTime now = rtc.now(); Serial.print("ESP32 RTC Datum Tijd: "); 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);

ESP32 Code – Hoe datum en tijd te verkrijgen

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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 }

Snelle stappen

  • Gebruikt u ESP32 voor het eerst? Bekijk dan onze handleiding voor het instellen van de ESP32-omgeving in Arduino IDE.
  • Maak de verbindingen zoals afgebeeld in het bovenstaande schema.
  • Verbind de ESP32 met uw PC via een micro-USB kabel.
  • Open Arduino IDE op uw PC.
  • Selecteer het juiste ESP32-bord (bijvoorbeeld ESP32 Dev Module) en de juiste COM-poort.
  • Open de Library Manager door te klikken op het Library Manager icoon in de linkerzijbalk van Arduino IDE.
  • Zoek naar “RTClib” en vind de RTC-bibliotheek van Adafruit.
  • Klik op de Installeren knop om de RTC-bibliotheek te installeren.
ESP32 RTC bibliotheek
  • Mogelijk wordt u gevraagd om afhankelijkheden voor de bibliotheek te installeren.
  • Installeer alle afhankelijkheden door te klikken op de knop Alles Installeren.
ESP32 Adafruit BusIO bibliotheek
  • Kopieer de bovenstaande code en plak die in Arduino IDE.
  • Compileer en upload de code naar het ESP32-bord door op de knop Upload te klikken in Arduino IDE.
  • Open de Seriële Monitor in Arduino IDE.
  • Bekijk de uitvoer in de Seriële Monitor.
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  

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!