2、硬件平台选型:ESP8266/ESP32芯片对比、外围电路设计(电源、继电器、LED驱动)、开发板选择

好,咱们正式开始动手前的第一件大事——选硬件。

很多新手朋友一上来就问我:“老师,ESP8266和ESP32到底选哪个?” 说实话,这个问题我当年也纠结过。后来项目做多了,心里就有杆秤了。今天我就把这两颗芯片的底裤扒干净,再聊聊外围电路怎么搭,开发板怎么挑。

2.1 ESP8266 vs ESP32:核心芯片对比

先看一张对比表,心里有个底:

对比项 ESP8266 (如ESP-12F) ESP32 (如ESP32-WROOM-32)
核心架构 单核 Xtensa LX106,160MHz 双核 Xtensa LX6,240MHz
SRAM 约 50KB 可用(实际很紧张) 520KB(富裕很多)
Flash 通常 4MB(外挂) 通常 4MB~16MB(外挂)
WiFi 802.11 b/g/n,仅Station/AP模式 802.11 b/g/n,支持双模+蓝牙
GPIO数量 约 11个可用(很多有复用限制) 约 20+个可用(功能丰富)
ADC 1个 10位 ADC(精度一般) 2个 12位 ADC(精度更好)
价格(模组) 约 8-15 元 约 20-35 元
典型场景 纯WiFi开关、传感器上报 语音、屏幕、复杂逻辑、蓝牙配网
我的建议: 如果你只是做一个简单的WiFi智能灯,控制一路继电器,不需要蓝牙配网,那ESP8266完全够用,成本也低。但如果你想要后续扩展——比如加个触摸调光、OLED显示、甚至语音控制——直接上ESP32,省得后面换平台重写代码。

我个人习惯是:原型验证用ESP32,量产看成本用ESP8266。你想想看,ESP8266的RAM只有50KB可用,跑个MQTT库、JSON解析、OTA升级,内存就快见底了。我曾经在一个项目里,就因为ESP8266的堆栈溢出,排查了整整两天,最后发现是WiFi库和JSON库打架。换成ESP32后,世界清净了。

2.2 外围电路设计:电源、继电器、LED驱动

芯片选好了,接下来就是外围电路。这部分是硬件的灵魂,也是很多人的翻车点。

2.2.1 电源电路:稳定是第一要义

智能照明产品通常使用220V交流供电,需要降压到3.3V给芯片用。常见的方案有两种:

  • 阻容降压 + 稳压管:成本极低(几毛钱),但输出电流小(一般50mA以内),且不隔离,有触电风险。只适合小功率、非隔离场景。
  • AC-DC模块(如HLK-PM01):输出3.3V/600mA,隔离型,安全可靠。我建议量产项目用这个,多花几块钱买个安心。
⚠️ 避坑指南: 我曾经在客户现场遇到过,阻容降压方案在电网波动时,输出电压飙到5V,直接把ESP8266烧了。从那以后,凡是220V供电的项目,我坚决用隔离电源模块。别省那几块钱,烧一个模组就亏回去了。

另外,ESP8266/ESP32在WiFi发射时,瞬间电流可达300-500mA。所以电源电路一定要加大容量电解电容(100μF以上)0.1μF高频去耦电容,否则WiFi一开,电压就掉,然后死机重启。嗯,这里要注意,电容要尽量靠近芯片的电源引脚。

2.2.2 继电器驱动电路:控制强电的关键

智能灯的核心就是控制220V灯泡的通断,这活儿得继电器干。但ESP32的GPIO输出电流只有12mA左右,直接推不动继电器线圈。

标准电路是这样的:

GPIO --> 1kΩ电阻 --> NPN三极管(如S8050)基极
三极管集电极 --> 继电器线圈 --> VCC(5V或3.3V)
三极管发射极 --> GND
线圈两端并联一个1N4007二极管(续流保护)

为什么加二极管?因为继电器线圈断电时会产生反向高压,不接的话,三极管或GPIO口瞬间就击穿了。我刚开始做硬件时,就忘了加这个二极管,结果烧了三个GPIO口才反应过来。

💡 小技巧: 如果控制多个继电器,可以用ULN2003达林顿驱动芯片,一个芯片能驱动7路,内部自带续流二极管,省事又可靠。

2.2.3 LED驱动电路:状态指示与调光

智能灯上通常有两个LED:一个是电源/状态指示灯,一个是PWM调光输出(控制灯泡亮度)。

状态指示灯: 很简单,GPIO串联一个1kΩ电阻,再连LED到GND。注意,ESP32的GPIO默认高电平,所以LED是低电平点亮。我习惯用低电平有效的设计,这样芯片复位时LED是灭的,不会误导用户。

PWM调光输出: 如果控制的是LED灯泡(恒流驱动),直接用ESP32的PWM输出(频率建议1kHz以上)接到驱动芯片的调光脚。如果是控制白炽灯或传统变压器,需要加过零检测电路和可控硅调光,这个后面章节会详细讲。

这里有个坑:ESP8266的PWM是软件模拟的,精度和稳定性不如ESP32的硬件PWM。如果你要做细腻的调光(比如0-100%无频闪),我建议用ESP32。

2.3 开发板选择:从入门到量产

开发板的选择,说白了就是看你处于哪个阶段。

  • 学习/原型验证阶段: 直接买NodeMCU(ESP8266)或ESP32-DevKitC。价格便宜(20-40元),带USB转串口,插上电脑就能用。我建议新手先买这个,把云平台对接跑通了再说。
  • 项目打样阶段: 用ESP-12F(ESP8266)或ESP32-WROOM-32模组,自己画PCB。模组已经把晶振、Flash、天线都集成好了,你只需要设计外围电路。注意,模组的引脚间距是2mm,画PCB时别搞错了。
  • 量产阶段: 直接买合宙、安信可等厂商的免开发模组,或者用涂鸦、阿里云的标准模组。这些模组已经通过了FCC/CE认证,固件也预置了云对接协议,你只需要写业务逻辑就行。
我的推荐: 如果你做的是课程项目或小批量产品,直接买ESP32-DevKitC + 继电器扩展板,几十块钱搞定。等你要做1000台以上,再考虑自己画板子、用模组。别一上来就自己画PCB,打样一次几百块,改版又几百块,心疼啊。

好了,硬件平台选型就聊到这儿。下一章我们开始搭建开发环境,写第一行代码——点亮那个LED。你想想看,当你的代码让灯泡亮起来的那一刻,是不是很有成就感?