Skip to content

A platform agnostic Rust driver for the Bosch BM[PE]-280

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

VersBinarii/bme280-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4a15261 · Apr 20, 2024

History

60 Commits
Jan 22, 2024
Apr 1, 2022
Apr 20, 2024
Jun 15, 2018
Apr 20, 2024
Jun 15, 2018
Jun 15, 2018
Apr 1, 2022

Repository files navigation

bme280

Crates.io Crates.io Released API docs

A rust device driver for the Bosch BME280 temperature, humidity, and atmospheric pressure sensor and the Bosch BMP280 temperature and atmospheric pressure sensor.

Usage

use linux_embedded_hal as hal;

use linux_embedded_hal::{Delay, I2cdev};
use bme280::i2c::BME280;

// using Linux I2C Bus #1 in this example
let i2c_bus = I2cdev::new("/dev/i2c-1").unwrap();
let mut delay = /* ..delay provider */
// initialize the BME280 using the primary I2C address 0x76
let mut bme280 = BME280::new_primary(i2c_bus);

// or, initialize the BME280 using the secondary I2C address 0x77
// let mut bme280 = BME280::new_secondary(i2c_bus);

// or, initialize the BME280 using a custom I2C address
// let bme280_i2c_addr = 0x88;
// let mut bme280 = BME280::new(i2c_bus, bme280_i2c_addr);

// initialize the sensor
bme280.init(&mut delay).unwrap();

// measure temperature, pressure, and humidity
let measurements = bme280.measure(&mut delay).unwrap();

println!("Relative Humidity = {}%", measurements.humidity);
println!("Temperature = {} deg C", measurements.temperature);
println!("Pressure = {} pascals", measurements.pressure);

Serde Support

To enable optional serde serialization support for the measurements struct, simply enable the serde feature, like so in Cargo.toml:

[dependencies]
bme280 = { version = "0.2", features = ["serde"] }

License

Licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.