Arduino DHT11

Vídeo

A continuación encontrara el vídeo en donde se explica el funcionamiento del circuito.

Acerca del proyecto

Uno de los sensores mas usados para aprender arduino o para realizar proyectos sencillos son los de temperatura, estos sensores permiten obtener la condición climática del ambiente como la temperatura y humedad, si trae esta función incorporada. El sensor DHT11 es uno de los mas económicos y robustos con al cual podemos obtener estas condiciones mencionadas y en este port lo vamos a conectar al arduino, veremos que pines se necesitan y trabajaremos con la librería de adafriut que ya incorpora todas las funcionalidades que necesitamos.

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
Líbreria DHT En este post encontrara a detalle las funciones de la librería, donde esta la descripción parámetros que necesita un ejemplo de como usarla.
dht11 datasheet Si necesita mas información del sensor con el post del datasheet podrá obtener detalle adicional como las especificaciones técnicas, pines y conexión del sensor.

Materiales

Para este proyecto vamos a usar los siguientes componentes, que son los básicos con las que se enseñan la programación de arduino.

Material Cantidad Descripción
Arduino 1 Controlador del proyecto
Sensor DHT11 1 Sensor de temperatura y humedad
Resistencia de 4.7kΩ 1 Se necesita para la comunicación del sensor y del arduino

Conexión del DHT11

Para este proyecto estamos usando el modulo del dht11, el cual ya trae incorporada la resistencia, pero si no tiene el modulo y esta trabajando con el sensor debe realizar la conexión como se muestra en la siguiente imagen.

Arduino Modulo
5v Pin 1 (+)
Pin 2 Pin 2 (out)
GND Pin 3 (-)

Estas son unas imágenes de los planos y una foto de como queda la conexión.

Código

A continuación tenemos el código con la funcionalidad.

//Paso 1
#include "DHT.h"

//Paso 2
#define DHTPIN 2
#define DHTTYPE DHT11

//Paso 3
DHT dht(DHTPIN, DHTTYPE);

void setup() {
    //Paso 4
    Serial.begin(9600);
    Serial.println("DHTxx test!");
    dht.begin();
}

void loop() {  
    delay(2000);
    
    //Paso 5
    float h = dht.readHumidity();
    
    //Paso 6
    float t = dht.readTemperature();
    
    //Paso 7
    float f = dht.readTemperature(true);

    //Paso 8
    if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
    }

    //Paso 9
    float hif = dht.computeHeatIndex(f, h);
    float hic = dht.computeHeatIndex(t, h, false);

    //Paso 10
    Serial.print("Humidity: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: ");
    Serial.print(t);
    Serial.print(" *C ");
    Serial.print(f);
    Serial.print(" *F\t");
    Serial.print("Heat index: ");
    Serial.print(hic);
    Serial.print(" *C ");
    Serial.print(hif);
    Serial.println(" *F");
}

Funcionamiento

A continuación explicamos los pasos del código anterior.

  1. Cargamos la librería del DHT11, esta tiene que estar guardada en el equipo.
  2. Con la variables DHTPIN definimos el pin de datos que va a hacer el dos y la variable DHTTYPE definimos el tipo de sensor a usar que es el DHT11.
  3. Obtenemos la instancia del objeto de la clase DHT, donde le pasamos como parámetros la declaración del pin y del tipo de sensor a usar.
  4. Inicializamos el puerto serial y el modulo DHT con begin.
  5. Con readHumidity() obtenemos la humedad y la almacenamos en una variable de tipo flotante.
  6. Con readTemperature() obtenemos la temperatura en grados celsius y la almacenamos en una variable de tipo flotante.
  7. Con readTemperature(true) obtenemos la temperatura en grados fahrenheit y la almacenamos en una variable de tipo flotante.
  8. Validamos si obtubimos resultados en las lecturas anteriores, si da error o no tenemos datos mostramos un error por consola.
  9. Con computeHeatIndex() obtenemos la sensación térmica del ambiente, esta se calcula con la temperatura y humedad, nos puede devolver los valores en grados celsius o fahrenheit.
  10. Por último imprimimos por la terminal serial todos los valores obtenidos para poder visualizar la temperatura y humedad.

Por ultimo en la siguiente imagen se muestra el resultado que se muestra por la consola.

Comentarios

Para dejar el comentario solo necesitamos tu correo que registraste en la pagina, pero si aun no te haz registrado se creara el usuario automaticamente.

Detalle contenido

base-arduino-dht11
Generic placeholder image
Oscar Fernandez Alzate

23, Octubre 2019

178
Categorías
ARDUINO