【I²C总线】AHT20温湿度传感器
下载例程代码: 下载代码
请一定按照 例程使用方法🔗 导入例程,否则下载的可能不是例程而是其他工程。
AHT20温湿度传感器(I2C_AHT20)
通过I²C读取AHT20温湿度计
板载AHT20传感器规格:(详细可参考资料包中的手册)
参数 | 值 |
---|---|
芯片型号 | 广州奥松 AHT20 |
I²C地址 | 0x70 |
温度范围 | -40 ~ 85 ℃ |
温度误差 | ± 0.3 ℃ |
温度分辨率 | 0.01 ℃ |
湿度范围 | 0 ~ 100 %RH |
湿度误差 | ± 2 %RH |
湿度分辨率 | 0.024 %RH |
学习板上的AHT20传感器:

如何使用例程
-
编译并下载程序到学习板
-
使用配套TYPE-C数据线,将学习板连接到计算机

- 打开 波特律动 串口助手 (baud-dance.com) 在线串口调试助手,点击“选择串口”,选择USB Single Serial
- 此时即可收到温湿度信息,如图所示

例程讲解
下面介绍了如何自己实现该例程的功能
1、工程配置
-
打开I²C外设:Pinout&Configuration -> Connectivity -> I2C1,将I2C模式选择为I2C
-
打开串口2外设:Pinout&Configuration -> Connectivity -> USART2,将Mode选择为Asynchronous
-
配置工程:在Project Manager -> Code Generator页面中,勾选Generate peripheral initialization as ... per peripheral
-
启用float打印:在cubeIDE菜单栏中,Project Properties -> C/C++ Build -> Settings -> Tool Settings -> MCU Settings,勾选Use float with printf ... -nano
提示默认情况下,sprintf函数不能打印小数。因此我们需要配置一下编译器,使其能够打印小数
2、代码
(1) 初始化过程
-
拷贝库文件:将
aht20.c
文件拷贝到Core
->Src
目录下,将aht20.h
文件拷贝到Core
->Inc
目录下。 -
在main.c中添加include:
aht20.h
-
引用头文件:需要使用 sprintf 打印输出,在 main.c 引用头文件:
#include "stdio.h"
#include "string.h" -
初始化AHT20:
// 初始化AHT20
AHT20_Init();
(2) 读取数据
AHT20_Read(float *Temperature, float *Humidity)
预先定义两个float类型的变量,将指针传入该函数,用于接收读取结果
建议读取间隔大于500毫秒
AHT20与DHT20、DHT11的区别
三种型号都是广州奥松的温湿度传感器,它们的主要区别如下
对比项目 | AHT20 | DHT20 | DHT11 |
---|---|---|---|
通用 | 与 DHT20 通用 | 与 AHT20 通用 | 不通用 |
体积 | 微型贴片 | 插针 | 插针 |
精度 | 最高 | 低于 AHT20 | 最低 |
定位 | 新 | 是 DHT11 的升级 | 老产品 |
通信 | 标准 I²C | 标准 I²C | 单总线 |
DHT20 内部结构:
