ESP32 Arduino开发 DHT11传感器
ESP32 Arduino开发 DHT11传感器
参考:CSDN博客
1. 安装程序库
- 打开库管理工具
工具 -> 管理库...
- 查找所需要的程序库
安装DHT sensor library
2. 编写相关程序
2.1. 引入头文件
#include <DHT.h>
#include <DHT_U.h>
2.2. 创建DHT对象
DHT对象创建的函数需要两个参数,一个是用于获取数据的引脚号,一个是传感器的类型(可选DHT11、DHT21、DHT22)。
所以在创建对象之前,通过宏定义的方式对于所需要的两个参数进行定义。
#define DHTPIN 4 // 设置获取数据的引脚
#define DHTTYPE DHT11 // 选择DHT11
DHT dht(DHTPIN, DHTTYPE); // 创建一个DHT对象
2.3. 传感器初始化
在setup()函数中调用DHT对象的begin函数进行初始化
void setup() {
dht.begin(); // 初始化DHT11
}
2.4. 读取传感器数据
// 读取传感器数据
float h = dht.readHumidity(); // 读取湿度
float t = dht.readTemperature(); // 读取温度
// 判断数据是否成功读取
if (isnan(h) || isnan(t)) {
Serial.println("DHT11数据读取失败");
return;
}
// 串口打印
Serial.print ("湿度: ");
Serial.print (h);
Serial.print ("% | ");
Serial.print ("温度度: ");
Serial.print (t);
Serial.println ("℃");
3. 完整的代码例程
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin(); // 初始化DHT11
}
void loop() {
// 暂停2秒,读取数据官方说明需要250毫秒
delay(2000);
// 读取传感器数据
float h = dht.readHumidity(); // 读取湿度
float t = dht.readTemperature(); // 读取温度
// 判断数据是否成功读取
if (isnan(h) || isnan(t)) {
Serial.println("DHT11数据读取失败");
return;
}
// 串口打印
Serial.print ("湿度: ");
Serial.print (h);
Serial.print ("% | ");
Serial.print ("温度度: ");
Serial.print (t);
Serial.println ("℃");
}