5.13 Temperatura - Humedad

El DHT11 es un sensor de temperatura y humedad comúnmente utilizado para mediciones ambientales. Es un sensor digital que se comunica con un microcontrolador para proporcionar lecturas de temperatura y humedad.

En este proyecto, estaremos leyendo el sensor DHT11 e imprimiendo los valores de temperatura y humedad que detecta.

Al leer los datos proporcionados por el sensor, podemos obtener los valores actuales de temperatura y humedad en el ambiente. Estos valores pueden usarse para el monitoreo en tiempo real de condiciones ambientales, observaciones meteorológicas, control del clima interior, informes de humedad y más.

Componentes Necesarios

Para este proyecto, necesitamos los siguientes componentes.

Es definitivamente conveniente comprar un kit completo, aquí está el enlace:

Nombre

ELEMENTOS EN ESTE KIT

ENLACE

Kit de Inicio ESP32

320+

ESP32 Starter Kit

También puedes comprarlos por separado en los enlaces a continuación.

INTRODUCCIÓN DE COMPONENTES

ENLACE DE COMPRA

ESP32 WROOM 32E

BUY

Extensión de Cámara ESP32

-

Protoboard

BUY

Cables Puente

BUY

Sensor de Humedad y Temperatura DHT11

BUY

Pines Disponibles

  • Pines Disponibles

    Aquí está una lista de los pines disponibles en la placa ESP32 para este proyecto.

    Pines Disponibles

    IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23

Esquemático

../../_images/circuit_5.13_dht11.png

Cableado

../../_images/5.13_dht11_bb.png

Código

Nota

  • Abre el archivo 5.13_dht11.ino bajo la ruta de esp32-starter-kit-main\c\codes\5.13_dht11.

  • Después de seleccionar la placa (ESP32 Dev Module) y el puerto apropiado, haz clic en el botón Subir.

  • ¿Siempre aparece «COMxx desconocido»?

  • Se utiliza aquí la biblioteca DHT sensor library, puedes instalarla desde el Administrador de Bibliotecas.

    ../../_images/dht_lib.png

Después de que el código se haya subido con éxito, verás el Monitor Serial imprimiendo continuamente la temperatura y humedad, y a medida que el programa se ejecute de manera estable, estos dos valores se volverán más y más precisos.

¿Cómo funciona?

  1. Incluye la biblioteca DHT.h, que proporciona funciones para interactuar con los sensores DHT. Luego, establece el pin y tipo para el sensor DHT.

    #include "DHT.h"
    
    #define DHTPIN 14  // Set the pin connected to the DHT11 data pin
    #define DHTTYPE DHT11 // DHT 11
    
    DHT dht(DHTPIN, DHTTYPE);
    
  2. Inicializa la comunicación serial a una tasa de baudios de 115200 e inicializa el sensor DHT.

    void setup() {
        Serial.begin(115200);
        Serial.println("DHT11 test!");
        dht.begin();
    }
    
  3. En la función loop(), lee los valores de temperatura y humedad del sensor DHT11 e imprímelos en el monitor serial.

    void loop() {
        // Wait a few seconds between measurements.
        delay(2000);
    
        // Reading temperature or humidity takes about 250 milliseconds!
        // Sensor readings may also be up to 2 seconds 'old' (it's a very slow sensor)
        float humidity = dht.readHumidity();
        // Read temperature as Celsius (the default)
        float temperture = dht.readTemperature();
    
        // Check if any reads failed and exit early (to try again).
        if (isnan(humidity) || isnan(temperture)) {
            Serial.println("Failed to read from DHT sensor!");
            return;
        }
        // Print the humidity and temperature
        Serial.print("Humidity: ");
        Serial.print(humidity);
        Serial.print(" %\t");
        Serial.print("Temperature: ");
        Serial.print(temperture);
        Serial.println(" *C");
    }
    
    • La función dht.readHumidity() se llama para leer el valor de humedad del sensor DHT.

    • La función dht.readTemperature() se llama para leer el valor de temperatura del sensor DHT.

    • La función isnan() se usa para verificar si las lecturas son válidas. Si el valor de humedad o temperatura es NaN (no es un número), indica una lectura fallida del sensor, y se imprime un mensaje de error.

Aprende Más

También puedes mostrar la temperatura y humedad en el LCD I2C1602.

Nota

  • Puedes abrir el archivo 5.10_thermistor_lcd.ino bajo la ruta de euler-kit/arduino/5.10_thermistor_lcd.

  • Después de seleccionar la placa (ESP32 Dev Module) y el puerto apropiado, haz clic en el botón Subir.

  • ¿Siempre aparece «COMxx desconocido»?

  • Se utilizan aquí las bibliotecas LiquidCrystal_I2C y DHT sensor library, puedes instalarlas desde el Administrador de Bibliotecas.