Skip to content
This repository has been archived by the owner on Jul 7, 2024. It is now read-only.

celaus/rust-bmp085

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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