3个版本
0.1.2 | 2024年5月15日 |
---|---|
0.1.1 | 2024年5月3日 |
0.1.0 | 2024年5月3日 |
#596 在 硬件支持
每月 100 次下载
15KB
185 行
实现基本SCD30 I2C CO2传感器操作的SCD30 trait
操作来自接口描述
重要 当前版本0.1.2包含基本操作,一些高级操作如校准尚未实现
待办事项
- (取消)激活自动自校准(ASC)
- 设置强制校准
- 设置温度偏移
- 高度补偿
- 软复位
基本示例
在您的Cargo.toml中 scd30_i2c="0.1.2"
获取测量值,CO2、温度和湿度
use scd30_i2c::scd30::Scd30;
use std::thread;
use std::time::Duration;
fn main() {
// Open the I2C device
let mut scd = Scd30::new().unwrap();
let mut counter = 0;
scd.trigger_cont_measurements();
scd.set_measurements_interval(2);
loop {
match scd.get_measurements() {
Ok((a, b, c)) => {
println!("Co2: {} ppm Temp: {} C RH: {} %", a, b, c);
thread::sleep(Duration::from_secs(2));
counter += 1;
println!("{}", counter);
}
Err(e) => {
println!(
"Error obtaining measurements. More details: {}. Waiting 10 seconds for recovering",
e
);
thread::sleep(Duration::from_secs(10));
}
}
}
}
硬件
我使用Raspberry Pi 5及其I2C功能创建和测试了这个库,对于其他运行Linux的机器应该也能工作,但我没有更多的设备进行测试
更多信息
这是我用Rust制作的第一个crate,所以任何建议都非常欢迎。
特别感谢
特别感谢RequestForCoffe提供的出色的Python库。我使用了这个库很多来理解并在Rust中复制代码。
依赖项
~2MB
~38K SLoC