En este tutorial vas a aprender a usar el sensor de temperatura y humedad DHT11 con tu placa Uno R3. Es un componente ideal para proyectos que necesitan un seguimiento constante del ambiente de forma sencilla y eficiente.
Resumen
Nuevamente vamos a usar una librería diseñada específicamente para estos sensores, lo que va a hacer que nuestro código sea corto y muy fácil de escribir. El DHT11 es lo suficientemente preciso para la mayoría de los proyectos hogareños o de prototipado.
Componentes necesarios
(1) x Elegoo Uno R3
(1) x Módulo de temperatura y humedad DHT11
(3) x Cables Hembra-Macho (cables DuPont)
Introducción a los componentes
El sensor digital de temperatura y humedad DHT11 es un sensor compuesto que entrega una salida de señal digital calibrada. Utiliza una tecnología exclusiva de recolección de señales digitales y detección de humedad para asegurar una alta confiabilidad y una excelente estabilidad a largo plazo. El sensor incluye un componente resistivo para medir la humedad y un dispositivo NTC para la temperatura, conectados a un microcontrolador de 8 bits de alto rendimiento.
Aplicaciones: Sistemas HVAC, deshumidificadores, estaciones meteorológicas, control automático, registro de datos y electrodomésticos.
Parámetros del producto
Parámetros de humedad: Resolución de 8 bits, repetibilidad de ±1% RH y precisión de ±5% RH a 25°C.
Parámetros de temperatura: Rango de 0°C a 50°C, resolución de 8 bits y repetibilidad de ±0.2°C.
Alimentación: DC 3.5~5.5V. Corriente de suministro: 0.3mA en medición y 60μA en espera. Período de muestreo: más de 2 segundos.
Descripción de los pines
VDD: Alimentación 3.5~5.5V DC.
DATA: Datos seriales, bus único.
GND: Tierra, polo negativo.
Esquema de conexión y diagrama de cableado
Mirá los diagramas para realizar las conexiones correctamente. Asegurate de que los pines coincidan con la configuración del código para evitar errores de lectura.
Código
Podés descargar el archivo del programa a tu dispositivo y abrirlo con el Arduino IDE. Antes de ejecutarlo, fijate de tener instalada la librería dht_nonblocking; si no la tenés, el código no va a funcionar.
Con este programa, la placa Uno R3 va a leer los datos del sensor cada 3 segundos y va a mostrar los resultados en el monitor serie. Para verlo, hacé clic en el botón del Monitor Serie en el software de Arduino (configurado a 9600 baudios).
Configuración de la librería y el sensor:
#include <dht_nonblocking.h>: Incluye la librería para el sensor.
#define DHT_SENSOR_TYPE DHT_TYPE_11: Define que estamos usando el modelo DHT11.
static const int DHT_SENSOR_PIN = 2: Define el pin D2 para la conexión.
DHT_nonblocking dht_sensor: Crea el objeto del sensor.
Función setup(): Inicializa la comunicación serie a 9600 baudios para que la placa pueda hablar con tu computadora.
Función measure_environment(): Es una función auxiliar que mide la temperatura y la humedad sin bloquear el resto del código. Usa millis() para chequear si ya pasaron los 3 segundos desde la última lectura, permitiendo que el programa siga corriendo mientras espera el momento de la nueva medición.
Uso de punteros: En la definición de la función, los parámetros float *temperature permiten que la función modifique directamente los valores de las variables originales fuera de su propio alcance.
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.