【实验】ESP32连接DHT11采集温湿度

设计简介

本设计是通过图灵哥ESP32S3的最小系统开发板,外挂DHT11传感器模块来采集温度与湿度,并通过串口打数据显示结果。

电路连接如下图所示

DHT11简介

DHT11传感器是一款常见的温湿度传感器,适用于家庭、办公室、实验室等环境中的温湿度监测。它具有体积小、功耗低、响应速度快、抗干扰能力强等特点。DHT11传感器通过独特的数字模块采集技术和温湿度传感技术,能够准确测量环境中的温度和湿度。

DHT11传感器包含一个电阻式感湿元件和一个NTC测温元件,通过单总线接口与ESP32进行通信。其测量范围为湿度:20%-90%RH,温度:0℃-50℃,分辨率分别为1%RH和1℃。DHT11采用4针单排引脚封装,方便用户进行安装和调试。由于其简单易用、性价比高等优点,DHT11传感器在智能家居、自动控制、环境监测等领域得到了广泛应用。

DHT11引脚排列

以下是DHT11的引脚排列:

引脚1:VCC(正电源)

引脚2:DATA(数据线)

引脚3:未连接(NC,No Connect)

引脚4:GND(地)

DHT11时序特性

在实际应用中,DHT11的数据通信协议是基于主机(微控制器)通过DATA线发送开始信号,然后DHT11响应并传输温湿度数据。通信过程包括以下几个步骤:

  1. 开始信号:主机拉低数据线至少18毫秒,然后拉高20-40微秒,以通知DHT11开始传输数据
  2. 响应信号:DHT11在检测到开始信号后,会拉低数据线80微秒作为响应,然后拉高数据线80微秒,准备发送数据
  3. 数据传输:DHT11通过改变数据线的状态来发送数据。每一位数据由50微秒的低电平和高电平组成,高电平的持续时间决定了数据位是0还是1(26-28微秒为0,70微秒为1);
  4. 数据校验:数据传输完成后,DHT11会发送一个校验和,以供主机验证数据的准确性。

由于DHT11的数据传输协议相对复杂,通常需要使用特定的库来简化与微控制器的通信过程。例如,在Arduino平台上,可以使用DHTlib或DHT sensor library等库来读取DHT11的数据。

代码实现

#include "DHT.h"

#define DHTPIN  6
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);//串口波特率选择9600
  Serial.println("DHT11 test");
  dht.begin();
}

void loop() {
  float h = dht.readHumidity();//读湿度
  float t = dht.readTemperature();//读温度(摄氏度)

  Serial.print("Humidity:");
  Serial.print(h);
  Serial.print("% Temperature:");
  Serial.print(t);
  Serial.println("℃\n");
  delay(2000);
}

实验现象

实验到此结束,感谢观看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值