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 - 4 Zufallsfarben
ESP32-S3 Internet-Uhr mit zufälligen RGB-Farben
Dieses Projekt ist eine ESP32-S3 RGB-Matrix-Internet-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. In dieser Version werden die Stunden, der Doppelpunkt und die Minuten jeweils dargestellt inzufällige Farbenausgewählt bei jedem vollständigen Scroll-Zyklus, wodurch eine dynamische und verspielte Uhranzeige entsteht, die sich ständig verändert.

Wie diese Uhr funktioniert
Nachdem das Board über USB-C mit Strom versorgt wird, verbindet sich das ESP32-S3 mit Ihrem WLAN und ruft die aktuelle lokale Uhrzeit aus dem Internet ab. Die Zeit wird in drei Teile aufgeteilt - Stunden, Doppelpunkt und Minuten - und jeder Teil wird separat auf der RGB-Matrix angezeigt. Wenn der Text vollständig vom Bildschirm gescrollt ist, werden neue zufällige Farben für den nächsten Durchlauf ausgewählt.
Verwendete Bibliotheken
Dieser Sketch verwendet die folgenden Bibliotheken:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>InstallierenAdafruit NeoMatrixaus dem Arduino-Bibliotheks-Manager. Benötigte Abhängigkeiten wieAdafruit GFX LibraryundAdafruit NeoPixelwird automatisch installiert.

Wichtige Benutzereinstellungen
Matrix-Daten-Pin (integrierte RGB-Matrix)
Obwohl die RGB-Matrix auf der Platine integriert ist, muss der Datapin 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 entsprechend.
Wi-Fi-SSID und Passwort (groß- und kleinschreibungssensitiv)
Ersetzen Sie die Wi-Fi-Anmeldeinformationen mit Ihren eigenen Netzwerkdetails:
const char* WIFI_SSID = "your WiFi SSID";
const char* WIFI_PASSWORD = "passW0rd";Wichtig:Wi-Fi-SSIDs sindgroß- und kleinschreibungsempfindlich. Ein SSID namens"Book"ist nicht das gleiche wie"book"Wenn die Groß- und Kleinschreibung nicht genau übereinstimmt, wird der ESP32-S3 keine Verbindung herstellen.
NTP-Server, Zeitzone und Sommerzeit
Die Zeitsynchronisation erfolgt über einen Internet-NTP-Server:
const char* ntpServer = "pool.ntp.org";Die lokale Zeit wird unter Verwendung von UTC und den Zeitverschiebungen für die Sommerzeit 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 (passen Sie es an Ihren Standort an)daylightOffset_secBenutzen3600wenn die Sommerzeit aktiv ist, oder0ansonsten
Diese Einstellungen werden angewendet mit:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);Automatische Helligkeit für Tag/Nacht
Die Uhr passt die Helligkeit automatisch basierend auf der aktuellen Stunde an:
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;Zwischen 22:00 Uhr und 6:00 Uhr wird das Display abgedunkelt, um Blendung in dunklen Umgebungen zu reduzieren. Während der Tagesstunden kehrt die Matrix zur normalen Helligkeit zurück.
Zufälliges RGB-Farbenverhalten
Eine vordefinierte Liste von RGB-Farben wird in einem Array gespeichert, wobei jede Farbe mit Rot-, Grün- und Blauwerten von 0 bis 255 definiert ist:
uint8_t userColors[][3] = {
{255, 0, 0}, // Red
{0, 255, 0}, // Green
{0, 0, 255}, // Blue
{255, 165, 0}, // Orange
{255, 0, 255}, // Magenta
{0, 255, 255}, // Cyan
{255, 255, 0} // Yellow
};Bei jedem vollständigen Scroll-Zyklus:
- DieStundenzahlenwerden eine zufällige Farbe zugewiesen
- DieDoppelpunkterhält eine andere zufällige Farbe
- DieMinutenziffernempfange eine weitere zufällige Farbe
Dies erzeugt eine ständig wechselnde Farbkombination, die die Uhr visuell interessant hält. Um Ihre eigenen benutzerdefinierten Farben zu erstellen, können Sie das RGB-Farbwähler-Tool verwenden:RGB-Farbauswahl.
Zeit Render-Logik
Die Zeit wird in drei Komponenten unterteilt:
- Stunden:
HH - Doppelpunkt:
: - Minuten:
MM
Jeder Teil wird einzeln gezeichnet, sodass er seine eigene Farbe haben kann, während sich alle Teile gemeinsam bewegen, um eine sanfte Scrollanimation über das 8×8-Display zu bilden.
Zufällige Farbgenerierung
Um die Farbzufälligkeit zu gewährleisten, initialisiert der Sketch den Zufallszahlengenerator beim Start über einen unverbundenen analogen Pin:
randomSeed(analogRead(0));Das stellt sicher, dass die Farbkombinationen bei jedem Power-up und jedem Scroll-Zyklus unterschiedlich sind.
Demonstration
Nachdem Sie den Sketch hochgeladen und das Board über USB-C mit Strom versorgt haben:
- Der ESP32-S3 verbindet sich mit Ihrem Wi-Fi-Netzwerk.
- Die Zeit ist vom Internet synchronisiert.
- Die Zeit rollt herein
HH:MMFormat - Stunden, Doppelpunkt und Minuten ändern sich in jeder Runde in zufällige Farben.
- Der Bildschirm dimmt sich nachts automatisch.
Downloads und Links
Der vollständige Quellcode wird unterhalb dieses Artikels bereitgestellt. Nützliche Werkzeuge und Referenzen sind unterhalb dieses Artikels 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 - 5 Regenbogenfarben
- 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