Imaginá tener una estación meteorológica en tu casa que te permita medir la temperatura y la humedad en tiempo real, tanto adentro como afuera de tu hogar. Con este proyecto, vas a poder lograrlo.
Vas a poder crear una estación meteorológica que no solo te muestra estos datos en una pantalla LCD, sino que también puede funcionar de manera inalámbrica gracias a la alimentación por baterías. Además, al implementar el modo sleep en el Arduino, vas a poder extender significativamente la duración de las baterías, haciendo que tu estación sea más eficiente y sostenible.
¡Empecemos!
Materiales Necesarios:
- Arduino UNO (u otro compatible)
- Sensor de Temperatura y Humedad DHT22 (o DHT11 si es tu caso)
- Pantalla LCD 16×2 (con o sin módulo I2C)
- Resistencias y cables de conexión
- Protoboard

Paso 1: Conexiones del Hardware
Sensor DHT22:
- VCC: Conectar al pin de 5V del Arduino.
- GND: Conectar al pin de GND del Arduino.
- DATA: Conectar a un pin digital del Arduino (por ejemplo, el pin 2).
Pantalla LCD (con módulo I2C):
- VCC: Conectar al pin de 5V del Arduino.
- GND: Conectar al pin de GND del Arduino.
- SDA: Conectar al pin A4 del Arduino.
- SCL: Conectar al pin A5 del Arduino.
Si no tenés un módulo I2C para la pantalla LCD, vas a tener que conectar cada pin del LCD al Arduino manualmente y modificar el código en consecuencia.

Paso 2: Instalación de Librerías
Asegúrate de tener instaladas las siguientes librerías en tu Arduino IDE:
- DHT.h: Para gestionar el sensor de temperatura y humedad.
- LiquidCrystal.h: Para manejar la pantalla LCD.
- Podés instalar estas librerías desde el Gestor de Librerías del Arduino IDE.
Paso 3: Código Arduino
// Incluir las librerías
#include <LiquidCrystal.h> // Librería para la pantalla LCD
#include <DHT.h> // Librería para el sensor DHT
// Definir el pin y el tipo de sensor DHT
#define DHTPin 2 // Pin digital al que está conectado el DHT22
#define DHTType DHT22 // Cambia a DHT11 si es el sensor que estás utilizando
// Crear objetos para el sensor DHT y la pantalla LCD
DHT dht(DHTPin, DHTType);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Configura según tus conexiones
void setup() {
// Inicializar la pantalla LCD
lcd.begin(16, 2); // Inicia la pantalla LCD con 16 columnas y 2 filas
// Inicializar el sensor DHT
dht.begin(); // Inicializa el sensor DHT
}
void loop() {
// Leer la humedad y la temperatura
float humedad = dht.readHumidity();
float temperatura = dht.readTemperature();
// Comprobar si los valores son válidos o NaN (Not a Number)
if (isnan(humedad) || isnan(temperatura)) {
lcd.clear(); // Limpiar la pantalla LCD
lcd.setCursor(0, 0); // Colocar el cursor en la primera columna, primera fila
lcd.print(“DHT Error”); // Mostrar mensaje de error
} else {
// Mostrar la temperatura y la humedad en la pantalla LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Temp: “);
lcd.print(temperatura);
lcd.print(” C”);
lcd.setCursor(0, 1);
lcd.print(“Hum: “);
lcd.print(humedad);
lcd.print(” %”);
}
delay(10000); // Esperar 10 segundos antes de volver a medir
}
Paso 4: Explicación del Código
- Incluir Librerías: Se incluyen las librerías necesarias para manejar el sensor DHT y la pantalla LCD.
- Definir Sensor y Pines: Se define el tipo de sensor y el pin al que está conectado.
- Objetos para Sensor y Pantalla: Se crean objetos para poder utilizar los métodos del sensor y la pantalla.
- Función setup(): Inicializa la pantalla LCD y el sensor.
- Función loop():
- Se leen los valores de temperatura y humedad.
- Se verifica si los valores leídos son válidos. En caso de error, se muestra un mensaje en la pantalla.
- Si los valores son correctos, se muestran en la pantalla.
- Finalmente, se espera 10 segundos antes de la siguiente medición.
Paso 5: Subir el Código al Arduino
Conecta tu Arduino a la computadora, selecciona el puerto correspondiente en el IDE de Arduino y carga el código.
Paso 6: Pruebas y Ajustes
Con el código cargado, deberías ver la temperatura y la humedad en la pantalla LCD. Si querés ajustar el tiempo entre mediciones, modificá el valor en delay(10000).
Si tenés alguna duda o problema con algún paso, estamos para ayudarte.
Un Extra: Estación Meteorológica Inalámbrica con Arduino
Objetivo: Alimentar la estación meteorológica con baterías y extender la duración de la batería utilizando el modo sleep (sueño) de Arduino.
Materiales Adicionales:
- Batería Recargable (como una batería LiPo)
- Módulo de Carga de Batería (por ejemplo, TP4056)
- Convertidor DC-DC (si es necesario para adaptar el voltaje)
- Arduino Pro Mini (opcional, para mayor eficiencia energética)
- Librería LowPower.h (instalar desde el Gestor de Librerías del Arduino IDE)
Paso 1: Conexión de la Batería
- Conectar la batería al módulo de carga TP4056: La salida del módulo se conectará al Arduino, mientras que la entrada puede conectarse a un panel solar o un puerto USB para recargar la batería.
- Convertidor DC-DC: Si estás usando un Arduino que no es de 3.3V, puede que necesites un convertidor para adaptar el voltaje de la batería al que necesita el Arduino.
Paso 2: Implementar el Modo Sleep en el Código
Para ahorrar energía, vamos a usar la función LowPower.powerDown() que apaga varios componentes internos de Arduino durante un tiempo determinado
#include <LiquidCrystal.h> // Librería para la pantalla LCD
#include <DHT.h> // Librería para el sensor DHT
#include <LowPower.h> // Librería para el modo sleep
#define DHTPin 2 // Pin digital al que está conectado el DHT22
#define DHTType DHT22 // Cambia a DHT11 si es el sensor que estás utilizando
DHT dht(DHTPin, DHTType);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2); // Inicia la pantalla LCD con 16 columnas y 2 filas
dht.begin(); // Inicializa el sensor DHT
}
void loop() {
float humedad = dht.readHumidity();
float temperatura = dht.readTemperature();
if (isnan(humedad) || isnan(temperatura)) {
lcd.clear(); // Limpiar la pantalla LCD
lcd.setCursor(0, 0); // Colocar el cursor en la primera columna, primera fila
lcd.print(“DHT Error”); // Mostrar mensaje de error
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Temp: “);
lcd.print(temperatura);
lcd.print(” C”);
lcd.setCursor(0, 1);
lcd.print(“Hum: “);
lcd.print(humedad);
lcd.print(” %”);
}
// Poner el Arduino en modo sleep durante 4 minutos
for (int i = 0; i < 30; i++) {
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); // Sleep por 8 segundos
}
}
¿Qué vas a poder hacer?
- Medir la Temperatura y Humedad: Obtené datos precisos del clima en cualquier momento, ideales para conocer las condiciones de tu jardín, invernadero o cualquier espacio.
- Pantalla LCD para Visualización: Los datos se mostrarán de manera clara y directa en una pantalla LCD, lo que facilita su lectura.
- Alimentación Inalámbrica: Con baterías recargables, vas a poder instalar la estación en cualquier lugar, sin depender de enchufes.
- Eficiencia Energética con Modo Sleep: Aumenta la duración de la batería utilizando el modo sleep del Arduino, midiendo los datos en intervalos programados.
Ejemplos de Aplicación:
- En el Jardín: Monitorea las condiciones climáticas de tus plantas para un crecimiento óptimo.
- Invernaderos: Mantené un control constante de la temperatura y humedad, cruciales para el cultivo.
- Hogar: Coloca la estación en interiores para conocer las condiciones de tu hogar y ajustar el ambiente según tus necesidades.

Encontrá en nuestra web todo lo que buscás para tus proyectos, desde componentes hasta kits completos. ¡Conseguí lo necesario para transformar tus ideas en realidad!
No te pierdas nuestras próximas notas, donde vamos a presentar otros proyectos Arduino innovadores. ¡Seguí nuestras publicaciones y descubrí nuevas ideas cada semana!
Hasta la próxima.