设计简介
本设计是通过图灵哥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响应并传输温湿度数据。通信过程包括以下几个步骤:
- 开始信号:主机拉低数据线至少18毫秒,然后拉高20-40微秒,以通知DHT11开始传输数据;
- 响应信号:DHT11在检测到开始信号后,会拉低数据线80微秒作为响应,然后拉高数据线80微秒,准备发送数据;
- 数据传输:DHT11通过改变数据线的状态来发送数据。每一位数据由50微秒的低电平和高电平组成,高电平的持续时间决定了数据位是0还是1(26-28微秒为0,70微秒为1);
- 数据校验:数据传输完成后,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);
}
实验现象
实验到此结束,感谢观看。