Questo tutorial è parte di: Matrice LED RGB ESP32-S3
Fantastico progetto da realizzare per applicazioni pratiche e divertenti utilizzando il modulo ESP32-S3 RGB Matrix.
Progetto Orologio Internet con Matrice LED RGB ESP32-S3 - 4 Colori casuali
Orologio Internet ESP32-S3 con Colori RGB Casuali
Questo progetto è un orologio Internet RGB Matrix ESP32-S3 che si collega al Wi-Fi, sincronizza l'ora locale da un server NTP e scorre l'ora inHH:MMformato attraverso il NeoMatrix RGB 8×8 integrato. In questa versione, le ore, i due punti e i minuti sono ciascuno rappresentati incolori casualiselezionato ad ogni ciclo completo di scorrimento, creando un display orario dinamico e giocoso che cambia costantemente.

Come funziona questo orologio
Dopo aver alimentato la scheda tramite USB-C, l'ESP32-S3 si connette alla tua rete Wi-Fi e recupera l'ora locale corrente da Internet. L'ora è suddivisa in tre parti: ore, due punti e minuti, e ciascuna parte viene disegnata separatamente sulla matrice RGB. Quando il testo scorre completamente fuori dallo schermo, vengono scelti nuovi colori casuali per il passaggio successivo.
Librerie utilizzate
Questo schizzo utilizza le seguenti librerie:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>InstallaAdafruit NeoMatrixdalla Gestione Librerie di Arduino. Dipendenze necessarie comeAdafruit GFX LibraryeAdafruit NeoPixelverrà installato automaticamente.

Configurazione importante dell'utente
Pin dati della matrice (matrice RGB integrata)
Sebbene la matrice RGB sia integrata sulla scheda, il pin dei dati deve comunque essere definito nel codice:

#define MATRIX_PIN 14GPIO 14 è comunemente utilizzato sulle schede matrice RGB ESP32-S3. Se la variante della tua scheda utilizza un pin diverso, aggiorna questo valore di conseguenza.
SSID e password Wi-Fi (differenziali maiuscole e minuscole)
Sostituisci le credenziali Wi-Fi con i dettagli della tua rete.
const char* WIFI_SSID = "your WiFi SSID";
const char* WIFI_PASSWORD = "passW0rd";Importante:Le SSID Wi-Fi sonosensibile alle maiuscole. Un SSID chiamato"Book"non è lo stesso di"book"Se la capitalizzazione non corrisponde esattamente, l'ESP32-S3 non riuscirà a connettersi.
Server NTP, fuso orario e ora legale
La sincronizzazione dell'ora viene effettuata utilizzando un server NTP di Internet:
const char* ntpServer = "pool.ntp.org";L'ora locale è calcolata utilizzando UTC e i fusi orari dell'ora legale:
// Toronto-ish: UTC-5, plus 1 hour DST
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;gmtOffset_secOffset UTC in secondi (regola in base alla tua posizione)daylightOffset_secUsa3600quando l'ora legale è attiva, o0altrimenti
Queste impostazioni vengono applicate utilizzando:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);Luminosità automatica giorno/notte
L'orologio regola automaticamente la luminosità in base all'ora corrente:
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;Tra le 22:00 e le 6:00, il display si attenua per ridurre l'abbagliamento in ambienti bui. Durante le ore diurne, il display torna alla luminosità normale.
Comportamento casuale del colore RGB
Un elenco predefinito di colori RGB è memorizzato in un array, in cui ciascun colore è definito usando valori di Rosso, Verde e Blu che vanno da 0 a 255:
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
};Ad ogni ciclo completo di scorrimento:
- Ilnumeri delle oreviene assegnato un colore casuale
- Ildue puntiriceve un colore casuale diverso
- Ilminuti cifrericevere un altro colore casuale
Questo produce una combinazione di colori in continuo cambiamento che mantiene l'orologio visivamente interessante. Per creare i tuoi colori personalizzati, puoi utilizzare lo strumento Selettore Colori RGB:Selettore colore RGB.
Logica di rendering del tempo
Il tempo è suddiviso in tre componenti:
- Ore:
HH - Due punti:
: - Minuti:
MM
Ogni parte è disegnata individualmente in modo che possa avere il proprio colore, mentre tutte le parti si muovono insieme per formare un'animazione scorrevole fluida sul display 8×8.
Generazione casuale di colori
Per garantire la casualità dei colori, il disegno semina il generatore di numeri casuali all'avvio utilizzando un pin analogico non collegato:
randomSeed(analogRead(0));Questo assicura che le combinazioni di colori siano diverse ad ogni potenziamento e ad ogni ciclo di scorrimento.
Dimostrazione
Dopo aver caricato lo sketch e alimentato la scheda tramite USB-C:
- L'ESP32-S3 si connette alla tua rete Wi-Fi.
- Il tempo è sincronizzato da Internet.
- Il tempo scorre dentro
HH:MMformato - Le ore, i punti e i minuti cambiano colore casualmente ad ogni ciclo.
- Il display si oscura automaticamente di notte.
Download e link
Il codice sorgente completo è fornito sotto questo articolo. Strumenti e riferimenti utili sono collegati sotto questo articolo.
Questo tutorial è parte di: Matrice LED RGB ESP32-S3
- Progetti con Matrice LED RGB ESP32-S3 (Gioco Inclinazione, Testo, Freccia, Demo WiFi)
- Progetto Matrice LED RGB ESP32-S3 2 - Testo Scorrevole
- Progetto ESP32-S3 Matrice LED RGB 3 - Testo da telefono cellulare
- Progetto Matrice LED RGB ESP32-S3 4 - Punta inclinata
- Progetto Matrice LED RGB ESP32-S3 5 - Freccia sempre verso l'alto
- Progetto 6 della matrice LED RGB ESP32-S3 - Gioco Cible
- Progetto Orologio Base con Matrice LED RGB ESP32-S3 Wi-Fi + Orologio NTP -1
- Progetto Orologio Internet con Matrice LED RGB ESP32-S3 - Orologio a colori multipli con visualizzazione di Ora e Data
- Progetto Orologio Internet con Matrice LED RGB ESP32-S3 - Colore Notte 3 con Data
- Progetto di orologio Internet con matrice LED RGB ESP32-S3 - 5 colori arcobaleno
- Test della matrice LED RGB ESP32-S3 per impostazione RGB, GRB
Risorse e riferimenti
-
Video
-
Interno🎨 Color picker Toolrobojax.com
File📁
File Fritzing
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB