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 de expertos: Resuelve problemas posventa y desafíos técnicos con ayuda de nuestra comunidad y equipo.

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

  • Avances exclusivos: Accede anticipadamente a anuncios de nuevos productos y adelantos.

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

  • Promociones y sorteos festivos: Participa en sorteos y promociones especiales por festividades.

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

2.32 Módulo DHT11

Descripción general

En esta lección, aprenderás a utilizar el módulo DHT11. El DHT11 es un sensor digital básico de temperatura y humedad de muy bajo costo. Utiliza un sensor capacitivo de humedad y un termistor para medir el aire circundante, y emite una señal digital en el pin de datos (no se requieren pines de entrada analógicos).

Componentes necesarios

../_images/Part_two_32.png

Circuito Fritzing

En este ejemplo, conectamos directamente los pines del módulo DHT11 a los pines de la placa Mega 2560, y utilizamos el pin 4 para leer la señal del módulo DHT11. Conecta el pin「+」del módulo DHT11 a 5V, el pin「-」a GND y el pin OUT al pin 4.

../_images/image241.png

Diagrama de conexión

../_images/image242.png

Código

Nota

  • Puedes abrir el archivo 2.32_dhtModule.ino en la ruta sunfounder_vincent_kit_for_arduino\code\2.32_dhtModule directamente.

  • Aquí se usa la librería DHT sensor library, que puedes instalar desde el Administrador de Librerías.

    ../_images/lib_dht11.png

Después de cargar el código en la placa Mega2560, el monitor serial continuará mostrando los valores actuales de temperatura y humedad del entorno.

Análisis del Código

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

    #include "DHT.h"
    
    #define DHTPIN 4  // Establece el pin conectado al pin de datos del DHT11
    #define DHTTYPE DHT11 // DHT 11
    
    DHT dht(DHTPIN, DHTTYPE);
    
  2. Inicializa la comunicación serial a una velocidad de 115200 baudios e inicia 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 y los muestra en el monitor serial.

    void loop() {
        // Espera unos segundos entre mediciones.
        delay(2000);
    
        // Leer la temperatura o humedad tarda alrededor de 250 milisegundos.
        // Las lecturas del sensor pueden tener hasta 2 segundos de antigüedad (es un sensor bastante lento)
        float humedad = dht.readHumidity();
        // Leer temperatura en Celsius (por defecto)
        float temperture = dht.readTemperature();
    
        // Comprueba si alguna lectura falló y termina anticipadamente si es así.
        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 usa para leer el valor de humedad del sensor DHT.

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

    • La función isnan() se emplea 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.

Imagen del Fenómeno

../_images/image243.jpeg