14、W601之AHT10温湿度传感器

文章目录

  • 14、W601之AHT10温湿度传感器
    • 一、AHT10简介
    • 二、电路图连接
    • 三、AHT10通信
    • 四、温湿度数据采集
    • 五、代码实现

一、AHT10简介

AHT10 是一款高精度,完全校准,贴片封装的温湿度传感器, MEMS 的制作工艺,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个高性能CMOS 微处理器相连接。该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。AHT10 通信方式采用标准 IIC 通信方式,超小的体积、极低的功耗,使其成为各类应用甚至最为苛刻的应用场合的最佳选择。 AHT10 支持较宽的工作电源电压范围,该器件可为各类常见应用场景提供低成本和低功耗优势,温湿度传感器均在高精度的恒温恒湿腔室中进行出厂校准,直接输出经温度补偿后的湿度、温度等信息,用户无需要对湿度进行温度补偿,便可得到准确的温湿度信息

AHT10主要特点:

  • 工作电压范围:1.8V-3.3V
  • 工作电流 :休眠时 1uA,测量时 0.8mA
  • 具有 I2C 接口与报警等功能
  • 测量范围:湿度 0100%RH,温度-4085℃
  • 精度 :湿度±3%RH(典型值),温度 0.5℃(典型值)
  • 分辨率 :湿度 0.1%RH,温度 0.015℃

PS:I2C协议会在协议专题中

二、电路图连接

开发板上使用的是PA0和 PA1来模拟IIC总线与AHT10进行通讯的,因为I2C接口被其他硬件占用了。

三、AHT10通信

默认的 7-bit I2C 设备地址为 011100x。其中最低位 LSB 是可以通过 ADR 引脚(表 7 所示)的电平来随时改变的。将 ADR 接地电平将使 I2C 设备地址为 0111000 (0x38);将 ADR 接 VDD 电平,将使 I2C 设备地址为 1111001(0x79)。

因为W601将ADR接地,所以AHT10的设备地址为0x38

AHT10的读写模式:

在开始位之后,主机将 7 位从机地址发送到 HS300 X;接着是读/写位,这将决定任何后续数据的传送方向,该位设置时为 1 以指示从从属到主的读,设置为 0 时指示从主机到从机的写入。

即:

(0x38 << 1) || 0; //这是写命令
(0x38 << 1) || 1; //这是读命令

四、温湿度数据采集

当传感器启动通信后,先发送命令 0xE1,使输出数据进入校准状态。在 0xE1 发送后需要等待不少于300ms 读取温湿度数据(注意:此命令刚上电只需发送一次),而用于获取数据的指令是 0xAC。采集温湿度命令如下表:

五、代码实现

/*** @brief ATH10初始化** @param   void** @return  u8        0,初始化成功*/
u8 AHT10_Init(void)
{u8 res;u8 temp[2] = {0, 0};IIC_Init();        //初始化IICif(AHT10_Read_Status()) return 1;res = AHT10_Write_Data(AHT10_NORMAL_CMD, temp, 2);if(res != 0)   return 1;delay_ms(300);temp[0] = 0x08;temp[1] = 0x00;res = AHT10_Write_Data(AHT10_CALIBRATION_CMD, temp, 2);if(res != 0)    return 2;delay_ms(300);return 0;
}int main(void)
{u8 t = 0;float temperature, humidity;delay_init(80);  uart_init(115200);SPI_Init();LCD_Init();AHT10_Init();POINT_COLOR = BLUE; LCD_ShowString(30, 190, 200, 16, 16, "Temp:   . C");LCD_ShowString(30, 210, 200, 16, 16, "Humi:   . %RH");while(1){if(t % 10 == 0) {temperature = AHT10_Read_Temperature();humidity = AHT10_Read_Humidity();if(temperature < 0){LCD_ShowChar(30 + 40, 190, '-', 16);    temperature = -temperature;            }elseLCD_ShowChar(30 + 40, 190, ' ', 16);    LCD_ShowNum(30 + 48, 190, temperature, 2, 16);             LCD_ShowNum(30 + 72, 190, (u32)(temperature * 10) % 10, 1, 16);    LCD_ShowNum(30 + 48, 210, humidity, 2, 16);                        LCD_ShowNum(30 + 72, 210, (u32)(humidity * 10) % 10, 1, 16);}delay_ms(10);t++;}
}

现象:

14、W601之AHT10温湿度传感器相关推荐

  1. AHT10温湿度传感器设计

    AHT10温湿度传感器 概念 IIC协议,同步半双工通信协议 AHT10配置与通信 设计框架 I2C模块 其它模块 概念 传感器输出经过标定的数字信号输出,通过标准的I2C接口传输数据: 相对湿度的分 ...

  2. FPGA实验记录五:I2C读取AHT10温湿度传感器

    FPGA实验记录五:I2C读取AHT10温湿度传感器 一.AHT10温湿度传感器 1. 简介 AHT10,新一代温湿度传感器在尺寸与智能方面建立了新的标准:它嵌入了始于回流焊的双列扁平无引脚SMD封装 ...

  3. STM32单片机硬件I2C读取AHT10温湿度传感器数据

    STM32使用硬件IIC读取AHT10温湿度传感器的数据并显示在0.96寸OLED屏上. 我用的单片机是STM32F103C8T6,程序用的是ST标准库写的. STM32使用硬件I2C读取SHTC3温 ...

  4. 51单片机驱动AHT10温湿度传感器

    51单片机驱动AHT10温湿度传感器 AHT10温湿度传感器 AHT10参数 工作原理 数据转换 驱动 接线 驱动代码 实验结果 AHT10温湿度传感器 AHT10是新一代温湿度传感器,传感器输出经过 ...

  5. 基于STC单片机和AHT10温湿度传感器的温湿度计的设计

    大家好,我是『芯知识学堂』的SingleYork,今天笔者要跟大家分享一款"温湿度计"的制作,这是笔者曾经发表过的原文地址:https://www.icxbk.com/articl ...

  6. AHT10温湿度传感器总结

    AHT10管脚图 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200423102750908.PNG) 原理图 R2电阻可不接 AHT10采用I2C通信 1. ...

  7. STM32读取SHT3x系列温湿度传感器,标准库和HAL库

    STM32读取SHT3x系列(SHT30.SHT31.SHT35)温湿度传感器的数据并显示在0.96寸OLED屏上. 我下面提供两份代码,一份是标准库使用硬件I2C的,另一份是HAL库使用软件模拟II ...

  8. 2021-2027全球及中国温湿度传感器行业研究及十四五规划分析报告

    2019年,全球温湿度传感器市场规模达到了xx亿元,预计2026年可以达到xx亿元,年复合增长率(CAGR)为xx%.中国市场规模增长快速,预计将由2020年的XX亿元增长到2027年的XX亿元,年复 ...

  9. AHT20温湿度传感器STM32-I2C驱动,替代DHT11/DHT12/AM2320/SHT20/SHT30,IIC代码兼容AHT10/15-MEMS温湿度传感器

    AHT20是国内奥松生成的I2C接口的MEMS温湿度传感器,ADC位数为20Bit,具有体积小.精度高.成本低等优点.相较于AHT10,最显著的变化是体积由 5*4*1.6mm,缩小到 3*3*1.0 ...

最新文章

  1. OOM?教你如何在PyTorch更高效地利用显存
  2. Rulo扫地机器人app_要买这样的扫地机器人 浦桑尼克扫地机器人评测
  3. Wireshark:Usage in Ubuntu 18.04 distribution
  4. qt数据库有效插件为空的情况
  5. [codevs 1912] 汽车加油行驶问题
  6. 排序算法【稳定性+空间复杂度+时间复杂度(平均、最好、最坏)】
  7. linux树莓派连接wifi热点,如何将树莓派设置为WiFi热点
  8. ubuntu18.04配置远程服务器:安装ssh
  9. SQL Union和Union All使用方法
  10. android自定义矩形框,Android中ImageCropper矩形、圆形 裁剪框的实现方法
  11. oracle非延迟约束,Oracle可延迟约束Deferable的使用
  12. 关于js里的那一堆事件
  13. pandas 调整列的顺序
  14. 阿龙学堂-Java手机号码归属地查询
  15. Tomcat7项目迁移到Tomcat9处理步骤
  16. python和R的区别
  17. 【实用工具】让文件资源管理器像浏览器一样实现多标签化——QTTabBar
  18. linux系统外接硬盘_电脑主硬盘linux系统,外接硬盘win7系统.如何启动外接硬盘的win7系统?...
  19. 爬取NBA球员生涯数据,并在Excel中可视化显示
  20. 私有和公开IP地址的区别是什么?

热门文章

  1. 权威发布丨2021 中国开源先锋 33 人之心尖上的开源人物
  2. 程序员们该活动活动了 ,北京的同行们给你们推荐点北京好玩的地方
  3. 视频分割怎么使用?别担心,好用方法来啦
  4. 四、与服务器进行数据交换
  5. 用艺术的陪伴赋能心智障碍群体
  6. java程序员招聘有哪些要求
  7. java 求一组数据的各自所占百分比
  8. 送人玫瑰手留余香——分享快乐、快乐分享
  9. Block Design内部BRAM控制器与外部BRAM的连接
  10. json解析到map