Implementación (con fines de demostración) de tecnologías de software y hardware aplicadas a proyectos de domótica de bajo costo o con fines educativos. El sistema domótico está planteando en cuatro componentes:
- Servidor, broker MQTT
- Panel Web
- App para Android
- Dispositivo basado en ESP8266
Servidor MQTT
En este proyecto se utiliza el Broker MQTT público (y gratuito) de la empresa HiveMQ. Se puede acceder de manera segura en:
Broker: broker.hivemq.com
TCP Port: 1883
Websocket Port: 8000
TLS TCP Port: 8883
TLS Websocket Port: 8884
Panel web
El panel web es un cliente local que envia y recibe información al broker MQTT. Está construido alrededor de herramientas libres y con la intención de ser fácil de mantener y simple.
- MVP.css, es una hoja de estilo minimalista para elementos HTML
- P5.js, p5.js es una biblioteca de JavaScript para programación creativa
- Eclipse Paho JS, es una biblioteca cliente escrita en Javascript que utiliza WebSockets para conectarse a un Broker MQTT
El panel está organizado en tarjetas, donde despliega información o permite interactuar con el hardware.

App para Android
MQTT Dashboard v2 es una aplicación para Android desarrollada con la herramienta MIT App Inventor. Permite conectarse a un broker MQTT, para enviar y recibir mensajes hacia (y desde) una placa ESP8266 o compatible.

El archivo ./src/apk/MQTT_Dashboard_v2.aia
es el proyecto completo escrito en MIT App Inventor. Necesita las siguientes dependencias:
- AI2 MQTT Extension: Sensor Readings back and forth
- Light switch icons created by Superarticons – Flaticon
Hardware
El hardware, diseñado con la herramienta KiCad EDA, está basado en una placa NodeMCU (que incorpora el SoC ESP8266), dos pulsadores, un sensor de temperatura y humedad ambiente DHT11, y dos relés para manejar potencia. Se puede alimentar con una fuente de pared de 12V.

El ESP8266 en este caso tiene incorporado el interprete de MicroPython, por lo que el firmware está escrito en ese lenguaje. Para poder conectarse a un broker MQTT necesita el módulo umqttsimple.py
.
Descargas
El proyecto completo está accesible en GitHub, mientras que una versión del panel web está en línea en lmtreser.github.io/Demo-Domotica.