一、项目概述与硬件准备
各位同学,欢迎来到《ESP32智能温湿度采集与环境调控系统》的第一课。
做嵌入式开发这么多年,我见过太多人一上来就写代码,结果硬件接错了,折腾半天找不出问题。所以咱们这节课,先把底子打好。说白了,硬件选型和接线,是整栋大楼的地基。
1.1 系统整体架构
先聊聊这个系统长什么样。你想想看,一个智能温湿度采集系统,核心就三件事:感知、决策、执行。
- 感知层:DHT11或DHT22传感器,负责采集温度和湿度数据。
- 控制层:ESP32开发板,接收数据、做判断、发指令。
- 执行层:继电器模块,控制加热器、风扇或加湿器。
- 显示层:OLED屏幕,实时显示当前温湿度。
我习惯把ESP32比作大脑,传感器是眼睛,继电器是手,OLED是嘴巴。它们各司其职,协同工作。
系统工作流程:传感器采集数据 → ESP32读取并处理 → 判断是否超阈值 → 控制继电器通断 → OLED显示结果。
1.2 认识核心硬件
1.2.1 ESP32 开发板
ESP32是乐鑫公司推出的双核芯片,自带Wi-Fi和蓝牙。我最早用ESP8266做项目,后来换成ESP32,性能提升不止一个档次。它主频高达240MHz,有520KB SRAM,跑FreeRTOS都绰绰有余。
选型时注意:市面上有ESP32-WROOM-32、ESP32-S3等版本。咱们课程用经典的ESP32-DevKitC V4,引脚兼容性好,资料最多。
| 参数 | ESP32 |
|---|---|
| 主频 | 240MHz |
| Flash | 4MB ~ 16MB |
| Wi-Fi | 802.11 b/g/n |
| 蓝牙 | BLE 4.2 |
| GPIO | 34个可编程引脚 |
个人经验:买ESP32开发板时,尽量选带USB转串口芯片(CP2102或CH340)的版本。我曾经贪便宜买过劣质板子,烧录时总掉线,排查了三天才发现是USB芯片虚焊。
1.2.2 DHT11 与 DHT22 温湿度传感器
这两个传感器长得像双胞胎,但性格完全不同。
- DHT11:精度低(±2°C,±5%RH),测量范围窄(0~50°C),但便宜、稳定。适合室内环境。
- DHT22:精度高(±0.5°C,±2%RH),范围宽(-40~80°C),价格贵一些。适合对数据要求高的场景。
我建议初学者先用DHT11练手,成本低,坏了不心疼。等做正式项目时再换DHT22。
注意:DHT系列传感器对时序要求很严格。我曾经在项目中用DHT11,因为线缆太长(超过20cm),导致数据读取失败。后来加了4.7kΩ上拉电阻才解决。嗯,这里要记住:传感器到ESP32的连线尽量短,最好控制在10cm以内。
1.2.3 继电器模块
继电器就是电子开关。ESP32的GPIO输出3.3V,驱动不了220V的加热器。继电器的作用就是用小电流控制大电流。
选型要点:
- 通道数:1路、2路、4路、8路。咱们课程用1路就够了。
- 触发电压:选5V或3.3V。ESP32输出3.3V,但很多继电器模块自带光耦隔离,3.3V也能触发。
- 触点容量:10A/250V AC足够驱动小型加热器或风扇。
避坑指南:我曾经在智能花盆项目里,直接用ESP32的3.3V引脚驱动继电器,结果继电器吸合时电流过大,把ESP32的GPIO烧了。后来加了NPN三极管(S8050)做驱动,再也没出过问题。所以,继电器模块最好选带光耦隔离的。
1.2.4 OLED 显示屏
OLED屏幕显示效果好,功耗低。咱们用0.96寸128×64像素的SSD1306,I2C接口,只需要两根线(SDA、SCL)。
我习惯用I2C版本,接线简单。SPI版本虽然刷新快,但占用的引脚多,不划算。
1.3 硬件选型与接线方法
1.3.1 选型清单
| 器件 | 推荐型号 | 数量 | 备注 |
|---|---|---|---|
| 主控 | ESP32-DevKitC V4 | 1 | CP2102版本 |
| 传感器 | DHT11 或 DHT22 | 1 | 初学者选DHT11 |
| 继电器 | 1路5V光耦隔离 | 1 | 带三极管驱动 |
| 显示屏 | 0.96寸 SSD1306 I2C | 1 | 128×64像素 |
| 电源 | 5V/2A USB电源 | 1 | 给ESP32供电 |
| 杜邦线 | 公对母、母对母 | 若干 | 20cm以内 |
1.3.2 接线图(文字版)
接线其实很简单,我按功能分组说明:
传感器接线(DHT11/DHT22)
DHT11 VCC → ESP32 3.3V
DHT11 GND → ESP32 GND
DHT11 DATA → ESP32 GPIO4(可自定义)
DHT11 与 DATA之间加4.7kΩ上拉电阻(可选,但推荐)
继电器接线
继电器 VCC → ESP32 5V(或外部5V电源)
继电器 GND → ESP32 GND
继电器 IN → ESP32 GPIO2(可自定义)
继电器 COM → 负载(如加热器)一端
继电器 NO → 负载另一端 → 220V电源
安全警告:继电器控制220V交流电时,务必断电操作。我见过有人带电接线,火花四溅,差点出事。切记:先断电,再接线,最后上电测试。
OLED显示屏接线
OLED VCC → ESP32 3.3V
OLED GND → ESP32 GND
OLED SCL → ESP32 GPIO22(I2C时钟)
OLED SDA → ESP32 GPIO21(I2C数据)
1.4 上电前的检查清单
硬件接好后,别急着上电。我习惯按这个顺序检查:
- 电源极性:VCC和GND有没有接反?接反会烧芯片。
- 引脚对应:DATA、IN、SCL、SDA有没有插错?
- 上拉电阻:DHT11的DATA引脚有没有加4.7kΩ上拉?
- 继电器供电:继电器是5V还是3.3V?别用错。
- 杜邦线牢固度:轻轻拉一下,看有没有松动。
我的习惯:每次接线后,我会用万用表测一下VCC和GND之间的电阻,确保没有短路。这一步虽然麻烦,但能避免99%的烧板事故。
1.5 小结
这节课我们走了一遍系统架构,认识了ESP32、DHT11/22、继电器和OLED。硬件选型不是越贵越好,合适才是王道。接线时多一份细心,调试时少一份烦恼。
下一节课,我们会搭建Arduino IDE开发环境,写第一行代码——让ESP32读取DHT11的数据。到时候你会发现,硬件接对了,代码写起来特别顺畅。
嗯,今天就到这里。有问题随时交流。