#embassy #dht #sensor #run-time #async #temperature-humidity #driver

embassy-dht-sensor

Embassy 异步运行时的 DHT 传感器驱动程序

2 个版本

0.1.1 2024年7月27日
0.1.0 2024年7月21日

#595 in 硬件支持

Download history 88/week @ 2024-07-18 133/week @ 2024-07-25 11/week @ 2024-08-01

232 每月下载量

MIT/Apache

15KB
186

Embassy DHT Sensor Library

这个Rust库提供了使用Embassy框架与DHT1X和DHT2X温度和湿度传感器交互的接口。

Adafruit DHT传感器库被用作此库的参考。https://github.com/adafruit/DHT-sensor-library

注意

此库应在 发布 模式下使用。在 调试 模式下进行的测量不够准确。

支持的设备

目前仅支持Raspberry Pi Pico板。

入门指南

安装

embassy-dht-sensor 添加到您的 Cargo.toml

[dependencies]
embassy-dht-sensor = "0.1.0"

用法

使用Embassy初始化您的Raspberry Pi Pico板。创建一个与您的DHT传感器连接的GPIO引脚的DHTSensor实例。使用read方法获取温度和湿度读数。

示例

use embassy_executor::Spawner;
use embassy_rp::gpio::{AnyPin, Flex};
use embassy_time::{Duration, Timer};
use embassy_dht_sensor::DHTSensor;
use defmt::info;

#[embassy_executor::main]
async fn main(_spawner: Spawner) {
let p = embassy_rp::init(Default::default());
let pin = Flex::new(AnyPin::from(p.PIN_0));
let mut dht_sensor = DHTSensor::new(pin);

    loop {
        match dht_sensor.read() {
            Ok(data) => {
                info!("Temperature: {:?}, Humidity: {:?}", data.temperature, data.humidity);
            },
            Err(e) => {
                info!("Error reading from DHT sensor: {:?}", e);
            }
        }
        Timer::after(Duration::from_secs(1)).await;
    }
}
'''

依赖关系

~4–14MB
~152K SLoC