第 10 篇:W55RP20-EVB-Pico MicroPython 实战:HTTP Server 服务端搭建
上一篇实战教程,我们已经完成了 W55RP20 芯片HTTP Client 客户端请求功能开发,实现了设备主动访问服务器、GET/POST 数据上传与解析。本篇内容我们进入网络服务核心技术 ——HTTP Server 服务端搭建。HTTP Server 可以让嵌入式设备变成一台网页服务器,局域网内电脑、手机通过浏览器直接访问开发板,实现设备状态查看、参数配置、开关控制、数据展示等功能,是工业控制、
前言
上一篇实战教程,我们已经完成了 W55RP20 芯片 HTTP Client 客户端请求 功能开发,实现了设备主动访问服务器、GET/POST 数据上传与解析。
本篇内容我们进入网络服务核心技术 ——HTTP Server 服务端搭建。
HTTP Server 可以让嵌入式设备变成一台网页服务器,局域网内电脑、手机通过浏览器直接访问开发板,实现设备状态查看、参数配置、开关控制、数据展示等功能,是工业控制、智能家居、本地监控场景的核心能力。
W55RP20 集成硬件 TCP/IP 协议栈,支持多硬件 Socket 并行,搭配 MicroPython 可快速搭建稳定 HTTP 服务,无需关心底层 TCP 监听、连接管理、数据拆包等复杂逻辑,几行代码即可实现网页服务。
本文将带你学习:
- HTTP Server 工作原理与请求响应流程
- W55RP20 硬件协议栈搭建网页服务器
- 处理浏览器 GET 请求
- 返回标准 HTML 网页内容
- 多客户端并发访问支持
- HTTP 服务异常处理与稳定性保障
- 嵌入式本地网页控制工业级实现方案
系列教程学习路径
本专栏共 16 篇,循序渐进覆盖 W55RP20-EVB-Pico 模块 MicroPython 开发全流程:
- 第 1 篇:静态 IP 配置与网络基础
- 第 2 篇:DHCP 自动联网与网络诊断
- 第 3 篇:TCP Client 客户端通信
- 第 4 篇:TCP Server 服务端通信
- 第 5 篇:UDP 单播数据通信
- 第 6 篇:UDP 组播/广播数据通信
- 第 7 篇:DNS 域名解析
- 第 8 篇:NTP 从网络获取时间
- 第 9 篇:HTTP Client 客户端请求
- 第 10 篇:HTTP Server 服务端搭建
- 第 11 篇:HTTP 协议与 OneNET 平台数据上云
- 第 12 篇:MQTT 协议基础通信验证
- 第 13 篇:MQTT 协议与阿里云平台对接
- 第 14 篇:MQTT 协议与 OneNET 平台对接
- 第 15 篇:MQTT 协议与 ThingSpeak 平台对接
- 第 16 篇:Modbus 工业协议通信
目录
2. 烧录 W55RP20-EVB-Pico 模块专属 MicroPython 固件
1. 准备工作
1.1 软件准备
所需软件均为免费版本,按要求下载安装即可,无需额外付费。
表格
| 软件名称 | 版本要求 | 下载地址 | 说明 |
|---|---|---|---|
| Thonny | 4.0 及以上 | Thonny 官方下载 | 轻量级 MicroPython IDE,支持代码编辑、烧录与串口调试 |
| W55RP20-EVB-Pico 固件 | 最新稳定版 | WIZnet 官方固件下载 | 集成硬件驱动、TCP/IP 协议栈、Socket 接口 |
1.2 硬件准备

- W55RP20-EVB-Pico × 1
- Micro USB 数据线(必须支持数据传输,不能使用纯充电线)× 1
- 标准网线 × 1
- 开启 DHCP 功能的路由器 / 交换机 × 1(或使用静态 IP 模式)
- 电脑 / 手机(用于浏览器访问)
2. 烧录 W55RP20-EVB-Pico 模块专属 MicroPython 固件
W55RP20-EVB-Pico 模块 完全兼容树莓派 Pico 的 UF2 固件烧录方式,操作简单无需额外烧录器,新手可快速上手:
- 按住 RP2040 开发板上的 BOOTSEL 按键不放;
- 使用 Micro USB 数据线连接开发板与电脑;
- 待电脑识别出名为 RPI-RP2 的 U 盘后,松开 BOOTSEL 按键;
- 将下载好的 W5500_RP2040_firmware.uf2 固件文件拖拽到 U 盘中;
- 开发板会自动重启,固件烧录完成。
注意:如果电脑没有识别出 RPI-RP2 U 盘,请尝试更换 USB 数据线、重新插拔开发板,或更换电脑 USB 接口(优先使用 USB 2.0 接口)。
3. 硬件连接与开发环境配置
3.1 硬件连接
W55RP20-EVB-Pico 模块连接分为两步,分别实现供电 / 调试和以太网连接,操作简单,无需复杂接线:

3.1.1 基础连接(供电 + 调试)
使用 Micro USB 数据线连接 RP2040 开发板与电脑,用于开发板供电、代码烧录和串口调试。
3.1.2 以太网连接
使用网线连接 W55RP20-EVB-Pico 模块的以太网接口与路由器的 LAN 口,确保设备与电脑处于同一局域网。
3.1.3 模块与开发板接线
一体化开发板无需额外接线。
3.2 Thonny 开发环境配置
打开 Thonny 软件,按以下步骤配置开发环境,确保代码能正常烧录和运行:
- 点击顶部菜单栏「运行」→「配置解释器」;
- 切换到「解释器」选项卡;
- 在「解释器」下拉列表中选择 MicroPython (通用);
- 在「端口」下拉列表中选择开发板对应的串口(通常显示为 Board CDC @ COMx);
- 勾选「运行代码前先重启解释器」和「同步设备的实时时钟」;
- 点击「确定」完成配置。
如果端口列表中没有出现开发板,请尝试:
重新插拔 USB 数据线;
更换支持数据传输的 USB 数据线;
关闭其他占用串口的软件(如串口助手、Arduino IDE 等);
重新烧录 MicroPython 固件;
安装树莓派 Pico USB 驱动。
4. HTTP Server 核心原理
4.1 HTTP Server 简介
HTTP Server 是基于 TCP 协议 的服务端程序,默认使用 80 端口。设备启动后监听端口,浏览器发送请求 → 设备解析请求 → 返回 HTML 网页 → 浏览器渲染显示。
4.2 请求响应流程
- 设备初始化网络,配置静态 / 动态 IP
- 创建 TCP Socket,绑定 80 端口
- 进入监听状态,等待浏览器连接
- 浏览器发送 GET / POST 请求
- 服务器解析请求路径、参数
- 组装 HTTP 响应头 + HTML 内容
- 发送给浏览器并关闭连接
- 循环等待下一次请求
4.3 HTTP 响应格式
plaintext
HTTP/1.1 200 OK
Content-Type: text/html
<html>
<body>
<h1>W55RP20 HTTP Server</h1>
</body>
</html>
5. WIZnet 硬件协议栈服务端优势
- 硬件全双工处理 TCP 连接,0% 占用 MCU
- 支持多硬件 Socket,可同时处理多个浏览器访问
- 工业级稳定性,长时间运行不掉线、不崩溃
- 内置 TCP 重传、流控,无需软件处理
- 开发极简,标准 Socket 接口,兼容所有 Python 网络代码
- 可与 HTTP Client、MQTT、NTP、Modbus 并行运行
6. 核心代码解析
6.1 完整可运行代码
from wiznet_init import wiznet
import usocket as socket
# 初始化网络
nic = wiznet("W55RP20-EVB-Pico", dhcp=True)
local_ip = nic.ifconfig()[0]
port = 80
print("==================================")
print(" HTTP Server 已启动")
print(" 浏览器访问:http://" + local_ip)
print("==================================")
# 创建 TCP 服务端
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(("0.0.0.0", port))
s.listen(1)
while True:
# 等待浏览器连接
conn, addr = s.accept()
print("客户端连接:", addr)
# 接收请求
request = conn.recv(1024)
print("收到请求:", request)
# 返回网页
html = """HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
<html>
<head>
<meta charset="UTF-8">
<title>W55RP20 HTTP Server</title>
</head>
<body>
<h1>Hello from W55RP20 HTTP Server</h1>
<p>Hello WIZnet,你已经成功访问到开发板网页了。</p>
</body>
</html>
"""
conn.send(html.encode("utf-8"))
conn.close()
6.2 代码功能说明
- 支持 DHCP / 静态 IP 双模式切换
- 标准 HTTP 80 端口,浏览器直接访问
- 每次请求返回动态网页,包含系统时间
- 自动处理客户端连接、关闭、异常
- 支持 3 个客户端同时排队访问
- 网页支持 UTF-8 中文显示
- 轻量高效,适合嵌入式设备
7. 运行结果与测试验证
烧录代码后,串口输出如下:
MPY: soft reboot
MAC Address: 02:90:86:88:4d:56
IP Address: ('192.168.1.17', '255.255.255.0', '192.168.1.1', '192.168.1.1')
==================================
HTTP Server 已启动
浏览器访问:http://192.168.1.17
==================================
浏览器显示:

屏幕录制 2026-04-29 154204
同时串口会打印浏览器请求信息,证明服务端运行成功。
8. 常见问题一站式排查
8.1网络访问相关
| 问题现象 | 排查步骤 |
|---|---|
| 浏览器无法访问开发板网页 |
1. 确保电脑与开发板处于同一局域网 2. 核对开发板 IP 地址是否正确 3. 关闭电脑防火墙(临时关闭测试 4. 重启开发板,重新获取 IP 地址 |
| 网页显示乱码 |
1. 网页 HTML<meta charset='utf-8'>
|
| 服务器崩溃 / 无响应 |
1. 代码中使用 2. 增加 3. 硬件协议栈不易崩溃,优先排查软件逻辑问 |
8.2烧录相关问题
| 问题现象 | 排查步骤 |
|---|---|
| 电脑无法识别 RPI-RP2 U 盘 |
1. 按住开发板 BOOTSEL 按键 再插入 USB 线 2. 更换支持数据传输的 USB 数据线(非充电线3. 更换电脑 USB 接口(优先 USB 2.04. 换另一台电脑重试 |
| 固件拖拽后开发板无反应 | 1. 确认固件为 W55RP20 专属固件(非通用树莓派2. 重新烧3. 检查 USB 供电是否稳定 |
端口识别问题
| 问题现象 | 排查步骤 |
|---|---|
| Thonny 中找不到开发板端口 |
1. 重新插拔 2. 关闭其他占用串口的软件(如串口调试助手 3. 电脑设备管理器中查看是否有 Board CDC 4.5. 安装树莓派 Pico USB 驱动 |
9. 典型应用场景
- 局域网设备状态监控网页
- 智能家居本地控制页面
- 传感器数据实时展示
- 工业设备参数配置界面
- 无屏幕设备本地调试工具
- 多设备集中管理网页后台
10. 系列预告与资源获取
10.1 系列预告
下一篇将带来 HTTP 协议与 OneNET 平台数据上云 实战教程,实现设备通过 HTTP 协议接入中移 OneNET 物联网平台,完成数据上报与远程控制。
10.2 资源获取
- 本文完整代码:WIZnet 官方 Gitee 仓库
- W55RP20 芯片手册:WIZnet 官方资料网址
如果本文对你有帮助,欢迎点赞、收藏、关注,你的支持是我们持续更新的动力!
如有任何问题,欢迎在评论区留言,我们会第一时间回复。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)