Nota
Ciao, benvenuto nella community di appassionati SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del team.
Impara e Condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni festive.
👉 Pronto per esplorare e creare con noi? Clicca [Qui] e unisciti oggi!
CheerLights
CheerLights è una rete globale di luci sincronizzate che può essere controllata da chiunque. Unisciti alla comunità @CheerLights - Twitter di LED che cambiano colore, permettendo ai LED di tutto il mondo di cambiare colore simultaneamente. Posiziona i tuoi LED in un angolo del tuo ufficio per ricordarti che non sei solo.
In questo progetto utilizziamo anche MQTT, ma invece di pubblicare i nostri messaggi, ci iscriviamo al topic «cheerlights». Questo ci permette di ricevere messaggi inviati da altri al topic «cheerlights» e di utilizzare tali informazioni per cambiare il colore della nostra striscia LED di conseguenza.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ARTICOLI IN QUESTO KIT |
LINK |
---|---|---|
Elite Explorer Kit |
300+ |
È anche possibile acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
---|---|
- |
|
Cablaggio
Schema
Installa la Libreria
Per installare la libreria, utilizza il Gestore delle Librerie Arduino e cerca «ArduinoMqttClient» e «FastLED» e installale.
ArduinoMqttClient.h
: Utilizzato per la comunicazione MQTT.
FastLED.h
: Utilizzato per pilotare la striscia LED RGB.
Importante
Con il rilascio di FastLED 3.7.0, la libreria FastLED supporta ufficialmente Arduino UNO R4. Pertanto, non è più necessario installare manualmente la versione di sviluppo. Aggiorna o installa semplicemente la libreria FastLED utilizzando il Gestore delle Librerie Arduino.
Avvertimento
[Non aggiornato] Poiché la libreria FastLED non ha ancora rilasciato una versione che supporta ufficialmente Arduino R4, dovrai scaricare l'ultima versione di sviluppo della libreria FastLED
e sovrascrivere i file esistenti della libreria FastLED. Per istruzioni dettagliate su come fare ciò, consulta la sezione Installazione Manuale. (Questa nota sarà ritirata quando la libreria FastLED rilascerà ufficialmente un aggiornamento che supporta Arduino UNO R4.)
Esegui il Codice
Nota
Puoi aprire il file
05_cheerlight.ino
nel percorsoelite-explorer-kit-main\iot_project\05_cheerlight
direttamente.Oppure copia questo codice nell’IDE di Arduino.
Nota
Nel codice, SSID e password sono memorizzati in arduino_secrets.h
. Prima di caricare questo esempio, è necessario modificarli con le proprie credenziali WiFi. Inoltre, per motivi di sicurezza, assicurati che queste informazioni siano mantenute riservate durante la condivisione o la memorizzazione del codice.
Controlla i dispositivi globali @CheerLights
Unisciti al Server Discord e utilizza il bot CheerLights per impostare il colore. Digita semplicemente
/cheerlights
in uno dei canali sul CheerLights Discord Server per attivare il bot.Segui le istruzioni fornite dal bot per impostare il colore. Questo ti permetterà di controllare i dispositivi CheerLights globalmente.
Come Funziona?
Ecco le principali parti del codice e le spiegazioni delle loro funzioni:
Includi le librerie necessarie:
WiFiS3.h
: Utilizzata per gestire le connessioni Wi-Fi.ArduinoMqttClient.h
: Utilizzata per gestire le connessioni MQTT.FastLED.h
: Utilizzata per controllare le strisce LED NeoPixel.
Definisci alcune costanti:
NUM_LEDS
: Il numero di LED sulla striscia LED.DATA_PIN
: Il pin dati collegato ad Arduino per controllare la striscia LED.arduino_secrets.h
: File header contenente il nome e la password della rete Wi-Fi per proteggere le informazioni sensibili.broker
: Indirizzo del server MQTT.port
: Porta del server MQTT.topic
: Il topic MQTT a cui iscriversi.
Definisci alcune variabili globali:
CRGB leds[NUM_LEDS]
: Un array per memorizzare i dati del colore dei LED.colorName
: Un array di nomi di colori supportati dal progetto CheerLights.colorRGB
: Un array di codici colore RGB corrispondenti ai nomi dei colori.
Funzione
setup()
:Inizializza la comunicazione seriale.
Verifica se il modulo Wi-Fi è presente e stampa la versione del firmware.
Tenta di connettersi alla rete Wi-Fi; se fallisce, attende 10 secondi e riprova.
Una volta connesso con successo, si connette al broker MQTT (server) e si iscrive al topic specificato.
Inizializza la striscia LED NeoPixel.
Funzione
loop()
:Chiama periodicamente la funzione
mqttClient.poll()
per ricevere messaggi MQTT e inviare segnali di keep-alive MQTT.Aggiungi un ritardo di 5 secondi per evitare una connessione continua.
Le funzioni
printWifiData()
eprintCurrentNet()
sono utilizzate per stampare le informazioni sulla rete Wi-Fi e sulla connessione.La funzione
printMacAddress()
è utilizzata per stampare l’indirizzo MAC in formato esadecimale.La funzione
onMqttMessage()
è una funzione di callback attivata quando viene ricevuto un messaggio MQTT. Stampa il topic del messaggio ricevuto e il contenuto, convertendo il contenuto del messaggio in minuscolo. Se il topic è «cheerlights», chiama la funzionesetColor()
per impostare il colore della striscia LED.
9. La funzione setColor()
prende un nome di colore come parametro, quindi cerca un colore corrispondente nell’array colorName
. Se viene trovato un colore corrispondente, imposta il colore della striscia LED sul valore RGB corrispondente e aggiorna```
la striscia LED utilizzando la funzione FastLED.show()
.