A pure rust driver for the Bosch BME680 environmental sensor that focuses on ease of use.
- BME680 product page
- Official C version
- More detailed documentation can be found in the download section of the product page.
Mock i2c and delay have to be replaced with specific hardware crates.
fn main() -> ! {
let i2c = mock::blocking_i2c();
let delay = mock::MockDelay;
let config = bosch_bme680::Configuration::default();
let mut bme = Bme680::new(i2c, DeviceAddress::Primary, delay, &config, 20).unwrap();
thread::sleep(Duration::from_millis(100));
loop {
thread::sleep(Duration::from_secs(2));
let values = bme.measure().unwrap();
println!("Values: {values:?}\n");
}
}
embedded-hal-async
usage
This crate has optional support for embedded-hal-async
, which provides
asynchronous versions of the embedded-hal
traits. To avoid an unnecessary
dependency on embedded-hal-async
for projects which do not require it, the
embedded-hal-async
support is an optional feature.
In order to use the embedded-hal-async
driver, add the following to your
Cargo.toml
:
[dependencies]
bosch-bme680 = { version = "1.0.3", features = ["embedded-hal-async"] }
Then, construct an instance of the AsyncBme680
struct using the
embedded_hal_async
I2c
and Delay
traits.