6 个版本
新版本 0.1.5 | 2024年8月15日 |
---|---|
0.1.4 | 2024年8月14日 |
0.1.3 | 2024年6月8日 |
在 嵌入式开发 中排名第 1556
每月下载量 169
23KB
330 行
Si7021-T-RH
用于Silicon Labs Si70xx系列传感器(7013,7020,7021)的Rust crate。
https://github.com/marvinrobot42/si7021-t-rh.git
Si7013,7020,7021传感器具有I2C接口的相对湿度和温度传感器。
实现了所有I2C API函数。
特性
- 使用嵌入式-hal版本1.0.x
- 包含异步支持(请参阅存储库中的examples文件夹中的embassy-async ESP32-C6示例)
- 适用于嵌入式使用(ESP32-C3,-C6和-S3以及Raspberry Pi)
- 包含ESP32 RISC V和Raspberry Pi示例
- 启用/禁用内置加热器以清除冷凝或霜冻(当不读取温度时)
- 可配置加热器功率级别
- 读取设备型号号、序列号和固件版本
- 易于使用的Measurements结构体
- 与no_std嵌入式兼容
注意
使用Adafruit Si7021 STEMMA QT(QWIIC)型号开发:https://www.adafruit.com/product/3251
最近版本历史
- 0.1.5 修复了Cargo.toml文件损坏问题
- 0.1.4 添加了异步支持,清理了编译警告
- 0.1.3 更新了README.md
- 0.1.2 修复了仓库名称(哎呀,它是s17021-t-rh而不是si7021)
- 0.1.1 修复了README.md
- 0.1.0 初始版本
用法
将依赖项添加到 Cargo.toml
。
[dependencies.si7021-t-rh]
version = "0.1"
- 创建一个硬件特定的I²C驱动程序接口和延迟函数
- 使用I²C接口和延迟函数作为参数创建一个Si7021结构体。
- 初始化Si7021实例 4.a 读取相对湿度 4.b 读取温度或
- 调用read_measurements() fn,它返回相对湿度和温度,比调用单独的方法更快,因为Si70xx具有“从先前的RH测量值读取温度值”的功能
简单示例
更完整的示例在存储库的examples路径中
use anyhow::Result; // add dependency for this
use si7021_t_rh::Si7021;
use log::{info, error};
...
fn main() -> Result<()> {
...as per your hardware hal, below is ESP32-C3 - C6 style
let peripherals = Peripherals::take().unwrap();
let pins = peripherals.pins;
let sda = pins.gpio6; // esp32-c3 has pins.gpio0 , check your board schematic
let scl = pins.gpio7; // esp32-c3 haspins.gpio1, check your board schematic
let i2c = peripherals.i2c0;
let config = I2cConfig::new().baudrate(400.kHz().into());
let i2c_bus = I2cDriver::new(i2c, sda, scl, &config)?;
let mut delay: Delay = Default::default(); // your hardware delay from use ...
let mut my_si7021 = Si7021::new(i2c_bus, delay);
my_si7021.init_device().unwrap();
FreeRtos::delay_ms(250); // or your sleep function here
loop {
// the read_measurements() method is a little faster (-30 msec) than reading humidity and temperature separately
log::info!("Si70xx measurements are {:#?}", my_si7021.read_measurements().unwrap());
FreeRtos::delay_ms(10000);
}
}
对于异步,设置si7021-t-rh依赖项功能 = ["async"],并且Si7021::new方法需要异步I2C和延迟参数。默认功能是sync(阻塞)
参数。默认功能是sync(阻塞)
许可证
您可以在归功于的情况下自由复制、修改和分发此应用程序,根据以下任一许可证的条款:
- Apache License,版本2.0 (LICENSE-Apache-2.0 或 https://opensource.org/licenses/Apache-2.0)
- MIT许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
任选。
本项目与Silicon Labs或Adafruit无任何关联或支持。
依赖项
~1.3–2.5MB
~44K SLoC