Llevando las tiras de LED a otra dimensión con WLED y LedFx, NodeMCU y Home Assistant

Bueno, este post viene cargadito, donde vamos a ver distintos productos que además combinándolos hacen mágia. Vamos a conectar una tira de led WS2812B a un NodeMCU y le vamos a cargar WLED para conseguir efectos muy chulos, además montaremos LedFx para mover los LED con audio y acabaremos presentando todo mediante Home Assistant para el control domótico.

 

Lo dicho, NodeMCU es una placa Arduino con el chip ESP8266 y módulo Wifi que bastantes de vosotros conoceréis, y si no, os animo para que sea vuestro primera placa para introduciros en este apasionante mundo. Vamos a descargar un maravilloso firmware llamado WLED que cargaremos en el chip, con ello podremos controlar las tiras desde una app desde nuestros móviles o un navegador, este firmware tiene un montón de efectos para controlar este tipo de tiras de LED, además que tiene un montón de settings y posibilidades. Añadiremos en nuestro Home Assistant las tiras de LED que tengamos para poder controlaras de manera centralizada o hacer automatizaciones. Y para poner la guinda a la tarta usaremos LedFx, que no es más que otro maravilloso proyecto que podremos correr en cualquier máquina y todo el audio que recoja dicha máquina mediante un micrófono hará que los LED se muevan a su ritmo.

 

Lo primero será la conectividad, conectaremos la tira de LED WS2812B a nuestro Arduino, os dejo este esquema para que os hagáis un poco la idea, el D4 del NodeMCU v3 es el GPIO2 lo conectamos al pin de datos de la tira de LED. Luego podemos conectar el de 5V directamente a la placa (en este caso al VIN) para evitar usar otro alimentador externo y con ello alimentar la tira de LED también. Y finalmente conectamos la tierra a los GND.

 

WLED

A continuación descargaremos WLED, un proyecto super interesante que implementa un servicio web en los ESP8266/ESP32 que permiten controlar las tiras Neopixel que son diodos LED de tipo 5050 con controladores WS2812B, WS2811, SK6812 o APA102. Por ahora la última versión que tenemos es la 0.8.5, descargamos de GitHub el fichero para ESP8266, en este caso “WLED_0.8.5_ESP8266.bin”. Y lo cargamos con ESP Easy Flash o alguna utilidad similar desde cualquier equipo, ojo con seleccionar el puerto COM correcto y seleccionar bien el firmware.

 

Si conectamos todo, al arrancar NodeMCU, creará AP llamado WLED-AP con contraseña: wled1234

 

Nos conectamos y accedemos con un navegador a su IP predeterminada: http://4.3.2.1/
Debemos configurar nuestro Wifi, pulsamos sobre “Wifi Settings”

 

Y nada, indicamos nuestro SSID y contraseña del Wifi, indicamos si queremos IP estática o dinámica mediante DHCP, indicamos su nombre DNS… “Save & Reboot”.

 

Podremos gestionar WLED bien con un navegador, accediendo a la nueva IP que haya cogido una vez haya reiniciado y se haya conectado a nuestro AP Wifi. O también podremos gestionarlo desde nuestro móvil con una app llamada “WLED”, podremos buscarla en el “Play Store” y supongo que para iOS también habrá 🙂

Como vemos simplemente tendremos que darle al “+” y directamente nos detectará las tiras de LED que tengamos encendidas y conectadas a la red. Podremos jugar con los estilos, aplicar un color sólido, o usar los efectos predefinidos que son infinitos, así como personalizar los nuestros. Algo importante que tendremos que hacer será, en “Settings” > “LED Preferences” el configurar el número de LED que tenemos, esto nos indicará el amperaje necesario para alimentarlo de manera correcta, así como podremos especificar el máximo que da nuestro transformador. Y no olvidarnos de especificarle un nombre o descripción, ya que si tenemos muchas tiras, podremos luego unirlas en grupos (mediante el puerto UDP de sincronización) y poder tener los mismos efectos en todas ellas.

 

Home Assistant

 

Si disponemos de Home Assistant o Hassio actualizado, podremos añadir directamente desde las Integraciones el control de WLED, para ello, en el cuadro de búsqueda al escribir “WLED” lo buscaremos y seleccionaremos.

 

Especificamos la dirección IP de esta tira de LEDs, la IP que tenga nuestro Arduino y pulsamos sobre “Enviar”,

 

Perfecto, que sencillo… lo podemos asociar a algún área si tenemos definidos los habitáculos de la casa, pulsamos en “Terminar”.

 

Nos mostrará las entidades que nos habrá creado, para poder controlar la tira de LED, calcular su consumo en mA, memoria libre… además de las automatizaciones que podemos hacer.

 

Y bueno, desde las vistas de Home Assistant, como siempre creamos nuestras tarjetas como nos interesen, este es un ejemplo de las entidades que nos ha creado.

 

Y cuando pulsemos en la entidad principal de WLED podremos establecer el color que nos interese en esta tira, o establecer un efecto… está chulo, ¿no?

 

LedFx

Bueno, y si queremos colocar (por ejemplo) una Raspberry Pi con un micrófono por ahí y que lo que escuche este micrófono haga que los LED se muevan de una u otra manera, si ponemos música para que bailen a su son, o con la voz que hagan algunos efectos… Aunque podemos poner en el mismo Arduino un sensor de sonido si queremos hacerlo individualmente, la idea de hacerlo con un microfono ‘en red’ es que varias tiras se muevan de manera igual.

 

Tenemos que instalar LedFx, podemos hacerlo rápidamente bajo un Windows o Linux.

En Windows quizá rápido para probar, necesitaremos Anaconda instalado, y en un Terminal que iniciemos activaremos un entorno virtual y lo cargamos:

conda create -n ledfx python=3.6
conda activate ledfx

 

Instalamos LedFx y sus dependencias:

conda config --add channels conda-forge
conda install aubio portaudio pywin32
pip install ledfx

 

Y lo cargamos:

ledfx --open-ui

 

Bajo Linux, la instalación sería:

sudo apt-get install portaudio19-dev -y
pip3.6 install ledfx
ledfx --open-ui

 

Si necesitas más info de su instalación, echa un vistazo a su documentación oficial: https://ahodges9.github.io/LedFx/

 

Vamos a “Device Management”, aquí iremos añadiendo todas las tiras de LED que tenemos con WLED, pulsamos en el “+”,

 

Indicamos “e131” en el Tipo, le indicamos un nombre y la dirección IP de WLED, así como el número de LED que tiene dicha tira. Pulsamos en “Add”,

 

Y nada, ya podremos habilitarlo o deshabilitarlo, así como si pulsamos en una tira ver cómo funciona.

 

 

Nos mostrará el audio que esté escuchando desde el micrófono y lo pintará en ondas, así de fácil, tenemos las tiras de LED bailando! Además podremos cambiar los distintos tipos de efectos, muy muy completo. Como siempre, espero que os haya resultado interesante,