5个版本 (稳定版)
1.2.1 | 2024年4月28日 |
---|---|
1.2.0 | 2022年3月5日 |
1.1.0 | 2022年2月22日 |
1.0.0 | 2022年2月6日 |
0.1.0 | 2022年2月6日 |
在嵌入式开发中排名第238
205KB
579 行
AHT20-driver
Rust嵌入式HAL驱动器,用于AHT20温度和湿度传感器。
您可以阅读我的博客文章AHT20温度计驱动程序,该文章详细介绍了此驱动程序的创建。
示例
在examples/blue_pill/目录中有一个针对Blue Pill板的示例应用程序。您可以使用cargo run --release
运行它。它将读取温度和湿度并在控制台打印。
如何使用
在支持嵌入式HAL的任何平台上,您都可以在自己的项目中使用AHT20驱动器。有关支持平台列表,请参阅awesome-embedded-rust。我已经使用此驱动器与stm32f103(也称为Blue Pill板)一起使用。
为了使用aht20-driver
,您需要配置一个实现嵌入式HAL阻塞I2C特质的I2C设备。您还需要一个实现嵌入式HAL阻塞延迟特质的延迟设备。
此存储库中的示例显示了Blue Pill板的示例。一旦您配置了这些,就可以将它们传递给AHT20::new
方法以创建设备驱动程序。您需要调用其上的init
方法,这将校准传感器并返回一个新的结构体,其中包含测量和重置传感器的功能。
校准后,您可以调用 measure
方法,该方法将返回包含相对湿度百分比和摄氏度温度值的测量值。
// Configure the AHT20 temperature and humidity sensor.
let mut aht20_uninit = aht20_driver::AHT20::new(i2c, aht20_driver::SENSOR_ADDRESS);
let mut aht20 = aht20_uninit.init(&mut delay).unwrap();
// Take the temperature and humidity measurement.
let aht20_measurement = aht20.measure(&mut delay).unwrap();
rprintln!("temperature (aht20): {:.2}C", aht20_measurement.temperature);
rprintln!("humidity (aht20): {:.2}%", aht20_measurement.humidity);
不支持浮点数
存在一个名为 measure_no_fp
的替代测量函数,它也执行测量,但不需要浮点计算。这对于内存有限的微控制器或没有浮点支持的微控制器来说可能是个好选择。这可以使二进制文件更小,并使这些微控制器的计算速度更快。缺点是精度有限 - 该函数仅返回整数。
贡献
请打开一个问题、在讨论下开始对话或提交一个拉取请求 - 所有这些都是受欢迎的。
我很想了解您是否在使用该驱动程序,并且我希望链接到您的项目,以便其他人可以从中学到东西。
许可证
aht20-driver
根据 MIT 许可证和 Apache 许可证 2.0 的条款进行分发。
请参阅 LICENSE-APACHE 和 LICENSE-MIT 文件以获取许可证详情。
依赖关系
~0.8–1.3MB
~26K SLoC