Dieses Tutorial ist Teil von: ESP32-S3 RGB-LED-Matrix
Ein cooles Projekt zum Nachbauen für spaßige und praktische Anwendungen mit dem ESP32-S3 RGB-Matrix-Modul.
ESP32-S3 RGB-LED-Matrix-Internet-Uhr-Projekt - 5 Regenbogenfarben
ESP32-S3 Internetuhr mit Regenbogenfarbeffekt
Dieses Projekt ist eine ESP32-S3 RGB-Matrix-Uhr, die sich mit Wi-Fi verbindet, die lokale Zeit von einem NTP-Server synchronisiert und die Zeit scrollt inHH:MMformat über das integrierte 8×8 RGB NeoMatrix. Im Gegensatz zu festen oder zufälligen Farbvarianten verwendet diese Uhr ein sanftesRegenbogenfarbeneffekt, wo jedes Zeichen kontinuierlich durch das RGB-Spektrum wechselt, während es scrollt. Die Uhr zeigt auch regelmäßig das Datum an und passt die Helligkeit automatisch zwischen Tag und Nacht an.

Wie diese Uhr funktioniert
Sobald das ESP32-S3 über USB-C mit Strom versorgt wird, verbindet es sich mit Ihrem Wi-Fi-Netzwerk und ruft die aktuelle Ortszeit aus dem Internet ab. Das Display scrollt normalerweise die Uhrzeit, wechselt jedoch in einem festgelegten Intervall zur Anzeige des Datums. Sowohl die Uhrzeit als auch das Datum werden mit einem dynamischen Regenbogeneffekt dargestellt, wodurch ein lebendiges und animiertes Display auf der kleinen 8×8-Matrix entsteht.
Verwendete Bibliotheken
Das Skript basiert auf den folgenden Bibliotheken:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>InstallierenAdafruit NeoMatrixVerwenden des Arduino Bibliotheksmanagers. Seine Abhängigkeiten, einschließlichAdafruit GFX LibraryundAdafruit NeoPixel, wird automatisch installiert.

Wichtige Benutzerkonfiguration
Matrixdaten-Pin (integrierte RGB-Matrix)
Obwohl die RGB-Matrix an das ESP32-S3-Board angeschlossen ist, muss der Datenpin dennoch im Code definiert werden:

#define MATRIX_PIN 14GPIO 14 wird häufig auf ESP32-S3 RGB-Matrix-Boards verwendet. Wenn Ihre Board-Variante einen anderen Pin verwendet, aktualisieren Sie diesen Wert.
Wi-Fi-SSID und Passwort (groß- und kleinschreibung beachten)
Ersetzen Sie die Wi-Fi-Anmeldeinformationen durch Ihre eigenen Netzwerkdetails:
const char* WIFI_SSID = "your WIFI";
const char* WIFI_PASSWORD = "passW0rd";Wichtig:Wi-Fi-SSIDs sindgroß- und kleinschreibungsempfindlichEin SSID namens"Book"ist nicht dasselbe wie"book"Wenn die Groß- und Kleinschreibung nicht genau übereinstimmt, kann sich der ESP32-S3 nicht verbinden.
NTP-Server, Zeitzone und Sommerzeit
Die Uhr synchronisiert die Zeit über einen Internet-NTP-Server:
const char* ntpServer = "pool.ntp.org";Die lokale Zeit wird unter Verwendung dieser Zeitverschiebungen berechnet:
// Toronto-ish: UTC-5, plus 1 hour DST
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;gmtOffset_secUTC-Versatz in Sekunden (Beispiel: UTC-5 =-5 * 3600)daylightOffset_secVerwenden3600wenn die Sommerzeit aktiv ist, oder0wenn nicht verwendet
Diese Werte werden angewendet mit:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);Automatische Tages-/Nachthelligkeit
Die Helligkeit ändert sich automatisch je nach aktueller Uhrzeit:
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;Zwischen 22 Uhr und 6 Uhr dimmt die Matrix, um Blendung zu reduzieren. Während der Tagesstunden wird die normale Helligkeit wiederhergestellt.
Regenbogenfarbeneffekt
Dieses Projekt verwendet ein klassisches RGB-Farbrad, um sanfte Regenbogenfarben zu erzeugen. Jedes Zeichen wird mit einem leicht unterschiedlichen Farbversatz gezeichnet, und die Farben ändern sich im Laufe der Zeit, was eine fließende Regenbogenanimation erzeugt.
// Helper to create Rainbow Colors
uint32_t Wheel(byte WheelPos) {
WheelPos = 255 - WheelPos;
if (WheelPos < 85) {
return matrix.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
if (WheelPos < 170) {
WheelPos -= 85;
return matrix.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
WheelPos -= 170;
return matrix.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}Während der Text scrollt, bewegt sich jedes Zeichen durch das RGB-Spektrum und erzeugt einen kontinuierlichen Regenbogeneffekt, der auf dem kleinen 8×8-Display besonders beeindruckend aussieht.
Verhalten der Zeit- und Datumsanzeige
Die Uhr hat separate Puffer für Zeit und Datum.
- Zeit:
HH:MM - Datum:
MMM DD(zum BeispielJAN 08)
Das Datum wird in festen Intervallen angezeigt:
const uint32_t dateIntervalMs = 60000; // Show date every 1 minuteAm Ende jedes vollständigen Scroll-Zyklus entscheidet der Code, ob die Uhrzeit weiterhin angezeigt wird oder ob zur Datumsanzeige gewechselt wird.
Scroll-Logik auf einer 8×8-Matrix
Da das Display nur 8 Pixel breit ist, scrollt der Text sanft von rechts nach links. Sobald der Text den Bildschirm vollständig verlässt, setzt sich der Cursor zurück und der nächste Inhalt (Uhrzeit oder Datum) wird für die nächste Durchgang geladen.
Demonstration
Nachdem Sie das Sketch hochgeladen und das Board über USB-C mit Strom versorgt haben:
- Der ESP32-S3 verbindet sich mit Ihrem Wi-Fi-Netzwerk.
- Die Zeit wird über das Internet synchronisiert.
- Die Zeit rollt herein.
HH:MMFormat - Das Datum erscheint periodisch.
- Aller Text wird mit einem sanften, animierten Regenbogeneffekt dargestellt.
- Der Bildschirm dimmt automatisch nachts und hellt sich tagsüber auf.
Downloads und Links
Der vollständige Quellcode wird unter diesem Artikel bereitgestellt. Nützliche Werkzeuge und Referenzen, einschließlich des RGB-Farbwähler, sind ebenfalls unter diesem Artikel verlinkt.
Dieses Tutorial ist Teil von: ESP32-S3 RGB-LED-Matrix
- ESP32-S3 RGB-LED-Matrix-Projekte (Kippspiel, Text, Pfeil, WiFi-Demo)
- ESP32-S3 RGB-LED-Matrix-Projekt 2 - Lauftext
- ESP32-S3 RGB-LED-Matrix-Projekt 3 - Text vom Mobiltelefon
- ESP32-S3 RGB-LED-Matrix-Projekt 4 - Neigungspunkt
- ESP32-S3 RGB-LED-Matrix-Projekt 5 - Pfeil immer nach oben
- ESP32-S3 RGB-LED-Matrix-Projekt 6 - Cible-Spiel
- ESP32-S3 RGB-LED-Matrix Wi-Fi + NTP-Uhrprojekt -1 Basisuhr
- ESP32-S3 RGB-LED-Matrix-Internet-Uhrprojekt - 2-Uhr mehrfarbige Zeit- und Datumsanzeige
- ESP32-S3 RGB-LED-Matrix-Internet-Uhr-Projekt - 3 Nachtfarben mit Datum
- ESP32-S3 RGB-LED-Matrix-Internet-Uhr Projekt - 4 Zufallsfarben
- ESP32-S3 RGB-LED-Matrix-Test für RGB-, GRB-Einstellung
Ressourcen & Referenzen
-
Video
-
Intern🎨 Color picker Toolrobojax.com
Dateien📁
Fritzing-Datei
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB