ESP32-S3 RGB-LED-Matrix-Internet-Uhr-Projekt - 3 Nachtfarben mit Datum

ESP32-S3 RGB-LED-Matrix-Internet-Uhr-Projekt - 3 Nachtfarben mit Datum

ESP32-S3 RGB NeoMatrix Internetuhr mit automatischer Tages-/Nachthelligkeit

Dieses Projekt ist eine ESP32-S3 RGB-Matrix-Internet-Uhr, die die Helligkeit tagsüber und nachts automatisch anpasst. Der ESP32-S3 verbindet sich mit Wi-Fi, synchronisiert die aktuelle Uhrzeit von einem NTP-Server und scrollt die Uhrzeit inHH:MMFormat über ein 8×8 RGB NeoMatrix. Die Uhr unterstützt auch feste oder wechselnde RGB-Farben für den Anzeigetext.

Was diese Uhr macht

Nach dem Einschalten verbindet sich der ESP32-S3 mit Ihrem WLAN-Netzwerk und ruft die aktuelle lokale Zeit aus dem Internet ab. Die Zeit scrollt sanft über die LED-Matrix. In der Nacht dimmt der Bildschirm automatisch auf eine niedrigere Helligkeit, während er tagsüber wieder auf eine hellere Stufe umschaltet.

ESP32-s3_Internet-Uhr-Animation

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. Alle erforderlichen Abhängigkeiten wieAdafruit GFX LibraryundAdafruit NeoPixelwird automatisch installiert.

Wichtige Benutzereinstellungen

Wi-Fi-SSID und Passwort (groß- und kleinschreibung beachten)

Ersetzen Sie die folgenden Werte durch Ihre eigenen Wi-Fi-Anmeldeinformationen:

const char* WIFI_SSID     = "WiFi";
const char* WIFI_PASSWORD = "passW0rd";

Wichtig:Wi-Fi-SSIDs sindgroß- und kleinschreibungsempfindlichEin SSID namens"Book"istnichtdas gleiche wie"book"Wenn die Groß- und Kleinschreibung nicht genau übereinstimmt, kann sich der ESP32 nicht verbinden.

NTP-Server, Zeitzone und Sommerzeit

Die Uhr synchronisiert die Zeit über den folgenden NTP-Server:

const char* ntpServer = "pool.ntp.org";

Die lokale Zeit wird unter Verwendung dieser Offsets berechnet:

const long  gmtOffset_sec     = -5 * 3600; 
const int   daylightOffset_sec = 3600;
  • gmtOffset_secdefiniert Ihren UTC-Versatz in Sekunden
  • daylightOffset_secfügt eine Stunde hinzu, wenn die Sommerzeit aktiv ist (verwenden0wenn nicht benötigt)

Diese Werte werden angewendet mit:

configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);

Automatische Tages-/Nachthelligkeit

Die Displayhelligkeit ändert sich automatisch basierend auf der aktuellen Uhrzeit:

const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22; // 10 PM
const int NIGHT_END_HOUR = 6;    // 6 AM

Zwischen 22 Uhr und 6 Uhr wird die Matrixhelligkeit reduziert, um es in dunklen Umgebungen komfortabel zu machen. Außerhalb dieser Zeiten wird die volle Tageshelligkeit wiederhergestellt. Sie können diese Werte an Ihre Raumbeleuchtung anpassen.

RGB-Farbkonfiguration

Die Textfarbe der Uhr wird mit RGB-Werten (Rot, Grün, Blau) definiert, wobei jeder Kanal von 0 bis 255 reicht. Mehrere Farben können in einem Array gespeichert und automatisch durchgeschaltet werden:

uint8_t userColors[][3] = {
  {17, 43, 171},  // Light Blue
  {255, 0, 0},    // Red
  {0, 255, 0},    // Green
  {255, 165, 0},  // Orange
  {255, 0, 255}   // Magenta
};

WennuseFixedColorist eingestellt auftrue, die Uhr verwendet immer eine Farbe. Wenn eingestellt auffalseDie Farbe ändert sich automatisch nach jedem vollständigen Scrollen der Zeit.

Um schnell die genauen RGB-Werte für jede Farbe zu finden, verwenden Sie das RGB-Farbwähler-Tool:RGB-Farbwähler.

Uhranzeige und Scrollen

Die aktuelle Zeit ist formatiert alsHH:MMund in einem kleinen Zeichenpuffer gespeichert. Da das Display nur 8 Pixel breit ist, scrollt der Text sanft von rechts nach links. Sobald die Zeit das Display vollständig verlässt, wird die nächste Farbe (sofern aktiviert) für den nächsten Durchlauf ausgewählt.

Demonstration

Nach dem Hochladen des Skizze:

  • Der ESP32-S3 verbindet sich mit Wi-Fi.
  • Die Zeit wird über das Internet synchronisiert.
  • Die aktuelle Uhrzeit wird über die RGB-Matrix angezeigt.
  • Die Helligkeit ändert sich automatisch zwischen Tag und Nacht.
  • Die Textfarbe bleibt fest oder wechselt je nach Ihren Einstellungen.

Downloads und Links

Der vollständige Quellcode ist unter diesem Artikel verfügbar. Links zu Teilen, Werkzeugen und Datenblättern sind unter diesem Artikel verfügbar.

Bilder

ESP32 S3 Matrix
ESP32 S3 Matrix
ESP32 S3 Matrix  pin out
ESP32 S3 Matrix pin out
ESP32-S3_RGB_8x8_matrix-3
ESP32-S3_RGB_8x8_matrix-3
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix-2
ESP32-S3_RGB_8x8_matrix-2
ESP32-s3_internet_clock_animation
ESP32-s3_internet_clock_animation
870-ESP32-S3 RGB LED Matrix Internte Clock Project 3 - Night Color with Date
Sprache: C++
Kopiert!

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Dateien📁

Fritzing-Datei