Arduino - Sensor de Temperatura y Humedad

En este tutorial, vamos a aprender:

Si solo quieres obtener la temperatura, te recomendamos usar un sensor de temperatura DS18B20 impermeable en su lugar. Es un sensor económico y práctico. Puedes colocarlo en agua caliente o fría.

Acerca del sensor de temperatura y humedad DHT11 y DHT22

Las características comunes entre el DHT11 y el DHT22

  • Las asignaciones de pines son las mismas
  • El cableado al Arduino es el mismo
  • La programación (con una biblioteca) es similar (solo una línea de código es diferente)

Las diferencias entre DHT11 y 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
Operating Voltage3 to 5V 3 to 5V

Como puedes ver, el DHT22 es un poco más preciso, tiene un rango más amplio, pero es más caro que el DHT11.

Diagrama de pines

Los sensores DHT11 y DHT22 en su forma original tienen cuatro pines:

  • Pin GND: debe conectarse a GND (0V)
  • Pin VCC: debe conectarse a VCC (5V, o 3.3V)
  • Pin DATA: se utiliza para comunicar entre el sensor y Arduino
  • Pin NC: No conectado, podemos ignorar este pin
Diagrama de pines del sensor de temperatura y humedad DHT11 y DHT22

Algunos fabricantes proporcionan sensores DHT11 y DHT22 en forma de módulo con tres pines: GND, VCC y DATA (o, alternativamente: -, + y OUT).

※ Nota:

En formato de módulo, el orden de los pines del módulo puede variar entre fabricantes. SIEMPRE utilice las etiquetas impresas en el módulo. ¡Mire de cerca!

Diagrama de pines del módulo de temperatura y humedad DHT11 y DHT22

Diagrama de Cableado

El cableado al Arduino es el mismo para ambos sensores. En su forma original, se requiere una resistencia de 5 kΩ a 10 kΩ para mantener la línea de datos en alto y para habilitar la comunicación entre el sensor y el Arduino.

Arduino - Cableado del sensor DHT11

Diagrama de cableado del sensor de temperatura y humedad DHT11 para Arduino

This image is created using Fritzing. Click to enlarge image

Arduino - Cableado del sensor DHT22

Diagrama de cableado del sensor de temperatura y humedad DHT22 para Arduino

This image is created using Fritzing. Click to enlarge image

Arduino - Cableado del Módulo DHT11

La mayoría de los módulos de sensor DHT22 tienen una resistencia integrada, por lo que no es necesario añadirla. Esto nos ahorra algo de cableado o trabajos de soldadura.

Diagrama de cableado del módulo DHT11 de Arduino para temperatura y humedad

This image is created using Fritzing. Click to enlarge image

Arduino - Cableado del módulo DHT22

La mayoría de los módulos de sensor DHT22 tienen una resistencia integrada, por lo que no es necesario añadirla. Esto nos ahorra algo de cableado o de soldadura.

Diagrama de cableado del módulo de temperatura y humedad DHT22 para Arduino

This image is created using Fritzing. Click to enlarge image

Cómo programar para el sensor de temperatura DHTxx

La programación para ambos sensores es similar. Solo hay una línea de código diferente.

  • Incluir la biblioteca:
#include "DHT.h"
  • Define el pin de Arduino conectado al sensor DHT:
#define DHTPIN 2
  • Define el tipo de sensor: DHT11 o DHT22 (Esta es la línea de código diferente)
#define DHTTYPE DHT11

o

#define DHTTYPE DHT22
  • Declarar objeto DHT
DHT dht(DHTPIN, DHTTYPE);
  • Inicializar el sensor:
dht.begin();
  • Leer la humedad:
float humi = dht.readHumidity();
  • Leer la temperatura en grados Celsius:
float tempC = dht.readTemperature();
  • Leer la temperatura en Fahrenheit:
float tempF = dht.readTemperature(true);

Código de Arduino - DHT11

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-temperature-humidity-sensor */ #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // initialize the sensor } void loop() { // wait a few seconds between measurements. delay(2000); // read humidity float humi = dht.readHumidity(); // read temperature as Celsius float tempC = dht.readTemperature(); // read temperature as Fahrenheit float tempF = dht.readTemperature(true); // check if any reads failed if (isnan(humi) || isnan(tempC) || isnan(tempF)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } }

Código de Arduino - DHT22

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-temperature-humidity-sensor */ #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // initialize the sensor } void loop() { // wait a few seconds between measurements. delay(2000); // read humidity float humi = dht.readHumidity(); // read temperature as Celsius float tempC = dht.readTemperature(); // read temperature as Fahrenheit float tempF = dht.readTemperature(true); // check if any reads failed if (isnan(humi) || isnan(tempC) || isnan(tempF)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } }

Si comparas los dos códigos anteriores, te darás cuenta de que hay una línea diferente (línea 11).

Pasos R\u00e1pidos

  • Conecta Arduino a la PC mediante un cable USB
  • Abre Arduino IDE, selecciona la placa y el puerto correctos
  • Ve al icono de Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “DHT”, luego encuentra la biblioteca de sensores DHT de Adafruit
  • Haz clic en el botón Instalar para instalar la biblioteca.
Biblioteca de sensores DHT para Arduino
  • Se le pedirá instalar algunas otras dependencias de la biblioteca
  • Haga clic en el botón Instalar todo para instalar todas las dependencias de la biblioteca.
Biblioteca de sensores unificados de Adafruit para Arduino
  • Copia el código anterior correspondiente al sensor que tienes y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en Arduino IDE para subir el código al Arduino
  • Haz que el entorno alrededor del sensor esté más caliente o más frío
  • 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.

※ 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!