AHT21 是一款由 Aosong Electronics(奥松电子)生产的数字温湿度传感器芯片,具有 高精度、低功耗 和 数字输出 的特点,广泛应用于环境监测、物联网设备、家居自动化等领域。AHT21 能够同时测量 温度 和 湿度,并将其通过 I2C 接口以数字信号输出,方便与各种微控制器(如 Arduino、ESP32、STM32 等)连接和使用。
电器特性
引脚说明
示例电路
为避免信号冲突,微处理器(MCU)必须只能驱动 SDA 和 SCL 在低电平。需要一个外部的上拉电阻(例如:4.7kΩ)将信号提拉至高电平。上拉电阻已包含在 AHT21B 的微处理器的 I/O 电路中。
通讯
启动传感器
第一步,将传感器上电,电压为所选择的 VDD 电源电压(范围介于2.2V与5.5V之间)。上电后传感器需要不少于 100ms 稳定时间(此时SCL为高电平)以达到空闲状态即做好准备接收由主机(MCU)发送的命令。
设备地址
读取流程
1.上电后要等待不少于 100ms,读取温湿度值之前,通过发送 0x71 获取一个字节的状态字,如果状态字和 0x18 相与后不等于 0x18,初始化 0x1B、0x1C、0x1E 寄存器,详细初始化流程请参照我司官网例程;如果相等,执行下一步。
2.等待 10ms 发送 0xAC 命令(触发测量),此命令参数有两个字节,第一个字节为 0x33,第二个字节为 0x00。
3.等待 80ms 待测量完成,如果读取状态字 Bit[7] 为0,表示测量完成,然后可以连续读取六个字节;否则继续等待。
4.当接收完六个字节后,紧接着下一个字节是 CRC 校验数据,用户可以根据需要读出,如果接收端需要 CRC 校验,则在接收完第六个字节后发 ACK 应答,否则发 NACK 结束,CRC 初始值为 0XFF,CRC8 校验多项式为: CRC[7:0]=1+x 4 + x 5 + x 8
5.计算温湿度值。
注:在第一步的校准状态检验只需要上电时检查,在正常采集过程无需操作。
传感器在采集时需要时间,主机发出测量指令(0xAC)后,延时 80 毫秒以上再读取转换后的数据并判断返回的状态位是否正常。若状态比特位 [Bit7] 为 0 代表数据可正常读取,为 1 时传感器为忙状态,主机需要等待数据处理完成。
温湿度转换
相对湿度转换
相对湿度 RH 都可以根据 SDA 输出的相对湿度信号 SRH 通过如下公式计算获得(结果以 %RH 表示):
温度转换
温度T都可以通过将温度输出信号 ST 代入到下面的公式计算得到(结果以温度 ℃ 表示):
其中的 SRH、ST 代表的是读取到的 20 位数据。