第一章:项目概述与环境搭建
各位同学好,我是你们的老朋友。今天咱们正式开启《ESP32空气质量监测与净化器联动控制实战》这门课。说实话,我做了十几年嵌入式开发,从最早的8051一路玩到现在的ESP32,感触最深的就是——物联网这东西,门槛其实没那么高。
我记得2018年第一次用ESP32做项目时,还被它的WiFi+蓝牙双模能力惊艳到了。现在回头看,这芯片已经成了智能家居领域的“瑞士军刀”。好,废话不多说,咱们直接进入正题。
1.1 ESP32开发板介绍
ESP32是乐鑫公司推出的双核芯片。它最大的特点就是:便宜、功耗低、性能够用。我习惯把它比作“单片机里的SUV”——能跑、能联网、还能干点轻量级的AI活。
咱们课程用的是ESP32-DevKitC V4开发板。你想想看,一块板子集成了WiFi、蓝牙、两个CPU核、还有一堆外设接口,价格才几十块钱。这在十年前根本不敢想。
核心参数一览:
| 参数 | 值 |
|---|---|
| CPU | 双核 Xtensa LX6,主频240MHz |
| RAM | 520KB SRAM + 4MB PSRAM |
| Flash | 4MB(部分型号16MB) |
| WiFi | 802.11 b/g/n,2.4GHz |
| 蓝牙 | BLE 4.2 + Classic BT |
| GPIO | 34个可编程引脚 |
| ADC | 2个12位SAR ADC,共18通道 |
嗯,这里要注意:ESP32的ADC线性度其实一般。我在做空气质量传感器采集时踩过这个坑——直接读ADC值误差能到5%以上。后面我会教大家怎么校准。
1.2 Arduino IDE安装与配置
我个人习惯用Arduino IDE做快速原型验证。虽然VS Code + PlatformIO更专业,但咱们课程面向的是实战入门,Arduino IDE的简洁性更适合教学。
安装步骤很简单,我直接说重点:
- 去官网下载Arduino IDE 2.x版本(别用1.x了,界面太老)
- Windows用户选Windows Installer,Mac用户选macOS版
- 安装时一路默认就行,路径别带中文
小技巧:安装完成后,先别急着打开。去C:\Users\你的用户名\Documents\Arduino目录下,把里面的libraries文件夹备份一下。我当年重装系统时丢过一堆第三方库,血的教训。
1.3 ESP32板级支持包安装
这一步是重点。Arduino IDE默认不支持ESP32,需要手动添加板级支持包。说白了就是让IDE认识ESP32这颗芯片。
操作流程:
- 打开Arduino IDE,进入文件 → 首选项
- 在“附加开发板管理器网址”里填入:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - 点击确定后,进入工具 → 开发板 → 开发板管理器
- 搜索“ESP32”,找到由Espressif Systems官方发布的版本,点击安装
我曾经遇到过安装失败的情况,多半是网络问题。如果你也遇到,可以试试用手机热点,或者换个时间段再试。这个JSON文件大概10MB左右,下载速度看人品。
避坑指南:安装完成后,记得在“工具 → 开发板”里选择“ESP32 Dev Module”。我见过不少新手选了别的型号,结果编译报错半天找不到原因。
1.4 项目硬件清单
好,软件环境搭完了,咱们来看看这次实战要用到的硬件。我列了个清单,都是市面上容易买到的模块。
| 模块 | 型号/规格 | 数量 | 备注 |
|---|---|---|---|
| ESP32开发板 | ESP32-DevKitC V4 | 1 | 核心主控 |
| PM2.5传感器 | PMS5003 | 1 | 激光散射原理,精度高 |
| 温湿度传感器 | DHT22 | 1 | 比DHT11稳定得多 |
| TVOC传感器 | SGP30 | 1 | 检测甲醛等有害气体 |
| 继电器模块 | 5V单路继电器 | 1 | 控制净化器开关 |
| OLED显示屏 | 0.96寸 SSD1306 | 1 | I2C接口,显示数据 |
| 面包板+杜邦线 | 830孔面包板 | 1套 | 搭建原型用 |
你可能会问:为什么选PMS5003而不是更便宜的GP2Y1010?我在项目里对比过,PMS5003的读数稳定性好太多了。GP2Y1010受灰尘积累影响大,用三个月就得校准一次,太麻烦。
至于净化器联动部分,咱们用继电器控制一个220V的智能插座。净化器插在插座上,ESP32通过继电器通断来控制净化器启停。嗯,这里要强调一下:高压电操作一定要注意安全,实验阶段先用低压指示灯代替。
1.5 开发环境验证
环境搭好了,咱们写个简单的Blink程序验证一下。这算是嵌入式界的“Hello World”。
void setup() {
pinMode(2, OUTPUT); // ESP32板载LED在GPIO2
}
void loop() {
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
把代码上传到开发板后,如果板子上的蓝色LED开始一秒一闪,恭喜你,环境搭建成功了!
个人经验:上传时如果提示“A fatal error occurred: Failed to connect to ESP32”,多半是没按住BOOT键。正确的姿势是:按住BOOT键不放,点上传按钮,看到“Connecting...”字样时松开BOOT键。这招我教过上百个学员,屡试不爽。
好,第一章的内容就到这里。咱们把开发环境搭好了,硬件也认全了。下一章开始,我会带大家逐个调试传感器,把数据读出来。你想想看,当OLED屏幕上跳出实时的PM2.5数值时,那种成就感——嗯,我到现在还记得第一次调通PMS5003时的兴奋劲儿。
各位同学,咱们第二章见。