Introducción a Tasmota con NodeMCU


Hemos hablado o en este blog de Node MCU, una plataforma de prototipado rápido para el desarrollo de proyectos IoT que esta basada en el chip ESP8266, el cual se ha extendido enormemente debido a su facilidad para desarrollar proyectos open source  que pueden además  pueden   involucrar el IoT . Viene con conectividad WiFi integrada ( gracias al chip ESP8266) y puede ser programada a través de una conexión USB utilizando un lenguaje de programación como Arduino o Lua. Además, la placa NodeMCU cuenta con una serie de pines de entrada/salida (GPIO) que se pueden utilizar para conectar y controlar dispositivos externos ( sin embargo, sólo posee una entrada/salida analógica pero para eso podemos optar por el ESP32). Es una opción popular para proyectos de Internet de las cosas (IoT) debido a su bajo costo, facilidad de uso y porque integra capacidades de comunicación via WiFi , conteniendo en su interior  un microprocesador que puede ser programado fácilmente. Obviamente, ante todo, no podemos perder de vista su bajisimo precio (menos de 10€ ) comparados con otras opciones, pues no debemos olvidar  que incluye  el modulo wifi integrado  y un bus GPIO para conectar dispositivos de E/S

node-mcu

Por otro lado, Tasmota es un firmware alternativo para dispositivos de Internet de las cosas (IoT, por sus siglas en inglés). Se utiliza principalmente para dar soporte a dispositivos domésticos inteligentes, como interruptores y enchufes inteligentes, luces y termóstatos.

Como amigo lector se puede imaginar, Tasmota es una opción popular entre los usuarios de IoT debido a su flexibilidad y facilidad de uso, y también porque es open source y puede ser modificado y mejorado por cualquier persona.

Tasmota es soportado por muchísimos fabricantes que ofrecen soluciones de IoT a medida, en este post vamos a ver como es bastante fácil instalar Tasmota en una placa node-mcu y de este modo simplificar mucho su uso.

Configuración inicial de Node-MCU

Antes de configurar Tasmota, si empezamos por primera vez debemos realizar los típicos pasos de preparar el entorno de desarrollo, instalar los drivers y probar la placa.

Estos pasos  a seguir   para conectar un ESP8266 son los siguientes:

  •  Instalación del IDE de Arduino .Si aun no lo tiene instalado, se puede hacer  desde aqui
  • Instalación  del paquete de la placa ESP8266 en Arduino IDE  siguiendo las instrucciones del sitio : https://github.com/esp8266/Arduino
driver-arduino-esp8266
  • Instalación de los controladores USB

Es necesario instalar el controlador USB requerido en su ordenador  para que pueda programar el ESP8266.  Independientemente de la opción de firmware que elijamos, primero necesitamos comunicarnos con la placa de desarrollo ESP-12E utilizando la interfaz USB de su ordenador.

El módulo USB a Serial UART incluido en la placa es Silicon Labs ‘CP2012, un módulo de comunicación inalámbrico que se utiliza para conectar dispositivos a través de una conexión USB. Este módulo es compatible con una amplia variedad de protocolos de comunicación, incluyendo Bluetooth, Zigbee y Thread, lo que lo hace ideal para aplicaciones de Internet de las cosas (IoT). Además, el módulo CP2012 viene con una placa de desarrollo de hardware que se puede utilizar para probar y desarrollar aplicaciones que utilicen el módulo. Es una opción popular para aquellos que quieren conectar dispositivos de manera inalámbrica de manera fácil y económica.

Antes de nada generalmente necesitamos instalar los controladores de puerto COM virtual (VCP) fácilmente disponibles para su sistema operativo específico. Una vez instalado, debemos verificar que el CP2102 sea reconocido por su ordenador.

Una vez que el controlador está instalado, podemos conectar el cable USB al puerto USB de su ordenador y la placa. Después de hacerlo, deberíamos ver el mensaje: software del controlador del dispositivo instalado correctamente.

Además, podemos verificar manualmente que todo funcione correctamente siguiendo estos pasos:

Abra el Administrador de dispositivos (disponible a través del Panel de control → Sistema y seguridad → Administrador de dispositivos en la sección Sistema).


Debajo de la entrada Puertos (COM & LPT), debe haber un puerto abierto llamado USB-SERIAL CP2102 (COM) donde hay un número típicamente mayor o igual a 3.

Ahora que estamos listos para comunicarnos con nuestro ESP8266 a través del CP2102, podemos explorar algunas de las diferentes opciones de firmware disponibles.

  • Conecte  un cable usb  de datos al ESP8266.
  • Seleccione   Herramientas –>ESP8266   y ahi la placa que haya comprado. En caso de  haberla comprado en Amazon aqui seleccione  NodeMCU 1.0 (ESP-12EModule).
configuracion-aruduino-esp8266
  • En el IDE de Arduino, vaya al menú de herramientas, seleccionada su placa y elija el  puerto al que está conectado su ESP8266.En el ejemplo  es el COM11
seleccion-puerto-para-esp8266-en-arduino
  • Ahora  copie el siguiente código  para probar que puede subir y que el node-mcu funciona . Copie desde el entorno de arduino las siguintes lineas y ejecute el código en la placa :

/*ESP8266 Led Parapadeante*/


void setup()
{
pinMode(LED_BUILTIN, OUTPUT);// Initializa el  pin de LED_BUILTIN como salida

}


void loop() {// la función de bucle se repite una y otra vez para siempre

digitalWrite(LED_BUILTIN, LOW);// encienda el LED 

delay(1000); //Espera de 1 segundo

digitalWrite(LED_BUILTIN, HIGH);// Apague el LED haciendo que el voltaje sea ALTO

delay(2000); //Espere dos segundos  para dejar apagado  LED 

}

Como puede apreciar , el código ejecuta un bucle infinito en el que pone el estado bajo  un segundo (encendiendo el led)    para posteriormente forzar a nivel alto  dos segundos(apagando el led  )  y así   indefinidamente gracias al bucle  que se repite indefinidamente.

El LED azul en el módulo ESP – 01 está conectado a GPIO 1, (que también es el pin TXD, por lo que no podemos usar Serial.print () al mismo tiempo), si todo va bien debería parpadear el led interno. Tenga en cuenta que el nivel de voltaje es BAJO  pero en realidad el LED está encendido, porque es bajo en el ESP. En este código se usa  LED_BUILTIN para encontrar el pin con el LED interno  de modo.

INSTALACION SW DE TASMOTA

Tasmota es un firmware especial para los microcontroladores fabricados por la empresa Espressif con los micros ESP8266,  ESP32, ESP32-S o ESP32-C3.

Si ha trabajado alguna vez con el IDE de Arduino, después de elegir la placa con la que va a trabajar y escribir su código, lo ha subido a una placa ESP8266, en ese momento hemos creado un firmware, (bueno en realidad es el IDE Arduino quien junta todas las piezas y crea el firmware para posteriormente subirlo a la memoria de la placa).

Ahora que ya sabemos de qué se trata un firmware sigamos con Tasmota. Soporta una gran cantidad de dispositivos ya fabricados en el mercado, como los de SONOFF o TUYA, pero también los que podemos construir, por ejemplo, con un Wemos D1 Mini.

Se integra vía MQTT (MQ Telemetry Transport) con cualquier controlador, por ejemplo, Home ssistant,  Jeedom,  openHab. MQTT que es un protocolo muy fácil de implementar que hace que las maquina hablen entre ellas y que es un estándar en el Internet de las Cosas (IoT).

MQTT (Message Queuing Telemetry Transport) es un protocolo de red diseñado para la conectividad de dispositivos y redes de sensores de baja potencia y ancho de banda. Se utiliza a menudo en aplicaciones de Internet de las cosas (IoT) debido a su eficiencia y facilidad de uso.

En MQTT, los dispositivos se conectan a un servidor central llamado «broker» y se suscriben a «temas» específicos. Los dispositivos también pueden publicar mensajes a estos temas. Cuando se publica un mensaje a un tema, todos los dispositivos suscritos al tema recibirán el mensaje. Esto permite que los dispositivos se comuniquen entre sí de manera eficiente y sin tener que estar constantemente conectados al servidor central.

MQTT es un protocolo de red ligero y fácil de implementar, lo que lo hace ideal para aplicaciones en las que la potencia y la banda ancha son limitadas.

Algunos ejemplos de controladores que soportan MQTT:

  • Domoticz
  • Home Assistant
  • HomeBridge
  • HomeSeer
  • Mozilla Project Things
  • NodeRed
  • OpenHAB
  • SmartThings
  • Yeti
  • Jeedom

Una vez conectado el dispositivo de una de las dos opciones anteriores, solo nos queda subir el firmware de Tasmota. Estas son algunas opciones más útiles:

  • Tasmotizer: si solo utiliza Tasmota en tu entorno esta es la opción correcta
    • Backup Automático antes de subir el código, así poder restaurar el firmware original del fabricante.
    • Subir imágenes .bin al dispositivo, que se descargan automáticamente
    • Envío de configuración wifi, MQTT etc. Para no tener que conectarnos de nuevo al dispositivo.
    • Recoger la IP del dispositivo, Tasmota avisa que esta opción depende del estado del dispositivo y que puede no funcionar.
    • Para Windows existe un ejecutable, para MAC o Linux debe hacerse con Python y se instala desde el terminal.
  • ESP-Flasher: herramienta multiplataforma basada en esptool.py, disponible para MAC y Windows, la puede descargar en este enlace ESP-Flasher.

Resumida pues para instalar Tasmota en una placa NodeMCU, necesitaremos seguir los siguientes pasos :

  1. Descargue e instale el Arduino IDE en su ordenador.
  2. Abre el Arduino IDE y ve a «Archivo» -> «Preferencias».
  3. En la ventana de preferencias, agregue la siguiente URL en el campo «Gestor de URLs adicionales de tarjetas»: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  4. Cierre la ventana de preferencias y ve a «Herramientas» -> «Placa» -> «Gestor de tarjetas».
  5. Busque «esp8266» en el gestor de tarjetas y selecciónalo. Haga clic en «Instalar» para instalar el soporte para la placa NodeMCU.
  6. Descargue la última versión de Tasmota desde el sitio web oficial.
  7. Descomprima el archivo .zip descargado y copie el contenido en una carpeta en su ordenador.
  8. Abra el Arduino IDE y selecciona «Archivo» -> «Abrir» para abrir el archivo «tasmota.ino» que se encuentra en la carpeta de Tasmota.
  9. Conecte la placa NodeMCU a tu ordenador a través del cable USB.
  10. Vaya a «Herramientas» -> «Placa» y selecciona «NodeMCU 1.0 (ESP-12E Module)».
  11. Vaya a «Herramientas» -> «Puerto» y seleccione el puerto al que está conectada la placa NodeMCU.
  12. Haga clic en el botón «Cargar» para cargar Tasmota en la placa NodeMCU.

Una vez que Tasmota se haya cargado correctamente en la placa NodeMCU, estará listo para configurar y utilizar la placa con el software Tasmota. Estos son los pasos a seguir para instalar Tasmota en su node-mcu .

En cuanto ejecutemos el codigo tasmota.ino enos deberia aparecer la ventana siguinte:

Podria haber problemas

Una vez seleccionada la placa debemos borrar el fw existente:

borrar-esp8266

Nos pedirá confirmación antes de borrar el dispositivo:

confirmacion-borradp-esp8266

Tardara un rato en completar la instalación, que ira apareciendo conforme se vaya instalando:

progreso-instalacion-tasmota

En unos segundos debería aparece el mensaje de concluida la instalación:

fin-instalacion-tasmota

Concluida la instalación tenemos la opción de acceder al interfaz del propio Tasmota o abandonar:

acceso-tasmota-al-final-instalacion

Si todo va bien nos aparece el interfaz de Tasmota con todas las opciones disponibles

menu-tasmota-esp8266

Antes de nada debemos acceder al menú configuración, para configurar los parámetros de red:

menu configuracion-tasmota

Una vez configurado, podemos guardar , configuración o resetear y a partir de aqui disfrutar de todas la opciones posibles

Resumen

Para instalar Tasmota en un dispositivo IoT, primero deberemos descargar el firmware Tasmota y guardarlo en su ordenador. Luego, deberá conectárse al dispositivo IoT utilizando una herramienta de programación como el Puente de Servicio de Firmware (FSP) o el monitor de puerto serie. A continuación, deberá cargar el firmware Tasmota en el dispositivo siguiendo las instrucciones del fabricante.

A continuación se presentan los pasos generales que debe seguir para instalar Tasmota:

  1. Descargar el firmware Tasmota y guárdelo en su ordenador.
  2. Conecte el dispositivo IoT a su ordenador utilizando un cable de programación, como un cable USB-TTL o un cable FTDI.
  3. Abra el Puente de Servicio de Firmware (FSP) o el monitor de puerto serie.
  4. Seleccione el puerto correcto en el Puente de Servicio de Firmware o el monitor de puerto serie.
  5. Cargue el firmware Tasmota en el dispositivo siguiendo las instrucciones del fabricante.
  6. Una vez que el proceso de carga del firmware haya finalizado, deberá configurar Tasmota siguiendo las instrucciones del fabricante. Esto puede incluir la conexión del dispositivo a tu red Wi-Fi y la configuración de parámetros adicionales.

Recuerde que los pasos específicos para instalar Tasmota pueden variar según el dispositivo IoT que esté utilizando. Es importante seguir las instrucciones del fabricante para asegurarse de que el proceso de instalación se realice correctamente.

Puesta en marcha de un ambilight casero


Ambilight es una tecnología de iluminación desarrollada por la empresa Philips cuya primera versión se lanzó en 2004 y se utilizó en una gama de televisores de alta gama de la marca. Desde entonces, la tecnología ha sido mejorada y actualizada y se ha utilizado en una amplia gama de productos de Philips, incluyendo televisores, monitores de ordenador y sistemas de audio. Actualmente, la tecnología Ambilight sigue siendo una de las características más destacadas de los productos de entretenimiento de la marca Philips.

La tecnología Ambilight consiste en un conjunto de luces LED ubicadas en la parte trasera del televisor o monitor que emiten luz de diferentes colores para crear un ambiente visual en la habitación. La luz se ajusta automáticamente a la imagen que se está viendo en pantalla para crear un efecto de inmersión visual. Esta tecnología puede mejorar la experiencia de visualización de contenidos y hacer que sea más cómodo ver la pantalla durante largos periodos de tiempo.

Existen algunas opciones de sistemas de iluminación para televisores y monitores de ordenador de otras marcas que se asemejan a la tecnología Ambilight de Philips. Estos sistemas utilizan luces LED direccionables ubicadas en la parte trasera de la pantalla para crear un ambiente visual en la habitación y mejorar la experiencia de visualización de contenidos. Incluso ha habido iniciativas muy interesantes, de las que nos hemos hecho en este blog, de ambilight caseros mediante el uso de una Raspberry Pi , una capturadora de Video USB y unas tiras del led direccionables como vimos en este post

El sistema Goove

Como alternativa a la versión oficial de Philips integrada en sus propios TV de la marca esta la opción del  Philips Hue Play HDMI Sync Box una opción muy interesante (la de Philips) pero que tiene inconveniente de requerir una señal externa de video y un principal gran problema : el precio. También tanto Asus como MSI tienen propuestas interesantes, pero muy orientadas a ordenadores Gaming, ahora veamos una opción que no requiere una señal de video externa y que se vende como un kit «todo en uno» a un precio razonable, y es el sistema Govee.

La gran innovación de este fabricante consiste en sustituir el hub con las entradas hdmi, que nos obliga a usar una señal externa sin poder contar con las que incluye un TV inteligente o simplemente el TDT, por una cámara inteligente que se coloca en la parte superior del TV al estilo de una web cam externa y que cuenta además una innovadora división de zonas.

Como se puede intuir la innovación de este fabricante ha sido clave pues de este modo podemos usar directamente cualquier contenido presente en un TV independientemente de que este sea interno ( TDT, apps, USB, etc.) o externo proveniente de un descodificador, consola, reproductor blue-ray ,etc.

colocacion-camara-govee

El kit

Govee DreamView T1 TV Backlight es un sistema de iluminación para televisores y monitores de ordenador que se puede utilizar para crear un ambiente visual en la habitación. Este sistema consta de una tira de luces LED que se conecta a la parte trasera de la pantalla y emite luz de diferentes colores según la imagen que se está viendo en pantalla. El objetivo de este sistema es mejorar la experiencia de visualización de contenidos y crear un efecto de inmersión visual.

Este set de tiras LED más las torres de luz LED es realmente muy interesante y lo refieren incluso personas que han poseido un TV Philips con ambilight. Podemos descubrir que es una forma completamente nueva, diferente e inmersiva de disfrutar de la televisión. Algo que, si por algún motivo cambiamos de marca a la hora de comprar un nuevo televisor, acabamos echando de menos.

Consta de una tira de LED RGB direccionable de 3,8 metros (por ejemplo, perfecta para una TV de 55″ quedando ajustado al borde del mismo), una cámara para captar los colores de la pantalla y reproducirlos a través de la tira , la fuente de alimentación, los soportes de las tiras, pegatinas de espuma para la calibración y un controlador donde va conectado todo.

kit-goove

Instalación

Todo viene bien explicado en las instrucciones, de modo que la instalación en sí no tiene ninguna complicación. Veamos los pasos fundamentales.

Antes de fijar nada al TV, conectamos la tira de led al aire al controlador, conectamos la fuente a este ( y este a la ca) y probamos que todas las luces funcionan ( puede que tenga que pulsar algun botón externo del controlador sino se encienden a la primera). Obviamente si se enciende solo alguna tira o fallan algunos leds deberíamos devolver el kit y no continuar con la instalación.

Bien, ubicamos correctamente la tira en la parte trasera del TV. Se pegan muy bien en la superficie del televisor (siempre y cuando esté limpio, tal y como indica el fabricante) pero tenemos que hacerlo bien a la primera sobre todo con la tira de led si apretamos con fuerza (como despeguemos una vez… olvidémonos de que se queden pegadas). Una opción interesante si no estamos seguros de que este sistema nos lo vamos a quedar es no apretar demasiado la tira y fijar con una tira adhesiva las esquinas y luego si nos convence el resultado .

colocacion-provisional-govee

Es importante destacar que tenemos dos opciones de colocación de las tiras de leds empezando por la esquina derecha en sentido horacio (mirando por atrás) o en sentido antihorario empezando por la esquina izquierda inferior.

Una vez estemos seguro la fijamos fuertemente con el adhesivo y colocamos los topes adhesivos de plástico en las esquinas. También según el TV si la tira de led va muy justa puede que tenga que colocar algun adhesivos en los cables de unión de una tira con otra para que no sean visibles por fuera.

Ahora conectamos la tira al controlador y la fuente de alimentación a este y fijamos el controlador con el autoadhesivo en la parte central de la tapa trasera del TV ( o donde nos convenga si nos interesase tener accesibles los botones externos del controlador por ejemplo para apagarlo manualmente). El adhesivo de la tira LED es de buena calidad, no así el del controlador que, quizá por el peso de los propios cables que lleva, probablemente necesite un adhesivo que cubra toda la base del controlador.

Por último colocamos la cámara, normalmente en la parte superior, pero nada impide que la coloquemos en la parte inferior para que el impacto visual sea menor .

colocacion-camara-govee

Dependiendo del televisor puede ser más o menos complejo, pero no mas que colocar una web cam ( que es al fin al cabo lo que es).

instalacion-camara

Puede que la cámara no se sostenga en el ángulo deseado para ver toda la TV y quizá tenga que pegar el cable por detrás de la TV para que se mantenga. !No nos olvidemos de conectar los cables de la cámara esta al controlador!

Aplicación y calibración


Todo se controla desde su propia app (disponible en PlayStore llamada Govee Home), contando con muchas opciones de personalización, desde luz con colores fijos, efectos varios, reacción al sonido, música, etc. , aunque puede que solo le interese el efecto de luz ambiente (ambilight) que ofrece.

Como siempre, una vez instalada la app, antes de empezar necesitara registrase con un email y una clave para entrar en el sistema.

Una vez estemos dentro de la aplicación, nos vamos a la esquina superior derecha para añadir el dispositivo , que en uestro caso es RGBIC TV, que es lo que escribiremos en la caja de búsqueda

agregar-ambilight-sistema-govee

Seleccionaremos nuestro kit , y lo siguiente que debemos hacer es decirme al programa como estan colocadas las tiras de leds y la cámara.

Tenemos dos opciones de colocación de las tiras de leds empezando por la esquina derecha en sentido horacio (mirando por atrás) o en sentido antihorario empezando por la esquina izquierda inferior.

ajuste-sentido-leds-govee

Asimismo tenemos que decirle donde hemos colocado la cámara ( normalmente en la parte superior).

ajuste-colocacion-camara-govee

Solo nos queda calibrar la cámara, para lo cual colocaremos las espumas adhesivas en las esquinas del TV como vemos mas abajo y con el TV apagado procederemos a ajustar.

Una vez estemos listos pulsaremos y veremos los puntos de calibración, que podemos ajustar su posición si no coinciden,

calibracion-camara-govee

 

Ya tenemos nuestro sistema listo, así que solo queda probar para lo cual nos iremos al menú principal donde podemos cambiar muchas cosa , como el brillo, efectos, modos, etc

Para personalizar la iluminación con la app Govee Home:

  • Asegúrese de que su tira de luz LED Govee Home está encendida y conectada a tu red Wi-Fi.
  • Abra la aplicación Govee Home en su teléfono o tableta.
  • Toque el dispositivo que desea controlar.
  • Toca el icono de la rueda de colores para seleccionar un color específico para las luces.
  • Utilice el control deslizante de brillo para ajustar el brillo de las luces.
  • Pulse el botón «Guardar» para aplicar los cambios.

Para utilizar uno de los efectos de iluminación preestablecidos:

  • Asegúrese de que su tira de luz LED Govee Home está encendida y conectada a tu red Wi-Fi.
  • Abra la aplicación Govee Home en su teléfono o tableta.
  • Toque el dispositivo que desee controlar.
  • Toquea el botón «Efecto».
  • Desplázese por la lista de efectos disponibles y toque el que quiera utilizar.
  • Toquea el botón «Iniciar» para aplicar el efecto.

Un modo muy espectacular es el modo «música», que como vemos es el primero que nos ofrece en el icono inferior izquierdo, el cual nos hará efectos luminosos en función del sonido que haya en el exterior.

opcion-musica-sistema-govee

Finalmente, el sistema ambilight se consigue pulsando en icono de video , y se puede dejar ajustado por defecto de modo que siempre que arranquemos nuestro sistema este sea el efecto que nos sea presentado.

opcion-ambilight-govee

Una vez configurado correctamente es una pasada nada tiene que envidiar al sistema de Philips costando muchísimo menos y además con la ventaja de que no dependemos de los HDMI para la visualización, ya que todo se hace a través de su cámara HD, con lo que podemos usar el sistema incluso viendo la TDT sin dispositivos externos.

Los colores por lo general están bien conseguidos, salvo algún caso puntual, tanto para películas como para juegos, dónde destaca especialmente, ya que aumenta todo el rango de luces que vemos en pantalla alrededor de nuestro personaje, coche, etc. quedando un efecto muy realista.

También puede utilizar comandos de voz con un dispositivo compatible con Google Assistant, como Google Home, para controlar su tira de luz LED Govee Home. Por ejemplo, puede decir «Oye Google, enciende las luces» para encender las luces, o «Oye Google, cambia las luces a azul» para cambiar el color de las luces. A continuación, a modo de ejemplo, tambien veremos la integración con Amazon Alexa.

Integración con Alexa

Por ultimo comentar que cuenta con integración con Alexa, aunque quizás su principal uso sea para encender y apagar el sistema ya que quizás no necesite tocar nada si siempre lo tiene configurado como ambilight.

En la guia de usuario de la propia app, hay un apartado donde explica claramente los pasos.

Para vincular su dispositivo Govee Home con Alexa, primero debe descargar la aplicación Alexa y crear una cuenta si aún no tiene una. Luego, siga estos pasos:

  1. Tenga conectado su sistema Goove y encendido.
  2. Abra la aplicación Alexa y seleccione el menú en la esquina superior izquierda.
  3. Seleccione «Agregar dispositivos» en el menú.
  4. Seleccione «Luz» en la lista de dispositivos disponibles (puede que tarde en aparecer nuestro sistema).
  5. Siga las instrucciones en pantalla para habilitar la skill de Govee Home y vincular su cuenta.
  6. Una vez vinculada, podrá controlar sus dispositivos Govee Home con su voz usando Alexa.

Es importante tener en cuenta que necesitará un dispositivo Echo compatible o la aplicación Alexa para usar esta función. También debes asegurarse de que sus dispositivos Govee Home estén encendidos y conectados a la misma red Wi-Fi que su dispositivo Echo.