Tutorial ESP32 47/55 - CheerLights WS2812 usando MQTT su Internet | Kit IoT ESP32 di SunFounder

Tutorial ESP32 47/55 - CheerLights WS2812 usando MQTT su Internet | Kit IoT ESP32 di SunFounder

In questo tutorial, creeremo un sistema di illuminazione sincronizzato utilizzando l'ESP32 e i LED WS2812 che possono essere controllati da remoto tramite MQTT. Questo sistema consente a più utenti di cambiare simultaneamente il colore delle luci, creando un'esperienza connessa indipendentemente dalla posizione. Il progetto utilizza il kit IoT SunFounder ESP32, che include un potente microcontrollore con capacità Wi-Fi, rendendolo ideale per applicazioni IoT.

WS2812_strip.ON

In tutto il video, passeremo attraverso la configurazione necessaria, il cablaggio e l'implementazione del codice per ottenere questo effetto. Se hai bisogno di ulteriori chiarimenti, assicurati di controllare il video ai timestamp specifici (nel video a mm:ss).

Spiegazione dell'hardware

I componenti principali di questo progetto includono il microcontrollore ESP32, la striscia LED WS2812 e un broker MQTT. L'ESP32 è un microcontrollore versatile con capacità Wi-Fi e Bluetooth integrate, che gli consente di connettersi facilmente a Internet. Funziona come il cervello del nostro progetto, gestendo la comunicazione e controllando la striscia LED.

La striscia LED WS2812 è composta da LED RGB individualmente indirizzabili, che possono essere controllati per visualizzare un'ampia gamma di colori. Ogni LED può essere acceso o spento e impostato su qualsiasi colore utilizzando una singola linea di dati, rendendolo perfetto per effetti di illuminazione dinamici. Il broker MQTT facilita la comunicazione tra i diversi client, consentendo agli utenti di pubblicare e iscriversi a argomenti che controllano i colori delle LED.

Dettagli della scheda tecnica

Produttore Adafruit
Numero di parte WS2812B
Tensione di logica/IO 3,5 - 5,5 V
Tensione di alimentazione 5 V
Corrente di uscita (per canale) 20 mA
Corrente di picco (per canale) 60 mA
Guideline sulla frequenza PWM 400 Hz
Soglie logiche di input 0,2Vcc (basso), 0,7Vcc (alto)
Caduta di tensione / RDS(on)/ saturazione 0,5 V
Limiti termici Temperatura di esercizio: -25 a 85 °C
Pacchetto Individual 5050 SMD
Note / varianti Disponibile in diverse lunghezze e configurazioni

  • Garantire un'alimentazione adeguata per la striscia WS2812 per evitare cadute di tensione.
  • Utilizza un comune collegamento tra l'ESP32 e la striscia LED.
  • Mantieni le linee di dati corte per prevenire la degradazione del segnale.
  • Considera di utilizzare un condensatore (1000μF) attraverso l'alimentazione per attenuare i picchi di tensione.
  • Utilizzare resistori appropriati sulla linea dati per prevenire la riflessione del segnale.
  • Fai attenzione al prelievo totale di corrente della striscia LED; utilizza alimentazione esterna quando necessario.

Istruzioni per il cablaggio

Per collegare l'ESP32 con la striscia LED WS2812, inizia collegando l'alimentazione. Collega il filo rosso della striscia LED a una fonte di alimentazione a 5V e il filo nero a massa. Successivamente, collega la linea dei dati (filo giallo) dalla striscia WS2812 al pin 14 dell'ESP32. Assicurati che l'ESP32 sia collegato alla stessa massa della striscia LED per mantenere un riferimento comune.

Dopo aver impostato le connessioni di alimentazione e dati, collega l'ESP32 al tuo computer utilizzando un cavo micro USB per la programmazione. Dovrai assicurarti che l'ESP32 sia acceso durante la programmazione per stabilire una connessione. Una volta cablato, puoi procedere a caricare il codice e testare la configurazione.

esp32-47-cheer-light-wiring

Esempi di codice e guida passo passo

Il codice inizia includendo le librerie necessarie per la funzionalità Wi-Fi e MQTT. Gli identificatorissidepasswordsono utilizzati per memorizzare le tue credenziali Wi-Fi, mentremqtt_serverdetiene l'indirizzo del broker MQTT.

const char* ssid = "SSID";
const char* password = "PASSWORD";
const char* mqtt_server = "mqtt.cheerlights.com";

Successivamente, definiamo i colori CheerLights supportati e i loro corrispondenti valori RGB utilizzando array. Questo consente al programma di accedere facilmente alle impostazioni dei colori in base all'input dell'utente.

String colorName[] = {"red", "pink", "green", "blue", "cyan", "white", "warmwhite", "oldlace", "purple", "magenta", "yellow", "orange"};
int colorRGB[][3] = { 255, 0, 0,  // "red"
                      255, 192, 203,  // "pink" ...};

Ilsetup()La funzione inizializza la comunicazione seriale, configura la connessione Wi-Fi e prepara il client MQTT. Inizia anche il nastro LED.

void setup() {
  Serial.begin(115200);
  setup_wifi();
  client.setServer(mqtt_server, 1883);
  pixels.begin();
  pixels.show(); 
}

Il ciclo principale controlla continuamente la connessione MQTT e gestisce i messaggi in arrivo che controllano i colori dei LED.callback()la funzione viene attivata quando viene ricevuto un messaggio sul tema sottoscritto.

Dimostrazione / Cosa Aspettarsi

Una volta configurato tutto e caricato il codice, dovresti essere in grado di cambiare il colore dei LED WS2812 inviando messaggi al topic MQTT. Se un altro utente cambia il colore, tutti i dispositivi connessi rifletteranno il cambiamento simultaneamente. Fai attenzione ai potenziali problemi come la polarità inversa o connessioni errate, che potrebbero impedire il corretto funzionamento dei LED (nel video a mm:ss).

Timestamp video

  • 00:00 Inizio
  • 2:00 Introduzione
  • 3:48 Pagina di documentazione
  • 6:33 Spiegazione del cablaggio
  • 7:35 Codice Arduino spiegato
  • 15:03 Selezionando la scheda ESP32 e la porta COMP nell'IDE di Arduino
  • 16:46 Dimostrazione CheerLighs

Immagini

WS2812_strip.ON
WS2812_strip.ON
esp32-47-cheer-light-wiring
esp32-47-cheer-light-wiring
848-ESP32 Tutorial 47/55- Arduino code for cheer light
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Nessun file disponibile.