Tutorial ESP32 52/55 - Sincronizzazione Globale MQTT CheerLights WS2812 con LCD | Kit IoT SunFounder ESP32

Tutorial ESP32 52/55 - Sincronizzazione Globale MQTT CheerLights WS2812 con LCD | Kit IoT SunFounder ESP32

In questo tutorial, creeremo un progetto CheerLights utilizzando l'ESP32, che sincronizzerà i colori a livello globale tramite MQTT. Questo progetto cambierà non solo i colori in base agli input di altri utenti, ma visualizzerà anche il colore attuale e quante volte è stato aggiornato su un display LCD. Il risultato è una dimostrazione divertente delle capacità dell'IoT, che mostra come i dispositivi possano interagire e mantenere gli utenti connessi attraverso le distanze. Per ulteriori chiarimenti, guarda il video (nel video a 00:00).

esp32-52-luce-di-festeggiamento-lcd-principale

Spiegazione dell'hardware

Per costruire questo progetto, avrai bisogno di un microcontrollore ESP32, di una striscia LED WS2812 e di un display LCD. L'ESP32 funge da cervello dell'operazione, sfruttando le sue capacità Wi-Fi integrate per connettersi a Internet e ricevere messaggi MQTT. Questo consente aggiornamenti in tempo reale dei colori LED basati su un input globale da parte di altri utenti.

La striscia LED WS2812 è una scelta popolare per progetti che richiedono LED RGB indirizzabili. Ogni LED può essere controllato in modo indipendente, consentendo di creare visualizzazioni di colori ricche. Il LCD fornirà una conferma visiva del colore attuale e del numero di volte che è stato cambiato, migliorando l'interazione con l'utente.

cheeLights_LCD

Dettagli della scheda dati

Produttore SunFounder
Numero di parte ESP32
Tensione logica/IO 3,3 V
Tensione di alimentazione 5 V
Corrente di uscita (per canale) 20 mA
Corrente di picco (per canale) 60 mA
Linee guida sulla frequenza PWM 400 Hz
Soglie logiche di ingresso 0,15 V (basso), 0,8 V (alto)
Caduta di tensione / RDS(on)/ saturazione 0,2 V
Limiti termici 85 °C
Pacchetto Modulo ESP32
Note / varianti Include Wi-Fi e Bluetooth integrati

  • Assicurati di fornire la corretta alimentazione all'ESP32 (5 V) e alla striscia WS2812 (5 V).
  • Usa un terreno comune tra l'ESP32 e la striscia LED.
  • Implementa un broker MQTT adeguato per la sincronizzazione dei colori.
  • Presta attenzione alla connessione del pin dei dati per il WS2812 (pin 14 secondo il codice).
  • Fai attenzione al numero di LED; superare i limiti di potenza richiede fonti di alimentazione aggiuntive.

Istruzioni di cablaggio

ESP32-11_LCD-wiring
esp32-47-cheer-light-wiring

Per cablare i componenti, inizia collegando la striscia LED WS2812. Collega il pin di massa (di solito nero) della striscia LED al pin di massa dell'ESP32. Successivamente, collega il pin VCC (di solito rosso) della striscia LED all'uscita 5V dell'ESP32. Infine, collega il pin dati (spesso giallo) al pin GPIO 14 dell'ESP32.

Per il LCD, collegare il pin di massa (spesso nero) al terra dell'ESP32. Il pin VCC (di solito rosso) deve essere collegato all'uscita 5V. Il pin SDA (tipicamente grigio) si collega al pin GPIO 21, mentre il pin SCL (di solito bianco) si collega al pin GPIO 22. Questa configurazione consente all'ESP32 di comunicare con il LCD e visualizzare le informazioni secondo necessità.

Esempi di codice e guida passo passo

Nella funzione di configurazione, inizializziamo il LCD e ci connettiamo al Wi-Fi. Il codice sottostante dimostra come definire le librerie necessarie e configurare il LCD:

#include  
#include 
LiquidCrystal_I2C lcd(0x27, 16,2);  // set the LCD address
void setup() {
  Serial.begin(115200);
  lcd.init(); // initialize the lcd 
  lcd.backlight(); // Turns on the LCD backlight.
}

Questo inizializza l'LCD per l'uso, permettendo di visualizzare i messaggi. Il prossimo estratto mostra come viene stabilita la connessione Wi-Fi:

void setup_wifi() {
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    lcdConnect(); //for LCD
    delay(500);
  }
  Serial.println("WiFi connected");
}

Questa funzione stabilisce una connessione alla rete Wi-Fi specificata, visualizzando un messaggio sul LCD durante la connessione. Infine, la logica del cambio di colore è gestita nella funzione di callback:

void callback(char* topic, byte* message, unsigned int length) {
  String messageTemp;
  for (int i = 0; i < length; i++) {
    messageTemp += (char)message[i];
  }
  if (String(topic) == "cheerlights") {
    setColor(messageTemp);
  }
}

Questa funzione ascolta i messaggi in arrivo sul tema "cheerlights" e aggiorna il colore di conseguenza. Il codice completo è caricato sotto l'articolo, quindi assicurati di rivederlo per l'implementazione completa.

Dimostrazione / Cosa Aspettarsi

Al termine del progetto, puoi aspettarti che la striscia LED cambi colore in base agli input di un feed MQTT globale. Il LCD mostrerà il nome del colore attuale e quante volte è stato cambiato. Se disconnetti Internet, il LCD indicherà "Connecting..." fino a quando non verrà ripristinata una connessione (nel video alle 12:30).

I punti critici comuni includono l'assicurarsi che i pin corretti siano utilizzati per le connessioni dati e verificare che le credenziali Wi-Fi siano accurate. Se ci sono discrepanze nell'SSID o nella password, l'ESP32 non riuscirà a connettersi e il display LCD continuerà a visualizzare il messaggio di connessione.

Timestamp video

  • 00:00 Inizio
  • 1:59 Introduzione al progetto
  • 6:16 Spiegazione del cablaggio
  • 8:13 Spiegazione del codice Arduino
  • 14:26 Selezionare la scheda ESP32 e la porta COM su Arduino IDE
  • 16:07 Dimostrazione CheerLight con LCD

Immagini

ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
esp32-47-cheer-light-wiring
esp32-47-cheer-light-wiring
esp32-52-cheer-light-lcd-main
esp32-52-cheer-light-lcd-main
cheeLights_LCD
cheeLights_LCD
853-ESP32 Tutorial 52/55- CheerLight MQTT and LCD
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Nessun file disponibile.