
Midiendo temperatura y humedad con el sensor AM2303 (DHT22) y Arduino o keyestudio UNO
Cuando pensamos en la calidad del aire solemos fijarnos en la contaminación, los gases o las partículas en suspensión. Sin embargo, existen dos variables fundamentales que influyen enormemente en nuestro confort y bienestar:
- La temperatura.
- La humedad.
En esta práctica vamos a utilizar el sensor AM2303, también conocido como DHT22, para medir ambas magnitudes utilizando una placa Keyestudio UNO compatible con Arduino.
Este sensor es uno de los más populares del mundo maker debido a su sencillez, precisión y bajo coste. Además, forma parte de numerosos proyectos de estaciones meteorológicas, sistemas domóticos y plataformas de Internet de las Cosas (IoT).
¿Qué es el sensor AM2303?
El AM2303 es un sensor digital capaz de medir:
🌡️ Temperatura ambiental.
💧 Humedad relativa del aire.
A diferencia de otros sensores, ya incorpora internamente toda la electrónica necesaria para realizar las medidas y enviarlas a Arduino mediante una única línea de datos.
Esto hace que su utilización sea extremadamente sencilla.
¿Qué podemos medir?
Temperatura
La temperatura nos indica el grado de calor o frío presente en el ambiente.
Algunos ejemplos:
- Un aula climatizada suele encontrarse entre 20 y 24 °C.
- Una tarde de verano en Estepona puede superar los 35 °C.
- Una nevera suele mantenerse alrededor de los 4 °C.
Humedad relativa
La humedad indica la cantidad de vapor de agua presente en el aire.
Por ejemplo:
- Un día muy seco puede tener menos del 30 %.
- Un día normal suele situarse entre el 40 % y el 60 %.
- Cerca del mar o durante la lluvia puede superar el 80 %.
Material necesario
- 1 placa Keyestudio UNO o compatible.
- 1 sensor AM2303 (DHT22).
- 3 cables Dupont.
- Arduino IDE.
Conexión del sensor
El sensor dispone de tres conexiones:
| Sensor AM2303 | Arduino |
|---|---|
| VCC | 5V |
| DATA | D2 |
| GND | GND |
La conexión es muy sencilla.
El sensor utiliza una única línea digital para enviar toda la información a Arduino.

Montaje
(Aquí inserta una fotografía del montaje)
En nuestro caso hemos utilizado una placa Keyestudio UNO y hemos conectado la salida DATA al pin digital D2.
Librerías necesarias
Antes de cargar el programa debemos instalar las librerías correspondientes.
En Arduino IDE:
Programa
→ Incluir biblioteca
→ Gestionar bibliotecas
Buscar e instalar:
DHT sensor library
de Adafruit.
También debemos instalar:
Adafruit Unified Sensor
Programa completo
Copia y pega el siguiente código en Arduino IDE:
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Serial.begin(9600);
Serial.println("Iniciando sensor AM2303...");
dht.begin();
delay(1000);
}
void loop()
{
float humedad = dht.readHumidity();
float temperatura = dht.readTemperature();
if (isnan(humedad) || isnan(temperatura))
{
Serial.println("Error leyendo sensor");
}
else
{
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.print(" °C");
Serial.print(" Humedad: ");
Serial.print(humedad);
Serial.println(" %");
}
delay(2000);
}
¿Cómo funciona el programa?
Inclusión de la librería
#include <DHT.h>
Esta librería contiene todas las funciones necesarias para comunicarnos con el sensor.
Definición del pin
#define DHTPIN 2
Indicamos que el pin DATA del sensor está conectado al pin D2.
Tipo de sensor
#define DHTTYPE DHT22
Le indicamos a la librería que estamos utilizando un DHT22 (AM2303).
Inicialización
dht.begin();
Activa el sensor y prepara la comunicación.
Lectura de humedad
float humedad = dht.readHumidity();
Obtiene el porcentaje de humedad relativa.
Lectura de temperatura
float temperatura = dht.readTemperature();
Obtiene la temperatura en grados Celsius.
Comprobación de errores
if (isnan(humedad) || isnan(temperatura))
Verifica que el sensor esté funcionando correctamente.
Si aparece:
Error leyendo sensor
normalmente suele deberse a:
- Conexiones incorrectas.
- Librerías no instaladas.
- Sensor defectuoso.
Mostrar datos por pantalla
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.print(" Humedad: ");
Serial.println(humedad);
Muestra los resultados en el monitor serie.
Resultado esperado
Al abrir el Monitor Serie a 9600 baudios obtendremos algo parecido a:
Iniciando sensor AM2303...
Temperatura: 24.8 °C Humedad: 53.1 %
Temperatura: 24.9 °C Humedad: 53.0 %
Temperatura: 24.8 °C Humedad: 53.2 %
Experimentos propuestos
Experimento 1: Tu propia estación meteorológica
Anota durante una hora la temperatura y humedad del aula.
Representa posteriormente los datos en una hoja de cálculo.
Experimento 2: Interior frente a exterior
Compara las medidas obtenidas:
- Dentro del aula.
- En el patio.
- Cerca de una ventana.
Experimento 3: El aliento humano
Sopla suavemente cerca del sensor.
Observa cómo aumenta rápidamente la humedad.
Experimento 4: Calor corporal
Rodea el sensor con las manos durante unos segundos.
La temperatura debería aumentar ligeramente.
Experimento 5: Frío y calor
Acerca una botella fría o una bolsa de hielo.
Observa cómo disminuye la temperatura registrada.
Aplicaciones reales
Sensores como el AM2303 se utilizan en:
- Estaciones meteorológicas.
- Invernaderos inteligentes.
- Sistemas domóticos.
- Centros de datos.
- Proyectos IoT.
- Monitorización ambiental.
Conclusión
En esta práctica hemos aprendido a utilizar uno de los sensores ambientales más populares del mundo maker.
Gracias al AM2303 podemos conocer en tiempo real la temperatura y la humedad del ambiente utilizando únicamente tres cables y unas pocas líneas de código.
Este sensor será además una pieza fundamental en nuestra futura estación de calidad del aire, donde combinaremos temperatura, humedad, partículas PM2.5 y gases contaminantes para obtener una visión mucho más completa de nuestro entorno.
Etiqueta:arduino, dht222, keyestudio, medio ambiente, robótica



