Nota
¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.
¿Por qué unirse?
Soporte Experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y Comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances Exclusivos: Obtén acceso anticipado a anuncios de nuevos productos y adelantos exclusivos.
Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones Festivas y Sorteos: Participa en sorteos y promociones festivas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
CheerLights
CheerLights es una red global de luces sincronizadas que pueden ser controladas por cualquiera. Únete a la comunidad de cambio de color de LEDs de @CheerLights - Twitter, que permite a los LEDs de todo el mundo cambiar de color simultáneamente. Coloca tus LEDs en una esquina de tu oficina para recordarte que no estás solo.
En este caso, también utilizamos MQTT, pero en lugar de publicar nuestros propios mensajes, nos suscribimos al tema «cheerlights». Esto nos permite recibir mensajes enviados por otros al tema «cheerlights» y usar esa información para cambiar el color de nuestra tira de LEDs en consecuencia.
Componentes Requeridos
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
Ítems en este Kit |
Enlace |
---|---|---|
Elite Explorer Kit |
300+ |
También puedes comprarlos por separado desde los enlaces a continuación.
Introducción del Componente |
Enlace de Compra |
---|---|
- |
|
Conexiones
Esquemático
Instalar la Biblioteca
Para instalar la biblioteca, utiliza el Administrador de Bibliotecas de Arduino y busca «ArduinoMqttClient» y «FastLED» e instálalas.
ArduinoMqttClient.h
: Utilizada para la comunicación MQTT.
FastLED.h
: Utilizada para controlar la tira de LEDs RGB.
Importante
Con el lanzamiento de FastLED 3.7.0, la biblioteca FastLED ahora admite oficialmente el Arduino UNO R4. Por lo tanto, ya no necesitas instalar manualmente la versión de desarrollo. Simplemente actualiza o instala la biblioteca FastLED utilizando el Administrador de Bibliotecas de Arduino.
Advertencia
[Desactualizado] Dado que la biblioteca FastLED aún no ha lanzado una versión que admita oficialmente el Arduino R4, necesitarás descargar el último código de desarrollo de la biblioteca FastLED
y sobrescribir los archivos existentes de la biblioteca FastLED. Para obtener instrucciones detalladas sobre cómo hacer esto, consulta la sección Instalación Manual. (Esta note se retirará cuando la biblioteca FastLED lance oficialmente una actualización que admita el Arduino UNO R4.)
Ejecutar el Código
Nota
Puedes abrir el archivo
05_cheerlight.ino
bajo la rutaelite-explorer-kit-main\iot_project\05_cheerlight
directamente.O copia este código en el IDE de Arduino.
Nota
En el código, SSID y contraseña se almacenan en arduino_secrets.h
. Antes de subir este ejemplo, necesitas modificarlos con tus propias credenciales de WiFi. Adicionalmente, por motivos de seguridad, asegúrate de mantener esta información confidencial al compartir o almacenar el código.
Controla dispositivos globales @CheerLights
Únete al Servidor de Discord y utiliza el bot de CheerLights para configurar el color. Simplemente escribe
/cheerlights
en cualquiera de los canales del Servidor de Discord de CheerLights para activar el bot.Sigue las instrucciones proporcionadas por el bot para configurar el color. Esto te permitirá controlar los dispositivos de CheerLights a nivel global.
¿Cómo funciona?
Aquí están las principales partes del código y sus explicaciones:
Incluir las bibliotecas requeridas:
WiFiS3.h
: Utilizada para manejar las conexiones Wi-Fi.ArduinoMqttClient.h
: Utilizada para manejar las conexiones MQTT.FastLED.h
: Utilizada para controlar las tiras de LEDs NeoPixel.
Definir algunas constantes:
NUM_LEDS
: El número de LEDs en la tira de LEDs.DATA_PIN
: El pin de datos conectado a Arduino para controlar la tira de LEDs.arduino_secrets.h
: Archivo de encabezado que contiene el nombre y la contraseña de la red Wi-Fi para proteger la información sensible.broker
: Dirección del servidor MQTT.port
: Puerto del servidor MQTT.topic
: El tema MQTT al que suscribirse.
Definir algunas variables globales:
CRGB leds[NUM_LEDS]
: Una matriz para almacenar los datos de color de los LEDs.colorName
: Una matriz de nombres de colores compatibles con el proyecto CheerLights.colorRGB
: Una matriz de códigos de color RGB correspondientes a los nombres de colores.
Función
setup()
:Inicializa la comunicación serial.
Verifica si el módulo Wi-Fi está presente y muestra su versión de firmware.
Intenta conectarse a la red Wi-Fi; si falla, espera 10 segundos y reintenta.
Una vez conectado, conéctate al broker MQTT (servidor) y suscríbete al tema especificado.
Inicializa la tira de LEDs NeoPixel.
Función
loop()
:Llama periódicamente a la función
mqttClient.poll()
para recibir mensajes MQTT y enviar señales de mantenimiento de conexión MQTT.Agrega un retraso de 5 segundos para evitar una conexión continua.
Las funciones
printWifiData()
yprintCurrentNet()
se utilizan para mostrar información sobre la red Wi-Fi y la conexión.La función
printMacAddress()
se utiliza para mostrar la dirección MAC en formato hexadecimal.La función
onMqttMessage()
es una función de callback que se activa cuando se recibe un mensaje MQTT. Muestra el tema del mensaje recibido y su contenido, convirtiendo el contenido del mensaje a minúsculas. Si el tema es «cheerlights», llama a la funciónsetColor()
para establecer el color de la tira de LEDs.La función
setColor()
toma un nombre de color como parámetro, luego busca un color coincidente en la matrizcolorName
. Si se encuentra un color coincidente, establece el color de la tira de LEDs al valor RGB correspondiente y actualiza el color de la tira de LEDs usando la funciónFastLED.show()
.