Nota

¡Hola, bienvenido a la Comunidad de Entusiastas de Raspberry Pi, Arduino y ESP32 de SunFounder en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas.

¿Por qué unirse?

  • Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.

  • Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Vistas exclusivas: Obtén acceso anticipado a nuevos anuncios de productos y adelantos.

  • Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.

  • Promociones festivas y sorteos: Participa en sorteos y promociones especiales de temporada.

👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] y únete hoy mismo!

Lección 19: Módulo Sensor de Temperatura y Humedad (DHT11)

En esta lección, aprenderás cómo leer los datos de temperatura y humedad desde un sensor DHT11 utilizando una placa de desarrollo ESP32. También veremos cómo interpretar estas lecturas y calcular el índice de calor en grados Celsius y Fahrenheit. Este proyecto es ideal para principiantes en sensores ambientales, proporcionando experiencia práctica con la adquisición de datos de sensores y los conceptos básicos de monitoreo climático en la plataforma ESP32.

Componentes requeridos

En este proyecto, necesitamos los siguientes componentes.

Definitivamente es conveniente comprar un kit completo, aquí está el enlace:

Nombre

ARTÍCULOS EN ESTE KIT

ENLACE

Kit Sensor Universal Maker

94

BUY

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

Introducción al componente

Enlace de compra

ESP32 y placa de desarrollo (Placa ESP32)

Comprar

Módulo de Sensor de Temperatura y Humedad (DHT11)

Comprar

Placa de Pruebas

Comprar

Cableado

Nota

El kit puede contener diferentes versiones del módulo DHT11. Por favor, confirma el método de cableado según el módulo que tengas.

module

diagram

dht11_module

dht11_module_circuit

dht11_module_withLED

dht11_module_withLED_circuit

Código

Nota

Para instalar la biblioteca, utiliza el Administrador de Bibliotecas de Arduino y busca «DHT sensor library» e instálala.

Análisis del código

  1. Inclusión de bibliotecas necesarias y definición de constantes.

    Esta parte del código incluye la biblioteca del sensor DHT y define el número de pin y el tipo de sensor que se utilizará en este proyecto.

    Nota

    Para instalar la biblioteca, utiliza el Administrador de Bibliotecas de Arduino y busca «DHT sensor library» e instálala.

    #include <DHT.h>
    #define DHTPIN 25       // Define el pin utilizado para conectar el sensor
    #define DHTTYPE DHT11  // Define el tipo de sensor
    
  2. Creación del objeto DHT. Aquí creamos un objeto DHT utilizando el número de pin definido y el tipo de sensor.

    DHT dht(DHTPIN, DHTTYPE);  // Crear un objeto DHT
    
  3. Esta función se ejecuta una vez cuando la placa de desarrollo ESP32 comienza. Inicializamos la comunicación serial y el sensor DHT en esta función.

    void setup() {
      Serial.begin(9600);
      Serial.println(F("DHT11 test!"));
      dht.begin();  // Inicializar el sensor DHT
    }
    
  4. Bucle principal. La función loop() se ejecuta continuamente después de la función setup. Aquí leemos los valores de humedad y temperatura, calculamos el índice de calor y mostramos estos valores en el monitor serial. Si la lectura del sensor falla (devuelve NaN), se imprime un mensaje de error.

    Nota

    El heat index es una manera de medir qué tan caliente se siente el ambiente combinando la temperatura del aire y la humedad. También se le llama «temperatura del aire percibida» o «temperatura aparente».

    void loop() {
      delay(2000);
      float h = dht.readHumidity();
      float t = dht.readTemperature();
      float f = dht.readTemperature(true);
      if (isnan(h) || isnan(t) || isnan(f)) {
        Serial.println(F("Failed to read from DHT sensor!"));
        return;
      }
      float hif = dht.computeHeatIndex(f, h);
      float hic = dht.computeHeatIndex(t, h, false);
      Serial.print(F("Humidity: "));
      Serial.print(h);
      Serial.print(F("%  Temperature: "));
      Serial.print(t);
      Serial.print(F("°C "));
      Serial.print(f);
      Serial.print(F("°F  Heat index: "));
      Serial.print(hic);
      Serial.print(F("°C "));
      Serial.print(hif);
      Serial.println(F("°F"));
    }