#55Intermedio

Temperatura y humedad con DHT11

4.7(47)
60 completado
Temperatura y humedad con DHT11
Proyecto que mide la temperatura ambiente y el valor de humedad con el sensor DHT11 y lo muestra en la pantalla LCD I2C. Enseña el uso del sensor digital de temperatura / humedad.

Video

Diagrama del circuito

Temperatura y humedad con DHT11 - Circuit

Código fuente

Arduino (C++)
1#include <LiquidCrystal_I2C.h>
2#include <Wire.h> 
3#include <DHT.h>
4
5#define DHTPIN 3
6#define DHTTYPE DHT11
7
8LiquidCrystal_I2C lcd(0x27, 16, 2);
9DHT dht(DHTPIN, DHTTYPE); 
10
11void setup() {
12  dht.begin();
13  lcd.init();      // Modern libraries prefer init() over begin()
14  lcd.backlight();
15}
16 
17void loop() {
18  int humidity = dht.readHumidity();
19  float temperature = dht.readTemperature();
20
21  // Check if readings failed
22  if (isnan(humidity) || isnan(temperature)) {
23    lcd.setCursor(0, 0);
24    lcd.print("Sensor Error!   ");
25    return;
26  }
27
28  lcd.setCursor(0, 0);
29  lcd.print("Temp: ");
30  lcd.print(temperature);
31  lcd.print((char)223); // Degree symbol (°)
32  lcd.print("C   ");
33
34  lcd.setCursor(0, 1);
35  lcd.print("Humidity: %");      
36  lcd.print(humidity);
37  lcd.print("   "); // Trailing spaces to clear old data
38  
39  delay(2000); // DHT11 is slow, 2 seconds is more stable
40}

Preguntas frecuentes

¿Qué precisión tienen las mediciones del DHT11?▾

El DHT11 mide la temperatura con una precisión de ±2 °C y la humedad con una precisión de ±5 %, y funciona en un rango de 0 a 50 °C. Para una medición más precisa, se recomienda utilizar el DHT22 (±0,5 °C) o el BME280.

En la pantalla aparece «nan» o un error, ¿por qué?▾

No se ha podido leer el sensor. Comprueba la resistencia pull-up de 10 kΩ en el pin de datos, el tipo de sensor configurado en la biblioteca (DHT11) y que se haya esperado al menos 1-2 segundos entre lecturas.

¿Por qué se actualizan tan lentamente las lecturas?▾

El DHT11 puede realizar como máximo una medición por segundo. Intentar realizar lecturas con mayor frecuencia puede dar lugar a valores erróneos u obsoletos; se recomienda esperar 2 segundos entre cada medición.

¿Puedo calcular la temperatura percibida?▾

Sí, la función computeHeatIndex() de la biblioteca DHT calcula la temperatura percibida a partir de la temperatura y la humedad.

Temperatura y humedad con DHT11 | BlueGrays