Aunque vivo en una casa de alquiler, estoy domotizándola poco a poco con cosas que no tengan que ser permanentes y, como muchos sabéis, me gusta hacerlo todo desde cero para aprender nuevas tecnologías o simplemente como reto “porque me da la gana”.

output_EUKNqa

Si lo que quieres es simplemente encender y apagar luces con el móvil, mejor deja de leer este tutorial y cómprate esto:

http://www.aliexpress.com/item/Original-Wifi-RGB-LED-controller-for-Iphone-Ipad-Android-mobile-phone-2-3Version-IOS-system-DC7/1032823060.html

 Si te gusta la electrónica, la programación y saborear el placer de habértelo hecho TODO tu mismo, entonces sigue leyendo, porque voy a explicar absolutamente todos los pasos en el blog.

Es una tarea con bastantes retos. No va a ser fácil. Habrá momentos en los que te arrepentirás… pero el gustito que da pulsar TU botón y sentir el control de TU electrónica a través de TU aplicación web… ya verás como habrá merecido la pena.

En esta primera parte del tutorial, os explicaré como construir la electrónica que os permitirá controlar las tiras RGB de 5M a través de cualquier cliente UDP. Con eso, si sois un poco hábiles con la programación, podréis controlarlo desde una web con un script en Java, por ejemplo. En la siguiente entrega os daré una librería muy sencilla para que podáis hacer vuestros scripts en Python.

Estos son los módulos de los que hablaremos en los siguientes posts. Prepara tu soldador y tus herramientas!

  1. Electrónica
    1.1 Materiales
    1.2 Construcción
    1.3 Configuración
  2.   Software de control
    2.1 Comandos
    2.2 Cliente UDP (Hercules)
    2.3 Librería de Python
    2.4 App de Android

Más adelante lo integraremos en un panel de control gobernado por OpenHab, la plataforma de domótica que acabaremos usando para integrar todos los dispositivos.

¡Vamos allá!

1. Electrónica:

Vamos a construir los músculos de nuestra iluminación LED. El cacharro físico que encenderá y apagará los LEDs a nuestro antojo.

Este va a ser el resultado final:

2014720050814

La caja es un diseño del artista Joseba Egia (@Yayitazale), que hizo para un taller en HirikiLabs hecho en Febrero de 2015. En cuanto consiga los planos los publicaré aquí.

1.1. Materiales:

1.1.1 Tira de Led + Driver + Fuente de alimentación:

Notas sobre los LEDs: Lo mejor es que sean los 5050 RGB. Hay dos modelos de LED RGB muy comunes:

– 5050: http://www.tweaking4all.com/wp-content/uploads/2014/01/5050LED.pdf
– 3528: http://www.everredtronics.com/files/3528RGB4C-CA.pdf
Los 5050 dan algo más de brillo, así que son los que recomiendo.

– Notas sobre la alimentación: Es importante que la Fuente de alimentación de suficiente potencia.
Vamos a hacer cálculos:

  • Corriente de cada led (I) = 20mA
  • Voltaje R (Vr) = 2.0V
  • Voltaje G (Vg) y B (Vb) = 3.17V
  • Potencia por LED = I * (Vr + Vg + Vb) = 20mA * (3.17V + 3.17V + 2.0V) = 166.8mW por LED
  • Número de LEDs = 300
  • Potencia total = 300 * 166.8mW = 50W de consumo total por cada tira iluminada al 100% con todos los LEDs.

La alimentación va a 12V, así que vamos a asegurarnos de que lo que el adaptador “de suficiente chicha”

  • Consumo LEDs máx. = 50W
  • Consumo WiFi = 3.3V * 200mA = 0.66W
  • Potencia mínima = 50W + 0.66W= 50.66W
  • Alimentación = 12V
  • Corriente requerida = 50.66W / 12V = 4.22A

Lo normal es que los adaptadores que van en los lotes de LED den 5A (60W), pero he encontrado algunas ofertas de 2A (24W), de modo que los LEDs brillarán menos e incluso se puede llegar a reiniciar el módulo WiFi.

 – Notas del Driver: El driver es esa cajita blanca que viene con los LEDs. Esta cajita incluye el receptor IR y algo de inteligencia para hacer juegos de luces. Puesto que sólo nos interesa el transistor de potencia, nos interesa que el driver sea accesible, así que habrá que asegurarse de que viene en una caja de plástico y no de una sola pieza.

El driver se puede comprar por separado por 1.48€: http://www.aliexpress.com/item/24-Keys-LED-IR-RGB-Controler-LED-Lights-Controller-IR-Remote-Dimmer-Input-DC12V-6A-For/2020095096.html

 1.1.2. Módulo Wifi:

– Notas: Este modelo tiene 3 salidas capaces de generar PWM y puede funcionar como AP y STA a la vez, lo que lo hace ideal para esta situación.

1.1.3. Conversor a 3.3V:

– Notas: Valdrá cualquier conversor a 3.3 que sea capaz de suministrar más de 700mA

1.1.4 Precio total:

  • Tira de LEDs+ Driver + Fuente de Alimentación: 14.58€
  • Módulo WiFi: 11€
  • Conversor 3.3V: 0.12€

Total: 25.7€


1.2. Construcción. ¡Manos a la obra!

Vamos a construir nuestro propio Driver LED-WiFi modificando el driver actual y añadiendo el módulo WiFi.

2.1. Herramientas:

  • Soldador y estaño
  • Destornillador de punta fina
  • Cable de 3 colores además de Rojo y Negro.
  • Pistola de silicona caliente

2.2. Pasos:

  1. Abre la caja del driver de los LEDs.caja1
  2. Corta el receptor IR marcado en rojoIR
  3. Desuelda los dos chips del driver.chips
  4. Suelda tres cables al conversor de 3.3V:
  • Negro al 1 (GND)
  • Rojo al 2 (OUT)
  • Amarillo al 3 (VIN)ams1117
    1. Conecta el conversor al driver y al módulo WiFi siguiendo este circuito:cto
    2. Conecta los pines 8, 9 y 10 del módulo WiFi a las resistencias que iban en la salida de uno de los integrados que has quitado o a las pistas correspondientes, como en la foto. Fíjate que en la placa pone R, G y B, de manera que nos referiremos a estas resistencias como R_R, R_G y R_B.res
      Así es como os quedará si lo soldáis a la pista que quede de los chips que habéis quitado en el paso número 3rgb
    3. No te olvides de conectar la antena del módulo WiFi antes de encenderlo.
    4. Pega la electrónica de manera que vaya a caber en la caja que vayas a usar.

 

Asegúrate de que dejas hueco para conectar la antena más adelante. Seguramente tengas que limar la placa del driver para que todo quede bien alineado.

¡NO ENCIENDAS EL MÓDULO SIN CONECTAR LA ANTENA!

Con esto ya tenemos todo listo para configurar el módulo WiFiy empezar a jugar. Si conectamos la alimentación, veremos los LEDs verdes y azules parpadear de manera periódica. Esto se debe a que los pines 9 y 10 del módulo WiFi están aún indicando el estado de la disponibilidad de la red (NREADY) y del enlace (NLINK)


 

1.3. Configuración

En esta parte del tutorial vamos a configurar el módulo WiFi para que actúe como generador de PWM en vez de pasarela WiFi-Serie, que es como viene por defecto. Además haremos que se conecte a nuestra red de casa y que genere su propia red para que esté siempre accesible.

3.1. Herramientas:

  • Conversor USB-Serie
  • Cables con pin hembra para conectar el conversor USB-Serie al módulo WiFi.

3.2 Pasos:

  1. Conecta la electrónica a la alimentación normal de 12V.
  2. Tras unos segundos, verás una nueva red WiFi llamada USR-WIFI-232. Conéctate.
  3. Abre el navegador y ve a la dirección 10.10.100.254
  • Usuario: admin
  • Clave: admin

 

  1. Pestaña WORKMODE:
  • Selecciona AP+STA mode

 

  1. Pestaña STA Setting:
  • Configura la red a la que quieres que se conecte el módulo

 

  1. Pestaña AP Setting:
  • Esta es la red secundaria que crea el módulo para que puedas configurarlo.
  • Simplemente cambia el SSID por lo que mejor te parezcaap
  1. Pestaña Other Setting:
  • Para minimizar el retraso en las comunicaciones con los Leds, cambiamos el protocolo a UDP y ponemos el puerto que nos convenga: 8899 por defecto.

other

  1. Conectamos un puerto serie a los pines 5 y 6. El puerto no tiene echo, así que sólo verás la respuesta cuando entres en modo AT enviando +++
  1. Entra en modo AT escribiendo “+++a”. La respuesta es “a+ok”
  1. Cambia el modo de trabajo a PWM escribiendo “AT+TMODE=pwm”. La respuesta será “+ok”

2. Software de control

El módulo WiFi que estamos usando permite que lo controlemos enviando comandos por UDP muy sencillos al puerto que le hemos especificado (8899), por lo tanto, hay muchas maneras de controlar estos módulos, pero todas tienen un factor común: los comandos a enviar.

2.1 Comandos

Aunque hay varias formas más eficientes de comunicarnos con los módulos, os voy a explicar la forma fácil de hacerlo.

Sea el software que sea el que uséis para comandar los USR-WIFI232, siempre vais a tener un socket UDP abierto en el puerto que hayáis configurado (8899). Por ese socket simplemente tendréis que enviar Un mensaje con este aspecto:

PWM c fffff ddd

  • PWM: Es el comando para indicar una nueva frecuencia (ffff) y potencia (ddd) en el canal (c) RGB seleccionado
  • c: Se refiere al número de Canal: Rojo = 1, Verde = 2 y Azul = 3. Se indica con un sólo caracter numérico del 1 al 3.
  • ffff: Es la Frecuencia en Hercios a la que queremos que funcione el PWM de ese canal. Los valores aceptados van de 500 a 50000. Yo os recomiendo que los pongáis siempre muy altos, al menos superiores a 20000, ya que a partir de esa frecuencia ya no es audible.
  • ddd: Este es el Duty cycle del PWM, el tiempo que queremos que esté encendido o, simplificando mucho, la potencia en %. Los valores van de 0 a 100, pero tened en cuenta que no hay una relación directa entre el brillo del led y el porcentaje del tiempo en alto del driver. Hay multitud de estudios e información acerca de este tema, de modo que, si os interesa, os recomiendo que os leáis este documento de OSRAM.

Aquí tenéis algunos ejemplos de comandos:

  • PWM 1 30000 0 – Canal Rojo (1) a 30Khz pero apagado (0)
  • PWM 2 30000 50 – Canal Verde (2) a 30Khz al 50% (50)
  • PWM 1 600 84 – Canal Rojo (1) a 600Hz al 84% (84)
  • PWM 3 40000 10 – Canal Azul (1) a 40Khz al 10% (10)

Con esto ya tenéis suficiente para empezar con la siguiente parte.

2.2 Cliente UDP – Hercules

Esta es la manera más básica de controlar vuestras luces, aunque también es la más incómoda. simplemente tenéis que bajaros un cliente UDP cualquiera (Yo os recomiendo Hercules de esta web)  y configurarlo como os muestro en la siguiente imagen y pulsar Listen:

hercules

Ahora que ya está configurado, simplemente hay que escribir los comandos en alguna de las casillas de texto de abajo, desmarcar la casilla HEX y pulsar Send.

sent

2.3 Librería en Python

Seguramente no queráis tener que usar el programa anterior para encender las luces de vuestro salón cada vez que paséis por allí, así que os invito a que os bajéis la librería LedUDP y que os hagáis vuestro propio software de control en Python.

Tenéis toda la información y archivos en este enlace: https://github.com/Mifulapirus/LedUDP

  • ledUDP.py: Esta es la librería que tendréis que usar en vuestros proyectos. Es independiente de todos los demás procesos que tengáis, de manera que simplemente tendréis que declarar una nueva entidad del tipo ledUDP por medio de ledUDP.Led(“IP del módulo”, Puerto, “Nombre”, [Nivel de Log]) y usar las funciones que veréis dentro.
  • ledUDP_Test.py: Este es un script de ejemplo donde veréis como declarar los leds y usar algunas de las funciones de la librería.

 

2.4 App de Android

Mi compañero de aventuras frikis, Jesús (www.jesusdc.com), ha hecho una App muy sencilla para controlar estos módulos de LEDs. Aunque está pensada para probar los módulos, la verdad es que ha resultado ser bastante útil en varias situaciones, de modo que os dejo también el enlace al código y el APK en su GitHub

5 Respuestas a “300 LEDs RGB controlados por WiFi – 25.70€”
  1. […] Tiras LED RGB controladas por WiFi – 25.7€ […]

  2. kosovar dice:

    Muy buen tutorial. Tengo un pregunta y si simplemente quiero controlar una tira led normal,¿podría prescindir del driver?, ¿Que debería modificar para su correcto funcionamiento?. Un saludo y gracias.

  3. Muy bueno, ahora te propongo un pequeño reto. ¿Que tal cambiar la tira RGB por una HL1606?

    https://learn.adafruit.com/hl1606-led-strip/overview
    https://www.youtube.com/watch?v=KlfhHXBz9WI

    Yo la tengo en casa y es una pasada.

    Un saludooooo!!!

  4. Así seguro que va a parecer una feria. Me encanta.
    Tengo una, a ver si la integro y hago el tutoirial pronto… aun me quedan muchos que escribir.

  5. Cuelquier led require más potencia que la que puede dar el ESP8266. Las tiras de led suelen trabajar a 12V, de manera que algun transistorcillo te hará falta para manejarlos.

    Otra opción es que uses leds direccionables, que llevan el driver integrado, pero ya no es tan sencillo como generar un PWM por canal.

Deja una Respuesta