外观
开发框架与软件生态
ESP32 的软件生态是它最大的优势之一:同一块板子,可以用 C 写底层驱动,用 Python 在串口里交互调试,也可以只写几十行 YAML 就接入 Home Assistant。这一栏按「你想怎么写代码」来组织,帮你在动手之前选对路线。
概览
第一次接触 Arduino,可以先阅读 Arduino 入门,了解开发板、IDE、草图和库的区别,再进入 Arduino-ESP32 的安装与使用。
下面的版本信息以 2026-10-14 前后查到的官方仓库发布页为准,变化很快,动手前请再看一眼官方页面。
| 框架 | 语言 | 学习曲线 | 芯片覆盖 | 适合场景 |
|---|---|---|---|---|
| ESP-IDF | C / C++ | 较陡 | 乐鑫全系列,新芯片首发支持 | 产品级固件、需要最新特性、低功耗与协议栈深度控制 |
| Arduino-ESP32 | C++(Arduino 风格) | 平缓 | 主流芯片,新芯片稍晚 | 创客项目、库生态丰富、快速出原型 |
| PlatformIO | C / C++ | 中等 | 取决于所选平台 | 想用 VS Code 做工程化管理、多板多环境 |
| MicroPython | Python | 平缓 | 主流芯片,持续增加 | 教学、交互式调试、脚本化逻辑 |
| CircuitPython | Python | 最平缓 | 主流芯片,部分为 alpha | 教育、Adafruit 生态、拖放式 USB 盘符 |
| ESPHome | YAML(可内嵌 C++) | 平缓 | 主流 ESP32 与部分其他平台 | 接入 Home Assistant 的传感器、开关、灯 |
| Tasmota | 无需编程,配置为主 | 最平缓 | 多款 ESP32 与 ESP8266 | 现成智能插座、灯具刷机,本地控制 |
| Rust | Rust | 陡 | 乐鑫主要芯片 | 追求内存安全、愿意跟进快速演进的 API |
| 其他框架 | 多种 | 视情况 | 视情况 | Zephyr、NuttX、TinyGo、Toit 等特殊需求 |
除了语言层面的选择,还有几个横切主题:
- 乐鑫官方解决方案:Matter、RainMaker、语音唤醒、边缘 AI 等官方参考方案。
- 无线协议:ESP-NOW、Mesh、BLE、Thread、Zigbee 和 Matter 分别需要哪颗芯片。
- 烧录工具:esptool、网页烧录器和 eFuse 的风险。
- Wokwi 在线仿真:没有硬件也能先写代码。
如何选择
先回答三个问题。
- 你想要的是「用现成的」还是「自己写逻辑」?只想让传感器出现在 Home Assistant 里,选 ESPHome;只想给买来的智能插座换固件,选 Tasmota。
- 你已经会哪种语言?会 C++ 或 Arduino 就从 Arduino-ESP32 起步;会 Python 就用 MicroPython 或 CircuitPython;Java / 后端背景想快速验证,也可以先用 ESPHome 或 MicroPython 熟悉硬件。
- 项目要不要量产或长期维护?要的话,尽早切到 ESP-IDF,或至少了解 Arduino 如何作为 ESP-IDF 组件使用。
几条经验法则:
- 第一次上手:Arduino-ESP32 或 ESPHome,门槛最低,社区资料最多。详见 第一次上手。
- 需要 Wi-Fi 6、Thread、Zigbee、PSRAM 大内存等新特性:以 ESP-IDF 的支持为准,其他框架通常要等一段时间。
- 对实时性、功耗有要求:ESP-IDF,或在 Arduino 里直接调用 IDF API。
- 脚本语言适合逻辑简单、迭代快的场景;对时序严格、内存紧张的任务(例如 LED 灯带高速驱动)仍建议用编译型语言。
不必二选一
这些框架并不互斥。Arduino-ESP32 本身就构建在 ESP-IDF 之上,ESPHome 可以选择 Arduino 或 ESP-IDF 作为底层框架,PlatformIO 只是构建与工程管理工具。理解这层关系,排查问题时会少走很多弯路。
适合谁 / 不适合谁
这个栏目适合已经拿到或准备购买 ESP32 开发板、想知道「该用什么写」的读者。它不是各框架的完整教程,而是选型地图;具体安装步骤请以各框架官方文档为准。
参考资料
- ESP-IDF 编程指南:https://docs.espressif.com/projects/esp-idf/en/stable/
- Arduino-ESP32 文档:https://docs.espressif.com/projects/arduino-esp32/en/latest/
- MicroPython ESP32 快速参考:https://docs.micropython.org/en/latest/esp32/quickref.html
- ESPHome:https://esphome.io/
- Rust on ESP Book:https://docs.espressif.com/projects/rust/book/