arduino

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í:

See the gist on github.

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:

See the gist on github.

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:

See the gist on github.

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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • 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

Entradas recientes

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

1 día hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

1 semana hace

JavaScript: llenar select con arreglo

En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…

2 semanas hace

Imprimir PDF a partir de URL

En este artículo se presenta una guía para imprimir un PDF a partir de una…

2 semanas hace

Esta web usa cookies.