Algunas partes de este sitio web aún no están disponibles en su idioma. Estamos trabajando para solucionar esto y nos disculpamos por cualquier inconveniente.
Tutorial ESP32 52/55 - Sincronización Global WS2812 CheerLights MQTT con LCD | Kit IoT SunFounder ESP32
En este tutorial, crearemos un proyecto CheerLights utilizando el ESP32, que sincronizará colores globalmente a través de MQTT. Este proyecto no solo cambiará de color según las entradas de otros usuarios, sino que también mostrará el color actual y cuántas veces se ha actualizado en una pantalla LCD. El resultado es una divertida demostración de las capacidades de IoT, mostrando cómo los dispositivos pueden interactuar y mantener a los usuarios conectados a través de distancias. Para una aclaración adicional, mira el video en (en el video en 00:00).
esp32-52-luz-de-aplauso-lcd-principal
Hardware Explicado
Para construir este proyecto, necesitarás un microcontrolador ESP32, una tira de LED WS2812 y una pantalla LCD. El ESP32 sirve como el cerebro de la operación, utilizando sus capacidades de Wi-Fi integradas para conectarse a internet y recibir mensajes MQTT. Esto permite actualizaciones en tiempo real de los colores de los LED basado en una entrada global de otros usuarios.
La tira LED WS2812 es una opción popular para proyectos que requieren LED RGB direccionables. Cada LED puede controlarse de forma independiente, lo que permite crear espectáculos de color ricos. La pantalla LCD proporcionará una confirmación visual del color actual y el número de veces que ha sido cambiado, mejorando la interacción del usuario.
cheeLights_LCD
Detalles de la hoja de datos
Fabricante
SunFounder
Número de parte
ESP32
Voltaje de lógica/entrada/salida
3.3 V
Tensión de suministro
5 V
Corriente de salida (por canal)
20 mA
Corriente pico (por canal)
60 mA
Orientación sobre la frecuencia PWM
400 Hz
Umbrales de lógica de entrada
0.15 V (bajo), 0.8 V (alto)
Caída de voltaje / RDS(on)/ saturación
0.2 V
Límites térmicos
85 °C
Paquete
módulo ESP32
Notas / variantes
Incluye Wi-Fi y Bluetooth integrados.
Asegúrate de proporcionar la alimentación adecuada al ESP32 (5 V) y a la tira WS2812 (5 V).
Utiliza un suelo común entre el ESP32 y la tira de LED.
Implementar un broker MQTT adecuado para la sincronización de colores.
Presta atención a la conexión del pin de datos para el WS2812 (pin 14 según el código).
Ten cuidado con el número de LED; exceder los límites de potencia requiere fuentes de energía adicionales.
Instrucciones de cableado
ESP32-11_LCD-wiringesp32-47-cheer-light-wiring
Para cablear los componentes, comienza conectando la tira de LED WS2812. Conecta el pin de tierra (generalmente negro) de la tira de LED al pin de tierra en el ESP32. A continuación, conecta el pin VCC (generalmente rojo) de la tira de LED a la salida de 5V en el ESP32. Finalmente, conecta el pin de datos (a menudo amarillo) al pin GPIO 14 en el ESP32.
Para el LCD, conecta el pin de tierra (a menudo negro) a la tierra en el ESP32. El pin VCC (normalmente rojo) debe conectarse a la salida de 5V. El pin SDA (típicamente gris) se conecta al pin GPIO 21, mientras que el pin SCL (usualmente blanco) se conecta al pin GPIO 22. Esta configuración permite que el ESP32 se comunique con el LCD y muestre información según sea necesario.
Ejemplos de código y guía paso a paso
En la función de configuración, inicializamos el LCD y nos conectamos a Wi-Fi. El código a continuación demuestra cómo definir las bibliotecas necesarias y configurar el LCD:
#include
#include
LiquidCrystal_I2C lcd(0x27, 16,2); // set the LCD address
void setup() {
Serial.begin(115200);
lcd.init(); // initialize the lcd
lcd.backlight(); // Turns on the LCD backlight.
}
Esto inicializa el LCD para su uso, permitiéndole mostrar mensajes. El siguiente extracto muestra cómo se establece la conexión Wi-Fi:
Esta función establece una conexión con la red Wi-Fi especificada, mostrando un mensaje en la pantalla LCD mientras se conecta. Por último, la lógica de cambio de color se maneja en la función de callback:
void callback(char* topic, byte* message, unsigned int length) {
String messageTemp;
for (int i = 0; i < length; i++) {
messageTemp += (char)message[i];
}
if (String(topic) == "cheerlights") {
setColor(messageTemp);
}
}
Esta función escucha los mensajes entrantes en el tema "cheerlights" y actualiza el color en consecuencia. El código completo se carga debajo del artículo, así que asegúrate de revisarlo para la implementación completa.
Demostración / Qué Esperar
Al finalizar el proyecto, puedes esperar que la tira LED cambie de colores según las entradas de un feed MQTT global. El LCD mostrará el nombre del color actual y cuántas veces ha cambiado. Si desconectas internet, el LCD indicará "Conectando..." hasta que se restablezca la conexión (en el video a las 12:30).
Las trampas comunes incluyen asegurarse de que se utilizan los pines correctos para las conexiones de datos y verificar que las credenciales de Wi-Fi sean precisas. Si hay discrepancias en el SSID o la contraseña, el ESP32 no podrá conectarse, y la pantalla LCD seguirá mostrando el mensaje de conexión.
Marcas de tiempo del video
00:00 Comienzo
1:59 Introducción al proyecto
6:16 Explicación del cableado
8:13 Código de Arduino explicado
14:26 Seleccionando la placa ESP32 y el puerto COM en Arduino IDE