Como ya comenté en la entrada anterior, MQTT abre una gran cantidad de posibilidades a la hora de implementar aplicaciones de IoT. En este caso voy a hablar de una de las primera implementaciones con MQTT que he realizado en casa. Se trata de un sensor de temperatura sobre un ESP8266 con un DHT22.
En la siguiente figura se muestra el esquemático de conexionado. Como puede observarse el conexionado es muy sencillo. Simplemente los pines 1 y 3 conectados a Vcc para alimentar el chip y activar el chip. El pin 8 conectado a gnd y el pin 7 donde se conecta el sensor. Por otro lado para poder alimentar el ESP8266 con un adaptador de tensión de 5V
En cuanto al código que está ejecutando el ESP8266, es un código bastante sencillo. Simplemente se conecta a la WiFi, una vez conectado a la WiFi se conecta al broker de MQTT y publica las medidas de temperatura y humedad en los topics adecuados. El código completo está disponible para su descarga en el repositorio de github:
A la hora de montar el sensor como va a estar en el exterior, he encontrado una caja de luz estanca y como primera aproximación simplemente puse el sensor en el frontal con el circuito en el interior, tal y como se muestra en la siguiente imagen.
El problema de esta primera implementación es que al funcionar, el ESP8266 y el regulador de tensión se calientan un poco y hace que la temperatura que mide el sensor no sea la correcta. Cuando lo probé, la temperatura en la habitación estaba sobre los 23ºC y al cabo de 15 minutos el sensor estaba midiendo una temperatura alrededor de los 28ºC.
Para solucionar el problema hice una pequeña base de plástico para separar el sensor del cuerpo de la caja donde esta el microcontrolador. Después del cambio de estructura todo quedó funcionando sin problemas. Actualmente está reportando la temperatura con un intervalo de 4 min. En la siguiente imagen se muestra el sensor modificado ya situado en la ubicación final y una captura de pantalla de un cliente MQTT para android (MQTT Dash) con la medida ya capturada por el sensor.
Esta ubicación creo que terminaré cambiándola porque como se ve en la imagen se encuentra en el alféizar de una ventana pequeña y al tratarse de una zona de paso de corriente de aire entre el exterior y el interior de la casa he detectado variaciones en la medida del sensor si la ventana está abierta o está cerrada. He detectado una variación de temperatura de unos 2 grados de diferencia y de un 5% en la humedad. Intentaré llevarme el sensor a un lugar aislado de la luz directa del sol a la sombra y donde no se vea afectado por corrientes de aire procedentes del interior de la casa.