本次试验使用Arduino ESP32-S 开发板, 基本上乐鑫ESP系列皆可
使用的传感器为DHT11传感器简单封装模块
安装DHT11传感器库
安装 DHT Arduino 或者 DHT ESPx 都可
这里我选择安装DHT Arduino
如果选择DHT ESPx的话, 引用库的时候要引用"DHTesp.h
传感器模块接线
DHT11 传感器引脚 | Arduino ESP32 引脚 |
---|---|
GND | GND |
VCC | 3.3V or 5V |
DATA 数据引脚 | GPIO 14 |
以下是模拟接线和实际模块
模拟接线使用的是DHT22, 并且是无封装, 仅供参考意义
实际代码 / 实际运行
串口打印信息使用了中文, 波特率9600
实际运行打印时, 要确定编码一致, 否则会出现乱码情况
#include "DHT.h" // 包含DHT库
#define DHTPIN 14 // 定义DHT11数据引脚连接到ESP32的GPIO14
#define DHTTYPE DHT11 // 定义传感器类型为DHT11
DHT dht(DHTPIN, DHTTYPE); // 创建DHT传感器对象
void setup() {
Serial.begin(9600); // 初始化串口通信,波特率设置为9600
dht.begin(); // 初始化DHT11传感器
}
void loop() {
// 读取湿度和温度值
float h = dht.readHumidity(); // 读取湿度
float t = dht.readTemperature(); // 读取温度
// 检查读取是否成功
if (isnan(h) || isnan(t)) {
Serial.println("读取DHT11失败!"); // 如果读取失败,在串口监视器打印失败信息
return;
}
// 串口打印温湿度信息
Serial.printf("湿度: %.1f%% 温度: %.1f°C\n", h, t); // 格式化输出湿度和温度
delay(2000); // 等待2秒钟再次读取,DHT11的读取间隔建议不少于2秒
}