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 | 免费,跨平台 |
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*。
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 里了。
2.3 配置 Thonny IDE
固件烧好了,怎么跟它交互?用串口终端当然可以,但太原始了。我推荐 Thonny,它专门为 MicroPython 设计,写代码、传文件、看输出,一气呵成。
2.3.1 安装 Thonny
去 thonny.org 下载对应系统的安装包。Windows 和 macOS 都有 exe/dmg,Linux 可以用 pip 或包管理器。
2.3.2 配置解释器
打开 Thonny,按以下步骤操作:
- 点击菜单栏 运行 → 选择解释器。
- 在弹出的窗口中,解释器选 MicroPython (ESP32)。
- 端口或设备选你刚才确认的串口号,比如
COM3或/dev/ttyUSB0。 - 点击 确定。
配置好后,Thonny 底部会多出一个 Shell 窗口。如果看到 >>> 提示符,说明连接成功了。
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。后面我们做自动重连时,会把核心逻辑写在这个文件里。现在先养成习惯。
2.5 本章知识体系
下面这张图,把整个环境搭建的流程串起来了。你可以把它当作一个检查清单。
2.6 常见问题与解决
我整理了几个新手最容易碰到的问题,你遇到了可以直接对照着查。
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
esptool 提示 Failed to connect |
串口错误 / 未进入下载模式 | 检查端口号;按住 BOOT 再按 EN 复位 |
烧录时卡在 Connecting... |
波特率太高 / 线材问题 | 降低波特率到 115200;换数据线 |
| Thonny Shell 无响应 | 未正确连接 / 固件未烧录成功 | 检查端口配置;按 EN 复位;重新烧录固件 |
| LED 不亮 | GPIO 引脚不对 / 板载 LED 损坏 | 确认板子原理图;尝试 GPIO 0、GPIO 5 |
| 打印乱码 | 串口波特率不匹配 | Thonny 默认 115200,检查 Shell 设置 |