Blog de conocimiento gratuito: linux, programación, open source, bases de datos, android, frameworks, web e informática en general.
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.
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.
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:
Lo demás se hará por WiFi.
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.
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.
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
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í:
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.
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
Use otro pin o desconéctelo cada que reinicie o quiera subir el código