跳转到内容

MicroPython ​

MicroPython 是 Python 3 的精简实现,能直接在 ESP32 上运行,带交互式命令行(REPL)。改一行代码立刻看到结果,很适合教学、原型和脚本化逻辑。

概览 ​

MicroPython 采用 MIT 许可。ESP32 端口以 ESP-IDF 为底层,固件安装后设备上同时有解释器、文件系统和 machine、network、bluetooth 等模块。

从发布页(2026-10-14)可以看到,最新版本是 v1.29.0,ESP32 相关的变化轨迹如下:

版本ESP32 相关变化
v1.24.0加入 ESP32-C6 支持,基于 IDF v5.2.2
v1.26.0加入 ESP32-C2 支持,基于 IDF v5.4.2
v1.27.0加入 ESP32-C5、ESP32-P4,基于 IDF v5.5.1
v1.29.0基于 IDF v5.5.2,加入 ESP32-H2,ESP-NOW 升级到 v2.0,WLAN 增加 CSI 接口

发布页只显示日月,没有年份,年份依据时间顺序推断。要确认某块具体开发板是否有现成固件,请到 micropython.org/download 搜索板型。

关键信息 ​

安装固件 ​

在本地电脑终端执行,以 ESP32-S3 为例,固件先从 micropython.org/download 下载:

bash
pip install esptool
# 擦除并写入(端口、固件文件名按实际修改;S3 偏移是 0,原版 ESP32 是 0x1000)
esptool --chip esp32s3 --port /dev/ttyACM0 erase-flash
esptool --chip esp32s3 --port /dev/ttyACM0 write-flash -z 0x0 ESP32_GENERIC_S3-xxxx.bin

不同芯片的写入偏移地址不同,下载页每块板子都有对应说明,请逐字照做。esptool 的 v5 命令写法见 烧录工具。

使用 REPL 与 mpremote ​

bash
pip install mpremote
mpremote connect /dev/ttyACM0      # 进入 REPL
mpremote cp main.py :main.py       # 拷贝文件到设备
mpremote run blink.py              # 在设备上运行本地脚本,不保存

设备上电后会自动运行 boot.py 与 main.py。

示例:点灯与联网 ​

以下代码在设备的 REPL 或 main.py 中运行:

python
# 运行于 ESP32 上的 MicroPython
from machine import Pin
import time, network

led = Pin(2, Pin.OUT)      # 引脚号按开发板修改

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("你的SSID", "你的密码")
while not wlan.isconnected():
    time.sleep(0.3)
print(wlan.ifconfig())

while True:
    led.value(not led.value())
    time.sleep(0.5)

能力与局限 ​

  • 内置 BLE(bluetooth 模块)、ESP-NOW、I2C / SPI / I2S / PWM、ADC、定时器、深度睡眠等。
  • 支持 asyncio,适合同时处理多个 IO 任务。
  • 解释执行比 C 慢,GC 暂停也可能造成时序抖动;高速驱动可用 @micropython.native / viper 装饰器,或把热点写成 C 模块。
  • 固件体积和内存占用比 Arduino 大;没有 PSRAM 的原版 ESP32 做图形或大缓冲会吃紧。
  • 并非 ESP-IDF 的每个组件都有 Python 绑定,例如 Matter、Thread 等不要指望直接可用。

与 CircuitPython 的区别 ​

两者同源但走向不同:MicroPython 更偏底层、API 贴近硬件;CircuitPython 由 Adafruit 维护,强调统一 API 和 USB 盘符式易用性。库与教程不能直接通用。

适合谁 / 不适合谁 ​

适合学习硬件、做快速原型、写交互式调试工具的读者。不适合低功耗电池设备的极致优化、硬实时控制,以及需要直接使用 IDF 全部组件的产品,那类场景用 ESP-IDF。

参考资料 ​

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