Internet of Things (IoT) – Luz domótica MQTT

Development

Curso
Especialización en Python (EOI)
Módulo
Internet of Things
Tecnologías
MicroPython, MQTT

Proyecto Internet of Things – ESP8266

Desarrollamos una luz domótica de Internet of Things, usando el chip NodeMCU-ESP8266 y MQTT, el famoso protocolo de comunicación para IoT.

Internet of Things
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.

Internet of Things
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.

Proyecto IoT

 

Puedes revisar otros de mis proyectos, como por ejemplo, la creación de un editor de texto con explorador de archivos usando Qt.

 

Instrucciones del proyecto

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
Privacidad