Tutorial de ESP32 50/55 - Controla el LED RGB desde cualquier lugar del mundo | Kit ESP32 de SunFounder

Tutorial de ESP32 50/55 - Controla el LED RGB desde cualquier lugar del mundo | Kit ESP32 de SunFounder

En este tutorial, aprenderemos cómo controlar el color de un LED RGB utilizando el microcontrolador ESP32 a través de Wi-Fi, utilizando el protocolo MQTT y el servicio Adafruit IO. Esta configuración te permite cambiar el color del LED RGB desde cualquier parte del mundo, proporcionando una aplicación práctica de la tecnología IoT. También exploraremos cómo usar deslizadores y un selector de color para elegir el color deseado.

esp32-50-led-rgb-mqtt-principal

El ESP32 es un microcontrolador potente que tiene capacidades de Wi-Fi y Bluetooth integradas, lo que lo hace ideal para proyectos de IoT. En esta construcción, conectaremos un LED RGB al ESP32 y controlaremos su color a través de un broker MQTT proporcionado por Adafruit. El tutorial te guiará a través de la configuración del hardware, las instrucciones de cableado y el código necesario para que todo funcione sin problemas (en el video a :00).

Hardware Explicado

esp32-50-RGB-led
esp32-50-RGB-led

Para este proyecto, los componentes principales que utilizaremos son el microcontrolador ESP32 y el LED RGB. El ESP32 es capaz de conectarse a redes Wi-Fi, lo que le permite comunicarse con el servicio Adafruit IO. El LED RGB contiene tres LEDs individuales (rojo, verde y azul) que se pueden mezclar para crear una amplia gama de colores.

El LED RGB opera bajo un principio de ánodo común o cátodo común, lo que significa que el ánodo (positivo) o el cátodo (negativo) de los LED individuales deben estar conectados correctamente para que funcionen. Cada color se puede controlar utilizando Modulación por Ancho de Pulso (PWM), que ajusta el brillo de cada LED variando el ciclo de trabajo.

ES32-38_RGB_LED-conexión

Detalles de la hoja de datos

Fabricante SunFounder
Número de pieza LED RGB
Voltaje de avance (V)F) 2.0-3.4 V
Corriente de avance (IF) 20 mA
Longitud de onda pico (nm) Rojo: 620, Verde: 525, Azul: 465
Paquete Conector estándar de 4 pines
Notas / variantes Opciones de ánodo común o cátodo común disponibles.

  • Utiliza resistencias de 220 ohmios para cada color de LED para limitar la corriente.
  • Asegúrese de la correcta conexión para una configuración de ánodo o cátodo común.
  • Verifique la fuente de alimentación del ESP32 para evitar caídas de tensión.
  • Mantenga la frecuencia PWM dentro de los límites para transiciones de color suaves.
  • Asegúrate de que las credenciales de Wi-Fi sean correctas para conectar al servicio Adafruit IO.

Instrucciones de cableado

ES32-38_RGB_LED-wiring

Para conectar el LED RGB al ESP32, comienza identificando los pines del LED RGB. El pin más largo es el pin común. Para una configuración de ánodo común, conecta este pin a la fuente de voltaje positiva (3.3V). Los otros tres pines corresponden a los LEDs rojo, verde y azul. Conecta el pin rojo al GPIO 27, el pin verde al GPIO 26 y el pin azul al GPIO 25. Cada una de estas conexiones debe hacerse a través de una resistencia de 220 ohmios para limitar la corriente que fluye a través de los LEDs.

A continuación, conecta la tierra (GND) del ESP32 a la línea de tierra de tu circuito. Asegúrate de que el cableado esté seguro para prevenir conexiones intermitentes. Si usas un LED RGB de cátodo común, conecta el pin común a tierra en su lugar y conecta los pines de color individuales a la fuente positiva a través de las resistencias. Revisa todas las conexiones antes de alimentar el circuito.

Ejemplos de Código y Guía

En el código de Arduino, comenzamos definiendo los pines para los LED rojos, verdes y azules utilizando los identificadores.redPin,greenPin, ybluePin. Además, definimos los canales PWM para cada color utilizandoredChannel,greenChannel, andblueChannelLa frecuencia PWM está configurada a 5000 Hz con una resolución de 8 bits.

const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;

const int redChannel = 0;
const int greenChannel = 1;
const int blueChannel = 2;

En elsetup()función, inicializamos los canales PWM y conectamos los pines correspondientes. También nos conectamos a la red Wi-Fi utilizando las credenciales definidas y configuramos el cliente MQTT para la comunicación con Adafruit IO.

void setup() {
  ledcSetup(redChannel, freq, resolution);
  ledcAttachPin(redPin, redChannel);
  // Connect to WiFi
  WiFi.begin(WLAN_SSID, WLAN_PASS);
}

El bucle principal verifica la conexión MQTT y procesa los mensajes entrantes. También imprime los valores RGB actuales en el monitor serie. El color del LED se actualiza según los valores recibidos a través de suscripciones MQTT.

void loop() {
  MQTT_connect();
  mqtt.processPackets(500);
  setColor();
}

Para más detalles sobre el código completo, consulte el código completo cargado debajo del artículo.

Demostración / Qué Esperar

Una vez que todo esté configurado y el código esté cargado, deberías ver que el LED RGB responde a los cambios de color realizados a través del panel de control de Adafruit IO. A medida que ajustas los controladores de rojo, verde y azul, el LED debería cambiar su color en consecuencia. Si experimentas algún problema, asegúrate de que la conexión Wi-Fi sea estable y de que los nombres de los tópicos MQTT coincidan con los definidos en el código (en el video a las 17:30).

Los errores comunes incluyen un cableado incorrecto, nombres de temas que no coinciden y olvidar establecer las credenciales de Wi-Fi correctas. Si el LED no se enciende, verifica nuevamente las conexiones del resistor y asegúrate de que el ESP32 esté alimentado correctamente.

Marcas de tiempo del video

  • 00:00 Comienzo
  • 2:23 Introducción al proyecto
  • 4:43 ¿Qué es MQTT?
  • 7:55 Configuración de Adafruit IO
  • 14:09 Explicación del cableado
  • 16:07 Código explicado
  • 27:03 Seleccionando la placa ESP32 y el puerto COM en el IDE de Arduino
  • 29:12 Demostración del proyecto
  • ¿Qué es un LED RGB?
  • 35:26 Color RGB

Imágenes

ESP32_rgb_pin
ESP32_rgb_pin
ESP32_RGB_led_wires
ESP32_RGB_led_wires
ES32-38_RGB_LED-wiring
ES32-38_RGB_LED-wiring
esp32-50-RGB-led
esp32-50-RGB-led
esp32-50-RGB-led-mqtt-main
esp32-50-RGB-led-mqtt-main
852-ESP32 Tutorial 50/55- Arduino code to control RGB LED using MQTT service of Adafruit
Idioma: C++
¡Copiado!

Recursos y referencias

Aún no hay recursos.

Archivos📁

No hay archivos disponibles.