6 个版本

新版本 0.1.5 2024年8月15日
0.1.4 2024年8月14日
0.1.3 2024年6月8日

嵌入式开发 中排名第 1556

Download history 202/week @ 2024-05-31 141/week @ 2024-06-07 11/week @ 2024-06-14 3/week @ 2024-06-21 3/week @ 2024-07-19 12/week @ 2024-07-26 154/week @ 2024-08-09

每月下载量 169

MIT/Apache

23KB
330

Si7021-T-RH  

crates.io License Documentation

用于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"
  1. 创建一个硬件特定的I²C驱动程序接口和延迟函数
  2. 使用I²C接口和延迟函数作为参数创建一个Si7021结构体。
  3. 初始化Si7021实例 4.a 读取相对湿度 4.b 读取温度或
  4. 调用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(阻塞)

许可证


您可以在归功于的情况下自由复制、修改和分发此应用程序,根据以下任一许可证的条款:

任选。

本项目与Silicon Labs或Adafruit无任何关联或支持。

依赖项

~1.3–2.5MB
~44K SLoC