0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
DHT22 TEMPERATURE-HUMIDITY SENSOR

DHT22 TEMPERATURE-HUMIDITY SENSOR

  • 厂商:

    WAVESHARE(微雪电子)

  • 封装:

    -

  • 描述:

  • 数据手册
  • 价格&库存
DHT22 TEMPERATURE-HUMIDITY SENSOR 数据手册
微雪电子 DHT22 Temperature-Humidity Sensor 用户手册 WAVESHARE ELECTRONICS DHT22 Temperature-Humidity Sensor DHT22 温湿度传感器用户手册 产品特点 本产品是已校准的数字温湿度传感器,用于检测环境温湿度,采用 DHT22(AM2302),标准单总 线接口。拥有比 DHT11 更高的精度和更大的量程。  产品参数 湿度 温度 分辨率 0.1 %RH 0.1 ℃ 量程范围 0 ~ 99.9 %RH -40 ~ 80℃ 精度 ±2 %RH (25℃) ±0.5℃ 推荐存储环境 60%RH 以下 10°C ~ 40°C 工作电压 3.3V-5V  接口说明(以接入 MCU 为例) VCC:接 3.3V ~ 5.5V GND:接 GND DOUT:接 MCU.IO 1 版本:V1.1。日期:2015 年 8 月 14 日 微雪电子 DHT22 Temperature-Humidity Sensor 用户手册 WAVESHARE ELECTRONICS 工作原理 该产品原理图如下: Temperatrue-Humidity Sensor (B) VCC VCC C1 R1 5.1K GND DHT22 VCC SDA NC GND 1 2 3 4 104 H1 1 2 3 VCC GND DOUT W GND aveshare VCC R2 1K GND Led 引脚定义: 引脚 名称 描述 1 VCC 电源正(3.3V-5.5V)。 2 GND 电源地。 3 DOUT 数据端口,接到 AM2302 的 SDA 端。 AM2302 器件采用简化的单总线通信。单总线即只有一根数据线,系统中的数据交换、控制均由 数据线完成。单总线通常要求外接一个约 5.1kΩ 的上拉电阻,这样,当总线闲置时,其状态为 高电平。SDA 用于微处理器与 AM2302 之间的通讯和同步,采用单总线数据格式,一次传送 40 位数据,高位先出。具体通信时序如图所示。 2 版本:V1.1。日期:2015 年 8 月 14 日 DHT22 Temperature-Humidity Sensor 用户手册 微雪电子 WAVESHARE ELECTRONICS AM2302 通信格式说明: 名称 单总线格式定义 起始信号 微处理器把数据总线(SDA)拉低一段时间(至少 800μ s)[1],通知传感器准备数据。 响应信号 传感器把数据总线(SDA)拉低 80μ s,再接高 80μ s 以响应主机的起始信号。 数据格式 收到主机起始信号后,传感器一次性从数据总线(SDA)串出 40 位数据,高位先 出。 湿度 湿度分辨率是 16Bit,高位在前;传感器串出的湿度值是实际湿度值的 10 倍。 温度 温度分辨率是 16Bit,高位在前;传感器串出的温度值是实际温度值的 10 倍;温 度最高位(Bit15)等于 1 表示负温度,温度最高位(Bit15)等于 0 表示正温度; 温度除了最高位(Bit14~Bit0)表示温度值。 校验位  校验位=湿度高位+湿度低位+温度高位+温度低位。 单总线通信时序 用户主机(MCU)发送一次起始信号(把数据总线 SDA 拉低至少 800µs)后, AM2302 从休 眠模式转换到高速模式。待主机开始信号结束后, AM2302 发送响应信号,从数据总线 SDA 串 行送出 40Bit 的数据,先发送字节的高位;发送的数据依次为湿度高位、湿度低位、温度高位、 温度低位、校验位,发送数据结束触发一次信息采集,采集结束传感器自动转入休眠模式,直到 下一次通信来临。(注:DHT22(AM2302)的数据格式和 DHT11 的数据格式不一样。)  外设读取步骤示例 主机和传感器之间的通信可通过如下三个步骤完成读取数据。 步骤一: AM2302 上电后( AM2302 上电后要等待 2S 以越过不稳定状态,在此期间读取设备不能发送 任何指令),测试环境温湿度数据,并记录数据,此后传感器自动转入休眠状态。 AM2302 的 SDA 数据线由上拉电阻拉高一直保持高电平,此时 AM2302 的 SDA 引脚处于输入状态,时刻检测 外部信号。 步骤二: 微处理器的 I/O 设置为输出, 同时输出低电平,且低电平保持时间不能小于 800us,典型值是 拉低 1MS,然后微处理器的 I/O 设置为输入状态,释放总线,由于上拉电阻,微处理器的 I/O 即 AM2302 的 SDA 数据线也随之变高,等主机释放总线后, AM2302 发送响应信号,即输出 80 微 秒的低电平作为应答信号,紧接着输出 80 微秒的高电平通知外设准备接收数据,信号传输如图 所示: 3 版本:V1.1。日期:2015 年 8 月 14 日 DHT22 Temperature-Humidity Sensor 用户手册 微雪电子 WAVESHARE ELECTRONICS 步骤三: AM2302 发送完响应后,随后由数据总线 SDA 连续串行输出 40 位数据,微处理器根据 I/O 电 平的变化接收 40 位数据。 位数据“0”的格式为: 50 微秒的低电平加 26-28 微秒的高电平; 位数据“1”的格式为: 50 微秒的低电平加 70 微秒的高电平; 位数据“0”、位数据“1”格式信号如图 所示: AM2302 的数据总线 SDA 输出 40 位数据后,继续输出低电平 50 微秒后转为输入状态,由于 上拉电阻随之变为高电平。同时 AM2302 内部重测环境温湿度数据,并记录数据,测试记录结 束,单片机自动进入休眠状态。单片机只有收到主机的起始信号后,才重新唤醒传感器,进入工 作状态。 4 版本:V1.1。日期:2015 年 8 月 14 日 DHT22 Temperature-Humidity Sensor 用户手册 微雪电子 WAVESHARE ELECTRONICS 操作与现象 下面章节以三款款不同类型的开发板(Nucleo-F103RB, Arduino UNO, Open103Z)为例,描述具体 操作步骤及实验现象。 NUCLEO-F103RB 1) 用杜邦线将 DHT22 接到 Nucleo-F103RB,DOUT 接到 Nucleo-F103RB 的 D2 端口。 2) 用 keil 软件打开程序.\ mbed\Temerature-Humidity Sensor.uvproj ,并编译下载。 3) 打开串口监视软件,选择正确的串口号,并设置如下: 波特率:9600;数据位:8;停止位:1;校验位:None;控制流:None。 串口输出温度和湿度。 Arduino UNO 1) 用杜邦线将 DHT22 接到 UNO,DOUT 接到 UNO 的 D2 端口。 2) 将 DHTxx 文件夹复制到 Arduino 软件的安装目录 Arduino\libraries 下面。 点击 File --> Examples --> DHTxx--> DHTxx 打开程序,并编译程序下载。 3) 点击 Tools -> Port 选择 Arduino 开发板的串口号,用打开串口监视器,设置 No line ending, 9600 baud。串口输出温度和湿度。 Open103Z 1) 用杜邦线将 DHT22 接到 Open103Z,DOUT 接到 UNO 的 PA3 端口。 2) 用 keil 软件打开程序.\ Open103Z\MDK_Project\DHT22,并编译下载。 3) 打开串口监视软件,选择正确的串口号,并设置如下: 波特率:9600;数据位:8;停止位:1;校验位:None;控制流:None。 串口输出温度和湿度。 5 版本:V1.1。日期:2015 年 8 月 14 日