W55RP20-EVB-MKR 模块 MicroPython 实战 (1):静态 IP 配置与网络基础
本文为 WIZnet W55RP20 芯片 MicroPython 教程第 1 篇,基于官方最新固件编写,代码均经过实际验证,可直接烧录运行。
版权声明:本文为 WIZnet 官方原创技术文章,转载请注明出处。
前言
在嵌入式物联网开发中,网络连接永远是第一步,也是最容易踩坑的一步。
传统以太网开发面临三大普遍痛点:
-
资源占用高: 软件 TCP/IP 协议栈会占用 MCU 大量的 CPU 和内存资源,挤占主业务运行空间,实时性变差
-
开发难度大: 外接以太网模块需要手动接线、调试接口时序、编写底层驱动,新手入门周期长,时间开销大
-
调试稳定门槛高: 软件协议栈可参考资料少、问题定位困难,想要达到长期稳定运行,需要深度掌握网络原理与丰富的网络调试经验
W55RP20 作为 WIZnet 最新推出的 SiP 系统级芯片,它将微控制器与硬件 TCP/IP 以太网控制器集成在单一芯片中,TCP/IP 协议栈处理完全由硬件完成,不占用任何 CPU 资源。
同时 W55RP20-EVB-MKR 开发板 兼容树莓派 Pico 的引脚和软件生态,实现了“即插即用”的工业级以太网开发体验。
本文将带你完成 W55RP20芯片 的 MicroPython 环境搭建与静态 IP 配置测试。学完本文,你将掌握:
- W55RP20-EVB-MKR 开发板 的固件烧录与环境配置
- MicroPython 的基本概念
- 静态 IP、子网掩码、网关和 DNS 的含义
- 使用代码配置固定 IP 地址
- 网络连通性验证与常见故障排查
系列教程学习路径
本系列共 16 篇,循序渐进覆盖从基础联网到工业级应用的全流程:
- 第 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 工业协议通信
建议收藏本系列,跟随教程逐步学习,所有代码均会同步更新至官方 Gitee 仓库。
目录
- 1 MicroPython 简介
- 2 静态 IP 是什么
- 3 准备工作
- 4 烧录 W55RP20 专属 MicroPython 固件
- 5 硬件连接与开发环境配置
- 6 静态 IP 示例代码
- 7 运行结果与网络验证
- 8 常见问题一站式排查指南
- 9 W55RP20 核心优势对比
- 10 典型应用场景
- 11 系列预告与资源获取
1. MicroPython 简介
1.1 MicroPython 是什么
MicroPython 是一种面向微控制器和嵌入式设备的 Python 语言实现。
简单来说,它可以让开发者在开发板上运行类似 Python 的代码,用更简洁的语法完成 GPIO 控制、串口通信、SPI 通信、I2C 通信、网络通信等嵌入式功能开发。
相比传统 C/C++ 嵌入式开发,MicroPython 的代码更容易阅读,也更适合快速验证硬件功能和编写网络通信示例。
例如在 MicroPython 中,初始化网络、配置 IP 地址、打印运行结果,都可以通过较少的代码完成。

1.2 为什么使用 MicroPython 开发 W55RP20-EVB-MKR
W55RP20-EVB-MKR开发板支持 MicroPython 开发后,可以让以太网功能测试变得更简单。
在本示例中,只需要通过几行 Python 代码,就可以完成以下操作:
- 初始化 W55RP20-EVB-MKR 的以太网功能
- 设置静态 IP 地址
- 配置子网掩码、网关和 DNS
- 打印当前网络参数
- 通过 Thonny Shell 查看运行结果
对于初学者来说,MicroPython 的优势主要有:
| 优势 | 说明 |
|---|---|
| 代码简洁 | 语法接近 Python,容易阅读和修改 |
| 调试方便 | 可以通过 Thonny 直接运行和查看串口输出 |
| 上手快 | 不需要复杂的编译环境 |
| 适合验证 | 适合快速测试 GPIO、SPI、I2C、网络等功能 |
| 便于教学 | 示例代码更短,更容易理解运行流程 |
本篇文章将使用 MicroPython 在 W55RP20 上配置静态 IP 地址,帮助读者理解开发板如何手动接入局域网。
2. 静态 IP 是什么
2.1 静态 IP 与 DHCP 的区别
在局域网中,开发板想要进行 TCP、UDP、MQTT、HTTP 等网络通信,必须先拥有一个 IP 地址。
常见的 IP 获取方式有两种:
| 方式 | 说明 | 特点 |
|---|---|---|
| DHCP 自动获取 | 由路由器自动分配 IP 地址 | 配置简单,适合快速测试 |
| 静态 IP 配置 | 手动指定 IP、子网掩码、网关和 DNS | 地址固定,适合长期运行和调试 |
DHCP 的优点是简单,不需要手动填写网络参数。
静态 IP 的优点是地址固定,方便电脑端使用 ping、TCP Client、浏览器、MQTT 工具等方式直接访问开发板。
例如本文中将开发板固定设置为:
192.168.1.188
这样每次运行程序后,开发板都会使用同一个 IP 地址,方便后续网络通信测试。
2.2 IP、子网掩码、网关、DNS 说明
静态 IP 配置通常需要设置以下四个参数:
| 参数 | 示例值 | 说明 |
|---|---|---|
| IP 地址 | 192.168.1.210 |
开发板在局域网中的固定地址 |
| 子网掩码 | 255.255.255.0 |
用于判断当前设备所在网段 |
| 网关 | 192.168.1.1 |
通常是路由器地址 |
| DNS | 192.168.1.1 |
用于域名解析,也可以填写公共 DNS |
需要注意的是,判断是否处于同一网段时,需要同时看 IP 地址 和 子网掩码。
在本文示例中,子网掩码为 255.255.255.0,表示前三段 192.168.1 是网络号。因此开发板 IP 通常应设置为 192.168.1.xxx,例如 192.168.1.210。
其中 xxx 建议选择局域网中未被其他设备占用的地址,避免 IP 地址冲突。
3. 准备工作
3.1 软件准备
| 软件名称 | 版本要求 | 下载地址 | 说明 |
|---|---|---|---|
| Thonny | 4.0 及以上 | Thonny 官方下载 | 轻量级 MicroPython IDE,支持代码编辑、运行和串口调试 |
| W55RP20 MicroPython 固件 | 最新稳定版 | WIZnet 官方资料页面 | 专为 W55RP20 编写的 MicroPython 固件 |
3.2 硬件准备
如图所示,W55RP20-EVB-MKR 开发板实物图。

需要准备以下硬件:
- W55RP20-EVB-MKR开发板× 1
- USB 数据线 × 1
- 标准网线 × 1
- 路由器或交换机 × 1
提示:
W55RP20-EVB-MKR,已板载以太网接口,无需额外焊接飞线其他器件,即插即用。
大幅降低了接线错误和硬件故障概率。
4. 烧录 W55RP20 专属 MicroPython 固件
运行静态 IP 示例前,需要先给 W55RP20-EVB-MKR 烧录对应的 MicroPython 固件。
固件文件示例:
firmware.uf2
W55RP20-EVB-MKR 兼容树莓派 Pico 的 UF2 固件烧录方式,操作步骤如下:
- 使用 USB 数据线连接开发板和电脑
- 按住开发板上的
BOOTSEL按键 - 点按
RUN按键 - 电脑识别出
RPI-RP2磁盘后松开按键 - 将
.uf2固件文件拖入RPI-RP2磁盘 - 开发板自动重启,固件烧录完成
注意:如果电脑没有识别出
RPI-RP2磁盘,可以重新插拔 USB 数据线,或更换支持数据传输的 USB 线。
5. 硬件连接与开发环境配置
5.1 硬件连接
W55RP20-EVB-MKR 的连接极其简单,仅需两步:
-
使用 USB 数据线连接开发板与电脑(用于供电、代码烧录和串口调试)
-
使用网线连接开发板的以太网接口与路由器的 LAN 口
如图所示为硬件连接示意图

5.2 Thonny 开发环境配置
-
打开 Thonny 软件,点击顶部菜单栏「运行」→「配置解释器」
-
切换到「解释器」选项卡
-
在「解释器」下拉列表中选择
MicroPython(通用) -
在「端口」下拉列表中选择 W55RP20-EVB-MKR 对应的串口(通常显示为
Board CDC @ COMx) -
勾选「运行代码前先重启解释器」和「同步设备的实时时钟」
-
点击「确定」完成配置
配置完成后的界面如下图所示:
如果端口列表中没有出现开发板,请尝试:
- 重新插拔 USB 数据线
- 更换支持数据传输的 USB 数据线
- 关闭其他占用串口的软件(如串口助手、Arduino IDE 等)
- 重新烧录 MicroPython 固件
6. 静态 IP 示例代码
6.1 完整代码
打开静态 IP 示例文件,或在 Thonny 中输入以下代码:
# 从 wiznet_init 模块中导入 wiznet 初始化函数
from wiznet_init import wiznet
import time
# 指定当前使用的开发板型号
BOARD = "W55RP20-EVB-MKR"
# 设置静态网络参数
NET_IP = "192.168.1.210" # 开发板的静态 IP 地址
NET_SN = "255.255.255.0" # 子网掩码
NET_GW = "192.168.1.1" # 网关地址
NET_DNS = "192.168.1.1" # DNS 服务器地址
print("WIZnet chip network install example")
# 初始化 WIZnet 网卡
nic = wiznet(
BOARD,
dhcp=False, #关闭 DHCP,使用静态 IP
ip=NET_IP,
sn=NET_SN,
gw=NET_GW,
dns=NET_DNS
)
print("IP Address:", nic.ifconfig()[0])
print("Subnet Mask:", nic.ifconfig()[1])
print("Gateway:", nic.ifconfig()[2])
print("DNS:", nic.ifconfig()[3])
time.sleep(2)
print("try ping", nic.ifconfig()[0])
其中最关键的是:
dhcp=False
这表示关闭 DHCP 自动获取 IP,改为使用手动指定的静态 IP 参数。
7. 运行结果与网络验证
完成硬件连接和 Thonny 开发环境配置后,就可以运行静态 IP 示例程序,并查看 W55RP20-EVB-MKR 是否成功使用固定 IP 地址接入网络。
7.1 串口输出结果截图
在 Thonny 中点击运行按钮,或按 F5 运行程序。
运行后,Shell 窗口会输出类似以下内容:
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
WIZnet chip network install example
Waiting for the network to connect...
Waiting for the network to connect...
MAC Address: 02:90:86:88:4d:56
IP Address: ('192.168.1.210', '255.255.255.0', '192.168.1.1', '192.168.1.1')
IP Address: 192.168.1.210
Subnet Mask: 255.255.255.0
Gateway: 192.168.1.1
DNS: 192.168.1.1
try ping 192.168.1.210
>>>
说明:程序运行初期打印的
Waiting for the network to connect...是正常现象,这是 W55RP20 在等待网卡连接完成。具体打印次数取决于网络环境。
实际运行结果如下图所示:
从运行结果可以看到,开发板最终使用了固定 IP 地址:
192.168.1.210
网络参数如下:
| 字段 | 实际值 | 说明 |
|---|---|---|
| IP 地址 | 192.168.1.210 |
W55RP20-EVB-MKR 的固定 IP 地址 |
| 子网掩码 | 255.255.255.0 |
当前局域网的子网掩码 |
| 网关 | 192.168.1.1 |
路由器地址 |
| DNS | 192.168.1.1 |
DNS 服务器地址 |
7.2 静态 IP 运行 GIF 演示
下面的 GIF 展示了运行静态 IP 示例程序后,W55RP20-EVB-MKR 完成网络初始化并打印固定 IP 地址的过程。
可以看到,程序运行后会先等待网络连接,随后打印出 MAC 地址和静态 IP 地址信息。当 IP Address 显示为 192.168.1.210 时,说明静态 IP 配置成功。

7.3 网络连通性验证
开发板获取到静态 IP 后,可以在电脑端使用 ping 命令验证网络是否连通。
例如本文中开发板的 IP 地址为:
192.168.1.210
可以在 Windows 命令提示符中输入:
ping 192.168.1.210
如果能够收到回复,说明电脑和开发板处于同一局域网,并且网络连接正常。
示例结果如下:
来自 192.168.1.210 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.210 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.210 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.210 的回复: 字节=32 时间<1ms TTL=64
如果无法 ping 通,可以优先检查电脑和开发板是否在同一网段,以及静态 IP 是否与其他设备冲突。
8. 常见问题一站式排查指南
8.1 烧录相关问题
| 问题现象 | 排查步骤 |
|---|---|
电脑无法识别 RPI-RP2 磁盘 |
1. 确认按住 BOOTSEL 按键再连接 USB2. 更换支持数据传输的 USB 数据线 3. 更换电脑 USB 接口 4. 尝试使用另一台电脑 |
| 固件拖拽后开发板无反应 | 1. 确认固件与 W55RP20-EVB-MKR 匹配 2. 重新烧录 MicroPython 固件 3. 检查 USB 供电是否稳定 |
8.2 端口识别问题
| 问题现象 | 排查步骤 |
|---|---|
| Thonny 中找不到开发板端口 | 1. 重新插拔 USB 数据线 2. 更换支持数据传输的 USB 数据线 3. 关闭其他占用串口的软件 4. 在设备管理器中查看是否有新串口设备 5. 重新烧录 MicroPython 固件 |
8.3 静态 IP 配置问题
| 问题现象 | 排查步骤 |
|---|---|
一直显示 Waiting for the network to connect... |
1. 检查网线是否插紧 2. 确认网线连接到路由器 LAN 口 3. 更换路由器 LAN 口或网线 4. 重启路由器和开发板 5. 确认固件和示例代码匹配 |
| IP 地址配置后无法通信 | 1. 确认开发板 IP 与路由器处于同一网段 2. 确认 IP 地址没有被其他设备占用 3. 确认子网掩码填写正确 4. 确认网关地址是路由器 LAN 口地址 |
| 电脑 ping 不通开发板 | 1. 确认电脑和开发板连接到同一路由器 2. 检查电脑 IP 和开发板 IP 是否处于同一网段 3. 临时关闭电脑防火墙测试 4. 更换网线或路由器 LAN 口 |
| DNS 填写后无法访问域名 | 1. 确认 DNS 地址填写正确 2. 可以尝试使用路由器地址作为 DNS 3. 也可以尝试使用公共 DNS,例如 8.8.8.8 |
8.4 静态 IP 地址冲突
如果局域网中已经有其他设备使用了 192.168.1.210,可能会导致网络异常,例如 ping 不通、通信不稳定或 IP 地址冲突提示。
可以将代码中的静态 IP 改成其他未被占用的地址,例如:
NET_IP = "192.168.1.189"
建议在路由器后台查看当前已连接设备列表,选择一个未被占用的 IP 地址。
注意:静态 IP 地址需要和路由器处于同一网段。例如路由器地址是
192.168.1.1,开发板 IP 可以设置为192.168.1.xxx。
9. W55RP20 核心优势对比
为了让你更直观地了解 W55RP20 的价值,我们对比了目前主流的三种嵌入式以太网方案:
| 对比维度 | W55RP20 集成方案 | 外接 PHY 芯片方案 | 外接串口转以太网模块方案 |
|---|---|---|---|
| BOM 成本 | 低 (单芯片) |
中高 (MCU + 模块 + 外围器件) |
高 |
| PCB 面积 | 小 (仅需网口电路) |
大 (需预留芯片和布线空间) |
高 |
| 开发难度 | 低 (一行代码联网) |
中高 (调试协议栈、编写驱动) |
低 |
| 网络稳定性 | 极高 (WIZnet 专注硬件 TCP/IP 协议栈 25 年) |
不定 (对于研发人员要求高,熟悉协议栈与网络开发,才能调试稳定) |
不定 (视研发公司能力水平) |
| CPU 资源占用 | 0% (协议栈网络处理完全由硬件完成) |
50% 以上 (协议栈完全运行在 MCU 上,占用相关资源) |
0% |
| 硬件 Socket 数量 | 8 个独立硬件 Socket | 视 MCU 能力而定,理论支持多路拓展 | 一般为单路透传 |
| 网络吞吐量 | 最高 15Mbps | 视 MCU 能力而定 | 约 3-5Mbps |
| 接口易用性 | 单芯片集成 | 要 MCU 带有 MII/RMII 等接口 | TTL 接口 |
| 部署难度 | 低 (MicroPython 成熟固件,应用层协议绝大部分均有库文件,可灵活添加部署) |
高 (应用层协议需要手动移植开源库适配) |
视模块集成情况,无集成的功能需要自我封包拆包 |
W55RP20-EVB-MKR开发板 已经板载以太网接口,因此非常适合新手快速完成以太网功能验证。
对于静态 IP 示例来说,W55RP20-EVB-MKR开发板 的优势在于:不需要额外连接以太网模块,也不需要手动配置复杂的底层驱动,只需要通过 MicroPython 示例代码配置网络参数即可完成联网测试。
10. 典型应用场景
静态 IP 适合需要固定访问地址的嵌入式以太网应用场景,例如:
- 工业数据采集网关
- 远程监控终端
- 串口转网口设备
- 智能楼宇控制节点
- 工业 PLC 扩展模块
- 传感器数据采集与上传
在这些场景中,固定 IP 地址可以让上位机、服务器或其他设备更方便地访问开发板,减少因 IP 地址变化带来的连接问题。
11. 系列预告与资源获取
11.1 系列预告
下一篇教程将讲解 W55RP20芯片在 MicroPython 开发下的 DHCP 自动联网与网络诊断。
相比静态 IP,DHCP 可以让开发板自动从路由器获取 IP 地址、子网掩码、网关和 DNS,更适合快速测试和初学者入门。
11.2 资源获取
- 本文完整代码:WIZnet Pico MicroPython 示例工程
- W55RP20 芯片手册:WIZnet 官方资料页面
下一篇我们讲解W55RP20-EVB-MKR 模块 MicroPython 实战 (2):10 分钟搞定以太网 DHCP 自动联网
如果本文对你有帮助,欢迎点赞、收藏、关注,你的支持是我们持续更新的动力!
如有任何问题,欢迎在评论区留言,我们会第一时间回复。
更多推荐
所有评论(0)