Saltar al contenido
Roobotica

Cómo utilizar el sensor DHT11 para medir la temperatura y humedad con Arduino

22 de septiembre de 2021
Cómo utilizar el sensor DHT11 para medir la temperatura y humedad con Arduino
''
5/5 - (2 votos)

Muchos proyectos requieren de medir temperatura y humedad, todo con el fin de crear sistemas de refrigeración y climatización precisos. Te enseñamos como instalar el Sensor DHT11 con arduino.

En este artículo te hablaremos del DHT11, un dos en uno fácil de implementar con cualquier microcontrolador, que, además, posee una señal digital calibrada que lo dota de estabilidad y otras características interesantes.

Índice

    ¿Qué es el sensor DHT11?

    Es un dispositivo preciso y silencioso que permite medir la temperatura y humedad mediante el uso de la plataforma Arduino, el cual utiliza un pin digital que se encarga de enviar la información.

    Lo puedes comprar en dos formatos diferentes:

    De forma individual con cuatro pines

    En este caso, tenemos una presentación individual, sin estar insertado, que posee cuatro pines los cuales son para las siguientes conexiones:

    DHT11 pines - sensor suelto
    DHT11 pines – sensor suelto
    • VCC: Este es para la alimentación.
    • I/O: Transmisión de datos.
    • NC: Sin conexión, el pin está al aire, es decir. No Conecta.
    • GND: Conexión a Tierra.

    Insertado en una PCB con 3 pines

    En este caso, tenemos una presentación individual, sin estar insertado, que posee cuatro pines los cuales son para las siguientes conexiones:

    dht11 en placa o pcb
    DHT11 en placa o pcb
    • GND: Conexión con tierra.
    • DATA: El Pin de transmisión de datos.
    • VCC: Su Alimentación.

    Características del DHT11

    En general, ambos tipos de DHT11 poseen las siguientes características que lo hacen único como aparato:

    • Muy barato.
    • Funciona con 3,3 y/o 5V de alimentación.
    • Entre 0º a 50º con 5º precisión en temperatura.
    • Rango de humedad: de 20% al 80% con 5º precisión.
    • 1 Muestra por segundo.
    • Bajo consumo. ( 2.5 mA)
    • Devuelve la medida en grados centígrados.

    Pinout y datasheet del sensor DHT11

    La información técnica del DHT11 está en sus datasheets, donde cada fabricante aporta algunos valores que podrían variar en menor medida.

    Vale acotar, que los datos se transmiten de forma digital, aunque el sensor sea analógico, posee un sistema que hace la conversión y conecta directamente a una entrada digital de Arduino.

    La señal analógica del sensor se acopla al formato digital y es enviada al microcontrolador de Arduino, transmitiendo en una trama de 40-bits correspondientes a los datos sobre humedad y temperatura.

    Los primeros dos grupos de bits (16 en total) permiten medir la humedad, es decir, son los más significativos de la trama, mientras que los otros 2 grupos corresponden a la temperatura.

    Asimismo, la primera parte siempre será entera y la segunda en decimales, con una paridad para evitar errores, es decir, que permita comprobar que todo está correcto. Por tanto, si la suma da igual a la paridad, la cosa irá bien.

    Mientras tanto, cuando ya sabes lo descrito en el punto anterior, debes adentrarte a conocer los pines, un proceso sencillo, en el que juegan un papel fundamental el de alimentación o Vcc, el E/S para transmitir datos, y un GND para la conexión a tierra.

    Conexión con Arduino

    Una vez familiarizado con el pinout del DHT11 y la placa Arduino, la conexión es muy simple. Si eliges el módulo integrado en un PCB, recuerda que los pines serán tres (Viene sin NC para facilitar las cosas).

    esquema arduino y pines sensor DHT11
    Esquema arduino

    Posteriormente, debes conectar el pin de tierra con alguna de la GND de Arduino, mientras que el de alimentación va a la conexión de 5v, de esta forma, el sensor será alimentado con GND y Vcc.

    Para ello, podrás usar cualquier entrada digital para transmitir los datos desde el sensor DHT11 a la placa Arduino. Podrás usarlo una vez creado el código en Arduino IDE, un paso necesario para tales fines.

    Asimismo, cuando el sensor está alejado, deberás usar un cable de longitud superior a 20 metros y una resistencia pull-up de 5k, para cables mayores deberá ser proporcionalmente mayor.

    Esquema sensor DTH11 con arduino sin PCB
    Esquema sensor DHT11 sin PCB

    Ten en cuenta que, si usas 3,5v en vez de 5v, entonces el cable no debe ser mayor de 20 cm.

    ¿Cómo se transmite los datos ?

    Vale recordar, que dentro del propio dispositivo se hace la conversión entre analógico y digital, por lo tanto, se el sensor DHT11 trabaja inicialmente con una señal analógica que posteriormente la transforma en digital para que al enviarlo al microcontrolador este, la pueda entender.

    En este proceso se cumplen varios pasos o procesos. Te los describiremos a continuación:

    Trama datos DHt11

    El primer proceso es la trama de datos, esta se divide en 4 grupos.

    1. En este grupo contiene los datos relativas a la humedad.
    2. El segundo es la parte decimal.
    3. Datos de temperatura.
    4. Más datos de temperatura.

    En esta etapa los bits de paridad son confirmados, de manera que no haya datos corrompidos. Además de corroborar que la información sea correcta.

    Código para tu proyecto con el DHT11

    Ahora que tienes el circuito listo (módulo con PCB o sin PCB) e instalada la librería, solo debes crear un nuevo programa.

    Un ejemplo para obtener 3 valores del DHT11 sería:

    • Humedad referente: Es la cantidad de agua que se transporta por el aire y determina el desarrollo de las nubes y la precipitación.
    • Grados Temp. ambiente: Temperatura del lugar.
    • Índice de calor: Indica la temperatura sabiendo la humedad relativa y la temperatura.

    Otros datos importantes sobre el sensor DHT11

    Librerías

    Si programas el sensor sin usar librerías puede que sea complejo, por eso, preferimos que instales la librería presionando la combinación de teclas “Ctrl+Mayús+I” y el IDE te debería dejar instalar la librería que necesitas.

    En todo caso siempre puedes hacerlo manualmente con la librería de Adafruit.

    Código

    Permite leer y mostrar en el monitor la humedad relativa y temperatura en grados Celsius y Fahrenheit.

    // Incluimos librería
    #include <DHT.h>
     
    // Definimos el pin digital donde se conecta el sensor
    #define DHTPIN 2
    // Dependiendo del tipo de sensor
    #define DHTTYPE DHT11
     
    // Inicializamos el sensor DHT11
    DHT dht(DHTPIN, DHTTYPE);
     
    void setup() {
      // Inicializamos comunicación serie
      Serial.begin(9600);
     
      // Comenzamos el sensor DHT
      dht.begin();
     
    }
     
    void loop() {
        // Esperamos 5 segundos entre medidas
      delay(5000);
     
      // Leemos la humedad relativa
      float h = dht.readHumidity();
      // Leemos la temperatura en grados centígrados (por defecto)
      float t = dht.readTemperature();
      // Leemos la temperatura en grados Fahreheit
      float f = dht.readTemperature(true);
     
      // Comprobamos si ha habido algún error en la lectura
      if (isnan(h) || isnan(t) || isnan(f)) {
        Serial.println("Error obteniendo los datos del sensor DHT11");
        return;
      }
     
      // Calcular el índice de calor en Fahreheit
      float hif = dht.computeHeatIndex(f, h);
      // Calcular el índice de calor en grados centígrados
      float hic = dht.computeHeatIndex(t, h, false);
     
      Serial.print("Humedad: ");
      Serial.print(h);
      Serial.print(" %\t");
      Serial.print("Temperatura: ");
      Serial.print(t);
      Serial.print(" *C ");
      Serial.print(f);
      Serial.print(" *F\t");
      Serial.print("Índice de calor: ");
      Serial.print(hic);
      Serial.print(" *C ");
      Serial.print(hif);
      Serial.println(" *F");
     
    }

    Hoja de datos o datasheet sensor DHT11

    Es un documento que permite describir la funcionalidad y características del sensor DHT11 el rango de temperatura, corriente que soporta, y un largo etc, lo podéis ver en el siguiente PDF

    Cuanto vale un sensor DHT11

    El precio es lo mejor de todo, en el caso del dht11, es muy barato. Podemos encontrarlo 0,70€ en tiendas chinas tipo aliexpress, y su modelo superior el dht22 lo podemos encontrar por 2,40€ que sigue siendo barato.

    Si eres de los que tiene prisa y no puede esperar 2 semanas a que llegue el componente, siempre lo puedes pedir en amazon, que aunque sea más caro, te llega en 24h.

    Conclusión

    El resultado al ejecutar el programa debe ser como lo describe el protocolo, si en el proceso da un mensaje de error, debes revisar las conexiones y verificar que el aparato esté en buenas condiciones.

    Resumen
    Sensor DHT11
    Nombre del artículo
    Sensor DHT11
    Descripción
    Aprende de una forma muy fácil como instalar un sensor DHT11 para medir la humedad y la temperatura con Arduino. VER ESQUEMA
    Autor
    Publisher Name
    Roobotica.com
    Publisher Logo
    Configuraciones