🌡️ ESP32-C6 温湿度监测系统制作教程
分享作者:XIUYUAN
作者昵称:XIUYUAN
评测品牌:iCEasy
评测型号:显示屏1602A
发布时间:2025-10-21 14:25:00
1
视频链接
【ESP32-C6 温湿度监测系统制作教程(esp32c6+dht11+lcd1602)-哔哩哔哩】 https://b23.tv/LIOPLRY
前言
使用ESP32-C6 + DHT11 + LCD1602制作实时温湿度显示器,适合初学者,成本低廉。
开源口碑分享内容

📝 项目简介

       使用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编程基础

👍 觉得有用请点赞收藏!有问题欢迎评论交流!

全部评论
暂无评论
0/144