ESP32 - DS1307 RTC-Modul

In diesem Leitfaden lernen wir, wie man das DS1307 RTC-Modul mit dem ESP32 verwendet. Im Detail werden wir die folgenden Themen behandeln:

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×DS1307 Echtzeituhr(RTC)-Modul
1×CR2032 Batterie
1×Verbindungskabel
1×Breadboard
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über das DS1307-Echtzeituhr-Modul

Der ESP32 selbst verfügt über einige zeitbezogene Funktionen wie millis() und micros(). Sie können jedoch kein Datum und keine Uhrzeit liefern (Sekunden, Minuten, Stunden, Wochentag, Datum, Monat und Jahr). Um Datum und Uhrzeit zu erhalten, muss man ein Real-Time Clock (RTC)-Modul wie DS3231 oder DS1370 verwenden. Das DS3231-Modul hat eine höhere Präzision als das DS1370. Siehe DS3231 gegen DS1307.

Pinbelegung

DS1307-Echtzeituhr-Modul enthält 12 Pins. Für den normalen Gebrauch müssen jedoch 4 Pins verwendet werden: VCC, GND, SDA, SCL:

  • SCL-Pin: ist ein Taktpin für die I²C-Schnittstelle.
  • SDA-Pin: ist ein Datenpin für die I²C-Schnittstelle.
  • VCC-Pin: versorgt das Modul mit Strom. Es kann zwischen 3,3 V und 5,5 V liegen.
  • GND-Pin: ist ein Massepin.
DS1307-Echtzeituhr-Modul Pinbelegung

Das DS1307-Modul hat auch einen Batteriehalter.

  • Wenn wir eine CR2032-Batterie einsetzen, läuft die Uhr im Modul weiter, wenn die Hauptstromversorgung ausgeschaltet ist.
  • Wenn wir die Batterie nicht einsetzen, gehen die Zeitdaten verloren, wenn die Hauptstromversorgung ausgeschaltet ist, und Sie müssen die Zeit erneut einstellen.

Verdrahtungsdiagramm

ESP32 Echtzeituhr DS1307 Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

ESP32 - DS1307 RTC-Modul

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

Wie man das DS1307 RTC-Modul programmiert

  • Die Bibliothek einbinden:
#include <RTClib.h>
  • Deklarieren Sie ein RTC-Objekt:
RTC_DS1307 rtc;
  • Echtzeituhr initialisieren:
if (! rtc.begin()) { Serial.println("RTC module is NOT found"); while (1); }
  • Beim ersten Mal stellen Sie die RTC auf das Datum und die Uhrzeit des PCs ein, auf dem der Sketch kompiliert wurde.
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  • Liest Datums- und Uhrzeitinformationen vom RTC-Modul
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);

ESP32-Code – Wie man Datum und Uhrzeit erhält

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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 }

Schnelle Schritte

  • Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie sich wie man die Umgebung für ESP32 in der Arduino IDE einrichtet an.
  • Schließen Sie die Verkabelung wie im obigen Bild an.
  • Verbinden Sie das ESP32-Board mit Ihrem PC über ein Micro-USB-Kabel.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Öffnen Sie den Library Manager, indem Sie auf das Library Manager-Symbol in der linken Navigationsleiste der Arduino IDE klicken.
  • Suchen Sie “RTClib”, und finden Sie anschließend die RTC-Bibliothek von Adafruit.
  • Klicken Sie auf die Install-Schaltfläche, um die RTC-Bibliothek zu installieren.
ESP32 RTC-Bibliothek
  • Möglicherweise werden Sie aufgefordert, Abhängigkeiten für die Bibliothek zu installieren
  • Installieren Sie alle Abhängigkeiten der Bibliothek, indem Sie auf die Schaltfläche Install All klicken.
ESP32 Adafruit BusIO-Bibliothek
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein
  • Kompilieren Sie den Code und laden Sie ihn auf das ESP32-Board hoch, indem Sie in der Arduino IDE auf die Schaltfläche Hochladen klicken
  • Öffnen Sie den Serial Monitor in der Arduino IDE
  • Sehen Sie die Ausgabe im Serial 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

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!