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
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.
Diagrama de conexión
Código
Nota
Puedes abrir el archivo
2.32_dhtModule.inoen la rutasunfounder_vincent_kit_for_arduino\code\2.32_dhtModuledirectamente.Aquí se usa la librería
DHT sensor library, que puedes instalar desde el Administrador de Librerías.
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
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);
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(); }
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