#adafruit #bmp180 #driver #sensor #devices #temperature #barometer

bmp085

为Adafruit BMP085/BMP180温度计/气压计设备提供的Rust驱动程序

3个版本

使用旧Rust 2015

0.1.2 2017年8月29日
0.1.1 2016年12月28日
0.1.0 2016年10月3日

#1578 in 硬件支持

Apache-2.0

22KB
376

BMP085 温度 & 气压传感器驱动程序 for Rust

Build Status Crates.io

用法

将bmp085驱动程序添加到您的 Cargo.toml。使用通用接口还需要 i2cdev

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

之后,您可以使用传感器

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));
    }
}

使用 cargo build 来构建程序,用 sudo target/debug/myprog 运行。

对于设备访问,通常需要root权限。

测试

在任何兼容的设备/操作系统上运行 cargo tests,您应该看到以下输出

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

资源

C++实现

数据表

许可证

许可协议:Apache 2.0,(c) 2016 Claus Matzinger

依赖项

~2–3.5MB
~59K SLoC