

The BME BMP280 is a high-precision, low-power barometric pressure and temperature sensor. It is widely used in weather monitoring, altitude measurement, and environmental sensing applications. This sensor is designed for both professional and hobbyist use, offering reliable performance in compact and cost-effective designs.
Common applications include:








The BME BMP280 sensor combines barometric pressure and temperature sensing capabilities. Below are its key technical details:
| Parameter | Value |
|---|---|
| Operating Voltage | 1.71V to 3.6V |
| Typical Operating Voltage | 3.3V |
| Current Consumption | 2.7 µA (in normal mode) |
| Pressure Range | 300 hPa to 1100 hPa |
| Temperature Range | -40°C to +85°C |
| Communication Interface | I2C (up to 3.4 MHz) or SPI (up to 10 MHz) |
| Accuracy (Pressure) | ±1 hPa |
| Accuracy (Temperature) | ±1°C |
| Dimensions | 2.0 mm × 2.5 mm × 0.95 mm |
The BME BMP280 sensor typically comes in a breakout board format. Below is the pin configuration for the breakout board:
| Pin Name | Description |
|---|---|
| VIN | Power supply input (3.3V recommended) |
| GND | Ground |
| SCL | Serial Clock Line for I2C communication |
| SDA | Serial Data Line for I2C communication |
| CS | Chip Select for SPI communication (optional) |
| SDO | Serial Data Output for SPI communication |
Below is an example of how to interface the BME BMP280 with an Arduino UNO using the I2C protocol. This code uses the Adafruit BMP280 library, which can be installed via the Arduino Library Manager.
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
// Create an instance of the BMP280 sensor
Adafruit_BMP280 bmp;
void setup() {
Serial.begin(9600); // Initialize serial communication at 9600 baud
if (!bmp.begin(0x76)) {
// Initialize the sensor with I2C address 0x76
Serial.println("Could not find a valid BMP280 sensor, check wiring!");
while (1); // Halt execution if sensor initialization fails
}
// Configure the sensor
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, // Normal mode
Adafruit_BMP280::SAMPLING_X2, // Temperature oversampling x2
Adafruit_BMP280::SAMPLING_X16, // Pressure oversampling x16
Adafruit_BMP280::FILTER_X16, // Filter coefficient x16
Adafruit_BMP280::STANDBY_MS_500); // Standby time 500ms
}
void loop() {
// Read and print temperature and pressure values
Serial.print("Temperature = ");
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bmp.readPressure() / 100.0F); // Convert Pa to hPa
Serial.println(" hPa");
delay(1000); // Wait 1 second before the next reading
}
Sensor Not Detected:
Incorrect Readings:
Communication Errors:
Q: Can the BMP280 measure humidity?
A: No, the BMP280 measures only temperature and pressure. For humidity sensing, consider using the BME280 sensor.
Q: What is the difference between the BMP280 and BME280?
A: The BMP280 measures temperature and pressure, while the BME280 adds humidity sensing.
Q: Can I use the BMP280 with a 5V microcontroller?
A: Yes, but you need a logic level shifter for the I2C or SPI lines, as the BMP280 operates at 3.3V logic levels.
Q: How do I calibrate the BMP280?
A: The sensor is factory-calibrated, and the calibration data is stored in its internal registers. Most libraries automatically apply this calibration data.