第一章:项目概述与环境搭建

各位同学好,我是你们的老朋友。今天咱们正式开启《ESP32空气质量监测与净化器联动控制实战》这门课。说实话,我做了十几年嵌入式开发,从最早的8051一路玩到现在的ESP32,感触最深的就是——物联网这东西,门槛其实没那么高。

我记得2018年第一次用ESP32做项目时,还被它的WiFi+蓝牙双模能力惊艳到了。现在回头看,这芯片已经成了智能家居领域的“瑞士军刀”。好,废话不多说,咱们直接进入正题。

1.1 ESP32开发板介绍

ESP32是乐鑫公司推出的双核芯片。它最大的特点就是:便宜、功耗低、性能够用。我习惯把它比作“单片机里的SUV”——能跑、能联网、还能干点轻量级的AI活。

咱们课程用的是ESP32-DevKitC V4开发板。你想想看,一块板子集成了WiFi、蓝牙、两个CPU核、还有一堆外设接口,价格才几十块钱。这在十年前根本不敢想。

核心参数一览:

参数
CPU双核 Xtensa LX6,主频240MHz
RAM520KB SRAM + 4MB PSRAM
Flash4MB(部分型号16MB)
WiFi802.11 b/g/n,2.4GHz
蓝牙BLE 4.2 + Classic BT
GPIO34个可编程引脚
ADC2个12位SAR ADC,共18通道

嗯,这里要注意:ESP32的ADC线性度其实一般。我在做空气质量传感器采集时踩过这个坑——直接读ADC值误差能到5%以上。后面我会教大家怎么校准。

1.2 Arduino IDE安装与配置

我个人习惯用Arduino IDE做快速原型验证。虽然VS Code + PlatformIO更专业,但咱们课程面向的是实战入门,Arduino IDE的简洁性更适合教学。

安装步骤很简单,我直接说重点:

  1. 去官网下载Arduino IDE 2.x版本(别用1.x了,界面太老)
  2. Windows用户选Windows Installer,Mac用户选macOS版
  3. 安装时一路默认就行,路径别带中文

小技巧:安装完成后,先别急着打开。去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 V41核心主控
PM2.5传感器PMS50031激光散射原理,精度高
温湿度传感器DHT221比DHT11稳定得多
TVOC传感器SGP301检测甲醛等有害气体
继电器模块5V单路继电器1控制净化器开关
OLED显示屏0.96寸 SSD13061I2C接口,显示数据
面包板+杜邦线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时的兴奋劲儿。

各位同学,咱们第二章见。