#温度湿度 #湿度传感器 #温度传感器 #湿度 #温度 #传感器

no-std embedded-aht20

AHT20 温湿度传感器的平台无关 Rust 驱动程序

2 个版本

0.1.1 2024年2月25日
0.1.0 2024年2月24日

267硬件支持

每月 45 次下载

MIT/Apache

16KB
246 代码行

crates.io License Documentation

嵌入式-aht20

这是一个使用 embedded-halembedded-hal-async 特性的平台无关 AHT20 数字湿度温度传感器的 Rust 驱动程序。

设备

AHT20 传感器是一款湿度温度传感器,完全校准,具有优秀的长期稳定性,并使用 I²C 接口。

其典型应用范围包括:空调系统、除湿机、测试和检验设备、消费品、汽车、自动控制、数据记录仪、气象站、家用电器、湿度调节、医疗以及其他相关的温度和湿度检测和控制。

其温度的典型精度为 ±0.3 °C,相对湿度的精度为 ±2 %。

以下是其电气规格

参数 条件 最小值 典型值 最大值 单位
电压 典型值 2.0 3.3 5.5 伏特
电流 待机 0.25 微安
电流 测量 23 微安
功耗 待机 0.9 微瓦
功耗 测量 0.07 毫瓦
功耗 平均 3.3 微瓦

文档

功能

  • 执行温度和相对湿度的测量。
  • 进行软件设置。
  • 包含无浮点变体,适用于无 fpu 的系统。

其他功能

这个包依赖于weather-utils包。当你进行温度和湿度测量时,结果是一个来自weather-utils包的struct,为你免费提供该包的功能。例如,你可以立即从Aht20::measure的结果计算绝对湿度值(单位:g/m³)。如果你还使用其他传感器,例如QMP6988来获取气压,你也可以计算海拔。

用法

要使用此驱动程序,从该包和embedded-hal实现中导入所需的模块,然后实例化设备。

use embedded_aht20::{Aht20, DEFAULT_I2C_ADDRESS};
use linux_embedded_hal as hal;

fn main() -> Result<(), embedded_aht20::Error<hal::I2CError>> {
    // Create the I2C device from the chosen embedded-hal implementation,
    // in this case linux-embedded-hal
    let mut i2c = match hal::I2cdev::new("/dev/i2c-1") {
        Err(err) => {
            eprintln!("Could not create I2C device: {}", err);
            std::process::exit(1);
        }
        Ok(i2c) => i2c,
    };
    if let Err(err) = i2c.set_slave_address(DEFAULT_I2C_ADDRESS as u16) {
        eprintln!("Could not set I2C slave address: {}", err);
        std::process::exit(1);
    }

    // Create the sensor
    let mut sensor = Aht20::new(i2c, DEFAULT_I2C_ADDRESS, hal::Delay {})?;

    // Perform a temperature and humidity measurement
    let measurement = sensor.measure()?;
    println!(
        "Temperature: {:.2} °C, Relative humidity: {:.2} %",
        measurement.temperature.celcius(),
        measurement.relative_humidity
    );
    Ok(())
}

许可证

根据以下任一许可证授权:

由你选择。

贡献

除非你明确声明,否则根据Apache-2.0许可证定义的,你有意提交以包含在本作品中的任何贡献,将按上述方式双授权,没有任何额外的条款或条件。

依赖项

~2MB
~47K SLoC