Guía completa sobre tiras LED inteligentes con WLED y Home Assistant

Existen varios tutoriales acerca de como usar un microcontrolador ESP32 como cerebro de unas tiras LED inteligentes. entonces ¿que vamos a aportar de nuevo nosotros?

Nosotros aportaremos claridad, imágenes y explicaciones, para que el proceso de construir y automatizar sea lo mas didáctico posible.

También integraremos todo en nuestro sistema domótico favorito para convertir tu casa en inteligente con todas las opciones imaginables y las inimaginables: Home Assistant. Sigue leyendo porque el camino es parte de la diversión y daremos algunas automatizaciones para alucinar un poco.

Y no menos importante: aprenderemos (o repasaremos) conceptos de electricidad, de industria, de redes y de control. Todo funcionando y claro para que no os haga falta consultar nada en páginas externas.

Y eso es lo que en resumen aportaremos: Al final no simplemente se trata de copiar y pegar, sino que entendiendo el proceso podremos crear nosotros mismos nuestras variaciones.

COMPRAS PARA INSTALAR Y USAR WLED

Empecemos por adquirir lo necesario primero si quieres seguir esta guía al pie de la letra: Solo necesitaremos 3 componentes: Una tira LED (de unas características determinadas), un controlador ESP32 y una fuente de alimentación apropiada.

Aquí os dejamos directamente enlaces a todo lo necesario (para los que tengan prisa), pero en las secciones siguientes vamos a desarrollar porqué elegimos éstos y no otros, pues hemos detectado que otras guías dejan estos conceptos sin desarrollar y luego vienen los problemas.

ELECCIÓN DE LA TIRA DE LEDS

No nos engañemos, la primera vez que buscamos comprar una tira de LEDS nos adentramos en un mundo abarrotado de anuncios, con muchas opciones distintas para la misma tira, y por supuesto con calidades y precios variopintos.

Una tira led que no sea inteligente funcionará de la misma manera que una única luz LED, con un único color y solo podremos apagarla o encenderla en su totalidad. Ojo! estas tiras «tontas» son muy útiles para simplemente iluminar y no requieren controlador.

Una tira led inteligente por el contrario no es simplemente una «cinta» con muchos leds.

Nosotros usaremos tiras LED inteligentes. Con estas tiras podemos encender y apagar ciertos sectores de la tira como si fueran luces independientes, junto con el color de cada sector.

Esto nos da mucho juego a la hora de programar movimiento de luces y colores… todo un espectáculo en el que ya no buscamos simplemente alumbrar.

Todo se reduce a elegir la tira adecuada a nosotros según 3 caracteristicas principales:

  • El tipo de chip de los LEDS: Simplificaremos entre las 2 opciones más usadas.
  • Longitud de la tira y densidad de LEDS: Nos determinará la potencia consumida y por tanto la fuente de alimentacion que necesitaremos.
  • Protección o acabado de la tira de LEDS: Será importante según donde la instalemos.

Tipo de chip de la tira LED

Vamos a simplificar un poco y detenernos en los 2 tipos de tiras LED inteligentes mas usadas (y baratas) que nos encontraremos: Las WS2811 y las WS2812B.

La principal diferencia entre WS2811 y WS2812B es que en la primera solo se pueden crear sectores de mínimo 3 leds, mientras que con la segunda opción podremos controlar cada led individual de forma independiente.

En el mercado encontrarás tambien tiras que se alimentan con 12 voltios. Esta tension está pensada para tiras muy largas (donde una caída de tensión se notará menos respecto a 12v que respecto a 5v). Son menos comunes que las tiras alimentadas con 5v y por tanto algo mas caras.

Para este tutorial vamos a elegir una tira del tipo WS2812B

Elección: Tira WS2812B ; 5v

Longitud y densidad de la tira LED

Aquí tendremos que pensar primero dónde queremos usarla para conocer la longitud necesaria. Puede ser en un mueble trasero de la TV para crear ambiente, detrás de un sofá para iluminar indirectamente, escondidas encima de una estantería para que refleje en el techo, en un setup gaming…. en fin, ya me dejaréis en los comentarios dónde se os ha ocurrido.

Asimismo hay que pensar en la densidad de LEDS (Leds por cada metro) que queremos. Obviamente a más densidad más leds, y se verá más «continuo», pero por el contrario nuestro consumo aumentará y como veremos esto es muy importante.

Las densidades que nos podemos encontrar son 30, 60, 74, 96, 144 . Como ves, hay variedad.

Elección: 30 LEDS/m

Protección de la tira LED

El grado de proteccion, la proteccion IP (del ingles Ingress Protection) es una norma internacional que asigna una numeracion si impide la penetracion de objetos o liquidos.

Es un codigo muy usado dentro y fuera de la industria, y lo podremos encontrar al referirnos a telefonos, relojes, leds, etc…

El primer dígito es protección contra objetos sólidos (comunmente polvo) y el segundo dígito es protección contra líquidos (comunmente agua).

Veamos las protecciones que podemos encontrar con las tiras LED:

IP30 = 3 (El elemento que debe utilizarse para la prueba (esfera de 2,5 mm de diámetro) no debe entrar en lo más mínimo.); 0 (Sin protección.).

IP65= 6 (El polvo no entra bajo ninguna circunstancia); 5 (No debe entrar el agua arrojada a chorro).

IP67= 6 (El polvo no entra bajo ninguna circunstancia); 7 (El objeto debe soportar, sin filtración alguna, la inmersión completa a 1 metro durante 30 minutos.)

IP68 = 6 (El polvo no entra bajo ninguna circunstancia); 8 (inmersión completa y continua a la profundidad y durante el tiempo que especifique el fabricante del producto)

Es decir, por ejemplo si queremos iluminar el interior de una piscina pondremos IP68, pero si queremos ponerno en terraza quizas con IP65 sea suficiente.

Elección: Proteccion IP65

Nuestra opción en este caso ha sido comprar 5m de longitud, pues queremos utilizar 3m en este proyecto y reservar otros 2m para otra utilidad.

.Sí, efectivamente, las tiras LEDS se pueden cortar. Solo debes hacerlo por los sitios indicados.

Y muy importante, a la hora de reconectar cada segmento, el bus de datos lleva indicado mediante una flecha la dirección de la información. Cada led tiene una entrada desde el led anterior y una salida al siguiente por lo que hay que cablear siempre desde el origen de la flecha.

Producto seleccionado: WS2812B 30leds/m impermeable IP65

ELECCION DE LA FUENTE DE ALIMENTACION

La fuente de alimentacion nos servira para alimenar tanto al controlador (una placa ESP32 en nuestro caso) como a los propios LEDS. Todo en corriente continua, y nuestra casa tiene corriente alterna.

De estos dos consumidores, sera la tira de LEDS con diferencia la que mas consuma, por lo que dimensionamos con respecto a ella.

Por lo tanto necesitamos una fuente de alimentacion que nos proporcione corriente continua a 5v y con la potencia suficiente,

Lo primero que tendremos que calcular sera la potencia total de la tira, y dependera tanto de la longitud como de la densidad de leds.

Al final, cada LED viene a consumir aproximadamente 0.2 W de potencia, por lo que tendremos que multiplicar densidad de LEDS x metros de la tira para conocer cuantos LEDS tenemos.

En nuestro caso, 30 LED/m x 3m x 0.2 W/LED = 18 W de potencia total

¿Veis ahora lo importante de estudiar bien tanto la longitud como la densidad que queremos? Si nos pasamos tendremos que comprar una fuente muy grande, y el coste de la electricidad tampoco es bajo precisamente.

La formula basica que relaciona potencia, intensidades y voltajes (para los entendidos, simplificamos con factor de potencia=1) es la siguiente: P = I x V

Es decir, en este tutorial concreto, para V=5v y P=18W, sale una intensidad de 3.6 A

Nuestra fuente de alimentacion debe ser de 5v, con una potencia minima de 18W / 3.6A , pero recordad que estos datos los teneis que calcular vosotros en cada caso.

Hay comerciantes que dan unicamente la tension de salida y la potencia, y otros dan la tension y el consumo en Amperios… dichos datos son equivalentes como hemos visto.

Tened en cuenta que a mayor potencia de la fuente las dimensiones seran mayores, y que dependiendo de la ubicacion tendremos que «ocultar» dicha fuente de la vista con ciertas precauciones de no dejarla en sitios con poca ventilacion o con materiales combustibles cerca.

Otra opción para consumos no muy grandes es comprar directamente un adaptador de corriente alterna (ojo, no es un cargador para equipos con batería recargable) que directamente irá al enchude de pared más cercano, y que alcance suficientes amperios para cubrir nuestras necesidades. Suelen venir con varios conectores intercambiables y uno de ellos incluso para cablear directamente nuestras tiras LED.

Este es uno que alcanzará hasta 3A máximo:

Conector para tira LED

Ya podéis imaginar que nosotros no compraremos una fuente muy justa de potencia, sino que iremos a comprar una que nos permita ampliar un poco en un futuro, y con un tamaño todavía razonable, ya que la diferencia en precio es pequeña.

Producto seleccionado: Fuente de alimentacion 5v, 50 W / 10 A

ELECCION DEL CONTROLADOR

La tercera parte necesaria en este proyecto, aparte de la tira LED y de la fuente de alimentacion, es el controlador.

El controlador sera el encargado de mandar ordenes a cada uno de los LEDS (o segmentos de LEDS) que queramos. Sera el cerebro que hable con ellos en cada momento segun lo que le indiquemos.

En el mercado existen controladores ad-hoc especificos para tiras LEDS, incluyendo muchos de ellos un pequeño mando a distancia con el que poder elegir el color o distintas configuraciones preestablecidas.

Nosotros haremos algo mas avanzado, pues no solo queremos un control total, sino que lo integraremos en un sistema Home Assistant.

Las opciones son varias, pero las mas comunes y baratas pasan por placas de Arduino. Son muy baratas y ciertos modelos incluyen conexion WiFi directamente y antena incrustada en la propia placa.

El modelo ESP8266 (NodeMCU) y el ESP32 son las opciones con las que se trabaja.

De las 2 opciones, el ESP32 va a ganar con diferencia en casi todos los puntos ya que es la evolucion del sucesor del ESP8266. Tiene doble nucleo y mas entradas/salidas. El precio en ambos casos es muy economico.

Elección: Controlador ESP32

INSTALAR FIRMWARE WLED EN ESP32

Hemos supuesto que ya tienes instalado Home Assistant en algun hardware apropiado. Si no es asi para todo y corre a ver este post donde te decimos los pasos para instalarlo, y este otro post si no tienes un equipo donde correrlo y dejarlo funcionando.

Existe un maravilloso desarrollo gratuito de firmware para ESP32 que trae de serie todo lo que necesitaremos. Este firmware sera el programa que se ejecute en la placa ESP32, y que entre otras cosas nos permitira introducir las credenciales de nuestra red WiFi, mostrar controles en cualquier navegador e interactuar con Home Assistant.

Este desarrollo se llama WLED y es el que usaremos en nuestro controlador ESP32.

La manera mas sencilla de instalar el programa (firmware) que nos haga de controlador es a traves de la web https://install.wled.me .

Tal como podemos leer en la propia pagina, tendremos que conectar nuestro ESP32 a traves de un puerto USB, pero el sistema operativo lo va a tratar como un puerto serie si tenemos instalados los drivers necesarios (puede que ya esten en el sistema porque es muy comun el CP2102).

Si no detecta el nuevo puerto serie al pulsar el boton INSTALL, o bien da problemas reiteradamente, debeis instalar el driver previamente.

WLED a traves de web

Al detectar un ESP32 sin programar, la propia pagina nos dara directamente la opcion de instalar WLED:

Y nos mostrara una advertencia mas, indicando que se borrara cualquier dato que estuviera en el dispositivo:

Os puede dar error puntual, pero si el driver esta correctamente instalado suele ser un fallo puntual que se soluciona normalmente con un segundo intento. Os pongo el posible mensaje de error:

Y si todo es correcto comienza la grabacion. Es importante no interrumpir este proceso:

La instalacion de WLED suele durar muy pocos minutos hasta que nos muestre que ha concluido satisfactoriamente:

Si le damos al boton «NEXT» nos preguntara por nuestra red WiFi (introducir exactamente el nombre de la misma, sin añadir o quitar ningun caracter), y la clave correspondiente:

Si volvemos a realiazar el proceso desde el principio, ahora ya detectara que tiene el firmware correcto y nos mostrara de nuevo la opcion de conectar a WiFi, por si os habeis confundido es mas facil que grabar de nuevo:

Os voy a enseñar otra forma adicional de introducir los datos de la WiFi doméstica: Nuestro ESP32 con el firmware WLED que acabamos de grabar, generará su propia red WiFi llamada WLED-AP , con un password por defecto que será wled1234:

Tendremos que conectar por ejemplo nuestro móvil (o cualquier equipo con acceso WiFi) a esta nueva red WLED-AP, introducir la clave wled1234 y desde la pantalla inicial que nos saldrá configurar los datos para que la siguiente vez se conecte directamente a nuestra propia WiFi doméstica y la tengamos accesible en nuestra LAN:

Como podréis apreciar hay más campos que podemos usar, pero la configuración mínima viable pasa por darle el nombre exacto de nuestra WiFi de casa (ojo con las mayúsculas y minúsculas) y la clave correspondiente.

También es muy aconsejable establecerle una IP fija que no usemos.

Para ver qué direcciones IP tenemos libre hay varios métodos: Podemos entrar en nuestro router y ver directamente las IPs que tiene asignadas a los distintos dispositivos, o podemos usar una app como WPSapp para escanear los dispositivos actuales en nuestra LAN (tendremos que estar conectados ahora a la WiFi de casa). Nosotros hemos elegido 192.168.0.206 por ejemplo.

El gateway por defecto será la IP de nuestro router (usualmente 192.168.0.1 o bien 192.168.1.1, pero si no la habeis cambiado vendra en la propia pegatina de vuestro router)

La máscara usualmente será 255.255.255.0 (toda IP que coincida con los 3 primeros bytes pertenecera a la misma red). Es la máscara más común usada en el 99% de los casos, pero los usuarios avanzados que no usen estos datos no tendrán problema en cambiar a los valores apropiados.

Y eso es todo por ahora…. nuestro ESP32 ya estará disponible en la red de casa. Podemos coger cualquier navegador y apuntar a esa IP (en nuestro ejemplo a 192.168.0.206 ) donde podremos ver todos los controles que incorpora:

Podemos guardar esta url en favoritos, pues siempre podremos controlar desde aquí y es imprescindible para acceder a la configuración y otros parámetros.

INSTALACION FISICA DE TIRA LED + ESP32

Ahora es cuando nos ponemos a las manualidades.

Algunas tiras LED traen incluido una banda adhesiva para su posición en superficies lisas. Nuestro consejo: Tarde o temprano acaba cediendo o hay que retirar para limpiar, o lo quieres llevar a otro sitio.

En definitiva: O bien lo dejamos suelto si la localización lo permite, o ponemos algo más profesional. Os dejamos algunos accesorios muy útiles para dejarlo de lujo:

Cuando conectemos la alimentación a la tira led, al primer LED le llegaran 5v, pero sufrirá una pequeña caída de tension hasta el siguiente led debido a la resistencia que representa.

Si la tira es suficientemente larga y/o tenemos muchos leds, es posible que el ultimo de la fila reciba mucho menos voltage y por tanto brille menos, o incluso en casos extremos no funcione.

La solución en estos casos es fácil: o ben alimentamos la tira simultaneamente por ambos extremos, o en diferentes tramos intermedios, siempre desde la fuente y respetando la polaridad. Ciertos fabricantes ya prevén este supuesto y suministran tiras con cableado de alimentación en ambos extremos.

Con respecto al controlador, segun el modelo exacto de placa de desarrollo, tendreis que conectar en diferentes pines. En la placa misma hay etiquetas serigrafiadas identificando cada PIN, y los más importantes son los de alimentación. Vin, 5v son etiquetas usuales para conectar el V+ de la fuente de alimentacion, mientras que GND (Ground) es el PIN para conectar V- de la fuente.

El PIN de datos también puede variar de una placa a otra, pero como veremos es configurable y no entraña riesgo de daño para el controlador que nos equivoquemos en esto. En general se debe conectar en pines etiquetados como GPIO2 o D4

Aqui os dejamos dos esquemas de placas ESP32 con indicaciones numeradas (1= 5v ; 2=Ground ; 3=Datos):

El esquema general de la instalación básica es el siguiente. En nuestro caso la fuente viene con 2 salidas de 5v, pero perfectamente se pueden unir si la vuestra es única (respetando la polaridad, claro):

La primera vez que intentemos hacer funcionar la tira, nos puede ocurrir que solo se ilumine un tramo de la misma. No os peocupeis que esto es tema de configuración. Le tendremos que indicar el número de LEDS que tenemos en cada segmento y el tipo. Para empezar solo dejamos un único segmento que contendrá todos los LEDS:

La propia aplicacion WLED es bastante intuitiva. Vais a pasar un buen rato jugando con ella:

WLED con Home Assistant

CONTROL DE WLED DESDE HOME ASSISTANT

Y a estas alturas, os estaréis preguntando… si ya puedo controlar todo desde una pagina web que genera nuestro ESP32, ¿para qué necesito meterlo en Home Assistant?

La respuesta requiere creatividad e imaginar

¿imaginas que quieres usar tu tira LED para mostrar el precio de la electricidad de esa hora al resto de la familia? (rojo = alto, amarillo=medio, verde=bajo), ¿o directamente con el número de leds encendidos junto con el color? ¿o que parpadee si nos acercamos a la potencia máxima contratada?

O imaginas que las luces cambien de color en función de la hora, o en función de si esta nublado, o cuando enciendan la TV, ….

O imaginas que la iluminación dependa de si abres una puerta de entrada por la noche para iluminar, pero con un brillo tenue ….

¿ imaginas todo junto ?.

Bien, ahora que entiendes las bondades de domotizar e incluir la tira led en conjunto con el resto de la casa vamos a ver cómo lo hacemos.

Si todo ha ido bien, en el momento en que nuestro ESP32 aparece en la misma red en la que esta Home Assistant, el sistema nos notifica de su presencia:

Desde el menu Settings>Devices&Services>Integrations ya podemos ver que tenemos 1 dispositivo y 23 entidades:

Si pulsamos en el device nos mostrará esas 23 entidades y las posibilidades de control desde Home Assistant, asi como la opción de añadirlo al panel principal directamente, donde también tenemos una tarjeta específica par WLED:

Si pulsamos en su configuracion (los 3 puntos verticales) tendremos todavía más opciones disponibles:

Veamos algún ejemplos de uso dentro de Home Assistant, y os advierto que lo ideal es echarle imaginación

Mostrando el precio de la electricidad con tiras LED

Ya hemos visto en otras ocasiones cómo incluir en nuestro sistema el precio PVPC de la electricidad. Ahora lo que inentaremos es que nuestra tira LED sea un semáforo, a modo de ejemplo y para que os sirva para personalizarlo.

Algo parecido a ésto, pero con los colores de nuestros LEDS:

Semáforo PVPC

La integracion PVPC nos trae ya de fábrica el parámetro que necesitamos: sensor.pvpc_price_ratio, que representa la posición del precio de la hora actual dentro de los precios de todo el día (en una escala de 0 a 1).

De tal forma que si el valor es 1 significa que es el precio más alto del día y por tanto toca ahorrar, y si por el contrario es 0 sera el valor mas bajo del día y podremos derrochar como locos … Vamos a definir 3 tramos:

  • Si sensor.pvpc_price_ratio < 0.33 nuestro semáforo estará en verde
  • Si sensor.pvpc_price_ratio esta entre 0.33 y 0.66 nuestro color será amarillo
  • Si sensor.pvpc_price_ratio > 0.66 nuestro semáforo estara en rojo

Previamente deberemos tener los Presets definidos en WLED. Es muy intuitivo: Ponemos «manualmente» el color que queramos y lo guardamos con el nombre «Verde«, «Amarillo» y «Rojo» para poder referenciarlos así desde Home Assistant.

Para que los Presets estén en HA es necesario realizar un «reload» en la integración WLED (integrations > WLED > menú de 3 puntos > Reload). Tarda un minuto y listo.

Ahora nos toca crear nuestra automatizacion, que en este caso es muy facil, y os la facilitamos en codigo yaml autoexplicativo para que solo tengais que modificar a vuestro caso.

alias: Semáforo
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.pvpc_price_ratio
    below: 0.33
    id: Verde
  - platform: numeric_state
    entity_id: sensor.pvpc_price_ratio
    above: 0.33
    below: 0.66
    id: Amarillo
  - platform: numeric_state
    entity_id: sensor.pvpc_price_ratio
    above: 0.66
    id: Rojo
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: Verde
        sequence:
          - service: select.select_option
            target:
              entity_id: select.wled_preset
            data:
              option: Verde
      - conditions:
          - condition: trigger
            id: Amarillo
        sequence:
          - service: select.select_option
            target:
              entity_id: select.wled_preset
            data:
              option: Amarillo
      - conditions:
          - condition: trigger
            id: Rojo
        sequence:
          - service: select.select_option
            target:
              entity_id: select.wled_preset
            data:
              option: Rojo
mode: single

A partir de aquí, muchas son las opciones (casi infinitas) de uso de estas tiras LED junto con un sistema de automatización. Me encantará ver en vuestros comentarios esas ideas originales.

Deja un comentario