Nota

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

¿Por qué unirse?

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

  • Aprender y compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Preestrenos exclusivos: Accede de forma anticipada a anuncios de nuevos productos y avances.

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

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

👉 ¿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 a medir la temperatura y la humedad, así como a calcular el índice de calor utilizando un sensor DHT11 con un Arduino Uno. Veremos cómo leer e interpretar los datos del sensor DHT11 y mostrar estos valores junto con el índice de calor tanto en grados Celsius como Fahrenheit en el monitor serial. Este proyecto es ideal para principiantes en Arduino, proporcionando experiencia práctica con sensores y procesamiento de datos.

Componentes necesarios

En este proyecto, necesitamos los siguientes componentes.

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

Nombre

ARTÍCULOS EN ESTE KIT

ENLACE

Kit de Sensores Universal Maker

94

BUY

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

Introducción del componente

Enlace de compra

Arduino UNO R3 o R4

Comprar

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

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» para instalarla.

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 utilizado en este proyecto.

    Nota

    Para instalar la biblioteca, utiliza el Administrador de Bibliotecas de Arduino y busca «DHT sensor library» para instalarla.

    #include <DHT.h>
    #define DHTPIN 2       // Definir el pin utilizado para conectar el sensor
    #define DHTTYPE DHT11  // Definir 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. Función setup Esta función se ejecuta una sola vez cuando el Arduino se inicia. Inicializamos la comunicación serial y el sensor DHT en esta función.

    void setup() {
       Serial.begin(9600);
      Serial.println(F("DHT11 test!"));
       sensors.begin();       // Iniciar la biblioteca
    }
    
  4. Bucle principal. La función loop() se ejecuta de manera continua después de la función de configuración. 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 forma de medir cuán caluroso se siente el aire 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"));
    }