Desarrollamos una luz domótica de Internet of Things, usando el chip NodeMCU-ESP8266 y MQTT, el famoso protocolo de comunicación para IoT.
Código del proyecto
Me sorprendió la complejidad para trabajar con un sensor NodeMCU, siempre pensé que mis primeras andanzas dentro del mundo de Internet de las Cosas serían usando una Raspberry Pi, pero el chip ESP8266 es muy potente para lo pequeño que es.
Viene con muchas salidas para colocarle distintos accesorios. Aunque estuvimos trabajando con un sensor de proximidad, el proyecto final no lo incluía.
Chip con sensor de proximidad
El proyecto era relativamente simple. El chip tenía que estar escuchando un determinado topic dentro de un broker de MQTT.
Si recibía el mensaje correcto del ID especificado en la configuración, el LED del chip se encendería o apagaría según fuera necesario.
Puedes ver el código fuente del proyecto en mi GitHub.
Como miniproyecto para la parte de IOT, vamos a desarrollar una “luz domótica”, que funcione a través de MQTT.A grandes rasgos, encenderemos o apagaremos el led según los mensajes MQTT que recibamos.Los requisitos son los siguiente:
Un fichero de configuración “credenciales.py” donde le especifiquemos el nombre y password de nuestra wifi (este fichero no se entrega cuando enviemos el proyecto)
Un fichero de configuracion settings.py que contenga:
ID = xxx # donde xxx pondremos el numero que queramos que será el identificador de nuestro dispositivo
Las especificaciones de la comunicación:
El broker será ‘broker.hivemq.com’
El topic al que nos suscribimos será ‘proyectoEOI’
Por el topic de recibiremos mensajes en formato JSON del tipo {“id”: 123, “value”: 1} hay que actuar solo cuando el ID se corresponda con el nuestro (configurado en settings.py), y cuando value sea 1 encendemos el led, cuando sea 0 lo apagamos. El resto de mensajes que estén mal formados o cuyo ID no se corresponda con el nuestro, se descartan
Se valorará que el código esté bien estructurado, y comentado
Esta web usa cookies propias y de terceros para su correcto funcionamiento. Al hacer click en el botón de aceptar, acepta su uso.
Más información