Arduino Nano ESP32 Web-RTC mit DIYables ESP32 WebApps Bibliothek
Überblick
Dieses Tutorial behandelt die Klasse DIYablesWebRTCPage aus der DIYables ESP32 WebApps Bibliothek. Die Browserseite zeigt die aktuelle RTC-Zeit von Arduino Nano ESP32 neben der lokalen Zeit des Browsers an und berechnet die Abweichung zwischen ihnen. Ein einzelner Button sendet die lokale Zeit des Browsers an das Board, das sein RTC-Modul aktualisiert.
Das Board erfordert ein DS3231-Hardware-RTC-Modul, das über I2C verbunden ist. Die RTClib-Bibliothek von Adafruit verwaltet das Lesen und Schreiben der Zeit auf der Board-Seite.

Was dieses Tutorial behandelt
- Verdrahtung eines DS3231-RTC-Moduls mit dem Arduino Nano ESP32
- Installation der RTClib-Abhängigkeit
- Lesen und Anzeigen der RTC-Zeit im Browser
- Synchronisierung des Board-RTC vom Browser mit einem Tastendruck
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Arduino Nano ESP32 - DS3231 RTC Modul
| DS1307 RTC Module | Arduino Nano ESP32 |
|---|---|
| Vin | 3.3V |
| GND | GND |
| SDA | GPIO21 |
| SCL | GPIO22 |
Schritte
Folgen Sie diesen Anweisungen Schritt für Schritt:
- Wenn Sie die Arduino Nano ESP32 zum ersten Mal verwenden, lesen Sie das Tutorial zum Einrichten der Arduino Nano ESP32-Entwicklungsumgebung.
- Verbinden Sie das Arduino Nano ESP32 Board mit Ihrem Computer über ein USB-Kabel.
- Starten Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das entsprechende Board (z.B. Arduino Nano ESP32) und den COM-Port.
- Navigieren Sie zum Symbol Bibliotheken in der linken Leiste der Arduino IDE.
- Suchen Sie "DIYables ESP32 WebApps", dann finden Sie die DIYables ESP32 WebApps Bibliothek von DIYables
- Klicken Sie auf die Schaltfläche Installieren, um die Bibliothek zu installieren.
- Search for DIYables ESP32 WebApps created by DIYables and click the Install button.
- Sie werden aufgefordert, einige andere Bibliothekenabhängigkeiten zu installieren
- Klicken Sie auf die Schaltfläche Alle installieren, um alle Bibliothekenabhängigkeiten zu installieren.
- Suchen Sie "RTClib", dann finden Sie die RTC-Bibliothek von Adafruit
- Klicken Sie auf die Schaltfläche Installieren, um die RTC-Bibliothek zu installieren.
- Search for RTClib created by Adafruit and click the Install button.
- 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.
- Gehen Sie in der Arduino IDE zu Datei Beispiele DIYables ESP32 WebApps WebRTC Beispiel, oder kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Arduino IDE ein
- Aktualisieren Sie die WiFi-Anmeldedaten in der Skizze:
- Klicken Sie auf die Schaltfläche Upload in der Arduino IDE, um den Code auf Arduino Nano ESP32 hochzuladen
- Öffnen Sie den Seriellen Monitor
- Die Ausgabe des Seriellen Monitors sollte wie folgt aussehen:
- Wenn nichts angezeigt wird, drücken Sie die Reset-Taste auf dem Board.
- Geben Sie die IP-Adresse aus dem Seriellen Monitor in einen Browser im selben Netzwerk ein.
- Beispiel: http://192.168.0.2
- Die Startseite zeigt eine Karte für die RTC-Anwendung:

- Wählen Sie die Web RTC Karte, um die Uhroberfläche zu öffnen:

- Die Seite ist auch direkt unter http://192.168.0.2/web-rtc erreichbar.
Verwendung der Web-Oberfläche
Die RTC-Seite zeigt drei Abschnitte:
- Arduino-Zeit — die aktuelle Zeit aus dem DS3231-Modul des Boards
- Ihre Gerätezeit — die aktuelle lokale Zeit, die vom Browser gemeldet wird
- Zeitdifferenz — der Unterschied zwischen den beiden in Minuten
Zeitsynchronisierung
Klicken Sie auf die Schaltfläche Sync ESP32 Time, um die lokale Zeit des Browsers auf das Board zu übertragen:

Der Synchronisierungsprozess:
- Der Browser liest seine lokale Zeit (mit Berücksichtigung des lokalen Zeitzonenoffsets)
- Der Zeitstempel wird über WebSocket an das Board gesendet
- Die Skizze schreibt die empfangene Zeit an den DS3231
- Die Seite wird aktualisiert, um die aktualisierte Board-Zeit anzuzeigen
Nach der Synchronisierung beträgt der Zeitunterschied typischerweise 0–1 Minuten.
Fehlerbehebung
RTC-Zeit zeigt falschen Wert
- Der DS3231 behält die Zeit aus seiner Batterie, auch wenn das Board ausgeschaltet ist
- Führen Sie eine Synchronisierung vom Browser durch, um die richtige Zeit einzustellen
- Überprüfen Sie, dass die CR2032-Batterie im RTC-Modul installiert ist
I2C nicht erkannt
- Überprüfen Sie, dass die SDA- und SCL-Verdrahtung der obigen Tabelle entspricht
- Bestätigen Sie, dass der DS3231-VCC auf 3,3 V und nicht auf 5 V angeschlossen ist
- Fügen Sie eine Serial.println(rtc.isrunning())-Überprüfung im Setup hinzu
WebSocket wird häufig getrennt
- Bestätigen Sie, dass webAppsServer.loop() in jeder Iteration von loop() aufgerufen wird
- Vermeiden Sie lange blockierende Verzögerungen nach dem Starten des Servers
Kann auf die Seite nicht zugreifen
- Überprüfen Sie die IP-Adresse im Seriellen Monitor
- Stellen Sie sicher, dass das Browser-Gerät und das Board im selben 2,4-GHz-WiFi-Netzwerk verbunden sind