跳转到内容

开发框架与软件生态 ​

ESP32 的软件生态是它最大的优势之一:同一块板子,可以用 C 写底层驱动,用 Python 在串口里交互调试,也可以只写几十行 YAML 就接入 Home Assistant。这一栏按「你想怎么写代码」来组织,帮你在动手之前选对路线。

概览 ​

第一次接触 Arduino,可以先阅读 Arduino 入门,了解开发板、IDE、草图和库的区别,再进入 Arduino-ESP32 的安装与使用。

下面的版本信息以 2026-10-14 前后查到的官方仓库发布页为准,变化很快,动手前请再看一眼官方页面。

框架语言学习曲线芯片覆盖适合场景
ESP-IDFC / C++较陡乐鑫全系列,新芯片首发支持产品级固件、需要最新特性、低功耗与协议栈深度控制
Arduino-ESP32C++(Arduino 风格)平缓主流芯片,新芯片稍晚创客项目、库生态丰富、快速出原型
PlatformIOC / C++中等取决于所选平台想用 VS Code 做工程化管理、多板多环境
MicroPythonPython平缓主流芯片,持续增加教学、交互式调试、脚本化逻辑
CircuitPythonPython最平缓主流芯片,部分为 alpha教育、Adafruit 生态、拖放式 USB 盘符
ESPHomeYAML(可内嵌 C++)平缓主流 ESP32 与部分其他平台接入 Home Assistant 的传感器、开关、灯
Tasmota无需编程,配置为主最平缓多款 ESP32 与 ESP8266现成智能插座、灯具刷机,本地控制
RustRust陡乐鑫主要芯片追求内存安全、愿意跟进快速演进的 API
其他框架多种视情况视情况Zephyr、NuttX、TinyGo、Toit 等特殊需求

除了语言层面的选择,还有几个横切主题:

如何选择 ​

先回答三个问题。

  1. 你想要的是「用现成的」还是「自己写逻辑」?只想让传感器出现在 Home Assistant 里,选 ESPHome;只想给买来的智能插座换固件,选 Tasmota。
  2. 你已经会哪种语言?会 C++ 或 Arduino 就从 Arduino-ESP32 起步;会 Python 就用 MicroPython 或 CircuitPython;Java / 后端背景想快速验证,也可以先用 ESPHome 或 MicroPython 熟悉硬件。
  3. 项目要不要量产或长期维护?要的话,尽早切到 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 开发板、想知道「该用什么写」的读者。它不是各框架的完整教程,而是选型地图;具体安装步骤请以各框架官方文档为准。

参考资料 ​

ESP32 非官方中文调查手册,与乐鑫科技(Espressif Systems)无隶属关系。