domingo, 14 de febrero de 2016

Luces LED controladas por ESP8266 y Android (o IPhone)

En este proyecto se montará un sistema de luces LED, en una vitrina, que se podrán controlar, vía wifi, desde un dispositivo móvil, gracias a un ESP8266.


En el pasado publique un articulo para hacer lo mismo, pero usando Arduino y Bluetooth. No quede muy satisfecho, debido a que la conexión con Bluetooth no era práctica. En primer lugar tenia que activar el Bluetooth del teléfono, ya que tengo la costumbre de desactivarlo para ahorrar batería. Una vez activado el Bluetooth, la conexión solía tardar más de lo deseable en establecerse. Debido a estos contratiempos, en esta ocasión el Arduino y el módulo Bluetooth se sustituye por una única placa, una NodeMCU (ESP8266). Por otro lado el módulo de relé se sustituye un MOSFET IRLZ44N.

Con estos cambios ganamos en economía, simplicidad y funcionalidad. En economía, porque ahorramos unos 3 euros. En simplicidad, porque sustituimos dos placas por una, y el módulo de relé por un simple MOSFET. Y en funcionalidad, porque con el MOSFET, por medio de PWM, podemos graduar la intensidad de la luz, mientras que con el relé solo podíamos encenderla o apagarla. Además, el manejo de un dispositivo wifi es mucho más ágil que el de un dispositivo Bluetooth,

Lista de la compra

  • 1 placa NodeMCU                          3,50 €
  • 1 IRLZ44N                                2,50 €
  • 2 LEDs COB redondos 3W                   2,00 €
  • 1 Fuente de corriente DC12-32V 300mA     4,25 €
  • 1 Enchufe USB                            1,00 €
  • 1 Cable USB 2.0 macho a a micro-USB      1,00 €
  • 1 Placa protoboard mini (170 contactos)  0,50 €
Total 14,75 €

Esta vez no he tenido en cuenta el coste de los cables, ya que aunque compremos muchos realmente usamos pocos.

Aunque he usado dos protoboards solo he contado una. Disponía de una placa NodeMCU V0.9, ya obsoleta. Adquiriendo una placa moderna, más estrecha, con una protoboard es suficiente.

En general, donde he encontrado los productos más baratos ha sido en AliExpress.

Únicamente vamos a explicar los componentes que hemos incorporado respecto al proyecto antiguo, para no ser repetitivos.


Placa NodeMCU

En mi opinión, las placas tipo NodeMCU son la mejor opción para hacer montajes. Al incorporar una conexión USB se soluciona muy fácilmente el tema de la alimentación.

Lo ideal sería una placa con conexión USB, solo para alimentación, pero sin un chip USB que únicamente sirve para programar el ESP8266. Eliminando el chip USB se podría disminuir un poco el tamaño. En realidad existe una placa con estas características y se llama Witty Cloud. He pedido una y estoy esperando que me llegue.

Yo he utilizado una placaNodeMCU 0.9 (V1) porque ya lo tenia, pero ya esta obsoleta. Para realizar el montaje en una sola protoboard mini mejor elegir otra placa: la Amica NodeMCU (V2), la WeMos D1 o la Witty Cloud.


IRLZ44N

Se adapta sobradamente a la corriente requerida. La fuente de corriente proporciona 0,3A, muy lejos de los 47A que soporta el IRLZ44N.

También se adapta a la tensión requerida. La tensión de trabajo estará entre 18V y 24V. El IRLZ44N puede manejar hasta 55V entre Source y Drain.

ESP8266 trabaja con una tensión de 3.3V. IRLZ44N se adapta bien a esta tensión.

En la siguiente gráfica, extraída de la hoja de especificaciones, se puede ver como con una tensión de 25V entre Drain Source varia la corriente que circula en función de la tensión aplicada Gate. A 3.3V ya circula bastante corriente.


Recomiendo no comprarlo en China, via EBay o Alliexpress. Encontré un vendedor que tenia un precio muy bueno, pero el montaje no me funcionaba. Ante las sospecha de que pudieran ser componentes remarcados hice otro pedido, esta vez a un vendedor alemán. Con los de Alemania el montaje funciono a la primera, con lo que confirme que los que me llegaron de China eran falsos.

El precio que he indicado es el precio unitario, incluido portes, de pedido de tres que hice a Alemania.

Por si alguien esta en la duda de si tiene un IRLZ44N auténtico o falso (fake) pongo una foto con los dos.


Hardware

Esquema

Montaje en protoboard
Conexionado de los LED

Fuente de corriente
LEDs 3W


LED montado



Para crear el esquema con Fritzing he usado esta "parte" para añadir el NodeMCU: http://blog.squix.ch/2015/05/esp8266-nodemcu-v10-part-created-for.html


Control desde el móvil: Blynk

Blynk es una fantástica app disponible para Android e iOS que permite crear rápidamente interfaces gráficas, para controlar Arduino, Raspbery Pi y similares a través de Internet. En el momento de escribir este articulo es gratuita, aunque parece que hay planes de que la versión gratuita tenga limitaciones, que se desbloquearan pagando una cuota.

En primer lugar hemos de crear un proyecto, para lo que hay que darle un nombre y especificar que tipo de hardware estamos utilizando:
El token está difuminado, por razones obvias
Es conveniente usar la opción de enviarnos el token por E-mail para, más adelante, poder hacer un copiar y pegar en el programa.

Solo añadiremos un control, el Large Slider:



Hay que configurarlo indicando a que pin hemos conectado el MOSFET:


Además del pin hay que indicar el rango, que será de 0 a 1023, el rango que ESP8266 utiliza para PWM.

Programa

El ESP8266 se ha programado con Arduino IDE. Para mas información sobre como programar con Arduino IDE consultar mi anterior articulo.

Gracias a Blynk, practicamente no es necesario programar. El código necesario es simplemente esto:

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "TuToken";

void setup()
{
  Serial.begin(115200);
  Blynk.begin(auth, "SSID", "PASSWORD");
}

void loop()
{
  Blynk.run();
}

Para poder usar este código es necesario usar el token proporcionado por Blynk, y el identificador y contraseña de nuestra red wifi.

Consumo

8W en funcionamiento
0W en stand-by
Con un medidor he comprobado el consumo. En stand-by indica 0W y encendido, al máximo, 8W. Los mismos valores que en el montaje anterior, usando un relé.



Vídeo


Advertencia

No he montado ningún tipo de disipador en los LEDs. Esto hace que estén funcionando a temperatura  muy alta, más de 100ºC. Para mayores potencias es imprescindible montar disipadores. Si los LEDs van a estar mucho tiempo encendidos también es recomendable montar disipadores. Así mismo, hay que tener en cuenta la posibilidad de que pueden producirse quemaduras al tocar los LED.



Para cualquier duda sobre este proyecto no dudéis en preguntar.

6 comentarios:

  1. Saldos amigo, he montado tu circuito, funciona, pero la intensidad de los leds no es como deberia de ser, se limita, sabras porque?

    ResponderEliminar
    Respuestas
    1. Hola Cesar, comprueba que el material que has comprado este dentro de las especificaciones. Si compras por Internet no es difícil que las especificaciones indicadas no coincidan con las reales.

      Eliminar
  2. Hola buenas, me llamo Pablo.

    Una duda.
    ¿Este montaje es compatible con que puedas encender y apagar las luces desde un interruptor normal? por si te quedas sin Wifi o sin batería en el móvil.

    En caso de que también puedas usar un interruptor manual. ¿La aplicación del móvil te reconoce el estado de la luz?, es decir, si ha pasado de encendida a apagada o viceversa.

    Gracias de antemano y enhorabuena por la página, está genial.

    ResponderEliminar
    Respuestas
    1. Hola Pablo. En principio no. Pero no sería muy complicado añadir un interruptor conectado al ESP8266. Para el tema de poder seguir encendiendo/apagando la luz cuando no hay wifi me gusta el SonOff RF, que te permite hacer con un mando a distancia.

      Eliminar
    2. Muchas gracias por la respuesta.

      Más que un interruptor, quizás debiera haber dicho un conmutador, pero creo que seguiría teniendo el problema de que la aplicación móvil no te muestre el estado real de la luz.

      Si, la opción del SonOFF RF está muy bien, me parece económica y elegante.

      Pero demasiado sencilla jeje. Estoy iniciándome en el mundo de Arduino y me parece más entretenido usar el ESP8266 que el SonOff. Además, imagino (corrígeme si me equivoco) que el SonOff no será compatible (de serie) con la aplicación Blink (o similares) por si tienes más cosas conectadas y por centralizarlo todo en una única aplicación. O viceversa, la aplicación del SonOff no será compatible con el resto de automatismos que hayas creado.

      Saludos.

      Eliminar
    3. El Sonoff de serie no funciona con Blynk, pero siempre lo puedes hackear: http://recetastecnologicas.blogspot.com.es/2016/03/hackeando-el-itead-sonoff-rf-las.html

      Eliminar