tutodh11

Upload: mariel-ruiz

Post on 04-Mar-2016

4 views

Category:

Documents


0 download

DESCRIPTION

TUTORIAL

TRANSCRIPT

  • 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);

    }

    }