DHT11 温湿度传感器 Arduino 入门教程
所需元件与材料
| 元件 | 数量 |
|---|---|
| Arduino UNO (任意兼容板均可) | 1 |
| KY-015 DHT11 温湿度传感器模块 (3 脚: S/信号、中间/VCC、-/GND) | 1 |
| 跳线 (公对公) | 3 |
| 面包板 | 1 |
| USB 2.0 数据线 | 1 |
软件准备
- Arduino IDE
- DHT 库:从 Adafruit DHT 库 或 Rob Tillaart 版 下载 ZIP,IDE 中
草图 → 包含库 → 添加 .ZIP 库安装
接线步骤
- 传感器插入面包板:蓝色传感器本体朝向自己 (引脚朝下)
- 连线:
- S (信号) → Arduino A0 (模拟输入引脚,也可用数字引脚)
- 中间脚 (VCC) → Arduino 5V
- - (GND) → Arduino GND
注意:不同厂商 UNO 引脚排布可能略异,请按功能 (A0/5V/GND) 接线,勿盲目对照图片。本文作者使用 Geekcreit UNO,引脚位置与官方板不同,但按功能接线通用。


库安装详细步骤
- 访问 Brainy Bits 教程页面 (文末致谢处链接) 下载
DHT_Library.zip - Arduino IDE →
草图 → 包含库 → 添加 .ZIP 库→ 选中该 ZIP - 安装后代码自动添加
#include <dht.h>,若出现重复行,删除旧行保留新行


示例代码
#include
#define dht_apin A0 // 传感器信号脚连接的模拟引脚
dht DHT;
void setup() {
Serial.begin(9600);
delay(500); // 系统启动缓冲
Serial.println("DHT11 Humidity & temperature Sensor\n\n");
delay(1000); // 等待传感器稳定
}
void loop() {
DHT.read11(dht_apin); // 读取数据
Serial.print("Current humidity = ");
Serial.print(DHT.humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(DHT.temperature);
Serial.println("C ");
delay(5000); // 建议最快 2 秒读取一次,此处 5 秒演示
}
查看数据
- 点击 IDE 右上角 串口监视器 图标 (放大镜)
- 波特率设为 9600
- 每 5 秒刷新一次温湿度数值

常见问题与提示
- 读数异常/乱码:检查接线、波特率、库版本兼容性
- 传感器发热/损坏:确认 VCC/GND 未接反,DHT11 工作电压 3.3~5V
- 读取频率:官方建议 ≥2 秒间隔,过快会导致校验失败
- 精度:DHT11 温度 ±2°C、湿度 ±5% RH,更高精度可用 DHT22/AM2302
- 扩展:接入 LCD1602/OLED 显示、记录至 SD 卡、上传物联网平台 (ThingSpeak/Blynk 等)
进阶方向
- 多传感器网络 (ESP8266/ESP32 无线上传)
- 结合继电器控制加湿器/风扇/空调实现恒温恒湿
- 数据可视化:Grafana + InfluxDB、Home Assistant 集成
制造工艺
- 树莓派 + MCP9808 + InfluxDB + Grafana:家庭温度监测系统
- DHT11 温湿度传感器项目:LED 指示与压电蜂鸣器报警
- 基于 Arduino Uno 的人体检测救援机器人:传感器集成分步指南
- Arduino + DHT11 + 以太网盾板温湿度数据记录仪
- Arduino Cloud 传感器塔:温度、动作与气体监测
- BME280 环境数据实时显示于 Nextion 触摸屏——Visuino 图形化开发
- 自制便携式视觉暂留显示器:Arduino UNO 与 ATtiny85
- Blynk + Arduino 读取 DHT11 温湿度数据教程
- 分步指南:将 YL-39/YL-69 土壤湿度传感器连接到 Arduino UNO
- Arduino 激光雕刻机:GRBL 固件 + Universal Gcode Sender 全流程实战
- TE Connectivity HTU31:线性响应的高精度湿度温度传感器
- DHT11传感器:工作原理与关键应用