Tutorial ESP32 47/55 - CheerLights WS2812 usando MQTT a través de Internet | Kit IoT ESP32 de SunFounder

Tutorial ESP32 47/55 - CheerLights WS2812 usando MQTT a través de Internet | Kit IoT ESP32 de SunFounder

En este tutorial, crearemos un sistema de iluminación sincronizado utilizando el ESP32 y LEDs WS2812 que puede ser controlado de forma remota a través de MQTT. Este sistema permite a múltiples usuarios cambiar el color de las luces simultáneamente, creando una experiencia conectada independientemente de la ubicación. El proyecto utiliza el kit IoT SunFounder ESP32, que incluye un potente microcontrolador con capacidades Wi-Fi, lo que lo hace ideal para aplicaciones IoT.

WS2812_strip.ENCENDIDO

A lo largo del video, explicaremos la configuración necesaria, el cableado y la implementación del código para lograr este efecto. Si necesitas más aclaraciones, asegúrate de revisar el video en momentos específicos (en el video en mm:ss).

Hardware Explicado

Los componentes principales de este proyecto incluyen el microcontrolador ESP32, la tira de LED WS2812 y un broker MQTT. El ESP32 es un microcontrolador versátil con capacidades de Wi-Fi y Bluetooth integradas, lo que le permite conectarse a Internet fácilmente. Sirve como el cerebro de nuestro proyecto, manejando la comunicación y controlando la tira de LED.

La tira LED WS2812 consiste en LEDs RGB direccionales individualmente, que se pueden controlar para mostrar una amplia gama de colores. Cada LED se puede encender o apagar y ajustar a cualquier color utilizando una única línea de datos, lo que la hace perfecta para efectos de iluminación dinámicos. El broker MQTT facilita la comunicación entre diferentes clientes, permitiendo a los usuarios publicar y suscribirse a temas que controlan los colores de los LED.

Detalles de la hoja de datos

Fabricante Adafruit
Número de parte WS2812B
Voltaje de lógica/IO 3.5 - 5.5 V
Tensión de alimentación 5 V
Corriente de salida (por canal) 20 mA
Corriente de pico (por canal) 60 mA
Orientación sobre la frecuencia PWM 400 Hz
Umbral de lógica de entrada 0.2Vcc (bajo), 0.7Vcc (alto)
Caída de voltaje / RDS(on)/ saturación 0.5 V
Límites térmicos Temperatura de operación: -25 a 85 °C
Paquete Individual 5050 SMD
Notas / variantes Disponible en varias longitudes y configuraciones.

  • Asegúrate de proporcionar una fuente de alimentación adecuada para la tira WS2812 para evitar caídas de voltaje.
  • Utiliza un punto en común entre el ESP32 y la tira de LED.
  • Mantenga las líneas de datos cortas para evitar la degradación de la señal.
  • Considera utilizar un condensador (1000μF) en paralelo con la fuente de alimentación para suavizar los picos de voltaje.
  • Utilice resistencias apropiadas en la línea de datos para prevenir la reflexión de la señal.
  • Ten en cuenta el consumo total de corriente de la tira de LED; usa alimentación externa cuando sea necesario.

Instrucciones de cableado

Para conectar el ESP32 con la tira de LED WS2812, comienza conectando la fuente de alimentación. Conecta el cable rojo de la tira de LED a una fuente de 5V y el cable negro a tierra. A continuación, conecta la línea de datos (cable amarillo) de la tira WS2812 al pin 14 en el ESP32. Asegúrate de que el ESP32 también esté conectado a la misma tierra que la tira de LED para mantener una referencia común.

Después de configurar las conexiones de energía y datos, conecta el ESP32 a tu computadora utilizando un cable micro USB para la programación. Necesitarás asegurarte de que el ESP32 esté encendido mientras programas para establecer una conexión. Una vez cableado, puedes proceder a subir el código y probar la configuración.

esp32-47-cheer-light-wiring

Ejemplos de código y guía paso a paso

El código comienza incluyendo las bibliotecas necesarias para la funcionalidad de Wi-Fi y MQTT. Los identificadoresssidypasswordse utilizan para almacenar tus credenciales de Wi-Fi, mientrasmqtt_servermantiene la dirección del broker MQTT.

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

A continuación, definimos los colores de CheerLights admitidos y sus valores RGB correspondientes utilizando arreglos. Esto permite que el programa acceda fácilmente a la configuración de colores según la entrada del usuario.

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" ...};

Elsetup()la función inicializa la comunicación serie, establece la conexión Wi-Fi y prepara el cliente MQTT. También comienza la tira de LED.

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

El bucle principal verifica continuamente la conexión MQTT y procesa los mensajes entrantes que controlan los colores del LED. Elcallback()la función se activa cuando se recibe un mensaje en el tema suscrito.

Demostración / Qué Esperar

Una vez que todo esté configurado y el código esté cargado, deberías poder cambiar el color de los LEDs WS2812 enviando mensajes al tema MQTT. Si otro usuario cambia el color, todos los dispositivos conectados reflejarán el cambio simultáneamente. Ten cuidado con posibles problemas como polaridad invertida o conexiones inadecuadas, que podrían evitar que los LEDs funcionen correctamente (en el video a mm:ss).

Sellos de tiempo del video

  • 00:00 Comenzar
  • 2:00 Introducción
  • 3:48 Página de documentación
  • 6:33 Explicación del cableado
  • 7:35 Código de Arduino explicado
  • 15:03 Seleccionando la placa ESP32 y el puerto COMP en Arduino IDE
  • 16:46 Demostración de CheerLights

Imágenes

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
Idioma: C++
¡Copiado!

Recursos y referencias

Archivos📁

No hay archivos disponibles.