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+

Elite Explorer Kit

También puedes comprarlos por separado desde los enlaces a continuación.

Introducción del Componente

Enlace de Compra

Arduino Uno R4 WiFi

-

Cables de Puente

COMPRAR

Tira de LEDs RGB WS2812 de 8 LEDs

COMPRAR

Conexiones

../_images/05_cheerlight_bb.png

Esquemático

../_images/05_cheerlight_schematic.png

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 ruta elite-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

  1. Ú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.

    ../_images/05_iot_cheerlights_1.png
  2. Sigue las instrucciones proporcionadas por el bot para configurar el color. Esto te permitirá controlar los dispositivos de CheerLights a nivel global.

    ../_images/05_iot_cheerlights_2.png

¿Cómo funciona?

Aquí están las principales partes del código y sus explicaciones:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. Las funciones printWifiData() y printCurrentNet() se utilizan para mostrar información sobre la red Wi-Fi y la conexión.

  7. La función printMacAddress() se utiliza para mostrar la dirección MAC en formato hexadecimal.

  8. 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ón setColor() para establecer el color de la tira de LEDs.

  9. La función setColor() toma un nombre de color como parámetro, luego busca un color coincidente en la matriz colorName. 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ón FastLED.show().