📝 项目简介
使用ESP32-C6 + DHT11 + LCD1602制作实时温湿度显示器,适合初学者,成本低廉。
🛒 材料清单
ESP32-C6 WROOM1开发板 × 1
DHT11温湿度传感器(带模块) × 1
LCD1602显示屏(IIC接口) × 1
杜邦线若干
USB数据线(Type-C) × 1
💰 总成本约50元
🔌 硬件连接
ESP32-C6 接线图
├─ GPIO4 → DHT11 DAT
├─ GPIO6 → LCD1602 SDA
├─ GPIO7 → LCD1602 SCL
├─ 3.3V → DHT11 VCC
├─ 5V → LCD1602 VCC
└─ GND → DHT11、LCD1602 共地
⚠️ 注意:DHT11用3.3V,LCD1602用5V,GND必须共地。
💻 软件准备
1. Arduino IDE配置
添加ESP32支持:
文件 → 首选项 → 附加开发板管理器网址:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
工具 → 开发板管理器 → 搜索"ESP32"并安装
2. 安装库文件 📚
通过工具 → 管理库安装:
`DHT sensor library` (Adafruit)
`Adafruit Unified Sensor`
`LiquidCrystal I2C` (Frank de Brabander)
👨💻 完整代码
/*
* ESP32-C6 温湿度显示
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
// 引脚定义
#define DHTPIN 4
#define DHTTYPE DHT11
#define I2C_SDA 6
#define I2C_SCL 7
#define LCD_ADDR 0x27 // 或0x3F
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(LCD_ADDR, 16, 2);
void setup() {
Serial.begin(115200);
// 初始化I2C和LCD
Wire.begin(I2C_SDA, I2C_SCL);
lcd.init();
lcd.backlight();
// 欢迎信息
lcd.setCursor(0, 0);
lcd.print("Temp & Humidity");
lcd.setCursor(0, 1);
lcd.print("Starting...");
dht.begin();
delay(2000);
lcd.clear();
}
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// 检查读取
if (isnan(humidity) || isnan(temperature)) {
lcd.clear();
lcd.print("Sensor Error!");
delay(2000);
return;
}
// 串口输出
Serial.printf("温度: %.1f°C 湿度: %.1f%%\n", temperature, humidity);
// LCD显示
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperature, 1);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Humi: ");
lcd.print(humidity, 1);
lcd.print("%");
delay(2000);
}
🚀 上传测试
1. 选择开发板:工具 → ESP32C6 Dev Module
2. 选择端口:工具 → 端口 → COM×
3. 上传代码:点击"→"按钮
预期效果:
Temp: 25.0°C
Humi: 60.0%
🔧 故障排除
1.LCD无显示?
调节LCD背面电位器调整对比度
尝试修改地址为`0x3F`
检查I2C接线
2.I2C地址扫描代码:
```cpp
void setup() {
Serial.begin(115200);
Wire.begin(6, 7);
for(byte i = 1; i < 127; i++) {
Wire.beginTransmission(i);
if(Wire.endTransmission() == 0) {
Serial.printf("找到设备: 0x%02X\n", i);
}
}
}
3.DHT11读取失败?
检查DAT线是否连接GPIO4
确认供电3.3V正常
尝试更换传感器
4.上传失败?
上传时按住BOOT键
检查USB线是否支持数据传输
更换USB端口
🎨 功能扩展
📱 WiFi上传:数据上传到云平台
🔔 阈值报警:温湿度超标提醒
📊 数据记录:SD卡保存历史数据
🖥️ OLED升级:更好的显示效果
🎯 总结
通过这个项目,你将掌握:
ESP32基本开发流程
I2C通信和传感器使用
LCD显示控制
Arduino编程基础
👍 觉得有用请点赞收藏!有问题欢迎评论交流!

