Tutorial ESP32 52/55 - Sincronización Global WS2812 CheerLights MQTT con LCD | Kit IoT SunFounder ESP32

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-wiring
esp32-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:

void setup_wifi() {
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    lcdConnect(); //for LCD
    delay(500);
  }
  Serial.println("WiFi connected");
}

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
  • 16:07 Demostración de CheerLight con LCD

Imágenes

ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
esp32-47-cheer-light-wiring
esp32-47-cheer-light-wiring
esp32-52-cheer-light-lcd-main
esp32-52-cheer-light-lcd-main
cheeLights_LCD
cheeLights_LCD
853-ESP32 Tutorial 52/55- CheerLight MQTT and LCD
Idioma: C++
¡Copiado!

Recursos y referencias

Archivos📁

No hay archivos disponibles.