1. 产品简介
AHT20是一款MEMS半导体高精度低成本温湿度传感器。采用I2C接口,2V-5V宽电压工作范围。其稳定的性能及简洁的外围电路,使其能在恶劣环境下也能保持稳定性的工作。
该传感器工作范围为-40~+85℃,能广泛用于家庭电子设备的环境温湿度检测、汽车温湿度检测等方面。
2. 产品特性
- 数字输出、I2C 接口。
 - 优异的长期稳定性。
 - 响应迅速、抗干扰能力强,环境适应能力强 。
 - Gravity接口、连线简单、无需焊接。
 
3. 应用场景
- 测试设备
 - 自动控制
 - 数据记录器
 - 温度调节
 
4. 规格参数
4.1 模块参数
- 产品名称:Gravity: AHT20温湿度传感器
 - 工作电压: DC2V-5V
 - 工作电流: 0.27mA(3.3V工作条件下)
 - 通信协议: I2C
 - I2C地址: 0x38
 - 产品尺寸:2mm*2.2mm
 
4.2 AHT20芯片参数
4.2.1相对湿度参数
- 分辨率:0.024 %RH
 - 精度误差:±2 %RH
 - 重复性:±0.1 %RH
 - 迟滞:±1 %RH
 - 非线性:±0.1 %RH
 - 响应时间:8S
 - 工作范围:0~100 %RH
 - 长时间漂移:<0.5 %RH/yr
 
4.2.2温度参数
- 分辨率:0.01℃
 - 精度误差:±0.3℃
 - 重复性:±0.1℃
 - 迟滞:±0.1℃
 - 响应时间:最小5S,最大30S
 - 工作范围:-40℃~85℃
 - 长时间漂移:<0.04℃/yr
 
5.尺寸图

6.引脚说明

| 引脚 | 功能 | 说明 | 
|---|---|---|
| + | 电源正极 | 供电范围:DC 2V~5V | 
| - | 电源负极 | -- | 
| SCL | I2C时钟线 | -- | 
| SDA | I2C数据线 | -- | 
7.使用教程
7.1 AHT20温湿度传感器读取实验
7.1.1硬件准备
- DFRduino UNO主板 x1
 - SEN0528 Gravity: AHT20温湿度传感器 x1
 - 杜邦线 若干
 
7.1.2软件准备
- Arduino IDE 点击下载Arduino IDE
 - 首先下载并安装DFRobot_AHT20库 关于如何安装库文件: 如何加载库文件
 
7.1.3 硬件连接

UNO主板:3V3--连接--AHT20:+
UNO主板:GND--连接--AHT20:-
UNO主板:SCL--连接--AHT20:C
UNO主板:SDA--连接--AHT20:D
7.1.4 演示代码
以下程序将读取AHT20温湿度传感器的测量值,并通过串口打印出来:
    #include "DFRobot_AHT20.h"
    DFRobot_AHT20 aht20;
    void setup(){
      Serial.begin(115200);
      while(!Serial){
      }
      uint8_t status;
      while((status = aht20.begin()) != 0){
        Serial.print("AHT20 sensor initialization failed. error status : ");
        Serial.println(status);
        delay(1000);
      }
    }
    void loop(){
      if(aht20.startMeasurementReady(true)){
        Serial.print("temperature(-40~85 C): ");
        Serial.print(aht20.getTemperature_C());
        Serial.print(" C, ");
        Serial.print(aht20.getTemperature_F());
        Serial.print(" F\t");
        Serial.print("humidity(0~100): ");
        Serial.print(aht20.getHumidity_RH());
        Serial.println(" %RH");
        delay(8000);
      }
    }
7.1.5 实验过程
结果如下图所示,在打印窗口显示出了摄氏度、华氏度、以及湿度值:

8.库函数定义
  /**
   * @fn DFRobot_AHT20
   * @brief DFRobot_AHT20构造函数
   * @param wire TwoWire类对象引用
   * @return NONE
   */
  DFRobot_AHT20(TwoWire &wire = Wire);
  /**
   * @fn begin
   * @brief AHT20传感器初始化
   * @return 初始化状态值
   * @retval  0    初始化成功
   * @retval  1    _pWire为NULL,请检查构造DFRobot_AHT20是否正确传入了一个TwoWire类对象引用
   * @retval  2    设备未找到,请检查连线是否正确
   * @retval  3    传感器初始化失败,请检查传感器是否有问题,可调用reset函数,还原传感器后,再重新初始化
   */
  uint8_t begin();
  /**
   * @fn reset
   * @brief 传感器软复位,将传感器恢复到初始状态。
   * @return NONE
   */
  void reset();
  /**
   * @fn startMeasurementReady
   * @brief 启动测量,并判断测量数据是否完成。
   * @param crcEn 测量时是否使能校验检测
   * @n     false  不带校验检测测量(默认)
   * @n     true   带校验检测测量
   * @return 测量数据是否完成
   * @retval true  此次测量完成,可调用get*等相关函数,获取测量的数据
   * @retval false 此次测量失败,如果此时调用get*等相关函数,获取的数据是上一次测量的数据,或初始值0
   */
  bool startMeasurementReady(bool crcEn = false);
  /**
   * @fn getTemperature_F
   * @brief 获取环境温度,单位:华摄氏度(F)。
   * @return 华摄氏度温度
   * @note  AHT20不可直接获取华摄氏度温度,这里的华摄氏度温度是根据算法计算出来的: F = C x 1.8 + 32
   * @n 用户调用此函数,必须先调用一次startMeasurementReady函数,来启动测量,才能获取到实时的测量数据,
   * @n 否则将获取到初始数据或上一次测量数据
   */
  float getTemperature_F();
  /**
   * @fn getTemperature_C
   * @brief 获取环境温度,单位:摄氏度(℃)。
   * @return 摄氏度温度,范围-40 ~ 85℃为正常数据,否则为错误数据
   * @note 用户调用此函数,必须先调用一次startMeasurementReady函数,来启动测量,才能获取到实时的测量数据,
   * @n 否则将获取到初始数据或上一次测量数据
   */
  float getTemperature_C();
  /**
   * @fn getHumidity_RH
   * @brief 获取环境相对湿度,单位:%RH。
   * @return 相对湿度,范围0~100
   * @note 用户调用此函数,必须先调用一次startMeasurementReady函数,来启动测量,才能获取到实时的测量数据,
   * @n 否则将获取到初始数据或上一次测量数据
   */
  float getHumidity_RH();
更多资料下载
常见问题
还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。
修改历史
文档修改历史
| 文档版本号 | 修改时间 | 修改人 | 修改内容 | 
|---|---|---|---|
| V1.0 | 2022.5.20 | 刘礼华 | 第一版发布。 | 
产品修改历史
| 产品版本号 | 修改时间 | 修改人 | 产品修改内容 | 
|---|---|---|---|
| V1.0 | 2022.5.20 | 刘礼华 | 第一版发布。 |