Skip to content

Sensor de temperatura DHT11

javierre edited this page May 6, 2019 · 1 revision

Sensor DHT11, de temperatura y humedad.

DHT11


Este sensor presenta las siguientes características:

Rango de humedad Precisión de humedad
20-90% RH ±5% RH
Rango de temperatura Precisión de temperatura
0-50 °C ±2% °C
  • Alimentación: 3V a 5.5V

Más datos en este link al datasheet.

Como con cualquier sensor, debemos conocer el uso de cada uno de sus pines y respetar la polaridad de la alimentación. La señal de datos se puede conectar a cualquier pin de datos (D0, D1, ...):

DHT11

Las funciones que usamos para leer la humedad son float h = dht.readHumidity(); y para la temperatura en ºC es float t = dht.readTemperature();. Ambos valores son decimales y por eso debemos usar float. En los códigos que usemos, habrá que especificar el pin de la placa en el que está conectado el pin de datos del sensor. En la imagen anterior se trata del pin D5 y así aparece en el siguiente código:
#include "DHT.h"
#define DHTPIN D5
#define DHTTYPE DHT11  

DHT dht(DHTPIN, DHTTYPE); 

void setup() 
{
  Serial.begin(9600);
  Serial.println("DHT11 test!");
  dht.begin();
}
 
void loop() 
{
  // Wait a few seconds between measurements.
  delay(2000); 
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  float f = dht.readTemperature(true); 
  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) 
  {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.println(" *F"); 
}

Es posible que el programa nos de un error si no tenemos instalada la librería DHT (aparece en el primer #include del código anterior). Para ello debemos seguir los pasos en cómo solucionar problemas en la wiki.

Códigos de ejemplo

Clone this wiki locally