ESP8266 - DHT22

Este tutorial explica cómo usar el ESP8266 para leer la temperatura y la humedad del sensor DHT22. En detalle, aprenderemos:

Hardware Requerido

1×ESP8266 NodeMCU
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×DHT22 Módulo Sensor de Temperatura y Humedad
1×10 kΩ Resistor
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del sensor DHT22 de temperatura y humedad

Esquema de pines del sensor de temperatura y humedad

El DHT22 que se comercializa en el mercado viene en dos formas: sensor y módulo.

Los sensores DHT22 tienen cuatro pines:

  • Pin GND: debe conectarse a GND (0 V)
  • Pin VCC: debe conectarse a VCC (5 V)
  • Pin DATA: se utiliza para la comunicación entre el sensor y el ESP8266
  • Pin NC: No conectado; este pin puede ignorarse
Pinout del sensor de temperatura y humedad DHT22

El módulo DHT22 tiene tres pines:

  • Pin GND (-): debe conectarse a GND (0V)
  • Pin VCC (+): debe conectarse a VCC (5V)
  • Pin OUT: se utiliza para la comunicación entre el sensor y el ESP8266

※ Nota:

La disposición de los pines en un módulo puede variar dependiendo del fabricante. Es IMPERATIVO utilizar las etiquetas impresas en el módulo como referencia. ¡Asegúrese de mirar detenidamente!

Diagrama de Cableado

ESP8266 - Cableado del sensor DHT22

Se requiere una resistencia con un valor entre 5 kΩ y 10 kΩ para mantener la línea de datos en un nivel alto, lo que permite la comunicación entre el sensor y el ESP8266.

Diagrama de cableado del sensor de temperatura y humedad DHT22 para ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.

ESP8266 - Cableado del Módulo DHT22

La mayoría de los módulos de sensor DHT22 tienen una resistencia integrada, lo que elimina la necesidad de cableado o soldadura adicional.

Diagrama de cableado del módulo ESP8266 NodeMCU DHT22 de temperatura y humedad

This image is created using Fritzing. Click to enlarge image

Cómo programar para el sensor de temperatura DHT22

  • Para empezar, la biblioteca debe incluirse:
#include "DHT.h"
  • Especifique el pin del ESP8266 al que está conectado el sensor DHT22.
#define DHT_PIN D7
  • Especificar el tipo de sensor: DHT22
#define DHT_TYPE DHT22
  • Crear un objeto DHT.
DHT dht22(DHT_PIN, DHT_TYPE);
  • Comience la configuración del sensor:
dht22.begin();
  • Lee el valor de la humedad.
float humi = dht22.readHumidity();
  • Lee la temperatura en grados Celsius.
float temperature_C = dht22.readTemperature();
  • Lee la temperatura en Fahrenheit.
float temperature_F = dht22.readTemperature(true);

Código ESP8266 para DHT22

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-dht22 */ #include <DHT.h> #define DHT_SENSOR_PIN D7 // The ESP8266 pin D7 connected to DHT22 sensor #define DHT_SENSOR_TYPE DHT22 DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); dht_sensor.begin(); // initialize the DHT sensor } void loop() { // read humidity float humi = dht_sensor.readHumidity(); // read temperature in Celsius float temperature_C = dht_sensor.readTemperature(); // read temperature in Fahrenheit float temperature_F = dht_sensor.readTemperature(true); // check whether the reading is successful or not if ( isnan(temperature_C) || isnan(temperature_F) || isnan(humi)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(temperature_C); Serial.print("°C ~ "); Serial.print(temperature_F); Serial.println("°F"); } // wait a 2 seconds between readings delay(2000); }

Pasos R\u00e1pidos

Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:

  • Consulte el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usa ESP8266.
  • Conecte los componentes tal como se muestra en el diagrama.
  • Conecte la placa ESP8266 a su ordenador usando un cable USB.
  • Abra el Arduino IDE en su ordenador.
  • Elija la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM correspondiente.
  • Conecte un cable USB al ESP8266 y al PC.
  • Abra el Arduino IDE, seleccione la placa y el puerto correctos.
  • Haga clic en el icono de Bibliotecas en la barra izquierda del Arduino IDE.
  • Busque «DHT», y luego localice la biblioteca de sensores DHT de Adafruit.
  • Presione el botón Instalar para completar la instalación.
Biblioteca de sensores DHT22 para ESP8266 NodeMCU
  • Se le pedirá que instale algunas dependencias de bibliotecas adicionales.
  • Para instalar todas estas bibliotecas, haga clic en el botón Instalar todo.
Biblioteca unificada de sensores de Adafruit para ESP8266 NodeMCU
  • Copia el código que corresponde al sensor que tienes y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para compilar y subir el código al ESP8266.
  • Cambia la temperatura del entorno alrededor del sensor.
  • Consulta el resultado en el monitor serie.
COM6
Send
Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 32.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 32.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Conocimientos Adicionales

Comparemos los sensores DHT11 y DHT22.

Los puntos en común entre DHT11 y DHT22

  • Las asignaciones de pines permanecen iguales.
  • El cableado hacia el ESP8266 no ha sido modificado.
  • La programación, con el uso de una biblioteca, es comparable; solo se necesita modificar una línea de código.

Las diferencias entre el DHT11 y el DHT22

DHT11 DHT22
Price ultra low cost low cost
Temperature Range 0°C to 50°C -40°C to 80°C
Temperature Accuracy ± 2°C ± 0.5°C
Humidity Range 20% to 80% 0% to 100%
Humidity Accuracy 5% ± 2 to 5%
Reading Rate 1Hz (once every second) 0.5Hz (once every 2 seconds)
Body size 15.5mm x 12mm x 5.5mm 15.1mm x 25mm x 7.7mm

Evidentemente, el DHT22 es más preciso que el DHT11, tiene un rango de mediciones más amplio y, sin embargo, cuesta más.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!