tutodh11
DESCRIPTION
TUTORIALTRANSCRIPT
-
Sensor de temperatura y humedad
DHT11 Posted on 13 noviembre, 2012
Hace algunas semanas arrib a mi casa,
entre otras cosas de China, un sensor de
temperatura y humedad DHT-11. Es un
pequeo sensor digital que utiliza un
protocolo propietario de un hilo para enviar
la informacin, funciona de maravillas con
Arduino o cualquier microcontrolador
similar.
El encapsulado consta de 4 pines, uno de los
cuales est sin conexin
Se alimenta con 3 a 6 volts y enva datos en un rate bastante alto, la precisin es muy buena,
aunque su rango es algo acotado para las temperaturas, cosa que se puede solucionar
comprando un sensor mejor como el DHT-22 (claro, es mas caro tambin). Desde ya, por el
minimo costo de este sensor, no podemos pedir mas, y para aplicaciones hogareas es
suficiente.
-
Conectandolo al arduino UNO
La conexin es simple, lo alimentamos con 5 volts, GND y usamos una de las entradas
analgicas (A0~A5) para conectar el pin DATA del sensor
En mi caso, lo hice funcionar con mi LCD keypad shield y para ello utilic el siguiente cdigo:
#include "DHT.h"
#include
#define DHTPIN 15 //Analog 1
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(t) || isnan(h)) {
Serial.println("Sensor desconectado");
} else {
-
lcd.setCursor(0,0);
lcd.print("Temperatura ");
lcd.print(t,0);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Humedad ");
lcd.print(h,0);
lcd.print("%");
delay(1200);
}
}
El delay de 1200ms es necesario para no saturar el sensor con datos, de esta forma
conseguiremos datos factibles y no errores por lecturas muy rpidas.
Probablemente necesiten descargar la libreria DHT11 para Arduino, la pueden descargar desde
aqu: https://github.com/adafruit/DHT-sensor-library
En el caso de que solo quieran conseguir una salida serial de los datos de humedad y
temperatura, el cdigo debera ser algo asi:
#include "DHT.h"
#include
#define DHTPIN 15 //Analog 1
-
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(t) || isnan(h)) {
Serial.println("Sensor desconectado");
} else {
Serial.println(t);
Serial.println(h);
delay(1200);
}
}