Arduino LCD 恒温器:DHT11 温湿度传感器 + 1602 显示简易实现
元件清单
| 元件 | 数量 |
|---|---|
| DHT11 温湿度传感器(4 引脚) | 1 |
| Arduino UNO | 1 |
| 1602 字符型 LCD(16×2) | 1 |
| 杜邦线 | 1 套 |
| 10 kΩ 电阻 | 1(DHT11 数据线上拉) |
可选工具
- 3D 打印机(打印外壳)
软件
- Arduino IDE
- DHT 库(
#include "DHT.h")
接线说明
DHT11 VCC -> 5V
DHT11 DATA -> Arduino D8(代码中定义 DHTPIN 9,实接请对应修改)
DHT11 GND -> GND
10k 电阻连接 VCC 与 DATA(上拉)
LCD 接线(4 位模式):
RS -> D12, E -> D11, D4-D7 -> D5-D2
VSS -> GND, VDD -> 5V, VO -> 对比度电位器中间脚
RW -> GND, A -> 5V(背光+), K -> GND(背光-)
代码
#include "DHT.h"
#include "LiquidCrystal.h"
#define DHTPIN 9
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
dht.begin();
lcd.begin(16, 2);
lcd.print("The current temp");
lcd.setCursor(0, 1);
lcd.print("is: ");
float f = dht.readTemperature(true); // 华氏度
lcd.setCursor(5, 1);
lcd.print(f);
lcd.print(" F");
}
void loop() {
delay(1000 * 60 * 5); // 每 5 分钟刷新一次
float f = dht.readTemperature(true);
lcd.setCursor(5, 1);
lcd.print(f);
lcd.print(" F");
}
功能说明
- 上电显示当前温度(华氏度),之后每 5 分钟自动更新。
- 可轻松修改为摄氏度:
dht.readTemperature(false)。 - 若需显示湿度,添加
dht.readHumidity()并在第二行或滚动显示。 - 代码未做错误检测(如读取失败返回 NaN),生产环境建议加入校验。
原理图

进阶建议
- 加入按键设定温度阈值,控制继电器驱动加热/制冷设备,形成真正的恒温控制回路。
- 使用 DHT22 替代 DHT11,提高精度与量程。
- 加装 RTC 模块实现定时开关机或记录温度日志。
- 3D 打印外壳,集成 LCD 与传感器,做成成品化设备。
制造工艺
- Arduino Nano飞行模拟2020控制面板——LCD与CDI显示
- 用 Arduino Nano 和 Nokia 5110 LCD 自制 20kHz 示波器:简易 DIY 指南
- Arduino UNO 驱动 16x2 LCD 实现动画与小游戏
- Arduino UNO 驱动 1.17 英寸 TFT 屏显示图片 (SD 卡读取)
- DIY Arduino Nano 示波器:10 Hz–50 kHz / 128×64 LCD
- 基于 Arduino Nano 和 MAX30102 的心率监测仪(16x2 LCD 显示)
- 打造可靠的 Arduino 气象站:DHT 传感器 + LCD + RTC
- Arduino UNO 驱动 Nokia 5110 LCD 旋钮编码器菜单系统构建指南
- 用 Arduino Nano 制作可靠的 LCD 秒表 —— 无需电位器
- 用蜂鸣器和摇杆制作经典 Arduino LCD 街机游戏
- 用 XOD 可视化编程为 Arduino 快速构建 LCD 菜单系统,零代码实现
- 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟