DHT11湿温度传感器

接线

参数

VCC:3-5.5V

DATA:采用单总线协议

温度测量范围:0-50℃ 误差±2℃

湿度测量范围:20%-90%RH 误差5%RH

在获取数据时,返回的是上一次测量的数据,然后再进行测量并存储数据,所以获取数据间隔长时需要连续获取两次数据才能得到实时数据。

程序

函数

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <DHT.h>
//头文件

#define DHTPIN 2 // 设置DHT11连接的引脚
#define DHTTYPE DHT11 // 设置使用的传感器类型
DHT dht(DHTPIN, DHTTYPE); // 创建DHT对象

dht.begin(); // 初始化DHT传感器

float humidity = dht.readHumidity(); // 读取湿度数据
float temperature = dht.readTemperature(); // 读取温度数据

if (isnan(humidity) || isnan(temperature)) // 检查读取是否成功

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <DHT.h>

#define DHTPIN 2 // 设置DHT11连接的引脚
#define DHTTYPE DHT11 // 设置使用的传感器类型

DHT dht(DHTPIN, DHTTYPE); // 创建DHT对象

void setup() {
Serial.begin(9600); // 初始化串口通信
dht.begin(); // 初始化DHT传感器
}

void loop() {
// 读取温湿度传感器的数据
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();

// 检查读取是否成功
if (isnan(humidity) || isnan(temperature)) {
Serial.println("无法从DHT传感器读取数据!");
return;
}

// 打印温湿度数据
Serial.print("湿度: ");
Serial.print(humidity);
Serial.print("%\t");
Serial.print("温度: ");
Serial.print(temperature);
Serial.println("°C");

delay(2000); // 延迟2秒后再次读取数据
}