drogue-bme680 0.2.0

A crate to interface with the BME680 environmental sensor
docs.rs failed to build drogue-bme680-0.2.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: drogue-bme680-0.1.0

Drogue IoT BME680 Sensor driver

CI crates.io docs.rs Matrix

The BME680 sensor is a "low power gas, pressure, temperature & humidity sensor" from Bosch Sensortec.

This crate helps to interface with the sensor. Offering general purpose access to the sensor, as well as a more opinionated controller logic, simplifying the process of taking measurements.

More information

Simple example

fn main() -> ! {
  let i2c = create_blocking_i2c();
  let mut timer = create_timer();
   
  let bme680 = Bme680Sensor::from(i2c, Address::Secondary).unwrap();
  
  let mut controller = Bme680Controller::new(
    bme680,
    &mut timer,
    Configuration::standard(),
    || 25,  // fixed 25 degrees Celsius as ambient temperature
  ).unwrap();
       
  loop {
    let result = controller.measure_default().unwrap();
    log::info!("Measured: {:?}", result);
  }
}

Also, see: examples/

Run unit tests

You can run the unit tests on simple host machine using:

cargo test --feature logging

Run examples

Run with (STM32F411):

cargo embed --release --features stm32f4xx --target thumbv7em-none-eabihf --example simple

Run with (STM32F723):

cargo embed --release --features stm32f7xx --target thumbv7em-none-eabihf --example simple

Dump data

You can enable logging of raw data, by enabling the feature dump, using --features dump. Note that this requires a logging implementation, such as rtt-logger. Note that this may have a huge negative impact on performance.