sábado, 7 de octubre de 2023

ESPHome: Control de un Led RGB

En este artículo voy a conectar un Led RGB a nuestro dispositivo ESP8266 y controlalor desde Home Assistant. Lo conectaremos a 3 puertos GPIO a través de sendas resistencias de 220 ohmios y podremos ajustar el brillo de cada uno de los tres led que forman el dispositivo para conseguir el color deseado.

Vamos a programar tres puertos GPIO en modo PWM (uno por color). Si quieres saber algo más sobre este modo consulta el artículo  y cuya explicación ya se dio en el artículo Control de un led.

  • Rojo: D7
  • Verde: D8
  • Azul: D9

Nos vamos a la interfaz de Home Assistant - ESPHome y seleccionamos o creamos un nuevo dispositivo. En mi caso utilizo un dispositivo ya creado, selecciono Edit y escribo el siguiente código:

output:
# Led RGB    
  - platform: esp8266_pwm
    pin: D7
    id: gpio_led_rojo
  - platform: esp8266_pwm
    pin: D8
    id: gpio_led_verde
  - platform: esp8266_pwm
    pin: D9
    id: gpio_led_azul

light:
# Led RGB
  - platform: rgb
    name: Led RGB
    red: gpio_led_rojo
    green: gpio_led_verde
    blue: gpio_led_azul 

Como se puede apreciar, configuro los tres puertos GPIO en modo PWM (esp8266_pwm) y asigno cada puerto a un color en el control del tipo rgb que he denominado Led RGB.

Como siempre, Save e Install. Seleccionamos Wirelessy y esperamos a que cargue el programa.

Una vez se ha completado la carga del programa nos vamos a Ajustes - Dispositivos y servicios y seleccionamos el dispositivo ESPHome. En Controles nos aparece un nuevo interruptor denominado Led RGB.

Si seleccionamos el control Led RGB nos muestra una ventana con la que controlar el led RGB tanto en brillo como en colores.

Como siempre, podemos añadir este dispositivo al panel de control con una tarjeta adecuada para el Led RGB.



Automatización

Voy a crear una automatización de ejemplo para que el led vaya cambiando de color a medida que varía la temperatura medida por nuestro sensor DHT22. Si la temperatura está por debajo de los 25º el led se encenderá de color verde, Si está entre 25º y 30º el led pasar a color amarillo y si la temperatura es superior a 30º pasará a color rojo.

Seleccionamos vamos a Ajustes - Automatizaciones y escenas - Crear automatización - Crear nueva automatizaciónDe forma resumida, el desencadenante será el sensor de temperatura y habrán tres acciones distintas dependiendo del rango de temperatura.


Si seleccionamos la segunda opción, por ejemplo, la condición es que la temperatura esté entre cierto rango y la acción es que se encienda el led RGB con un color determinado.

Resumen

Hemos visto lo fácil que es configurar y programar un led RGB en ESPHome por lo que con un solo led podemos mostrar varios estados distintos. También nos serviría como base para controlar una tira led.


No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.