Leer temperatura y humedad con DHT22 y ESP8266

En este post te mostraré cómo usar el sensor DHT22 o el sensor DHT11 para leer la temperatura y humedad e imprimir los valores en el monitor serial. Voy a usar la tarjeta NodeMCU ESP8266.

Requisitos

Lo que necesitas es instalar las librerías para DHT, sobre todo si usas VSCode con PlatformIO.

Circuito de conexión

Aquí tenemos al circuito que conecta el sensor de temperatura y humedad DHT22 con la tarjeta ESP8266:

Circuito – Sensor DHT22 con ESP8266

Como lo indico en la imagen: al subir el programa hay que desconectar el sensor del pin D8. También hay que desconectarlo al usar el monitor serial.

Es decir: desconectamos el sensor de pin D8, conectamos la tarjeta, abrimos el monitor serial y después conectamos el pin D8 como estaba.

Eres libre de usar otro pin.

Importar librerías y definir modelo de sensor

Comenzamos incluyendo DHT.h y definiendo el modelo del sensor. Ya hay constantes con los nombres de los sensores.

También creamos una nueva instancia de DHT indicando el pin y el modelo del sensor. Del mismo modo creamos algunas variables globales que tendrán el valor de la temperatura y humedad

Método setup

Debido a que vamos a mostrar la temperatura en el monitor serial necesitamos establecer la comunicación a 9600 baudios.

Una cosa importante es invocar al método sensor.begin, pues este método configura el pin como un pin de entrada, para que se obtengan lecturas precisas.

Método loop

Dentro del loop vamos a leer al sensor cada 2 segundos. Es decir, no podemos leerlo cada instante. Además, es importante mencionar que la lectura puede llevarse hasta medio segundo.

Para obtener la temperatura invocamos a readTemperature, y para leer la humedad podemos invocar a readHumidity.

En ocasiones habrá problemas de lectura en el sensor, y los métodos mencionados arriba devolverán nan, es decir, not a number. Por lo tanto debemos atrapar ese error para no tener resultados inesperados.

Código completo para leer temperatura y humedad

Bien, ya expliqué el código por partes. Ahora veamos el código completo que nos permitirá usar el DHT22 con la tarjeta ESP8266 y otras.

Midiendo temperatura y humedad

Si ahora cargas el programa a la tarjeta y todo está conectado como debería, debes ver las lecturas en el monitor serial:

Leyendo DHT22 con ESP8266 – Mostrar temperatura y humedad en Monitor serial

Obviamente podemos hacer más cosas que enviar los datos al monitor serial. Por ejemplo, podríamos crear un servidor web y mostrar los datos, o enviar los mismos a la nube. Eso lo veremos en próximos tutoriales.

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.

Dejar un comentario