bmp085

Crates.iobmp085
lib.rsbmp085
version0.1.2
sourcesrc
created_at2016-10-03 16:55:02.6298
updated_at2017-08-29 12:03:36.508113
descriptionA Rust driver for the Adafruit BMP085/BMP180 thermometer/barometer device.
homepage
repositoryhttps://github.com/celaus/rust-bmp085
max_upload_size
id6701
size36,528
Claus M (celaus)

documentation

README

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:

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::test_basic_temp_read ... ok
test tests::test_max_temp_read ... ok
test tests::test_basic_pressure_read ... ok
test tests::test_zero_temp_read ... ok
test tests::test_zero_pressure_read ... ok
test tests::test_rand_temp_read ... ok

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

   Doc-tests bmp085

running 1 test
test BMP085BarometerThermometer<T>::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

Commit count: 13

cargo fmt