Estación Meteorológica Portátil Arduino por $10 – Nano, DHT22, BMP180 y LCD
Componentes y materiales
| Componente | Cantidad | Coste aprox. |
|---|---|---|
| Arduino Nano R3 | 1 | $1.89 |
| Sensor temperatura/humedad DHT22 (AM2302) | 1 | $3.00 |
| Sensor presión/altitud BMP180 | 1 | $2.00 |
| Pantalla LCD 16x2 con adaptador I2C | 1 | $3.00 |
| Placa perforada (veroboard), headers hembra, cables | 1 set | — |
Total estimado: ~$10
Herramientas necesarias
- Soldador y estaño
- Alicates de punta
- Cables de conexión
Descripción del proyecto
Para una feria de ciencias escolar, construí una estación meteorológica portátil en dos días. Mide:
- Temperatura (DHT22 y BMP180)
- Humedad relativa (DHT22)
- Presión atmosférica (BMP180)
- Altitud (calculada desde presión)
Paso 1: Selección de sensores
DHT22 vs DHT11 vs SHT1x
El DHT22 ofrece mejor rango (-40 a 80 °C), mayor precisión (±0.5 °C, ±2% HR) y salida digital calibrada. El DHT11 es más barato pero menos preciso (±2 °C, ±5% HR) y rango limitado (0-50 °C). El SHT1x es más estable pero más caro y con interfaz dual.
Conexión DHT22
- VCC → 5V o 3.3V
- GND → GND
- DATA → Pin 2 Arduino (con resistencia 10 kΩ a GND)
BMP180 – Sensor de presión barométrica I2C
Mide presión absoluta, que varía con el tiempo y la altitud. Permite predecir cambios meteorológicos (caída de presión = tormenta; subida = tiempo estable) y calcular altitud:
altitud = 44330 * [1 - (P/P0)^(1/5.255)]
donde P0 = 1013.25 hPa (presión a nivel del mar).
Conexión BMP180 (I2C)
- VCC → 3.3V (¡no 5V!)
- GND → GND
- SDA → A4 (Nano/Uno)
- SCL → A5 (Nano/Uno)
Precauciones: Ventila el sensor (pero evita corrientes de aire), mantenlo seco, alejado de fuentes de calor y luz directa.
Paso 2: Montaje del circuito
Se sueldan headers para Nano, DHT22 (con su pull-down 10 kΩ), BMP180 y LCD I2C (comparten bus I2C). Queda un hueco libre para añadir un RTC futuro.
Paso 3: Código
Librerías necesarias:
- BMP180 (SparkFun)
- DHT (Adafruit)
- LiquidCrystal_I2C (para LCD I2C)
#include
#include
#include
#include
SFE_BMP180 pressure;
#define ALTITUDE 20.56 // Tu altitud en metros
#define I2C_ADDR 0x27 // Dirección LCD (puede ser 0x3F)
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(I2C_ADDR, 16, 2); // Ajusta pines según tu módulo I2C
float tempBMP, tempDHT;
void setup() {
Serial.begin(9600);
lcd.init(); lcd.backlight();
lcd.print("Estacion Meteo");
delay(3000);
dht.begin();
pressure.begin();
}
void loop() {
char status;
double T, P, p0, alt;
// Temperatura y presión BMP180
status = pressure.startTemperature();
if(status) { delay(status); status = pressure.getTemperature(T); }
if(status) {
tempBMP = T;
lcd.clear(); lcd.print("Temp BMP:"); lcd.setCursor(0,1); lcd.print(T,1); lcd.print(" C"); delay(3000);
status = pressure.startPressure(3);
if(status) { delay(status); status = pressure.getPressure(P,T); }
if(status) {
lcd.clear(); lcd.print("Presion:"); lcd.setCursor(0,1); lcd.print(P,1); lcd.print(" hPa"); delay(3000);
p0 = pressure.sealevel(P, ALTITUDE);
alt = pressure.altitude(P, p0);
lcd.clear(); lcd.print("Altitud:"); lcd.setCursor(0,1); lcd.print(alt,0); lcd.print(" m"); delay(3000);
}
}
// Humedad y temperatura DHT22
float h = dht.readHumidity();
float t = dht.readTemperature();
tempDHT = t;
lcd.clear(); lcd.print("Humedad:"); lcd.setCursor(0,1); lcd.print(h,1); lcd.print(" %"); delay(3000);
lcd.clear(); lcd.print("Temp DHT:"); lcd.setCursor(0,1); lcd.print(t,1); lcd.print(" C"); delay(3000);
lcd.clear(); lcd.print("Temp media:"); lcd.setCursor(0,1); lcd.print((tempBMP+tempDHT)/2,1); lcd.print(" C"); delay(3000);
}
Esquemáticos
Proceso de manufactura
- Construcción de una estación meteorológica exterior con Raspberry Pi 2 y ADS‑WS1
- Construya una estación meteorológica con Raspberry Pi que envíe datos diarios por email
- Estación Meteorológica Avanzada v2.0: Monitorización en Tiempo Real de Temperatura, Presión, Humedad y Altitud
- Central DCC Digital para Ferrocarril Modelo con Arduino y App Android Gratuita
- Estación de Mezcla de Cócteles "6-Shooter" con Arduino: Construye tu Propio Barman Automático
- Proyecto Dados Digitales Arduino: Construye tu Propio Generador de Números Aleatorios con LCD
- Construye un Piano Táctil Capacitivo Portátil con Arduino – Guía Paso a Paso
- Mando USB para juegos DIY con Arduino – Construye tu propio gamepad de alto rendimiento
- Detector de Rango Portátil – Kit DIY Arduino Nano con HC-SR04, Batería 18650 y Carcasa Impresa en 3D
- Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano
- Registrador de Datos de Alto Rendimiento para Globo Meteorológico con Arduino