ESP32 - Echtzeituhr (RTC)
In diesem Leitfaden lernen wir, wie man den ESP32 mit dem DS3231 RTC-Modul verwendet. Im Detail werden wir die folgenden Themen behandeln:
- Wie man das DS3231 RTC-Modul mit dem ESP32 verbindet.
- Wie man den ESP32 programmiert, um Datum und Uhrzeit vom DS3231 RTC-Modul auszulesen (Sekunde, Minute, Stunde, Wochentag, Datum, Monat und Jahr)
Erforderliche Hardware
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) |
Über das DS3231-Echtzeituhr-Modul
Der ESP32 selbst hat einige zeitbezogene Funktionen wie millis(), micros(). Allerdings können sie weder das Datum noch die Uhrzeit bereitstellen (Sekunden, Minuten, Stunden, Wochentag, Datum, Monat und Jahr). Um Datum und Uhrzeit zu erhalten, muss man ein Real-Time Clock (RTC)-Modul wie DS3231, DS1370 verwenden. DS3231-Modul hat eine höhere Präzision als DS1370. Siehe DS3231 vs DS1307
Pinbelegung
DS3231-Echtzeituhr-Modul enthält 10 Pins:
- 32K-Pin: Gibt den stabilen (temperaturkompensierten) und präzisen Referenz-Takt aus.
- SQW-Pin: erzeugt ein sauberes Rechtecksignal mit 1 Hz, 4 kHz, 8 kHz oder 32 kHz und lässt sich programmmgesteuert verwenden. Dies kann zudem als Interrupt aufgrund eines Alarmzustands in vielen zeitbasierten Anwendungen verwendet werden.
- SCL-Pin: ist ein Taktpin für die I2C-Schnittstelle.
- SDA-Pin: ist ein Datenpin für die I2C-Schnittstelle.
- VCC-Pin: versorgt das Modul mit Strom. Er kann im Bereich von 3,3 V bis 5,5 V liegen.
- GND-Pin: ist ein Massepin.
Für den normalen Gebrauch werden 4 Pins benötigt: VCC, GND, SDA, SCL.

Das DS3231-Modul verfügt auch über einen Batteriehalter.
- Wenn wir eine CR2032-Batterie einsetzen, läuft die Uhr des Moduls weiter, wenn die Hauptstromversorgung ausgeschaltet ist.
- Wenn wir keine Batterie einsetzen, geht die Uhrzeit verloren, wenn die Hauptstromversorgung ausgeschaltet ist, und Sie müssen die Uhrzeit erneut einstellen.
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 - DS3231 RTC-Modul
DS1307 RTC Module | ESP32 |
---|---|
Vin | 3.3V |
GND | GND |
SDA | GPIO21 |
SCL | GPIO22 |
Wie man das DS3231 RTC-Modul programmiert
- Die Bibliothek einbinden:
- Deklariere ein RTC-Objekt:
- RTC initialisieren:
- Zum ersten Mal das RTC auf das Datum und die Uhrzeit des PCs einstellen, auf dem der Sketch kompiliert wurde
- Liest Datums- und Uhrzeitinformationen vom RTC-Modul
ESP32-Code – Wie man Datum und Uhrzeit erhält
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 gemäß dem obigen Bild an.
- Verbinden Sie das ESP32-Board über ein Micro-USB-Kabel mit Ihrem PC.
- Ö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 dann die RTC-Bibliothek von Adafruit.
- Klicken Sie auf den Install-Button, um die RTC-Bibliothek zu installieren.

- Sie werden möglicherweise aufgefordert, Abhängigkeiten für die Bibliothek zu installieren
- Installieren Sie alle Abhängigkeiten für die Bibliothek, indem Sie auf die Schaltfläche Alle installieren klicken.

- 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 Upload-Schaltfläche klicken.
- Öffnen Sie den seriellen Monitor in der Arduino IDE.
- Sehen Sie die Ausgabe im seriellen Monitor.
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.