关于 MicroPython + ESP32-S3 的使用流程

好的!我来帮你从零开始完整梳理 MicroPython + ESP32-S3 的开发流程。

📋 完整搭建流程

第一步:准备工作

1.1 硬件准备

  • ✅ ESP32-S3 开发板
  • ✅ USB 数据线(最好带数据传输功能)
  • ✅ Windows电脑

1.2 软件准备

bash 复制代码
# 1. 安装 Python(如果还没安装)
# 访问 https://www.python.org/downloads/ 下载安装
# 安装时勾选 "Add Python to PATH"

# 2. 验证Python安装
python --version

# 3. 安装 esptool(刷写工具)
pip install esptool

# 4. 安装串口驱动(根据你的开发板)
# CP210x驱动:https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
# CH340驱动:http://www.wch.cn/download/CH341SER_EXE.html

第二步:下载固件

2.1 下载 MicroPython 固件

第三步:刷写固件

3.1 连接开发板

  1. 用USB线连接ESP32-S3到电脑
  2. 按住开发板上的 BOOT 按钮
  3. 按一下 RESET 按钮(或重新插拔USB)
  4. 松开 BOOT 按钮
  5. 此时开发板进入刷写模式

3.2 查找串口号

bash 复制代码
# 查看可用的串口
python -m serial.tools.list_ports
# 或打开设备管理器查看 "端口(COM和LPT)"
# 通常显示为 COM3、COM4 等

3.3 擦除Flash(重要!)

bash 复制代码
# 替换 COM4 为你的实际端口
python -m esptool --chip esp32s3 --port COM4 erase_flash

3.4 刷写固件

bash 复制代码
# 注意修改路径和端口
python -m esptool --chip esp32s3 --port COM4 write_flash 0x0 "C:\Users\16673\Desktop\ESP32_GENERIC_S3-20251209-v1.27.0.bin"

第四步:安装开发环境

4.1 安装 Thonny IDE(推荐新手)

  1. 下载地址:https://thonny.org/
  2. 安装后打开
  3. 配置:
    • 菜单栏:运行 → 选择解释器
    • 选择 MicroPython (ESP32)
    • 端口选择 COM4(或你的端口)

4.2 或安装命令行工具

bash 复制代码
# 安装 ampy(文件传输)
pip install adafruit-ampy

# 安装 rshell(交互式shell)
pip install rshell

# 安装 picocom/mRemoteNG(串口工具)

第五步:测试连接

5.1 使用 Thonny 测试

python 复制代码
# 在Thonny的Shell中看到 >>> 提示符后输入:
print("Hello ESP32-S3!")

# 查看固件信息
import sys
print(sys.version)
print(sys.implementation)

5.2 使用命令行测试

bash 复制代码
# 使用 rshell 连接
rshell -p COM4

# 或在Python中直接连接
python
>>> import serial
>>> ser = serial.Serial('COM4', 115200)
>>> ser.write(b'\r\n')
>>> ser.readline()

第六步:基础示例代码

6.1 第一个程序:LED闪烁

python 复制代码
# main.py - 保存到ESP32上会自动运行
from machine import Pin
import time

# ESP32-S3 板载LED通常在引脚 48(不同板子可能不同)
led = Pin(48, Pin.OUT)

while True:
    led.value(1)  # 点亮
    time.sleep(0.5)
    led.value(0)  # 熄灭
    time.sleep(0.5)

6.2 上传代码到ESP32

bash 复制代码
# 使用 ampy 上传
ampy --port COM4 put main.py

# 或使用 Thonny:
# 文件 → 保存 → MicroPython设备

第七步:进阶功能

7.1 WiFi连接

python 复制代码
# wifi_connect.py
import network
import time

def connect_wifi(ssid, password):
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    
    if not wlan.isconnected():
        print('正在连接WiFi...')
        wlan.connect(ssid, password)
        
        # 等待连接
        timeout = 10
        while not wlan.isconnected() and timeout > 0:
            time.sleep(1)
            timeout -= 1
            print(f'等待中... {timeout}s')
    
    if wlan.isconnected():
        print('WiFi连接成功!')
        print('IP地址:', wlan.ifconfig()[0])
        return True
    else:
        print('WiFi连接失败!')
        return False

# 使用
connect_wifi('你的WiFi名称', '你的WiFi密码')

7.2 Web服务器示例

python 复制代码
# webserver.py
import socket
import network

# 连接WiFi(接上面的代码)
connect_wifi('你的WiFi', '你的密码')

# 创建简单的Web服务器
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(1)

print('服务器地址:', addr)

while True:
    cl, addr = s.accept()
    print('客户端连接:', addr)
    
    request = cl.recv(1024)
    print('请求内容:', request)
    
    # 发送HTTP响应
    response = """HTTP/1.1 200 OK
Content-Type: text/html

<html>
<head><title>ESP32-S3</title></head>
<body>
<h1>Hello from ESP32-S3!</h1>
<p>MicroPython Web Server</p>
</body>
</html>
"""
    cl.send(response)
    cl.close()

7.3 读取传感器

python 复制代码
# sensor.py
from machine import Pin, ADC
import time

# 读取模拟值(ADC)
adc = ADC(Pin(4))  # 使用GPIO4作为ADC
adc.atten(ADC.ATTN_11DB)  # 设置量程 0-3.3V

while True:
    # 读取数字值 (0-4095)
    value = adc.read()
    
    # 转换为电压
    voltage = value * 3.3 / 4095
    
    print(f'ADC值: {value}, 电压: {voltage:.2f}V')
    time.sleep(1)

第八步:实用技巧

8.1 开机自动运行

  • 将主程序保存为 main.py 到ESP32
  • 重启开发板会自动运行

8.2 释放内存

python 复制代码
import gc
gc.collect()  # 手动垃圾回收
gc.mem_free()  # 查看剩余内存

8.3 文件管理命令

bash 复制代码
# 列出文件
ampy --port COM4 ls

# 删除文件
ampy --port COM4 rm main.py

# 下载文件到电脑
ampy --port COM4 get main.py > backup_main.py

常见问题解决

  1. 无法连接COM口

    • 检查驱动是否正确安装
    • 尝试换USB线
    • 重新插拔开发板
  2. 刷写失败

    • 确保按住BOOT按钮
    • 先执行 erase_flash
    • 检查端口号是否正确
  3. 上传文件失败

    • 确保开发板已经启动完成
    • 不要同时打开多个串口程序

需要我详细解释某个步骤,或者有其他问题吗?

相关推荐
Zevalin爱灰灰20 小时前
方法论——如何设计控制策略架构
算法·架构·嵌入式
小灰灰搞电子20 小时前
ESP32 使用ESP-IDF驱动SPI接口OLED12864源码分享
esp32·oled12864
ChenYY~1 天前
手把手教你使用vscode开发stm32!
vscode·stm32·嵌入式·软件开发·学习经验
橘色的喵2 天前
将 RT-Thread MSH 移植到 Linux: 嵌入式调试 Shell 的多后端设计
嵌入式
Zevalin爱灰灰2 天前
针对汽车工业软件安全性的C语言编码规范——MISRA C
c语言·开发语言·汽车·嵌入式
小灰灰搞电子2 天前
ESP32 使用ESP-IDF驱动IIC接口OLED源码分享
esp32·oled
济6172 天前
ARM Linux 驱动开发篇---Linux设备树特殊节点及linux内核解析dtb文件过程--- Ubuntu20.04
linux·嵌入式·嵌入式linux驱动开发
济6172 天前
ARM Linux 驱动开发篇---Linux设备树实战-- Ubuntu20.04
linux·嵌入式·嵌入式linux驱动开发
小灰灰搞电子3 天前
ESP32 使用ESP-IDF驱动DHT11温湿度计源码分享
esp32·dht11