Enviar temperatura y humedad por MQTT usando DHT22 y ESP8266

En este post te mostraré cómo leer la temperatura y humedad del sensor DHT22 usando la tarjeta ESP8266 para más tarde enviarla a un servidor MQTT.

Del mismo modo vamos a suscribirnos a un tópico y encenderemos o apagaremos un led dependiendo del mensaje recibido.

Requisitos

Esto es parte de una serie de posts que vengo haciendo sobre el internet de las cosas con ESP8266.

Te recomiendo leer cómo usar el DHT22 con la ESP8266, y del mismo modo te invito a ver una comunicación simple a través de MQTT con la Raspberry y la tarjeta NodeMCU ESP8266.

Este post es más que nada una unión de ambos posts, así que te recomiendo ampliamente que leas lo anterior mencionado.

Circuito

Debido a que vamos a encender y apagar el LED que la tarjeta ya trae, no necesitamos conectar algo externo. Lo que sí necesitamos es conectar el sensor:

Circuito – Sensor DHT22 con ESP8266

Lo demás se hará por WiFi.

Enviar temperatura y humedad por MQTT

Cada 2 segundos vamos a estar leyendo los valores del sensor y los vamos a publicar así:

Estoy usando la función sprintf porque necesito concatenar los valores de una forma sencilla, y no quiero usar strcat o cosas de esas.

Encender o apagar led por MQTT

Por otro lado, vamos a ver las funciones que permitirán que, dependiendo del mensaje recibido, se apague o encienda un LED:

Lo que necesitamos en el mensaje es un 1 o un 0 y dependiendo de ello se apagará o encenderá el LED.

Código fuente completo

Ahora veamos el código fuente completo. Te repito de nuevo que deberías leer los posts que menciono anteriormente, pues aquí solo los estoy uniendo:

Los tópicos son:

Para recibir mensajes casa/sala/iluminacion

Para enviar mensajes jardin/temperatura

Probando

En caso de que todo vaya bien, podemos controlar el LED desde el servidor. Se enciende con:

mosquitto_pub -h localhost -t "casa/sala/iluminacion" -m "1"

Y se apaga con:

mosquitto_pub -h localhost -t "casa/sala/iluminacion" -m "0"

Por otro lado, si nos suscribimos al tópico de la temperatura, debemos ver algo así:

Recibiendo temperatura de DHT22 por MQTT en la Raspberry Pi

Y así es como podemos conectar todavía más cosas usando este protocolo.

Por cierto, si no sabes cómo configurar mosquitto en la Raspberry mira este post.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

2 comentarios en “Enviar temperatura y humedad por MQTT usando DHT22 y ESP8266”

  1. Hola, gracias por el articulo, segui los pasos que mencionas en este articulo y la verdad que el esp8266 funciona de maravillas, ahora bien,

    Como se soluciona, el inconveniente de:
    /*
    Nota importante: si usas el pin D8 (como lo recomiendo)
    recuerda desconectar el lector del mismo cada vez que reinicies
    o quieras subir el código, pues el mismo “interfiere” con el
    monitor serial
    */
    Ya que cada cierto tiempo debo desconectar el pin D8 para que vuelva a comunicarse, lo que representa un inconveniente. Muchas Gracias

Dejar un comentario