Skip to main content
ALB BMP280 Breakout - Barometer Sensor Breakout

ALB BMP280 Breakout - Barometer Sensor Breakout

Peter...About 2 minProductSensorMEMSBarometer

Overview

The BMP280 is an absolute barometric pressure sensor especially designed for mobile applications. The BMP280 is based on Bosch's proven Piezo-resistive pressure sensor technology featuring high EMC robustness, high accuracy and linearity and long term stability. The BMP280 operates at lower noise, supports new filter modes and an SPI interface.

alb_sen0002_bmp280_breakout-2
alb_sen0002_bmp280_breakout-2
alb_sen0002_bmp280_breakout-1
alb_sen0002_bmp280_breakout-1

Features

  • Pressure Operation range: 300 - 1100 hPa
  • Supply voltage VDDIO 1.2 - 3.6V, VDD 1.71 - 3.6V
  • I2C and SPI interface
  • Ultra-low power mode with average current 2.74uA
  • Resolution of data: Pressure: 0.18Pa
  • Available with Altitude Content Provider ACP2.0 Software

Specifications

  • BMP280 - An absolute barometric pressure sensor
  • Headers for I2C/SPI Interface
  • Solder Pad for Interface, Device Address and so on.
  • Qwiic connector x 2, easy to debug & use
  • Dimension: 28 x 18 x 5 mm

Hardware

alb-sen0001-bmp280-breakout-pinout
alb-sen0001-bmp280-breakout-pinout
PinDescriptionNote
VDDPower supply voltage: 1.7-3.6V
GNDGround
SCL/SCKI2C interface Clock bus or SPI interface Clock busHad external pull-up resistor 4K7
SDA/SDII2C interface Data bus or SPI Data inHad external pull-up resistor 4K7
SDOSPI Data Out
CSBSPI Chip Select

Default I2C interface 7 bit device address: 0x77

User Guide

It is the best choice to develop embedded drivers with embedded rust. Because the driver can be used with MCU like ESP32, also used with ARM64 Linux Application, for example raspberry pi directly.

You can download the bmp280 rust driver with git, also add your rust project with cargo - cargo add bmp280.

The examples as below use the first one.

https://github.com/lily-mara/bmp280

Examples

Simple Read BMP280 Pressure Data

This example will simply read bmp280 barometric pressure Sensor Data & Temperature

use bmp280::Bmp280Builder;

fn main() {
    let mut dev = Bmp280Builder::new()
        .path("/dev/i2c-3")
        .address(0x77)
        .build()
        .expect("Failed to build device");

    dev.zero().expect("failed to zero");

    loop {
        println!("{:?} kPa", dev.pressure_kpa().unwrap());
        println!("{:?} m", dev.altitude_m().unwrap());
        println!("{:?} c", dev.temperature_celsius().unwrap());
        std::thread::sleep(std::time::Duration::from_millis(250));
    }
}
  • /dev/i2c-3 is a i2c controller of rpi.
  • The BMP280's I2C Device address is 0x77. So we use new function to create a instance.
  • pressure_kpa function will get the pressure sensor data
  • altitude_m function will get the altitude data
  • temperature_celsius function will get the temperature

Use the command as below to build and run the app.

cargo build --target aarch64-unknown-linux-gnu -- example simple
scp -r ./target/aarch64-unknown-linux-gnu/debug/example/simple rpi@192.168.6.77:

After login the RPI with SSH, we can execute the app directly.

sudo ./simple

The terminal will print the accelerator & gyro, temperature.

Buy it Now

AnalogLamb.Comopen in new window
Xpulabs.Comopen in new window

Resources

Documents

BMP280 Datasheetopen in new window
Schematic

Codes

Github - bmp280-rsopen in new window

3D Drawing

TBD

FAQ

TBD

Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v2.15.5