Smart Display funge da interfaccia uomo-macchina e comunica con il modulo ESP32-C3 tramite comunicazione seriale UART. ESP32-C3 gestisce la connettività WiFi e richiama l’Open API dei pannelli luminosi intelligenti Nanoleaf Shapes per eseguire test di controllo dell’illuminazione e di interrogazione delle scene. Questo documento si concentra sui test preliminari in cui Smart Display invia comandi UART personalizzati a ESP32-C3, al fine di verificare la fattibilità della comunicazione UART, della connessione WiFi e delle chiamate API Nanoleaf. Questa fase costituisce la base per il successivo sviluppo di un sistema completo di controllo tramite smart display, dimostrando l’affidabilità del bridge UART e dell’integrazione con API IoT.

Architettura del sistema
Smart Display ↔ UART ↔ ESP32-C3 ↔ WiFi ↔ Nanoleaf Shapes (Open API)

Requisiti hardware
1.Smart Display
- WINSTAR Smart Display (supporta GUI TouchGFX)

2.ESP32-C3-DevKitC-02
- Convertitore di alimentazione: ingresso 5V, uscita 3,3V.

3.Nanoleaf Shapes
- Protocollo di comunicazione: WiFi (2.4 GHz b/g/n)
- Tensione: 100VAC - 240VAC
- Potenza massima: 42W
- Consumo massimo per pannello: 2W

Test di controllo da PC
1.Configurazione di Nanoleaf Shapes
⏹︎ Associazione del dispositivo Shapes tramite app mobile (iOS)
- L’app ufficiale Nanoleaf è disponibile su App Store.
- Associare il dispositivo Shapes
- Nella Dashboard, toccare l’icona della matita in alto a destra.
- Toccare “Add Device +”.
- L’app aprirà automaticamente la finestra di associazione.
- Seguire le istruzioni sullo schermo scegliendo una delle seguenti opzioni:
Opzione A: scansionare il codice QR
Opzione B: inserire il codice di associazione a 8 cifre riportato sull’alimentatore, sul controller oppure nella Quick Start Guide / Welcome Card
Opzione C: utilizzare l’associazione NFC, avvicinando la parte superiore del dispositivo mobile ai pulsanti del controller
- Al termine, Nanoleaf Shapes risulterà connesso e pronto all’uso.
⏹︎ Download delle scene su Nanoleaf Shapes

2.Configurazione di ESP32-C3
⏹︎ Configurazione di ESP32-C3 tramite PC
PC-->USB to UART converter-->esp32-c3

⏹︎ Impostazione della modalità Station
Le modalità WiFi di ESP32-C3 sono simili a quelle di ESP32 ed ESP8266 e supportano le seguenti tre modalità comuni:
- Modalità Station (STA mode): ESP32-C3 opera come client e si connette a un router WiFi esistente (ad esempio una rete domestica). In questa modalità il dispositivo può accedere a Internet o comunicare con altri dispositivi presenti sulla rete, ma non crea un proprio hotspot. Esempio di applicazione: sensori che caricano dati sul cloud (ad es. MQTT, HTTP).
- Modalità SoftAP (AP mode, Soft Access Point): ESP32-C3 diventa esso stesso un hotspot WiFi, consentendo ad altri dispositivi (ad es. smartphone, computer) di collegarsi direttamente. Questa modalità viene normalmente utilizzata per la configurazione iniziale della rete o per il controllo locale. L’SSID predefinito è solitamente qualcosa come "ESP32-AP", con IP predefinito 192.168.4.1. ESP32-C3 supporta fino a 4 client connessi contemporaneamente (leggermente meno rispetto a ESP8266). Esempio di applicazione: utilizzo di un’app mobile (ad es. EspTouch, pagina web di configurazione) per inserire le credenziali del WiFi domestico.
- Modalità Station + SoftAP (STA+AP concurrent mode): entrambe le modalità STA e AP sono abilitate contemporaneamente. ESP32-C3 si collega al router per l’accesso a Internet e allo stesso tempo fornisce il proprio hotspot per consentire la connessione diretta da smartphone. È la modalità più comune nelle applicazioni smart home: permette il normale invio di dati al cloud, mantenendo al tempo stesso il controllo locale da smartphone anche in assenza di Internet. Nota: ESP32-C3 dispone di un’unica antenna, pertanto le due modalità condividono lo stesso canale e le prestazioni risultano leggermente inferiori rispetto alla modalità singola, ma comunque sufficienti per la maggior parte delle applicazioni.
AT: AT+CWMODE=1

⏹︎ Connessione all’hotspot Nanoleaf Shapes (senza password in modalità pairing)
- AT+CWJAP: ESP32-C3 (in modalità Station) si connette al punto di accesso WiFi specificato.
- "Shapes 4992": questo è l’SSID WiFi del pannello luminoso Nanoleaf Shapes.
- "": password vuota (i pannelli Nanoleaf in modalità di configurazione iniziale o di pairing dopo reset forniscono normalmente un hotspot aperto senza password).
AT: AT+CWJAP="Shapes 4992",""

⏹︎ Verifica dell’indirizzo IP ottenuto
ESP32-C3 ottiene un indirizzo IP assegnato dal pannello (in genere nel segmento 192.168.x.x).
AT: AT+CIPSTA?

⏹︎ Ottenimento del token Nanoleaf (tenere premuto il controller per entrare in modalità pairing)
- L’indirizzo è fisso su http://192.168.2.1:16021/api/v1/new quando si è collegati all’hotspot del pannello.
- In caso di successo viene restituito un JSON del tipo {"auth_token": "your long token"}. Prima di tutto, portare Shapes in modalità pairing.
Prima di tutto, portare Shapes in modalità pairing.

Ottenimento del token Shapes:
AT:AT+HTTPCLIENT=3,0,"http://192.168.2.1:16021/api/v1/new",,,1,""

⏹︎ Recupero dell’elenco delle scene di Nanoleaf Shapes
AT+HTTPCLIENT è un comando HTTP client comunemente utilizzato, adatto all’interazione con l’API Nanoleaf (ad esempio per recuperare informazioni, interrogare l’elenco delle scene, ecc.).
AT:AT+HTTPCLIENT=2,1,"http://192.168.2.1:16021/api/v1/FXzbb1CapQ3e0GJsxrga6RvVKWXVjrbA/effects/effectsList",,,1

⏹︎ Controllo di accensione delle luci Shapes
Utilizzare HTTP PUT per inviare una richiesta di accensione delle luci.
AT:AT+HTTPCPUT="http://192.168.2.1:16021/api/v1/FXzbb1CapQ3e0GJsxrga6RvVKWXVjrbA/state",23,2,"connection: keep-alive","content-type: application/json"

AT: {"on": {"value": true}}


⏹︎ Controllo di spegnimento delle luci Shapes
Utilizzare HTTP PUT per inviare una richiesta di spegnimento delle luci.
AT:AT+HTTPCPUT="http://192.168.2.1:16021/api/v1/FXzbb1CapQ3e0GJsxrga6RvVKWXVjrbA/state",24,2,"connection: keep-alive","content-type: application/json"

AT: {"on": {"value": false}}


Test di integrazione (Smart Display + ESP32-C3)
Ambiente di sviluppo:
- STM32CubeIDE: 1.16.0
- TouchGFX : 4.24.2 Designer
1.Progettazione TouchGFX (creazione di un pulsante)

2.Implementazione del programma (winstar_screenView.cpp)
Aggiungere una funzione di trasmissione UART con un protocollo di comando personalizzato e semplificato.

Evento di clic sul pulsante: commuta lo stato e invia il comando UART corrispondente.

3.Test di accensione e spegnimento delle luci
Clic su Button1: il primo clic accende le luci, il secondo clic le spegne.
Fare clic su Button1 per accendere le luci
Fare nuovamente clic su Button1 per spegnere le luci
Conclusione
Questo test ha verificato con successo che Smart Display può controllare efficacemente il modulo ESP32-C3 tramite comandi seriali UART, connettersi alla rete e richiamare l’API di Nanoleaf Shapes, implementando rapidamente la funzione di accensione/spegnimento dei pannelli luminosi Nanoleaf Shapes. Ciò costituisce la base per il successivo sviluppo di un’interfaccia grafica utente (GUI) touch per il controllo dell’illuminazione. Il sistema offre bassa latenza, elevata stabilità e comunicazione affidabile. In futuro potrà essere esteso al controllo completo dell’illuminazione (ad esempio regolazione della luminosità, variazione dei colori, commutazione dinamica delle scene), nonché alla visualizzazione su Smart Display dello stato del pannello, di feedback in tempo reale o di pannelli di controllo personalizzati, favorendo un’ulteriore integrazione con più applicazioni IoT.
Riferimenti