ESP32-S3 RGB-LED-Matrix-Internet-Uhrprojekt - 2-Uhr mehrfarbige Zeit- und Datumsanzeige

ESP32-S3 RGB-LED-Matrix-Internet-Uhrprojekt - 2-Uhr mehrfarbige Zeit- und Datumsanzeige

ESP32-S3 RGB NeoMatrix Internetuhr mit Zeit- und Datumsanzeige

Dieses Projekt ist eine verbesserte ESP32-S3 RGB-Matrix-Internet-Uhr, die nicht nur die aktuelle Uhrzeit anzeigt, sondern auch regelmäßig das Datum darstellt. Der ESP32-S3 verbindet sich mit Wi-Fi, synchronisiert die Zeit von einem NTP-Server und scrollt entwederHH:MModer das Datum (zum BeispielSEP 21) über eine 8×8 RGB NeoMatrix. Die Anzeige unterstützt eine automatische Helligkeitsregelung für Tag/Nacht und anpassbare RGB-Farben.

ESP32-s3_Internet_Uhr_Animation

Was diese Uhr macht

Nachdem Sie sich mit Ihrem Wi-Fi-Netzwerk verbunden haben, ruft der ESP32-S3 die aktuelle lokale Uhrzeit aus dem Internet ab. Die Uhr zeigt normalerweise die Zeit an, wechselt jedoch in einem festen Intervall zur Anzeige des Datums. Die Textfarbe kann auf eine Farbe festgelegt oder automatisch durch mehrere benutzerdefinierte Farben wechseln. Die Helligkeit wird nachts automatisch reduziert, um das Display augenfreundlicher zu gestalten.

Verwendete Bibliotheken

Dieser Sketch hängt von den folgenden Bibliotheken ab:

#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 Benutzerkonfiguration

Wi-Fi-SSID und Passwort (groß- und kleinschreibung ist relevant)

Sie müssen die Wi-Fi-Zugangsdaten durch Ihre eigenen Netzwerkinformationen ersetzen:

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

Wichtig:Wi-Fi-SSIDs sindgroß- und kleinschreibung beachten. Zum Beispiel ein SSID mit dem Namen"Book"istnichtdas gleiche wie"book"Wenn die Groß- und Kleinschreibung nicht genau übereinstimmt, wird der ESP32 keine Verbindung herstellen.

NTP-Server, Zeitzone und Sommerzeit

Die Uhr verwendet einen Internet-Zeitserver:

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

Ortszeit wird unter Verwendung dieser Zeitverschiebungen berechnet:

const long  gmtOffset_sec     = -5 * 3600; 
const int   daylightOffset_sec = 3600;
  • gmtOffset_secIhr UTC-Offset in Sekunden (Beispiel: UTC-5 =-5 * 3600)
  • daylightOffset_secVerwenden3600für DST oder0wenn die Sommerzeit nicht verwendet wird

Diese Einstellungen werden angewendet mit:

configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);

Helligkeitsregelung (Tag / Nacht)

Dieses Projekt passt die Helligkeit automatisch basierend auf der Tageszeit 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 Uhr und 6 Uhr wird die Helligkeit reduziert, um das Display in dunklen Umgebungen weniger ablenkend zu machen. Sie können diese Werte an Ihre Vorlieben anpassen.

RGB-Farbkonfiguration

Die Uhr unterstützt sowohl den festen Farbbereich als auch das automatische Farbwechseln. Benutzerspezifische RGB-Farben werden in einem Array gespeichert:

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
};

Jede Farbe verwendet RGB (Rot, Grün, Blau) Werte im Bereich von 0 bis 255. Durch Ändern dieser Zahlen können Sie praktisch jede Farbe für das Display erstellen. WennuseFixedColorist eingestellt auftrue, die Uhr verwendet immer eine Farbe. Wenn sie aufgestellt ist zufalseDie Farbe ändert sich automatisch nach jedem vollständigen Scrollen.

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

Datum- und Zeitformatierung

Die Zeit ist formatiert alsHH:MMund in einem kleinen Zeichenpuffer gespeichert. Das Datum ist als Großbuchstabenzeichenkette formatiert, wie zum BeispielSEP 21Das Display schaltet automatisch in einem festen Intervall zwischen Uhrzeit und Datum um.

Scroll-Logik auf einem 8×8-Display

Da eine 8×8-Matrix zu klein ist, um den gesamten Text auf einmal anzuzeigen, scrollt das Sketch den Text horizontal. Sobald der Text die Anzeige vollständig verlässt, wird die Farbe aktualisiert und der Inhalt wechselt bei Bedarf zwischen Uhrzeit und Datum.

Demonstration

Nach dem Hochladen des Entwurfs:

  • Der ESP32 verbindet sich mit Wi-Fi.
  • Die Zeit wird vom Internet synchronisiert.
  • Die aktuelle Zeit läuft über die Matrix.
  • Das Datum erscheint gelegentlich.
  • Die Helligkeit passt sich automatisch tagsüber und nachts an.

Downloads und Links

Der vollständige Quellcode ist unter diesem Artikel aufgeführt. Links zu Teilen, Werkzeugen und Datenblättern sind ebenfalls 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
869-ESP32-S3 RGB LED Matrix Internte Clock Project 2 - Multi Color with Date
Sprache: C++
Kopiert!

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Dateien📁

Fritzing-Datei