2. MicroPython 环境搭建:固件烧录、Thonny IDE 配置、串口通信测试

好,咱们正式开始动手。上一章聊了 WiFi 配网的整体思路,但要让 ESP32 跑起来,得先把它的“脑子”——固件给装上。说白了,就是给芯片灌入 MicroPython 解释器。这一步搞不定,后面全是纸上谈兵。

我个人习惯把环境搭建分成三步:烧录固件 → 配置 IDE → 验证通信。别嫌啰嗦,每一步我都踩过坑,咱们一个个来。

2.1 准备工作:你需要什么?

先列个清单,省得到时候手忙脚乱。

硬件/软件 说明 备注
ESP32 开发板 推荐 ESP32-DevKitC 或 NodeMCU-32S 确保板载 USB-UART 芯片正常
Micro-USB 数据线 必须支持数据传输,不能是充电线 我曾经用错线,折腾了半小时
Python 3.x 用于运行烧录工具 建议 3.8 以上
esptool.py 乐鑫官方烧录工具 pip install esptool
MicroPython 固件 从 micropython.org 下载 选 ESP32 通用版
Thonny IDE 轻量级 Python IDE,支持 MicroPython 免费,跨平台
小提示: 买开发板时,尽量选带 CP2102 或 CH340G 串口芯片的。我遇到过 FTDI 仿冒芯片导致烧录失败的情况,那叫一个头疼。

2.2 烧录 MicroPython 固件

这一步是核心。你想想看,ESP32 出厂时默认跑的是 AT 指令固件,我们要把它换成 MicroPython。怎么换?用 esptool 擦除原固件,再写入新固件。

2.2.1 安装 esptool

打开终端(Windows 用 cmd 或 PowerShell,macOS/Linux 用 bash),执行:

pip install esptool

装完后验证一下:

esptool.py version

能看到版本号就对了。嗯,这里要注意:如果你电脑上同时装了 Python 2 和 3,记得用 pip3 和 python3。

2.2.2 下载固件

去 MicroPython 官方下载页,找到 ESP32_GENERIC 这个版本。下载 .bin 文件,比如 ESP32_GENERIC-20231005-v1.21.0.bin。我习惯把它放在一个单独的文件夹里,方便管理。

2.2.3 连接开发板并确认端口

把 ESP32 插上电脑。然后确认串口号:

  • Windows: 打开设备管理器 → 端口(COM 和 LPT),看到类似 USB Serial Port (COM3) 的就是。
  • macOS: 终端执行 ls /dev/tty.*,看到 /dev/tty.usbserial-xxxx 或 /dev/tty.SLAB_USBtoUART。
  • Linux: 执行 ls /dev/ttyUSB* 或 ls /dev/ttyACM*。
注意: 如果设备管理器里看不到端口,大概率是驱动没装。CH340 芯片需要装 CH340 驱动,CP2102 需要 CP210x 驱动。别问我怎么知道的——我第一次用 ESP32 时,就因为驱动问题卡了一下午。

2.2.4 擦除原固件

先擦除,再写入。这是标准流程,别偷懒。

esptool.py --chip esp32 --port COM3 erase_flash

把 COM3 换成你实际的端口。执行后,你会看到一堆输出,最后出现 Chip erase completed successfully 就对了。

2.2.5 写入新固件

esptool.py --chip esp32 --port COM3 --baud 460800 write_flash -z 0x1000 ESP32_GENERIC-20231005-v1.21.0.bin

参数说明:

  • --baud 460800:波特率,提高烧录速度。如果失败,可以降到 115200。
  • -z 0x1000:从地址 0x1000 开始写入,这是 ESP32 的启动地址。
  • 最后一个参数是固件文件路径。

烧录成功后,你会看到 Hash of data verified 和 Leaving...。这时候,MicroPython 已经在 ESP32 里了。

避坑指南: 我曾经在烧录时忘记按住 BOOT 键,结果 esptool 一直连不上。后来发现,有些 ESP32 板子需要手动进入下载模式——按住 BOOT,再按一下 EN,松开 BOOT。不过现在大部分新板子都支持自动复位,不用手动操作了。

2.3 配置 Thonny IDE

固件烧好了,怎么跟它交互?用串口终端当然可以,但太原始了。我推荐 Thonny,它专门为 MicroPython 设计,写代码、传文件、看输出,一气呵成。

2.3.1 安装 Thonny

去 thonny.org 下载对应系统的安装包。Windows 和 macOS 都有 exe/dmg,Linux 可以用 pip 或包管理器。

2.3.2 配置解释器

打开 Thonny,按以下步骤操作:

  1. 点击菜单栏 运行 → 选择解释器。
  2. 在弹出的窗口中,解释器选 MicroPython (ESP32)。
  3. 端口或设备选你刚才确认的串口号,比如 COM3 或 /dev/ttyUSB0。
  4. 点击 确定。

配置好后,Thonny 底部会多出一个 Shell 窗口。如果看到 >>> 提示符,说明连接成功了。

小技巧: 如果 Shell 窗口没反应,试试按一下 ESP32 上的 EN 键(复位键)。有时候刚烧录完,板子需要手动复位一下才能进入 MicroPython 的 REPL 模式。

2.4 串口通信测试

环境搭好了,得验证一下是不是真的能跑。咱们写个最简单的程序——点灯。别小看这个,它能证明:

  • 固件烧录正确
  • 串口通信正常
  • GPIO 控制可用

2.4.1 在 Thonny Shell 中交互测试

在 Shell 窗口里,直接输入:

import machine
import time

led = machine.Pin(2, machine.Pin.OUT)
led.value(1)
time.sleep(1)
led.value(0)

如果 ESP32 板载的 LED(通常接 GPIO2)亮了一秒后熄灭,恭喜你,环境搭建成功了!

2.4.2 编写并运行脚本文件

在 Thonny 的编辑区新建一个文件,输入:

# main.py - 串口通信测试
import machine
import time

print("Hello from ESP32 MicroPython!")
print("WiFi Auto-Reconnect Course - Chapter 2")

led = machine.Pin(2, machine.Pin.OUT)
for i in range(5):
    led.value(1)
    time.sleep(0.5)
    led.value(0)
    time.sleep(0.5)

print("Test completed.")

保存时,Thonny 会问你要保存到本地还是 MicroPython 设备。选 MicroPython 设备,文件名用 main.py。然后点击运行按钮(绿色三角),Shell 里就会打印信息,同时 LED 闪烁 5 次。

为什么用 main.py? MicroPython 启动时会自动执行 main.py。后面我们做自动重连时,会把核心逻辑写在这个文件里。现在先养成习惯。

2.5 本章知识体系

下面这张图,把整个环境搭建的流程串起来了。你可以把它当作一个检查清单。

MicroPython 环境搭建流程 MicroPython 环境搭建核心流程 1. 准备工作 2. 烧录固件 3. 配置 IDE 硬件清单 软件工具 确认串口驱动 & 端口号 安装 esptool 下载固件 擦除原固件 写入新固件 安装 Thonny 配置解释器 连接 Shell 验证 REPL ✅ 最终验证:串口通信测试 Shell 交互:点灯测试 脚本运行:main.py 闪烁 打印输出:Hello from ESP32 💡 核心原则:先擦除 → 再写入 → 最后验证 环境搭建是后续所有实验的基础,务必确保每一步都成功

2.6 常见问题与解决

我整理了几个新手最容易碰到的问题,你遇到了可以直接对照着查。

问题现象 可能原因 解决方法
esptool 提示 Failed to connect 串口错误 / 未进入下载模式 检查端口号;按住 BOOT 再按 EN 复位
烧录时卡在 Connecting... 波特率太高 / 线材问题 降低波特率到 115200;换数据线
Thonny Shell 无响应 未正确连接 / 固件未烧录成功 检查端口配置;按 EN 复位;重新烧录固件
LED 不亮 GPIO 引脚不对 / 板载 LED 损坏 确认板子原理图;尝试 GPIO 0、GPIO 5
打印乱码 串口波特率不匹配 Thonny 默认 115200,检查 Shell 设置
重要提醒: 如果你用的是 ESP32-C3、ESP32-S2 或 S3 等新系列芯片,固件不能混用。必须去 MicroPython 官网下载对应型号的固件。我有个朋友拿 ESP32 的固件刷到 C3 上,结果板子直接变砖,最后用 USB 下载模式才救回来。