Estación meteorológica casera con ESP32 y sensor BME280
El primer invierno que montamos una estación meteorológica casera en el balcón del hacklab, marcaba 3 grados más que el termómetro de la farmacia de enfrente. No era un fallo del sensor. Era el propio ESP32 calentando la caja.

El primer invierno que montamos una estación meteorológica casera en el balcón del hacklab, marcaba 3 grados más que el termómetro de la farmacia de enfrente. No era un fallo del sensor. Era el propio ESP32 calentando la caja. Ese error, y otros cuatro o cinco igual de tontos, son la diferencia entre una estación que da datos útiles y un aparato que solo sirve para presumir en el grupo de Telegram.
Este proyecto cuesta menos de 20 euros, se monta en una tarde y usa dos piezas: un ESP32 y un sensor BME280, que mide temperatura, humedad y presión atmosférica. Aquí va lo que hemos aprendido después de tres versiones, con las cifras reales y los atajos que no conviene tomar.
Material para la estación meteorológica con ESP32 y BME280
| Pieza | Para qué sirve | Precio aproximado |
|---|---|---|
| Placa ESP32 DevKit o similar | Lee el sensor y envía los datos por Wi-Fi | 5 a 8 euros |
| Módulo BME280 de 3,3 V | Temperatura, humedad y presión | 4 a 8 euros |
| Cable de cuatro hilos, 50 cm | Separar el sensor de la placa | 1 euro |
| Cinco o seis platos de maceta blancos | Escudo contra el sol | 3 a 5 euros |
| Varilla roscada M6 y tuercas | Montar el escudo | 2 euros |
| Fuente USB de 5 V | Alimentación | Reciclada |
Un aviso antes de comprar: muchos módulos vendidos como BME280 son en realidad BMP280, que no mide humedad. Se parecen mucho. Más abajo explicamos cómo distinguirlos en el primer arranque.
Conexión del sensor paso a paso
El BME280 habla por I2C, así que solo necesitas cuatro cables:
- VCC del sensor al pin 3V3 del ESP32. Nunca a 5 V si tu módulo no tiene regulador.
- GND a GND.
- SDA al GPIO 21.
- SCL al GPIO 22.
Si vas a soldar los pines del módulo y nunca lo has hecho, practica antes con una placa de desecho. Nuestra guía para aprender a soldar electrónica desde cero cubre justo ese tipo de pines finos.
En el código, la librería de Adafruit para BME280 o la de SparkFun funcionan bien desde el IDE de Arduino. La dirección I2C suele ser 0x76 o 0x77, según cómo venga puenteado el módulo. Si el sensor no responde en una, prueba la otra antes de dar nada por roto.
Cómo saber si tu sensor es un BME280 de verdad
Cada chip guarda un identificador en su registro 0xD0. El BME280 devuelve 0x60 y el BMP280 devuelve 0x58. Basta con leer ese registro en el setup e imprimirlo por el monitor serie. Si sale 0x58 y la humedad marca siempre cero o un valor fijo, te han vendido el modelo barato. Para una estación sirve igual para presión y temperatura, pero pierdes la humedad, que es el dato más interesante.
Por qué no conviene meterlo en una caja estanca
El consejo más repetido en foros es encerrar todo en una caja de empalmes con junta de goma para protegerlo de la lluvia. Para la electrónica está bien. Para el sensor, es justo lo contrario de lo que necesitas.
Dentro de una caja cerrada el aire no se renueva. La humedad se queda atrapada, la temperatura sube con el sol de mediodía y el sensor mide el clima de la caja, no el de la calle. En nuestra segunda versión, con todo dentro de una caja IP65, llegamos a ver 41 grados un día de 29.
La solución es separar las dos cosas:
- El ESP32 y la fuente, dentro de una caja estanca, a la sombra.
- El BME280, a 40 o 50 cm de distancia, dentro de un escudo ventilado que lo proteja del sol directo y de la lluvia, pero deje pasar el aire.
Un escudo de radiación con platos de maceta
Las estaciones oficiales usan una garita tipo Stevenson. La versión maker más copiada es una torre de platos de maceta blancos, de plástico, apilados con separadores. Taladra un agujero en el centro de cada plato, pásalos por una varilla roscada M6 y deja unos 2 cm entre cada uno con tuercas o trozos de tubo. El sensor va colgado en el hueco central, a mitad de la torre.
El color importa: blanco brillante, nunca terracota ni negro. Y la ubicación también. Lo ideal es a metro y medio del suelo, lejos de paredes que reciben sol, y sobre césped o tierra mejor que sobre baldosa, que acumula calor durante horas.
Leer cada cinco minutos y no cada cinco segundos
La temperatura exterior no cambia tan rápido. Leer el sensor cada pocos segundos solo llena la base de datos de ruido y mantiene el ESP32 encendido y caliente. Nosotros leemos cada cinco minutos y dejamos la placa en deep sleep entre lecturas.
Ojo con una trampa: el chip ESP32 consume microamperios en deep sleep, pero muchas placas de desarrollo siguen gastando varios miliamperios por el regulador y el chip USB. Si piensas alimentar la estación con batería y panel solar, busca una placa pensada para bajo consumo o retira el LED de encendido. Con fuente USB fija, como la nuestra, no merece la pena complicarse.
Para la presión, recuerda que el BME280 da la presión absoluta. Para compararla con la que publica el servicio meteorológico tienes que corregirla a nivel del mar. Una aproximación válida: suma 1 hPa por cada 8 metros de altitud de tu casa. En el hacklab, a 120 metros, sumamos unos 15 hPa.
Dónde mandar los datos
Hay muchas opciones y todas funcionan. Las más usadas en el hacklab:
- Un servidor MQTT en una Raspberry Pi de casa, con Node-RED o Home Assistant para las gráficas.
- Una hoja de cálculo que recibe peticiones HTTP, útil si solo quieres un registro sencillo.
- Un servidor web pequeño en el propio ESP32, que muestra la última lectura en el navegador del móvil.
Si ya montaste el riego automático para macetas con Arduino, la estación encaja de maravilla: con la humedad y la temperatura reales puedes saltarte el riego los días de lluvia.
Preguntas frecuentes
¿Qué precisión tiene un BME280 casero?
Según la hoja de datos, alrededor de 1 grado en temperatura, 3 por ciento en humedad y 1 hPa en presión. En la práctica, el escudo y la ubicación influyen mucho más que el propio sensor.
¿Puedo usar un DHT22 en lugar del BME280?
Sí, pero no mide presión y suele ser menos estable con la humedad alta. Por la diferencia de precio, el BME280 compensa.
¿Cuánto dura el sensor a la intemperie?
Dentro de un escudo, varios años. Con el tiempo la lectura de humedad puede desviarse unos puntos. Compararla una vez al año con un higrómetro fiable basta para detectarlo.
Para empezar este fin de semana
Compra el sensor, comprueba su identificador antes de montar nada, separa el sensor de la placa y construye el escudo con platos blancos. Con esas cuatro decisiones tendrás datos más fiables que muchas estaciones comerciales baratas. Más ideas para tu banco de trabajo en nuestra sección de proyectos maker.
More in Proyectos
Proyectos
Riego automático para macetas con Arduino paso a paso
El verano pasado me fui diez días de vacaciones y volví a encontrar la albahaca seca y el tomate cherry doblado sobre la...
Proyectos
Ventilador automático para Raspberry Pi con un transistor
Tengo una Raspberry Pi 4 metida en una carcasa de plástico debajo de la tele, haciendo de consola retro.
Proyectos
Cuándo Vale la Pena Reparar Algo (y Cuándo No)
La pregunta que más me hacen después de un taller no es cómo imprimir una pieza en 3D, es cuándo realmente vale la pena hacerlo...