El BMP280 es un sensor de presión barométrica y temperatura de alta precisión fabricado por Bosch. Mide presión atmosférica con resolución de 0.18 Pa, lo que permite calcular la altitud con precisión de ±1 metro. Es el sensor favorito para estaciones meteorológicas DIY.
Diferencia entre BMP280 y BME280
| Sensor | Presión | Temperatura | Humedad |
|---|---|---|---|
| BMP280 | ✓ | ✓ | ✗ |
| BME280 | ✓ | ✓ | ✓ |
Conexión I2C
| BMP280 | Arduino Uno | ESP32 |
|---|---|---|
| VCC | 3.3V | 3.3V |
| GND | GND | GND |
| SDA | A4 | GPIO 21 |
| SCL | A5 | GPIO 22 |
| SDO | GND (dirección 0x76) | GND (dirección 0x76) |
Código con Librería Adafruit BMP280
#include <Wire.h>
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bmp;
// Presión al nivel del mar en tu ubicación (hPa)
// Valparaíso: ~1013 hPa al nivel del mar
#define PRESION_MAR 1013.25
void setup() {
Serial.begin(9600);
if (!bmp.begin(0x76)) {
Serial.println("BMP280 no encontrado");
while (1);
}
}
void loop() {
Serial.print("Temperatura: ");
Serial.print(bmp.readTemperature(), 1);
Serial.println(" °C");
Serial.print("Presión: ");
Serial.print(bmp.readPressure() / 100.0F, 2);
Serial.println(" hPa");
Serial.print("Altitud aprox: ");
Serial.print(bmp.readAltitude(PRESION_MAR), 1);
Serial.println(" m");
delay(2000);
}
Cálculo de Altitud
La altitud se calcula con la fórmula barométrica internacional. Para mayor precisión, ajusta PRESION_MAR al valor actual de presión al nivel del mar en tu ciudad (disponible en sitios meteorológicos como Meteoblue o la DMC para Chile).