Saltar la navegación

Medida de la temperatura y la humedad ambiente.

DHT11

Realizar un montaje que mida temperatura y humedad mediante el sensor DHT11.

Para ello tendrás que realizar las conexiones necesarias para poder obtener los datos desde Arduino. Se trata de un sensor digital que utiliza 3 pines: Alimentación +5V, tierra/GND (-) y pin de datos (out) por donde se envían los datos de humedad y temperatura. A veces el sensor viene sobre 4 pines, en este caso uno de ellos no se conecta. Como las medidas de humedad y temperatura van por un solo pin, la información se transmite como un tren de pulsos en serie, por lo tanto, necesitamos un programa que "extraiga" eso dos datos de forma diferenciada. Para ello vamos a usar una librería referenciada por DHT11.h que se puede descargar desde:

https://drive.google.com/file/d/0B2B9eCp8wRQhdTQwY196cHFfckk/view?usp=sharing

* Nota: Si ocurriera que enlace estuviera roto en el momento de la descarga, hay muchas alternativas para la descarga de la librería. Busca en Google DHT library y podrás obtenerla de otros sitios.

Después hay que instalar la librería en el directorio (carpeta) correspondiente. Ver anexo de "Instalación de librerías en Arduino".

A través del monitor serie del IDE de Arduino podremos ver las medidas obtenidas.

ESQUEMA:

Si el sensor viene montado en una placa con 3 pines serigrafiados (como en la imagen de arriba), las conexiones son las siguientes:

PIN DHT11 PIN ARDUINO
+ +5V
- GND
OUT / DATOS 2 (digital)

En el caso de que el sensor venga sin montar en placa (4 pines) las conexiones son las siguientes:

NC -> No se conecta y D2 -> pin digital 2

dht11

Las especificaciones técnicas del sensor se pueden encontrar en: http://www.micro4you.com/files/sensor/DHT11.pdf

PROGRAMA:

#include "DHT.h"
#define DHTPIN 2   
#define DHTTYPE DHT11   // DHT 11 
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600); 
  dht.begin();
}

void loop() {

  delay(2000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.println("Fallo al leer el sensor DHT11");
    return;
  }
Serial.print("Humedad: "); Serial.println(h); Serial.print(" %\t"); Serial.print("Temperatura: "); Serial.println(t); Serial.print(" *C "); Serial.println(""); }