Publicado el Deja un comentario

Tasmota. Desarrollo de aplicaciones domóticas con ESP8266 sin programación

Tasmota. Desarrollo de aplicaciones domóticas con ESP8266 sin programación

Tomás Domínguez Mínguez

Internet de las cosas, también conocido por sus siglas en inglés IoT (Internet of Things), es un concepto propuesto por Kevin Ashton en 1999 para referirse a la conexión e intercambio de datos entre todo tipo de objetos a través de Internet. El éxito de esta tecnología se debe a que amplía enormemente su utilidad, ya que permite controlar objetos a distancia (p. ej., encender o apagar una luz), enviar los datos recogidos por sensores (p. ej., la humedad o la temperatura) o, incluso, notificar alertas (p. ej., alarmas o fallos de funcionamiento). Por todo ello, Internet de las cosas está presente cada vez en más sectores, como el de la medicina, la industria, el transporte, la energía, la agricultura, las ciudades inteligentes y, muy especialmente, el de la domótica, eje central de Tasmota. Desarrollo de aplicaciones domóticas con ESP8266 sin programación.

El término domótica hace referencia al conjunto de técnicas que permiten la automatización y el control inteligente de cualquier aparato eléctrico existente en una vivienda con el fin de aumentar el confort y la seguridad o reducir el consumo energético, entre otros muchos beneficios.

Componentes de un sistema domótico

Un sistema domótico no es una entidad monolítica, sino que está formado por un conjunto de componentes interconectados entre sí:

  • Sensores y actuadores
  • Controlador domótico
  • Red de comunicación

Los sensores son dispositivos que recogen información del entorno. Los hay de muchos tipos, como los de humedad, temperatura, movimiento, distancia, nivel de líquidos, etc. Los actuadores son elementos que modifican el entorno, como los servos, motores, relés, etc. Naturalmente, un mismo dispositivo podrá tener uno o más sensores o actuadores. En las diversas prácticas propuestas en Tasmota. Desarrollo de aplicaciones domóticas con ESP8266 sin programación se utilizan muchos de ellos.

El controlador domótico es el cerebro del sistema. Allí es donde reside la lógica que permite automatizar tareas repetitivas que habitualmente se hacen de forma manual. Su comportamiento lo establece un conjunto de reglas que se encargan de darles las órdenes adecuadas a los actuadores en función de los datos recibidos por los sensores.


Con las reglas podrás decidir, por ejemplo, los criterios que determinen cuándo se debe encender o apagar una luz: a una hora concreta del día, al anochecer, en el momento en que un sensor detecte un nivel mínimo de luz o la presencia de una persona, tras el vencimiento de un temporizador, etc.


Aunque lo ideal sería contar con un controlador como Home Assistant, en los sistemas domóticos sencillos (no por ello, menos prácticos), Tasmota ofrece todo lo necesario para realizar esta función, tanto en lo referente a la creación de la lógica de control como a las capacidades de comunicación, ya que podrá ser receptor y/o emisor de órdenes y/o información. Por ese motivo, en Tasmota. Desarrollo de aplicaciones domóticas con ESP8266 sin programación se ponen en relieve las reglas, los eventos que las disparan (por ejemplo, la pulsación de un botón, un sensor que acaba de obtener un nuevo valor, el dispositivo que se ha desconectado de la red wifi, etc.) y los comandos que realizarían las acciones adecuadas en cada una de estas situaciones (por ejemplo, el parpadeo de un led, la activación de un relé, un buzzer que comienza a sonar, mostrar un texto en un display, etc.).

Las redes de comunicación son las que hacen posible la interconexión entre sensores, actuadores, controladores e, incluso, con los dispositivos de usuario desde los que se manejan los sistemas domóticos (en especial, los teléfonos móviles). A este respecto, la red de comunicación más usada en el ámbito domótico es la red WiFi 802.11 b/g/n, existente prácticamente en todos los hogares (aunque hay otras de carácter más específico como ZingBee o Z-Wave).

Sin embargo, para que los componentes de un sistema domótico puedan comunicarse entre sí, además de conectarse a una red WiFi, tienen que ser capaces de hablar algún protocolo a nivel de aplicación. Por poner un símil, si la red WiFi fuera la red de carreteras, los protocolos serían las normas de circulación que ordenarían el tráfico. De todos ellos, MQTT destaca sobre los demás debido a los escasos recursos que requiere, tanto de comunicaciones como computacionales, lo que facilita su ejecución en microcontroladores sencillos y, por lo tanto, pequeños y baratos, como los basados en el SoC ESP8266. Además, este tipo de microcontroladores reducen el consumo energético, algo importante cuando deben alimentarse con baterías. Esa es la razón de que en Tasmota. Desarrollo de aplicaciones domóticas con ESP8266 sin programación  se describan los fundamentos del protocolo MQTT, cómo configurarlo y cómo utilizarlo para recoger información de sensores o controlar actuadores desde un teléfono móvil haciendo uso de la aplicación Android IoT MQTT Panel y un bróker público.

Alternativas de desarrollo de un sistema domótico

Una vez conocida la arquitectura de un sistema domótico, lo más fácil sería montarlo con dispositivos comerciales que solo haya que sacarlos de la caja y encenderlos (requieren una configuración muy básica). Son los que se conocen como dispositivos dependientes de los fabricantes. Es la opción más cómoda, pero adolece de diferentes problemas:

  • Los dispositivos solo hacen lo que indica el fabricante. Si quisieras una nueva funcionalidad tendrías que volver a pasar por caja (suponiendo que existiera).
  • Se integran con quien quiere el fabricante, muchas veces solo con productos de su misma marca.
  • Dependen de un servicio en la nube propio, que podría desaparecer sin previo aviso, tal como ya ha sucedido con algunas marcas.
  • La privacidad queda en entredicho.

La mejor forma de resolver parcial o totalmente estos problemas sería hacer uso de dispositivos independientes a los que pudieras conectar los sensores y actuadores que quisieras, crear las automatizaciones que hicieran exactamente lo que desearas y se integraran sin problemas con cualquier otro dispositivo mediante MQTT.

Existen dos formas de conseguir este objetivo:

  • Sustituir el firmware del dispositivo que compres por otro que te permita modificar su comportamiento según tus necesidades particulares.
  • Utilizar componentes genéricos, como los basados en el SoC ESP8266, en los que se pueda instalar dicho firmware.

Entre los firmwares más conocidos se encuentran Tasmota y ESPHome (seguidos por ESPurna o ESPEasy), si bien cada uno cuenta con sus férreos defensores. Aunque todos ellos tienen sus ventajas y sus limitaciones, Tasmota destaca por ser el que puede cargarse en el mayor número de dispositivos comerciales (sustituir el que viene de fábrica).

No obstante, aunque este sea el principal motivo del reconocimiento general de Tasmota, tampoco tiene nada que envidiar a sus competidores cuando lo que se quiere es crear sistemas domóticos desde cero con placas basadas en el SoC ESP8266, motivo por el que será el enfoque adoptado en Tasmota. Desarrollo de aplicaciones domóticas con ESP8266 sin programación.

Qué es Tasmota

Tasmota es un firmware de código abierto creado por Theo Arends en 2016 capaz de ejecutarse en los microcontroladores ESP8266, ESP32, ESP32-S o ESP32-C3, fabricados por Espressif.

El término software te resultará familiar, no así el de firmware, aunque el parecido de estas dos palabras te habrá hecho sospechar de la existencia de algún tipo de relación entre ellas. No te equivocarías, ya que ambas hacen referencia a un código (programa). La diferencia es que el firmware es un código binario que se ejecuta directamente en un procesador, mientras que el software es un código escrito en un lenguaje de alto nivel que debe ser traducido antes a código máquina (binario). Por ese motivo, un programa escrito en C++ o en Java puede ejecutarse en cualquier procesador (siempre que exista una máquina virtual o un compilador para él), mientras que un firmware solo puede hacerlo en uno específico. Eso hace que el firmware, a diferencia del software, esté íntimamente unido con el hardware donde se ejecuta, y al que controla. En el caso de Tasmota, el basado en los microcontroladores anteriormente citados.

Puede que a nivel teórico te haya quedado claro el concepto de firmware, pero a nivel práctico seguramente estés pensando que, si el desarrollo de software ya te da problemas, el manejo de firmware debe resultar aún más difícil. Nada más lejos de la realidad, ya que Tasmota oculta su complejidad y la de los microcontroladores donde se ejecuta. Te lo demostraré construyendo un sencillo sistema que te permita encender o apagar la luz de tu casa desde un teléfono móvil.

Ejemplo de uso

El circuito electrónico estará compuesto únicamente por un microcontrolador basado en el SoC ESP8266 que ya tiene cargado el firmware de Tasmota (en este ejemplo, un WEMOS D1) y un relé conectado al GPIO13/D7.

Con solo cuatro clics de ratón serás capaz de configurar este firmware para que reconozca el relé en ese GPIO y puedas controlarlo desde un navegador. Únicamente tendrás que acceder a la interfaz web del propio dispositivo, elegir la opción “Configuración” del menú principal, la opción “Configuración del Módulo” de la segunda pantalla y seleccionar la opción “Relé” del menú desplegable asociado al GPIO13/D7 en la última pantalla.

Tras pulsar el botón “Grabar”, el dispositivo se reiniciará y en la parte superior del menú principal aparecerá la palabra OFF, que indica el estado actual del relé. Para activarlo, pulsa el botón “Alternar ON/OFF”. La luz se encenderá y su estado pasará a ser ON.

Si volvieras a presionarlo el relé se desactivaría, la luz se apagaría y en la interfaz web vería de nuevo el estado inicial (OFF).

Bienvenido, por lo tanto, a la domótica libre en la que una placa ESP8266 y el firmware Tasmota te permitirán automatizar su casa de una forma sencilla y barata, sin tener que escribir ni una sola línea de código ni usar un controlador domótico. Solo tendrás que adquirir los conocimientos básicos descritos en Tasmota. Desarrollo de aplicaciones domóticas con ESP8266 sin programación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *