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.
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
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured ```
Licensed under Apache 2.0, (c) 2016 Claus Matzinger