
做硬件这几年我翻过最大的车不在焊接和代码上而在选型上。具体点说就是打开购物网站看到 ESP32、WROOM、WROVER、S2、C3、S3 这些词混在一起当时想着不都是 ESP32 嘛随便挑个便宜的就行结果要么代码写完了才发现没有蓝牙要么摄像头跑起来一卡一卡才意识到没 PSRAM要么 GPIO 不够用只能重新画板子。每块板子的差价可能就十几块钱但返工的时间成本能把人耗到怀疑人生。这篇文章不聊空泛的参数只讲我实际对比、实际踩坑之后的选型逻辑把 WROOM、WROVER、S2、C3、S3 这几条线彻底捋清楚。无论是刚入坑的小白还是准备做产品原型、毕业设计、DIY 项目的同学都能照着抄作业。1. 型号不同别指望代码一套全兼容1.1 一次选板翻车让我把选型当回事先讲个真实经历。前年我给一个环境监测项目做节点当时觉得 ESP32-C3 便宜、功耗低直接买了三块。结果做到手机配网那一步傻眼了客户要求手机通过 BLE 和板子通信我用 C3 本来没问题但代码是从一个 ESP32-WROOM-32 项目移植过来的里面用到了蓝牙经典模式BR/EDR做音频传输C3 根本不支持。最后只能改方案重写通信逻辑前后多花了三天。类似的事还发生过一次朋友让我帮忙调一个 USB 键盘模拟的项目他买的是老款 WROOM 开发板板子上那个 USB 口只是给 CH340 串口芯片用的芯片本身根本没有 USB 设备控制器调了半天才发现方向错了正确做法是换 ESP32-S2 或 S3。所以选型这件事真不是哪个便宜买哪个能解决的。ESP32 这名字听起来是一个系列实际上不同后缀的芯片内核、蓝牙、USB、外设、PSRAM 支持完全不是一回事代码也不一定直接通用。1.2 芯片、模组、开发板三套命名别搅在一起标题里的 WROOM、WROVER、S2、C3、S3 其实是不同维度混在一起的词先帮大家把这个概念理清后面才不会被商家页面绕晕。ESP32 系列芯片按型号分常见的有四类经典 ESP32芯片型号通常是 ESP32-D0WD 这类官方叫法就是 ESP32。ESP32-S2单核 Xtensa LX7主打 USB 和低成本 WiFi。ESP32-C3单核 RISC-V主打低功耗、低成本、BLE 5.0。ESP32-S3双核 Xtensa LX7带 AI 向量指令外设最多。WROOM 和 WROVER 则是模组名乐鑫把芯片加上 Flash、PSRAM、晶振等封成一个小模块方便直接贴片。WROOM 通常不带 PSRAMWROVER 带 PSRAM。比如ESP32-WROOM-32和ESP32-WROVER就是经典芯片的两种模组区别主要在有没有外部 PSRAM。同理S3 也有 ESP32-S3-WROOM-1 和 ESP32-S3-WROVER 这样的模组。开发板就更乱了像 ESP32 DevKitC、NodeMCU-32S、LOLIN C3 Mini、合宙 ESP32-S3-Zero、立创实战派 S3这些只是不同厂家用不同模组做出来的学习板/核心板上面引出的引脚、板载器件都不一样。搞懂这三层关系后再去看购物标题里的ESP32-WROOM-32 开发板、ESP32-S3-WROVER 模组心里就有数了。2. 五款硬件逐个拆解参数背后的真实性格2.1 ESP32-D0WDWROOM-32/WROVER双核老将的底气和软肋经典 ESP32 是 2016 年就发布的芯片双核 Xtensa LX6主频最高 240MHz支持 WiFi 802.11 b/g/n 和蓝牙 4.2BR/EDR BLE也是目前网上教程、开源项目数量最多的一代。这不是情怀而是生态红利。Arduino 的 ESP32 核心最早就是围绕它适配的ESPAsyncWebServer、TFT_eSPI、LVGL 这些常用库在经典 ESP32 上基本是开箱即用。即使到了 2025 年大量开源项目仍然默认跑在经典 ESP32 上遇到问题一搜就有答案这是它最大的底气。软肋也很明显功耗偏高Deep Sleep 大概在 10μA 级别ADC 精度一直被诟病蓝牙只到 4.2没有原生 USB。如果你只做通用 Wi-Fi 传感器节点、小屏幕显示、经典外设控制它依然是省心的选择但新项目完全可以往 S3 或 C3 方向看。WROOM-32 和 WROVER 两个模组除非你要跑摄像头、LVGL 带大屏、频繁操作大数组否则选 WROOM 就够。WROVER 的好处是带 8MB PSRAM内存余额充足代价是体积稍大、功耗稍高、价格贵一点。2.2 ESP32-S2USB 能力强但没有蓝牙这句话必须说三遍ESP32-S2 单核 Xtensa LX7240MHz支持 WiFi但注意没有蓝牙。很多人买的时候没仔细看以为所有 ESP32 都有蓝牙结果到手发现手机 BLE 配网、蓝牙遥控全都做不了。这也是搜索热词里蓝牙App控制ESP32相关的坑之一。S2 的亮点是内置原生 USB OTG 控制器可以模拟 USB 鼠标、键盘、U 盘或者作为 USB Host 读取外部设备。很多ESP32 直接连接 USB 相机、ESP32 libusb的玩法其实是 S2/S3 才有的能力经典 ESP32 根本做不到。如果你做的是有线键盘改造、USB 外设转 WiFi 这类项目S2 性价比很高。但它的 ADC 虽然标称 13 位实际上非线性问题依然存在DAC 只有两路 8 位性能场景上限明显不如 S3。我的建议是明确需要 USB 模拟且确定用不到蓝牙才选 S2如果只是想要 S2 便宜其他场景不如加一点钱上 S3 或经典 ESP32。2.3 ESP32-C3靠 RISC-V 和超低功耗打天下的轻量款ESP32-C3 是 RISC-V 单核160MHz支持 WiFi 和 BLE 5.0GPIO 只有 22 个左右但该有的 I2C、SPI、UART、I2S、ADC 都有没有 DAC。最亮眼的点是 Deep Sleep 功耗低配合低功耗协处理器做电池供电的小设备非常合适。它的定位就是轻量级物联网设备智能开关、温湿度传感器、蓝牙 Beacon、简易 Mesh 节点、锂电池供电的遥控器。优点是便宜、功耗低、体积小缺点是单核性能有限、GPIO 紧张不适合跑大屏、摄像头和复杂网络服务。C3 的坑集中在我以为它什么都有上。比如它支持 BLE但如果你想同时跑蓝牙和 WiFi单核 160MHz 处理起来明显比双核吃力再比如它的 I2S 通道少做音频播放可以做复杂音频处理会别扭。还有一个细节C3 的 USB 口实际上只是 USB-Serial-JTAG 调试口不是 USB OTG不能像 S2/S3 那样模拟键盘和 U 盘。顺带一提很多低功耗开发板用的是 ESP32-C3-MINI-1 模组板载 PCB 天线贴在 2cm 见方的板子上特别适合做小型化项目。2.4 ESP32-S3屏幕、摄像头、语音和网关都能扛的全能主力ESP32-S3 是当前综合能力最均衡的型号。双核 Xtensa LX7240MHzWiFi BLE 5.0支持原生 USB OTG带 AI 向量指令加速支持外部 PSRAM通常配 8MBGPIO 量也充足。我在项目里最常用的就是 S3原因是跑 LVGL 界面有 PSRAM 撑底跑本地语音唤醒有向量指令跑摄像头拼接图像帧不至于内存爆炸同时 USB 口还能直接当串口烧录不用外接 USB-TTL。像热词里经常出现的立创实战派 S3、ESP32-S3-Zero就是目前很火的 S3 开发板前者甚至直接把 RGB 屏幕、音频 Codec、锂电池管理全做在一张板子上非常适合做桌面助手、语音时钟这类项目。S3 也不是没缺点。它没有蓝牙经典模式BR/EDR只有 BLE所以想做蓝牙音箱这种需要 A2DP 的项目得用经典 ESP32 或外挂模块另外 S3 的功耗比 C3 高极端低功耗场景不太合适。从折腾上限来看S3 是我目前最推荐新手直接入手的型号——几乎所有经典 ESP32 能做的它都能做同时留下了屏幕、摄像头、USB、AI 这些扩展空间。唯一需要准备的就是售价高一点点。2.5 记住这张表一半选型难题就解决了把四颗芯片的核心参数压在一张表里方便打印出来对着看。维度ESP32经典ESP32-S2ESP32-C3ESP32-S3内核双核 LX6单核 LX7单核 RISC-V双核 LX7主频240MHz240MHz160MHz240MHzWiFib/g/nb/g/nb/g/nb/g/n蓝牙4.2 BR/EDRBLE无5.0 BLE5.0 BLEBLE Mesh支持不支持支持支持原生 USB无OTG仅串口/JTAGOTGADC12 位13 位12 位12 位DAC2×8 位2×8 位无无GPIO 数量约 34约 43约 22约 45外部 PSRAMWROVER 版 8MBWROVER 版 2MB通常无WROVER 版 8MB以太网 MAC有无无有典型场景通用 IoT、蓝牙音箱、老库支持项目USB 模拟、低成本 WiFi低功耗电池设备、BLE大屏、摄像头、语音、网关注意表格里的 GPIO 数量是芯片级总数实际开发板引出的可编程引脚会少一些后面第 3 章专门讲这个坑。3. 同叫 ESP32引脚、Flash、ADC、烧录的差异能坑哭你3.1 GPIO 数量只是纸面数据有些引脚只能进不能出很多人选型时只看GPIO 多不多但真实开发的时候真正可用的引脚往往比参数表少一大截。经典 ESP32 最典型的坑是 GPIO 34 到 GPIO 39 是输入专用引脚不能输出 PWM、不能接 LED、不能驱动继电器。我第一次画 PCB 时把按键灯接到 GPIO 36代码怎么写都不亮查了两天才发现是硬件限制只能飞线。S3 也有类似问题。它的很多 GPIO 在模组封装里被 Flash、PSRAM、晶振占用。比如 ESP32-S3-WROOM-1 模组N8R8 版本因为要接 8MB PSRAM占用了大量 GPIO实际能用的可能只有 20 几个。你得去看具体模组的数据手册里的 pin mux 表而不是盯着芯片总引脚数。更坑的是S3 的 GPIO46、GPIO47 等某些引脚还要避开 Strapping 引脚决定启动模式的引脚设计 PCB 时得确认上电瞬间的电平。所以设计硬件前第一件事就是打开开发板原理图或模组 pinout 图把已经被占用的引脚全部标红再算剩多少个能用。搜索热词里esp32 引脚定义图esp32 插脚图高频出现不是没原因的。3.2 Flash 和 PSRAMWiFi、OTA、LVGL 都会悄悄逼你加钱Flash 大小决定你的固件能写多大。一个单纯点灯的程序几百 KB 就够但只要你加了 WiFi 协议栈、TLS 证书、OTA 双分区4MB Flash 立刻显得紧张。Arduino 默认分区表里OTA 要留一块和 app 一样大的区域实际可用的 app 固件空间通常只有 1.2MB 左右。做 WebServer 时放几个页面文件、图片资源很快就满了。所以新项目我一般建议 8MB Flash 起步。PSRAM 则是另一回事它相当于外挂 RAM。经典 WROVER 和 S3 WROVER 模组带 PSRAM 后可以放心跑 LVGL 大屏比如 320*240 带透明阴影可以缓存摄像头画面帧可以加载较大的 AI 模型。你按 S3 N8R88MB Flash 8MB PSRAM买和普通 N8 版本差价其实不大但开发时那种内存宽裕的感觉完全不一样。经验口诀纯传感器节点 4MB 够用带 WebServer 和 OTA 至少 8MB只要屏幕超过 2 寸、带摄像头、跑语音识别直接选 WROVER 版 8MB PSRAM别省那十几块钱。3.3 ADC 不够准经典款的非线性不是玄学是物理搜索热词里esp32 单片机 adc 缺陷能上榜说明这坑真不少人踩。经典 ESP32 的 12 位 ADC 在量程中间段的非线性误差肉眼可见用公式voltage analogRead(pin) * 3.3 / 4095算出来的电压测 1.0V 内部基准时可能偏出几十毫伏。加上 ADC2 通道在 WiFi 开启时根本不能稳定使用它和 WiFi 硬件共用很多老工程师宁可直接外挂 ADS1115 也不折腾片内 ADC。S2 的 ADC 标称 13 位但低电压区非线性依旧存在S3 和 C3 的 ADC 也有各自的老实本分。我的处理方式分三个层次只是判断电池有没有电、按键是否按下片内 ADC 完全够用。测模拟电压要一定精度推荐用 ESP-IDF 的校准接口esp_adc_cal或 Arduino 的analogReadMilliVolts至少把衰减系数确定下来再用两点标定修正。要 0.1% 精度测电流、称重传感器、高精度温度直接上 I2C 外置 ADC比如 ADS111516 位4 通道价格不到十块钱。// 经典 ESP32 Arduino 里的推荐姿势别用裸算公式 int raw analogRead(35); float mv analogReadMilliVolts(35); // 内部做校准比 raw*3300/4095 靠谱就算这样量产算法、滤波、多次采样平均也不能少。3.4 烧录方式四种别在自己板子上重复按 BOOT的苦不同型号的烧录方式差异很大我见过不少新手因为板子上有 USB 口就以为插上线就能烧结果卡在下载模式出不来。经典 ESP32 和许多老开发板走的是 UART 烧录板载 CH340/CP2102 串口芯片把 USB 转换成串口接到芯片的 UART0。如果开发板没有自动下载电路就要手动按住 BOOT、点下载、再松开甚至要数着 1、2、3 按复位。NodeMCU-32S 烧录教程里反复出现这个步骤新手很容易卡住。S2 和 S3 的原生 USB 把体验改善了不少。S3 板子插上 USB 线电脑上会直接出现一个 USB 串口设备USB-Serial-JTAG很多型号不用按任何键就能通过 1200bps 触摸或双复位进入下载模式。S2 的 USB OTG 甚至可以在 ROM 层直接跟 PC 通信烧录不用外接串口。这里有个容易忽略的点某些 S3 开发板上有两个 USB 口一个接 CP2102USB-UART一个接原生 USB两个都能烧录但进入下载模式的机制不一样。用错口可能出现能识别但烧不进去的诡异现象。遇到这种情况先看开发板丝印优先用标注原生 USB 的那个口。3.5 蓝牙和 WiFi 能一起用但要接受它的代价ESP32 蓝牙和 WiFi 可以一起用吗这个问题几乎每周都有人问。答案是能但不是无条件的。经典 ESP32 的蓝牙和 WiFi 共用 2.4GHz 射频和天线芯片内部靠时间片切换和优先级调度来共存。实测结果BLE 连接稳定、广播间隔正常时WiFi 吞吐会有所下降如果你 BLE 连接参数很激进比如 7.5ms 连接间隔WiFi ping 延迟会明显变大TCP 下载速度打折。反过来WiFi 一直高负载传输时BLE 的延迟也会波动。S3 和 C3 的双模方案比经典 ESP32 更成熟一点但物理资源限制还在。好在大多数 IoT 场景没有那么极端。比如做一个 BLE 配网 WiFi 上报的设备BLE 只在配网那几十秒工作连上 WiFi 后就关掉 BLE完全没冲突。再比如 BLE Mesh 网关网关既要维持 Mesh 网络通信又要通过 WiFi 把数据转发到服务器这时就需要仔细调蓝牙连接参数必要时给 WiFi 让出更多时间片。如果项目要求蓝牙音频通话 高速 WiFi 推流同时满负荷跑先别指望 ESP32 系列能完美搞定要评估一下是换更专业的双射频方案还是分两个设备分工。4. 从实际设备往回推你的项目到底该选哪一款4.1 电池供电的温湿度/环境监测、智能开关优先 C3如果你要做的是电池供电的温湿度传感器节点比如 DHT22、SHT30、HTU21D每隔几分钟醒一次、上报数据、继续睡觉C3 是最合适的。C3 的 Deep Sleep 功耗低还有低功耗协处理器可以在休眠状态下监听 GPIO 事件比如门磁、按键唤醒不用全芯片醒来。我做过一个环境监测节点C3 最小系统 SHT30 18650 电池 一点升压电路休眠电流能做到 20μA 左右包括板载 LDO 和传感器的漏电一分钟一次上报续航可以按月算。同样方案换经典 ESP32光是 Deep Sleep 就多出 10μA 左右看到实际续航差距你就明白了。C3 做智能开关、窗帘电机控制、人体红外感应这类小家电也合适。剩下的 GPIO 接继电器、MOS 管、按键都够。如果还嫌引脚不够可以再加 I2C 的 PCF8574 扩展 IO成本也不高。4.2 USB-HID、U 盘、USB 摄像头场景S2 和 S3 的 USB 表情包需要模拟 USB 键盘、鼠标、游戏手柄、U 盘或者用 USB Host 去读 U 盘、接 USB 摄像头经典 ESP32 直接出局C3 也不行必须从 S2 和 S3 里选。S2 的优势是便宜、单核、USB OTG 完整做HID 注入器、USB 鼠标转蓝牙这类只干一件事的项目很划算。S3 的优势是额外带了双核和更多外设比如你想在模拟 USB HID 的同时跑一个 Web 配页面S3 处理起来更轻松。热词里ESP32 直接连接 USB 相机其实是个高阶玩法通常要在 S3 上跑 USB Host 固件再驱动 UVC 设备代码量不小。如果你只是想接摄像头最简单的还是用 DVP 接口的 OV2640/OV5640 接 S3 并启用 PSRAM别一上来就碰 USB 摄像头。4.3 屏幕显示、语音模块、本地 AIS3PSRAM 是标配做带屏幕的项目比如桌面时钟、温控面板、小电视、智能音箱屏幕最舒服的方案是 S3 PSRAM LVGL。LVGL 在 PSRAM 加持下能开帧缓冲动画不掉帧图片资源解码也从容。有人用经典 WROVER 跑小屏也不差但 S3 的双核在渲染的同时还能跑传感器轮询、MQTT体验明显更好。语音场景也一样。热词里的dy sv17f 语音模块与 ESP32-S3-Zero我之前也试过。SV17F 这类串口语音合成模块只要 UART 配对即可VCC、GND、TX、RX 接好波特率对上模块就能播报。大多数 ESP32 都能跑但如果你要本地语音唤醒、命令词识别经典 ESP32 和 S3 的差异就出来了。S3 的向量指令能高效跑 WakeNet、ESP-DL 这类轻量模型而经典 ESP32 也可以跑但性能和效果弱一些。另外音频 Codec 芯片 ES8311 这类 I2S 芯片在经典 ESP32 和 S3 上都有成熟驱动C3 虽然也有 I2S但通道和外设受限做复杂音频会别扭。所以桌面语音项目我还是那句话S3 是标配。4.4 以太网网关和 LAN8720 扩展经典 ESP32 或 S3 才能上车热词里有一条很具体esp32 连接 lan8720 以太网模块常遇到的 3 个问题及解决方法。这确实是个热门玩法。ESP32 芯片内部有以太网 MAC但需要外接一个 PHY 芯片最常见的就是 LAN8720。选型上先记住一条只有经典 ESP32 和 S3 内置以太网 MACS2、C3 没有哪怕买再多的转接板也接不了。LAN8720 用的是 RMII 接口需要把 PHY 的引脚接到 ESP32 的指定 GPIO。经典 ESP32 的常用接法大概是这样LAN8720 引脚ESP32-WROOM-32 GPIOTX_ENGPIO 21TXD0GPIO 19TXD1GPIO 22RXD0GPIO 25RXD1GPIO 26CRS_DVGPIO 27MDCGPIO 23MDIOGPIO 18REF_CLKGPIO 050MHz 时钟实际接线时要特别注意时钟源。LAN8720 需要 50MHz REF_CLK如果模块上没有有源晶振你要么让 ESP32 从 GPIO 0 输出 50MHz要么在模块上外接 50MHz 有源晶振否则网口协商半天也不通。我遇到的 3 个高频问题基本可以提前预防链路灯不亮先量 LAN8720 的 3.3V 供电很多模组对电源纹波敏感最好加一颗 10μF 电容。指示灯亮但 ping 不通多半是 IP 配置、网线/交换机问题先看路由器后台有没有设备。能通但丢包严重优先怀疑时钟源不对或走线太长把 REF_CLK 相关的飞线做到 3cm 以内。S3 接 LAN8720 的引脚可以灵活配置但仍要看官方示例的 pin mux 选用可用 GPIO尤其避开 Flash/PSRAM 占用的引脚。4.5 BLE Mesh/WiFi Mesh 与 App 控制用经典款还是 C3/S3账要这么算做 BLE Mesh 网关和 WiFi Mesh 中继选型逻辑不同。BLE Mesh 方面C3 和 S3 的 BLE 5.0 在广播扩展、长报文、稳定性和功耗上都比经典 ESP32 的 4.2 有优势。如果你要从头搭 Mesh 网络不必纠结直接 C3 或 S3。需要网关同时跑 WiFi 回传时S3 的双核优势明显。WiFi MeshESP-MESH则所有 WiFi 芯片都支持经典 ESP32 因为生态成熟、资料多仍然十分合适。但要注意ESP-MESH 的根节点压力很大不推荐用低配的单核 C3 做根至少是经典 ESP32 或 S3。蓝牙 App 控制 ESP32这类项目只要用 BLE 的C3、S3、经典 ESP32 都行。如果 App 里既有 BLE 控制又要升级固件OTA建议优先选择原生 USB 的 S3开发调试阶段会舒服很多。5. 参数表没告诉你的事选购和开发中的几条真实吐槽5.1 开发板引脚多不等于都能用原理图才是老大上次帮人看一个用 ESP32-S3 做的舵机控制板他买的是合宙 S3-Zero外设接了 6 路舵机、一个 OLED、一个编码器板子表面看 GPIO 都够但跑起来 OLED 花屏、舵机乱抖。后来查原理图发现他把 OLED 的 SCL 接到了同时被板载 RGB 灯占用的引脚初始化时 RGB 灯的驱动干扰了 I2C 时序。这不是个别现象。很多开发板板载 LED、按键、Flash 已经占用了几个 GPIO丝印上甚至标了但你未必注意。拿到任何一块新板子第一步永远是找原理图把已经占用的引脚标出来再决定外设怎么分配。5.2 支持 Arduino不等于生态全兼容库的分化很严重很多新手以为装个 ESP32 Arduino 核心所有源码通吃实际上库的分化严重到你不敢信。早期大量库为经典 ESP32 而生比如某些 I2S 驱动库针对 A2DP 蓝牙音频写的在 S3 上编译直接报错S3 没有 BR/EDR要用替代库或改配置。ESPAsyncWebServer 这类异步库虽然全系列能编译但在 S3 上偶尔会有奇奇怪怪的时序问题。BLE 库差别也很大NimBLE 库和默认 BlueDroid 在不同芯片上的内存占用、线程模型都不一样。现在的惯例是要做一个成熟方案先查目标型号有没有对应示例比如 GitHub 搜esp32-s3 你的模块名或esp32-c3 你的外设名如果有现成的维护库再动手。改库的代价通常比换板子高。5.3 开发环境选型Arduino IDE、ESP-IDF、PlatformIO 的适用边界选板子的同时也要选开发环境因为不同芯片在这个维度上的体验确实不同。Arduino IDE 最容易上手装了 arduino-esp32 核心就能写适合点灯、传感器、WiFi 小项目。但版本碎片化是个坑core 2.x 和 3.x 的 API 差异很大有些老示例用 3.x 编译不过去看到报错先确认是不是 core 版本的问题。ESP-IDF 是乐鑫官方框架功能全、性能可控、能精细设置 ADC 校准、蓝牙参数、低功耗模式但学习曲线陡需要 CMake、idf.py 命令、分区表这些概念。PlatformIO 算是折中方案对工程化友好多板型管理方便只是首次下载工具链会比较久。热词里esp32 vscode 开发环境安装教程很高频。我的建议是如果你不止玩一两个板子直接上 VS Code PlatformIO如果你准备深入传感器、Bluetooth、低功耗这些底层尽早接触 ESP-IDFArduino 封装的太多细节一旦出问题很难排查。5.4 网上一堆高频问题我顺手点评几个ESP32 对比 STM32大概是所有嵌入式新人都会问的。两者不是简单替代关系STM32 没有 WiFi/BLE所以你要做联网 IoTESP32 是更短的路如果你做的是实时性要求极高的电机控制、仪器仪表STM32 生态和确定性更强。近几年 S3 的性能上来后很多原先用 STM32F4 的项目也能用 S3 平替前提是你需要无线能力。ESP32 做无人机开源飞控偶尔有人问。ESP32 更适合做数传、遥控接收机、地面站这些链路角色或者做简单的自组网真正跑姿态解算和电机控制的飞控主控还是以 STM32F405/F765 这些专用 MCU 居多。不是 ESP32 不能飞而是实时性和外设接口深度存在差距折腾成本高。还有一类问题涉及无线电发射功率、调频广播之类这类玩法受频率管理法规严格约束公开项目里很少看到规范分享我也不建议碰合规的 WiFi/BLE 项目才是 ESP32 的主场。关于ESP32 做 MPPT 固件这类多是用 ESP32 做太阳能控制器的数据监控屏、网络上报端核心的 MPPT 控制还是交给专用芯片或 MCU选 C3 或 S3 做采集显示足够了。说了这么多最后分享下我自己留的三块板子一个 C3 接电池盒子专门做温湿度上报和门磁检测一个 S3 带 2.8 寸屏幕和 ES8311 音频 Codec做桌面语音助手和网关经典 WROOM-32 则留着做 LAN8720 以太网实验和兼容老项目。这个组合基本覆盖了我日常 90% 的折腾需求。你在海选板子的时候记得先问自己三个问题用不用蓝牙、用不用 USB、跑不跑屏和摄像头答案出来型号基本就锁定了。