Display a messaggio variabile controllato dal web con ESP32

Un display a messaggio variabile di solito richiede di ricompilare il firmware per ogni modifica. Questo progetto elimina il problema: una matrice LED WS2812B 8×8 viene pilotata da un ESP32 che ospita un pannello di controllo web. Da lì si cambia il messaggio, la modalità, i colori, la luminosità e la velocità di scorrimento.

Il cuore del sistema è una scheda di sviluppo ESP32 collegata al modulo LED tramite il GPIO 5. Il firmware usa le librerie Adafruit NeoPixel e Adafruit GFX Library, con una sottoclasse che applica gradienti di colore ai pixel. La configurazione avviene da browser, senza toccare una riga di codice.

Prima accensione e configurazione Wi-Fi

Alla prima accensione, WiFiManager crea un access point chiamato LED-Matrix-Setup. Collegandosi a questa rete si apre un portale captive che chiede le credenziali Wi-Fi. Una volta inserite, l’ESP32 si connette alla rete locale e mostra il suo indirizzo IP.

Se la rete cambia o si sbagliano le credenziali, non serve riflashare la scheda. Tenendo premuto il pulsante BOOT per 5 secondi si cancellano i dati salvati e si riparte da zero. Questa funzione è comoda anche per spostare il display in un’altra casa o in un altro ufficio.

Alimentazione e numeri da rispettare

La matrice WS2812B richiede 5V DC. Ogni LED può assorbire fino a circa 60mA a piena luminosità e bianco pieno. Una singola matrice 8×8 ha 64 LED e in condizioni peggiori può assorbire fino a 3.84A. Il progetto supporta fino a 5 moduli, pari a 320 LED con un assorbimento teorico massimo di oltre 19A al 100% di luminosità.

Per questo motivo la scelta dell’alimentatore è critica. Per un massimo di 3 moduli a luminosità moderata è consigliato un alimentatore 5V 5A. Per 4-5 moduli serve un alimentatore 5V 8-10A. In ogni caso, la luminosità predefinita è 60 su una scala da 0 a 255, un valore che tiene i consumi sotto controllo.

Sul pin dati va inserita una resistenza da 470Ω-560Ω, per proteggere l’ingresso del primo LED da eventuali spike. Un condensatore elettrolitico da 1000µF con tensione minima di 6.3V va posto vicino all’alimentazione della matrice, per stabilizzare la tensione durante i picchi di assorbimento.

Funzioni del pannello web e salvataggio

Il pannello di controllo web permette di scegliere tra diverse modalità: testo scorrevole, orologio ed effetti. L’orologio si sincronizza via NTP e si adatta al fuso orario selezionato. I colori si impostano singolarmente o con gradienti, grazie alla sottoclasse che intercetta i pixel.

Le impostazioni vengono salvate nella memoria flash dell’ESP32 tramite la libreria Preferences. Dopo un taglio di corrente, il display riparte con la configurazione precedente senza interventi manuali. La velocità di scorrimento e la luminosità si regolano da browser, con aggiornamento immediato.

  • Scheda di sviluppo ESP32 con GPIO 5 libero
  • Modulo matrice LED WS2812B 8×8 (fino a 5 moduli)
  • Resistenza 470Ω-560Ω sul pin dati
  • Condensatore elettrolitico 1000µF, almeno 6.3V
  • Alimentatore 5V con corrente adeguata al numero di moduli

Il codice sorgente e la guida al montaggio sono disponibili sul sito del maker. Il sito del maker raccoglie il firmware completo, le librerie necessarie e le istruzioni per il collegamento dei moduli. Chi vuole estendere il progetto può partire da quella base e aggiungere nuove modalità o effetti.

Per chi parte da zero, il kit di sviluppo ESP32-C6-Zero IoT Development Kit offre una piattaforma completa con Wi-Fi 6 e periferiche integrate. La scheda si programma con Arduino IDE, lo stesso ambiente usato dal progetto originale. In alternativa, un semplice modulo ESP32 Development Board è sufficiente, purché abbia il GPIO 5 accessibile.

La matrice flessibile Pannello 16X16 LED Neopixel WS2812B è un’opzione per chi vuole una superficie più grande: 256 LED in formato 16×16, sempre con chip WS2812B. Attenzione però ai consumi: con 4 volte i LED di un singolo modulo 8×8, il dimensionamento dell’alimentatore va ricalcolato con cura.


Fonte: https://www.circuitschools.com/esp32-ws2812b-8×8-matrix-display-with-web-server/

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Menu