ESP8266 - DHT11

Este tutorial explica cómo usar el ESP8266 para leer la temperatura y la humedad del sensor DHT11. 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×DHT11 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 de temperatura y humedad DHT11

Pinout del sensor de temperatura y humedad

El DHT11 disponible en el mercado viene en dos formas: sensor y módulo.

Los sensores DHT11 tienen cuatro pines:

  • Pin GND: debe estar conectado a GND (0V)
  • Pin VCC: debe estar conectado a VCC (5V)
  • Pin DATA: se usa para la comunicación entre el sensor y el ESP8266
  • Pin NC: No conectado, este pin puede descartarse
Diagrama de pines del sensor DHT11 de temperatura y humedad

El módulo DHT11 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 según el fabricante. Es IMPERATIVO usar las etiquetas impresas en el módulo como referencia. ¡Asegúrate de mirar de cerca!

Diagrama de Cableado

ESP8266 - Cableado del sensor DHT11

Una resistencia con un valor entre 5 kΩ y 10 kΩ es necesaria 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 DHT11 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 DHT11

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

Esquema de cableado del módulo DHT11 de temperatura y humedad para ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Cómo programar para el sensor de temperatura DHT11

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

Código ESP8266 para DHT11

/* * 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-dht11 */ #include <DHT.h> #define DHT_SENSOR_PIN D7 // The ESP8266 pin D7 connected to DHT11 sensor #define DHT_SENSOR_TYPE DHT11 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:

  • Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
  • Conecta los componentes tal como se muestra en el diagrama.
  • Conecta la placa ESP8266 a tu computadora mediante un cable USB.
  • Abre Arduino IDE en tu computadora.
  • Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM respectivo.
  • Conecta un cable USB al ESP8266 y a la PC.
  • Abre el Arduino IDE, selecciona la placa y el puerto correctos.
  • Haz clic en el ícono de Bibliotecas en la barra izquierda del Arduino IDE.
  • Busca “DHT”, y luego localiza la biblioteca de sensores DHT de Adafruit.
  • Pulsa el botón Instalar para completar la instalación.
Biblioteca del sensor DHT11 para ESP8266 NodeMCU
  • Se le pedirá que instale algunas dependencias de otras bibliotecas.
  • Para instalar todas estas bibliotecas, haga clic en el botón Instalar todo.
Biblioteca unificada de sensores 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 Serial.
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.

Conocimiento Adicional

Vamos a comparar los sensores DHT11 y DHT22.

Los puntos en común entre el DHT11 y el DHT22

  • Las asignaciones de pines siguen siendo las mismas.
  • El cableado al ESP8266 no se ha 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 más amplio de mediciones 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!