3个版本 (破坏性)
0.3.0 | 2024年6月24日 |
---|---|
0.2.0 | 2024年2月9日 |
0.1.0 | 2022年10月30日 |
#367 in 嵌入式开发
83KB
1.5K SLoC
Rust BME280 Crate
一个Rust crate,用于从传感器BME280查询温度、压力和湿度
https://gitlab.com/claudiomattera/bme280-rs/
此crate同时支持embedded-hal
和embedded-hal-async
。
查看此项目的变更日志。
用法
将依赖项添加到Cargo.toml
。
[dependencies.bme280-rs]
version = "0.3.0"
可选地启用所需的功能。
功能 | 描述 |
---|---|
blocking (默认) |
启用阻塞式传感器Bme280 |
async (默认) |
启用异步传感器AsyncBme280 |
uom |
使用uom 进行测量类型 |
可以从I²C接口和延迟函数创建一个Bme280
结构。初始采样配置禁用所有测量,因此在读取样本之前,需要使用所需设置重新配置芯片。
use bme280_rs::{Bme280, Configuration, Oversampling, SensorMode};
let i2c = ...
let delay = ...
let mut bme280 = Bme280::new(i2c, delay);
bme280.init()?;
bme280.set_sampling_configuration(
Configuration::default()
.with_temperature_oversampling(Oversampling::Oversample1)
.with_pressure_oversampling(Oversampling::Oversample1)
.with_humidity_oversampling(Oversampling::Oversample1)
.with_sensor_mode(SensorMode::Normal)
)?;
delay.delay_ms(10);
if let Some(temperature) = bme280.read_temperature()? {
println!("Temperature: {} C", temperature);
} else {
println!("Temperature reading was disabled");
}
可以使用AsyncBme280
结构与异步HAL一起使用。它的API与Bme280
完全相同,只是在函数调用末尾添加了.await
。
use bme280_rs::{AsyncBme280, Configuration, Oversampling, SensorMode};
let i2c = ...
let delay = ...
let mut bme280 = AsyncBme280::new(i2c, delay);
bme280.init()?;
bme280.set_sampling_configuration(
Configuration::default()
.with_temperature_oversampling(Oversampling::Oversample1)
.with_pressure_oversampling(Oversampling::Oversample1)
.with_humidity_oversampling(Oversampling::Oversample1)
.with_sensor_mode(SensorMode::Normal)
).await?;
delay.delay_ms(10).await;
if let Some(temperature) = bme280.read_temperature().await? {
println!("Temperature: {} C", temperature);
} else {
println!("Temperature reading was disabled");
}
有关更多信息,请参阅示例。
测量单位
默认情况下,此包使用 f32
值进行所有温度、压力和湿度测量。当启用 Cargo 功能 uom
时,它使用来自包 uom 的量。温度测量的类型为 uom::si::f32::ThermodynamicTemperature
,压力测量的类型为 uom::si::f32::Pressure
,湿度测量的类型为 uom::si::f32::Ratio
。
许可证
版权所有 Claudio Mattera 2022-2024
您可以在署名的情况下免费复制、修改和分发此应用程序,具体条款如下:
- Apache License,版本 2.0(文件
LICENSE-APACHE-2.0.txt
或 https://opensource.org/licenses/Apache-2.0) - MIT 许可证(文件
LICENSE-MIT.txt
或 https://opensource.org/licenses/MIT)
任选其一。
本项目是完全原创作品,与 Bosch Sensortec 无关,也未得到其任何形式的认可或支持。
依赖项
~46–375KB