BMP085 Temperature & Barometer Sensor Driver for Rust

Build Status Crates.io

Usage

Add the bmp085 driver to your Cargo.toml. i2cdev is also required to use common interfaces:

[dependencies] bmp085 = "0.1.1" i2cdev = "*"

Afterwards you can use the sensor:

```rust extern crate bmp085; extern crate i2cdev;

use bmp085::; use i2cdev::linux::; use i2cdev::sensors::{Barometer, Thermometer};

use std::thread; use std::time::Duration;

fn main() {

let i2c_dev = LinuxI2CDevice::new("/dev/i2c-1", BMP085_I2C_ADDR).unwrap();

let mut s = BMP085BarometerThermometer::new(i2c_dev, SamplingMode::Standard).unwrap();

loop {
    println!("Temperature: {:?} C",
             s.temperature_celsius().unwrap());
    println!("Pressure:    {:?} kPa", s.pressure_kpa().unwrap());
    thread::sleep(Duration::from_millis(1000));
}

} ```

Use cargo build to build the program, run with sudo target/debug/myprog.

For device access, root access is commonly required.

Tests

Run cargo tests on any compatible device/OS and you should see the following output: ``` running 6 tests test tests::testbasictempread ... ok test tests::testmaxtempread ... ok test tests::testbasicpressureread ... ok test tests::testzerotempread ... ok test tests::testzeropressureread ... ok test tests::testrandtempread ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured

Doc-tests bmp085

running 1 test test BMP085BarometerThermometer::new_0 ... ignored

test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured ```

Resources

C++ implementation

Data Sheet

License

Licensed under Apache 2.0, (c) 2016 Claus Matzinger