
Arduino + sensor de temperatura y humedad DHT-11
Hoy vamos a probar como hacer una pequeña estación con Arduino capaz de mostrarnos por Serial la temperatura y humedad del ambiente.
Para ello vamos a utilizar el sensor de temperatura y humedad DHT-11 (datasheet).
El sensor DHT-11 es un sensor de temperatura y humedad de salida digital.
El sensor inluye un componente resistivo para medir la humedad y una NTC para medir la temperatura.
Los elementos de medida se conectan a un microcontralador de 8 bits para enviar los datos.
A la hora de implementar el sensor con Arduino, es necesario bajar una librería propia. (Librería).
La conexión con Arduino es muy sencilla.
- Patilla izquierda a +5Voltios.
- Patilla 2 al puerto digital que queramos y con una resistencia de 10k a +5Volts.
- Patilla 3 a tierra (Ground).
- Patilla derecha a tierra (Ground).
Ya una vez conectado el sensor pasaremos a crear el código en el IDE.

/* Programa para leer temperatura y humedad del ambiente */
/* Librerías */
#include "DHT.h"
/* Definición de variables */
#define DHTPIN 2 // pin digital donde conectamos el sensor
//#define DHTTYPE DHT22 // DHT 22
#define DHTTYPE DHT11 // DHT 11 Usamos el sensor más económico y con menos precisión
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Conectamos el pin 1 (el izquierdo) a la salida de +5V
// Conectamos el pin 2 del sensor al pin que hayamos denominado DHTPIN
// Conectamos el pin 4 (el de la derecha) a GROUND
// Conectamos una resistencia de 10K del pin 2 (data) al pin 1 (power) del sensor
DHT dht(DHTPIN, DHTTYPE);
/* Configuración del sistema */
void setup() {
pinMode(2, INPUT); //Declaramos el pin 2 como entrada
Serial.begin(9600); // Iniciamos la comunicación serie
Serial.println("DHTxx test!");
dht.begin(); // Iniciamos el sensor
}
/* Bucle infinito */
void loop() {
// Leer la temperatura o humedad tarda alrededor de 250mS
// Las lecturas del sensor pueden llegar con 2 segundos de retardo (es un sensor muy barato)
float h = dht.readHumidity();
float t = dht.readTemperature();
// Comprobamos si lo que devuelve el sensor es válido, si son NaN (not a number) entonces hay algo mal!
if (isnan(t) || isnan(h)) {
Serial.println("Failed to read from DHT");
} else {
Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println(" *C");
}
}




Exprimiendo neuronas