本文为 WIZnet W55RP20 芯片CircuitPython 教程第 13篇,基于官方最新固件编写,代码均经过实际验证,可直接烧录运行。
版权声明:本文为 WIZnet 官方原创技术文章,转载请注明出处。

前言

上一篇实战教程,我们完成了W55RP20芯片与MQTTX本地服务器的双向通信,掌握了MQTT协议基础应用与调试方法。本篇内容我们聚焦工业级物联网场景,实现W55RP20通过MQTT协议与阿里云IoT平台对接,完成温湿度数据定时上传、设备在线监控、消息回调处理等核心功能,掌握阿里云IoT平台配置、MQTT身份认证、JSON数据封装、定时上传逻辑等关键技能,适配远程数据监控、设备管理等工业级物联网场景。

W55RP20集成硬件 TCP/IP 协议栈,搭配CircuitPython专属MQTT客户端库(adafruit_minimqtt),无需关心底层Socket细节和复杂的加密认证逻辑,依托WIZnet官方驱动库和阿里云IoT平台规范,大幅降低嵌入式设备上云开发门槛,适用于远程环境监测、数据可视化、设备远程管理、工业数据采集等各类场景。

学完本文,你将掌握:

  • 阿里云IoT平台设备注册、产品创建及MQTT连接参数获取

  • W55RP20连接阿里云IoT平台的 CircuitPython语言实现(完整可运行代码)

  • 阿里云IoT平台MQTT协议格式封装(JSON payload构造)

  • DNS解析优化、定时数据上传、心跳保活等稳定机制实现

  • 阿里云IoT平台数据查看、调试及常见问题排查方法

系列教程学习路径

本专栏共 16 篇,循序渐进覆盖 W55RP20-EVB-Pico 模块 CircuitPython语言开发全流程:

  1. 第 1 篇:静态 IP 配置与网络基础

  2. 第 2 篇:DHCP 自动联网与网络诊断

  3. 第 3 篇:TCP Client 客户端通信

  4. 第 4 篇:TCP Server 服务端通信

  5. 第 5 篇:UDP 单播数据通信

  6. 第 6 篇:UDP 组播/广播数据通信

  7. 第 7 篇:DNS 域名解析

  8. 第 8 篇:NTP 从网络获取时间

  9. 第 9 篇:HTTP Client 客户端请求

  10. 第 10 篇:HTTP Server 服务端搭建

  11. 第 11 篇:HTTP 协议与 OneNET 平台数据上云

  12. 第 12 篇:MQTT 协议基础通信验证

  13. 第 13 篇:MQTT 协议与阿里云平台对接(本文)

  14. 第 14 篇:MQTT 协议与 OneNET 平台对接

  15. 第 15 篇:MQTT 协议与 ThingSpeak 平台对接

  16. 第 16 篇:Modbus 工业协议通信

建议收藏本专栏,跟随教程逐步学习,所有代码均会同步更新至官方 Gitee 仓库

目录

 1、准备工作

1.1 软件准备

1.2 硬件准备

1.3 阿里云IoT平台准备

2、W55RP20 C语言开发环境搭建

2.1 驱动库配置

2.2 固件烧录

3、硬件连接与串口配置

3.1 硬件连接

3.1.1 基础连接(供电+调试)

3.1.2 以太网连接

3.1.3 模块与开发板接线(分离式模块适用)

3.2 串口调试配置

4、阿里云MQTT协议规范解析

4.1 核心连接规范

4.2 数据格式规范

4.3 标准主题格式

4.4 极简工作流程

5、核心CircuitPython代码复制与烧录

5.1 依赖库说明

5.2 完整CircuitPython代码(主程序)

5.3 代码关键配置说明(必看,否则连接失败)

5.4 编译与烧录步骤

6、运行结果与阿里云平台验证

6.1 串口输出结果

6.2 阿里云平台数据验证

7、常见问题一站式排查

8、W55RP20 核心优势对比

9. 典型应用场景

10. 系列预告与资源获取

10.1系列预告

10.2 资源获取

 1、准备工作

1.1 软件准备

所需软件均为免费版本,按要求下载安装即可,无需额外付费,适配C语言开发需求,新增阿里云IoT平台相关操作工具。

软件名称

版本要求

下载地址

说明

Thonny

4.0 及以上

Thonny 官方下载

轻量级 MicroPython IDE,支持代码编辑、烧录与串口调试,新手友好

W55RP20-EVB-Pico 模块 CircuitPython驱动库

最新稳定版

WIZnet 官方固件/驱动库下载

专为 W55RP20-EVB-Pico 模块编写,已集成 WIZnet 硬件驱动、TCP/IP协议栈及MQTT客户端库

串口调试助手(如SecureCRT)

任意版本

官方下载或第三方工具

用于查看串口输出的运行日志、调试信息,定位连接和数据上传问题

阿里云IoT平台

在线版

阿里云IoT平台官网

创建产品、注册设备,获取MQTT连接参数,查看上传的温湿度数据

1.2 硬件准备

  • W55RP20-EVB-Pico × 1

  • Micro USB 数据线(必须支持数据传输,不能使用纯充电线)× 1

  • 标准网线 × 1

  • 开启 DHCP 功能的路由器 / 交换机 × 1(用于获取网络参数,实现 DNS 解析)

1.3 阿里云IoT平台准备

在进行代码开发前,需先在阿里云IoT平台完成产品创建和设备注册,获取MQTT连接所需的核心参数(客户端ID、用户名、密码),步骤如下:

  1. 登录阿里云IoT平台(需注册阿里云账号,个人版免费),进入「设备管理」→「产品」,点击「创建产品」;                                                                                                                    

  2. 产品配置:产品名称自定义(如W55RP20温湿度采集),所属品类选择「自定义品类」,节点类型选择「设备」,联网方式选择「以太网」,数据格式选择「JSON」,点击「确认创建」;

  3. 添加设备:进入创建好的产品,点击「设备管理」→「添加设备」,设备名称自定义(如W5500_01),点击「确认」,完成设备注册;

  4. 获取连接参数:进入设备详情页,点击「MQTT连接参数」,记录以下3个核心参数(后续替换到代码中):

    1. 客户端ID(Client ID):格式为「产品ID.设备名称|securemode=2,signmethod=hmacsha256,timestamp=xxxxxxxxx|」

    2. 用户名(Username):格式为「设备名称&产品ID」

    3. 密码(Password):通过阿里云签名工具生成(需输入设备密钥、客户端ID等信息,具体生成方法见下文代码说明)

  5. 添加物模型(可选):进入产品「物模型定义」,添加「Temperature」(温度,浮点型)和「Humidity」(湿度,浮点型)两个属性,用于在平台直观查看温湿度数据。

2、W55RP20 C语言开发环境搭建

2.1 驱动库配置

1. 下载W55RP20官方C语言驱动库,解压后得到核心文件(包含wizchip_conf.h、socket.h、mqtt_interface.h、MQTTClient.h等);

2. 打开VS Code,新建项目,将驱动库中的头文件(.h)放入项目include文件夹,源文件(.c)放入src文件夹;

3. 配置项目编译选项,指定编译器(如ARM GCC),关联驱动库文件,确保编译时能正常调用硬件驱动、网络接口和MQTT相关函数。

2.2 固件烧录

W55RP20-EVB-Pico 模块完全兼容树莓派 Pico 的 UF2 固件烧录方式,操作简单无需额外烧录器,新手可快速上手:

  1. 按住 RP2040 开发板上的 BOOTSEL 按键不放;

  2. 使用 Micro USB 数据线连接开发板与电脑;

  3. 待电脑识别出名为 RPI-RP2 的 U 盘后,松开 BOOTSEL 按键;

  4. 将编译生成的 UF2 固件文件拖拽到 U 盘中;

  5. 开发板会自动重启,固件烧录完成。

3、硬件连接与串口配置

3.1 硬件连接

W55RP20-EVB-Pico 模块连接分为两步,分别实现供电/调试和以太网连接,操作简单,无需复杂接线,与基础MQTT实战连接方式一致:

3.1.1 基础连接(供电+调试)

使用 Micro USB 数据线连接 RP2040 开发板与电脑,用于开发板供电、固件烧录和串口调试。

3.1.2 以太网连接

使用网线连接 W55RP20-EVB-Pico 模块的以太网接口与路由器的 LAN 口(或直接连接电脑网口,需手动配置电脑 IP 与开发板同网段)。

3.1.3 模块与开发板接线(分离式模块适用)

若使用分离式模块与开发板,需按以下引脚对应连接(SPI 通信):

【硬件预留】此处插入硬件连接示意图

3.2 串口调试配置

打开vscode串口调试助手,按以下参数配置,用于查看开发板运行日志和调试信息,定位阿里云MQTT连接和数据上传问题:

  1. 波特率:115200

  2. 数据位:8

  3. 停止位:1

  4. 校验位:无

  5. 流控:无

  6. 选择开发板对应的串口(通常显示为 COMx),点击打开串口。

4、阿里云MQTT协议规范解析

阿里云IoT平台采用MQTT 3.1.1协议(与代码中adafruit_minimqtt库默认配置一致),基于发布/订阅模式实现设备与云平台的通信,核心特点是身份认证严格、数据格式规范、稳定性高,适配工业级远程监控场景,与本地MQTTX服务器相比,重点差异在于身份认证和数据格式。

4.1 核心连接规范

  • 协议版本:MQTT 3.1.1(adafruit_minimqtt库默认支持,无需手动配置);

  • 连接端口:默认1883(无加密端口,适合调试;生产环境可使用8883加密端口,需额外配置SSL);

  • Broker地址:阿里云平台自动生成,格式为“ProductKey.iot-as-mqtt.地域标识.aliyuncs.com”(如上海地域为cn-shanghai);

  • 身份认证:必须配置ClientID、用户名、密码(均由阿里云平台生成),缺一不可,否则无法连接;

  • ClientID格式:ProductKey.DeviceName|securemode=2,signmethod=hmacsha256,timestamp=xxxxxxxxx|(平台自动生成,直接复制即可);

  • 用户名格式:DeviceName&ProductKey(平台自动生成,直接复制即可);

  • 密码:由平台根据设备密钥生成,是唯一的认证凭证,不可泄露;

  • 保活机制:代码中通过mqtt_client.loop()实现心跳保活,确保设备与云平台连接稳定,无需手动维护。

4.2 数据格式规范

阿里云IoT平台要求设备上传的数据必须为JSON格式,且需符合平台规定的参数格式,否则数据无法被平台识别和解析。本实战实现温湿度数据上传,采用阿里云标准属性上报格式,示例如下:

{ "id":"1", 
"version":"1.0",
 "params":{ "Temperature":26.5, "Humidity":60.0 },
 "method":"thing.event.property.post"
 }

说明:

  • id:自定义标识,可固定为1,用于区分不同的上报消息;

  • version:版本号,固定为1.0;

  • params:核心参数,里面包含温湿度数据(Temperature为温度,Humidity为湿度),可根据实际传感器修改参数名;

  • method:固定为“thing.event.property.post”,表示设备属性上报,不可修改。

4.3 标准主题格式

阿里云IoT平台的主题由系统自动生成,设备只能向指定主题发布数据(属性上报主题),无需手动创建主题,格式固定为:

/sys/ProductKey/DeviceName/thing/event/property/post

其中,ProductKey和DeviceName替换为自己阿里云设备的对应参数,代码中已封装好主题拼接逻辑,只需替换ProductKey和DeviceName即可,无需手动拼接。

4.4 极简工作流程

  1. 开发板初始化:完成W55RP20硬件初始化、SPI配置、以太网初始化,获取局域网IP,确保能访问互联网;

  2. MQTT连接:通过adafruit_minimqtt库初始化MQTT客户端,配置阿里云MQTT连接参数(ClientID、用户名、密码、Broker地址),与阿里云IoT平台建立连接;

  3. 数据封装:按阿里云JSON格式,封装温湿度参数(本实战使用固定值,后续可替换为传感器采集值);

  4. 数据上传:按固定周期(每5秒),将封装好的JSON数据发布到阿里云指定主题,平台接收并展示数据,完成远程上传。

5、核心CircuitPython代码复制与烧录

5.1 依赖库说明

核心依赖3类库,与上一篇MQTTX实战完全一致,无需额外添加阿里云专用库,代码中已集成阿里云连接配置、JSON数据封装、定时上传和异常处理逻辑,直接关联到项目中即可使用:

  • 基础库(time、board、bitbangio、digitalio):CircuitPython自带,用于时间控制、引脚配置、SPI通信;

  • adafruit_wiznet5k库:用于实现W55RP20硬件初始化、以太网连接、IP获取等功能;

  • adafruit_minimqtt库:用于实现MQTT客户端的初始化、连接、发布、回调等功能,适配阿里云MQTT 3.1.1协议和身份认证机制。

5.2 完整CircuitPython代码(主程序)

将以下代码复制到Thonny项目的主文件(如code.py)中,重点替换阿里云MQTT连接参数(ClientID、用户名、密码、ProductKey、DeviceName、Broker地址),烧录到开发板后即可运行,代码注释清晰,关键配置部分已标注,可直接修改。

import time
import board
import bitbangio
import digitalio

from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K
from adafruit_wiznet5k.adafruit_wiznet5k_socketpool import SocketPool

import adafruit_minimqtt.adafruit_minimqtt as MQTT


print("===================================")
print(" Aliyun W5500 Temp/Humidity Demo")
print("===================================")

# =========================================================
# 阿里云 MQTT 参数
# 直接使用控制台生成的 MQTT 参数
# =========================================================

CLIENT_ID = "a1oItX6fwtb.W5500_01|securemode=2,signmethod=hmacsha256,timestamp=1779069083150|"

USERNAME = "W5500_01&a1oItX6fwtb"

PASSWORD = "c56278b60f17982b247cdbdf5494ce6354f1646be21bbf4d92b9e393725964ef"

MQTT_BROKER = "a1oItX6fwtb.iot-as-mqtt.cn-shanghai.aliyuncs.com"

MQTT_PORT = 1883


# =========================================================
# ProductKey / DeviceName
# =========================================================
PRODUCT_KEY = "a1oItX6fwtb"

DEVICE_NAME = "W5500_01"


# =========================================================
# 发布 Topic
# =========================================================
PUB_TOPIC = (
    "/sys/" +
    PRODUCT_KEY +
    "/" +
    DEVICE_NAME +
    "/thing/event/property/post"
)


# =========================================================
# W5500 引脚
# =========================================================
cs = digitalio.DigitalInOut(board.GP20)

rst = digitalio.DigitalInOut(board.GP25)

rst.direction = digitalio.Direction.OUTPUT

print("Reset W5500...")

rst.value = False
time.sleep(0.2)

rst.value = True
time.sleep(2)


# =========================================================
# SPI
# =========================================================
print("Init SPI...")

spi_bus = bitbangio.SPI(
    board.GP21,
    MOSI=board.GP23,
    MISO=board.GP22
)


# =========================================================
# DHCP
# =========================================================
print("Start DHCP...")

eth = WIZNET5K(spi_bus, cs)

print("DHCP Success")

print("IP Address:", eth.pretty_ip(eth.ip_address))


# =========================================================
# Socket Pool
# =========================================================
pool = SocketPool(eth)


# =========================================================
# MQTT 回调
# =========================================================
def connected(client, userdata, flags, rc):

    print("\n[ MQTT Connected ]")

    print("Broker :", MQTT_BROKER)

    print("Topic  :", PUB_TOPIC)


def disconnected(client, userdata, rc):

    print("[ MQTT Disconnected ]")


# =========================================================
# MQTT Client
# =========================================================
mqtt_client = MQTT.MQTT(
    broker=MQTT_BROKER,
    port=MQTT_PORT,
    username=USERNAME,
    password=PASSWORD,
    client_id=CLIENT_ID,
    socket_pool=pool,
)

mqtt_client.on_connect = connected

mqtt_client.on_disconnect = disconnected


# =========================================================
# 连接 MQTT
# =========================================================
print("Connecting Aliyun MQTT...")

try:

    mqtt_client.connect()

    print("Aliyun MQTT Connected OK")

except Exception as e:

    print("MQTT Connect Failed:", repr(e))

    while True:

        time.sleep(1)


# =========================================================
# 上传函数
# =========================================================
def upload_data(temp, hum):

    payload = """
{
    "id":"1",
    "version":"1.0",
    "params":{
        "Temperature":%.1f,
        "Humidity":%.1f
    },
    "method":"thing.event.property.post"
}
""" % (temp, hum)

    print("\n========== Upload ==========")

    print(payload)

    mqtt_client.publish(
        PUB_TOPIC,
        payload
    )

    print("Upload Success")

    print("============================")


# =========================================================
# 主循环
# =========================================================
print("Start Uploading...\n")

last_time = 0


while True:

    try:

        mqtt_client.loop()

        # 每5秒上传一次
        if time.monotonic() - last_time > 5:

            last_time = time.monotonic()

            # 固定温湿度
            temperature = 26.5

            humidity = 60.0

            upload_data(
                temperature,
                humidity
            )

    except Exception as e:

        print("Loop Error:", repr(e))

    time.sleep(0.1)

5.3 代码关键配置说明(必看,否则连接失败)

  • 阿里云MQTT参数配置:ClientID、用户名、密码、Broker地址、ProductKey、DeviceName,必须替换为自己阿里云设备的参数,复制平台生成的内容即可,不可手动修改格式(尤其是ClientID的特殊符号);

  • Topic配置:PUB_TOPIC由代码自动拼接,无需手动修改,只需确保ProductKey和DeviceName正确即可,若拼接错误,数据无法上传到阿里云;

  • 引脚配置:CS、RST、SPI引脚(GP20、GP25、GP21、GP23、GP22)需与硬件连接一致,若修改硬件接线,需同步修改代码中的引脚定义;

  • DHCP配置:代码中默认使用DHCP自动获取IP,需确保路由器已开启DHCP,且开发板能正常访问互联网(可通过ping阿里云Broker地址测试);

  • 自动重连:代码中集成异常处理逻辑,当MQTT连接断开、循环出错时,会自动尝试重新连接,无需手动重启开发板;

  • 温湿度数据:本实战使用固定值(26.5℃、60.0%RH),后续可替换为DHT11/DHT22等温湿度传感器的采集值,只需修改temperature和humidity变量即可;

  • 上传周期:默认每5秒上传一次,可修改“time.monotonic() - last_time > 5”中的“5”,调整上传周期(单位:秒)。

5.4 编译与烧录步骤

  1. 打开Thonny,将上述代码复制到code.py文件中,修改阿里云MQTT相关参数(ClientID、用户名、密码等);

  2. 确认开发板通过Micro USB数据线连接电脑,Thonny已识别开发板(解释器选择正确);

  3. 点击Thonny工具栏中的“保存”按钮,将代码保存到开发板(选择“W55RP20”对应的存储设备);

  4. 保存完成后,开发板会自动运行代码,打开串口调试助手,即可查看运行日志;

  5. 若代码有修改,重复步骤1-3,重新保存即可完成烧录,无需额外操作。

6、运行结果与阿里云平台验证

6.1 串口输出结果

烧录完成后,开发板自动重启,打开串口调试助手,会输出以下内容,说明以太网初始化、阿里云MQTT连接及数据上传功能正常:

===================================
 Aliyun W5500 Temp/Humidity Demo
===================================
Reset W5500...
Init SPI...
Start DHCP...
DHCP Success
IP Address: 192.168.1.140
Connecting Aliyun MQTT...

[ MQTT Connected ]
Broker : a1oItX6fwtb.iot-as-mqtt.cn-shanghai.aliyuncs.com
Topic  : /sys/a1oItX6fwtb/W5500_01/thing/event/property/post
Aliyun MQTT Connected OK
Start Uploading...


========== Upload ==========

{
    "id":"1",
    "version":"1.0",
    "params":{
        "Temperature":26.5,
        "Humidity":60.0
    },
    "method":"thing.event.property.post"
}

Upload Success
============================

说明:若打印“MQTT Connect Failed”,检查阿里云参数配置(重点核对ClientID、用户名、密码)和开发板网络连接(确保能访问互联网),开发板会自动重试;若一直无法连接,参考“常见问题排查”部分。

6.2 阿里云平台数据验证

打开阿里云IoT平台,进入设备详情页,通过以下两种方式验证数据上传是否成功:

  1. 方式一:设备在线状态验证——在设备详情页,“设备状态”显示“在线”,说明开发板与阿里云平台连接成功;

  2. 方式二:数据上传验证——点击“监控运维”→“设备日志”,可查看数据上传记录,显示“thing.event.property.post”,说明数据上传成功;

  3. 方式三:数据可视化验证——点击“监控运维”→“物模型数据”,可实时查看温湿度数据(Temperature为26.5℃,Humidity为60.0%RH),数据会每5秒更新一次。

至此,W55RP20的CircuitPython版MQTT协议与阿里云IoT平台对接实战完成!

7、常见问题一站式排查

结合阿里云IoT平台对接的特殊性(身份认证、互联网连接、数据格式),以下是高频问题及排查步骤,优先排查连接参数和网络配置问题:

问题现象

排查步骤

1. 串口无打印或打印乱码

1. 确认串口参数配置正确(波特率115200、无校验);2. 固件为W55RP20专属CircuitPython固件;3. 重新烧录固件,检查USB数据线是否支持数据传输;4. 确认Thonny解释器选择正确。

2. DHCP获取IP失败,提示Start DHCP后无后续输出

1. 确认路由器已开启DHCP功能;2. 检查以太网接线是否正常,网线是否完好;3. 重启路由器和开发板;4. 手动配置开发板IP,确保能访问互联网。

3. MQTT连接失败,提示Connect Failed

1. 确认ClientID、用户名、密码、Broker地址与阿里云平台一致,无拼写错误;2. 检查开发板能正常访问互联网(ping Broker地址测试);3. 确认阿里云设备未被禁用,状态正常;4. 关闭电脑防火墙,避免拦截连接。

4. 能连接阿里云,但无法上传数据或平台接收不到

1. 检查PUB_TOPIC拼接是否正确(ProductKey、DeviceName无错误);2. 确认JSON数据格式符合阿里云规范,无语法错误;3. 查看阿里云设备日志,排查数据上报异常原因;4. 检查代码中mqtt_client.publish()函数调用是否正确。

5. 数据上传不稳定,频繁断开连接

1. 检查以太网接线是否松动,路由器网络是否稳定;2. 增加主循环中的sleep时间(如修改为0.5秒),减少数据处理压力;3. 检查开发板供电是否稳定,避免供电不足导致断开;4. 尝试修改上传周期,避免频繁上传导致连接异常。

6. 阿里云平台显示设备离线,但串口提示连接成功

1. 检查ClientID格式是否正确(尤其是末尾的“|”不可缺失);2. 确认开发板能正常访问互联网,无网络中断;3. 重启开发板和阿里云设备,重新建立连接;4. 检查阿里云平台的设备密钥是否与密码对应。

8、W55RP20 核心优势对比

为了让你更直观地了解 W55RP20 在阿里云上云场景中的价值,我们对比了目前主流的三种嵌入式以太网方案,适配CircuitPython开发场景:

对比维度

W55RP20 集成方案

外接 PHY 芯片 方案

外接 串口转以太网模块 方案

BOM 成本

低(单芯片,集成TCP/IP协议栈)

中高(MCU + 模块 + 外围器件)

PCB 面积

小(仅需网口电路,适配小体积设备)

大(需预留芯片和布线空间)

开发难度

低(官方CircuitPython驱动库,一行代码联网,无需底层开发,适配阿里云认证)

中高(调试协议栈、编写驱动,适配CircuitPython和阿里云难度高)

低,但灵活性差

网络稳定性

极高(WIZnet 专注硬件 TCP/IP 协议栈 25 年,适配CircuitPython环境,上云连接稳定)

不定(对于研发人员要求高,熟悉协议栈与CircuitPython、阿里云适配,才能调试稳定)

不定(视模块集成情况,易出现通信延迟、数据丢失)

CPU 资源占用

0%(协议栈网络处理完全由硬件完成,不占用RP2040资源,可专注阿里云数据处理)

50% 以上(协议栈完全运行在 MCU 上,占用相关资源,影响数据上传效率)

0%,但数据传输效率低

硬件 Socket 数量 8 个独立硬件 Socket 视 MCU 能力而定,理论支持多路拓展 一般为单路透传
网络吞吐量 最高 15Mbps 视 MCU 能力而定 约 3-5Mbps
接口易用性 单芯片集成 要 MCU 带有 MII/RMII 等接口 TTL 接口
部署难度 低(MicroPython 成熟固件,应用层协议绝大部分均有库文件,可灵活添加部署) 高(应用层协议需要手动移植开源库适配)

视模块集成情况,无集成的功能需要自我封包拆

9. 典型应用场景

W55RP20 芯片集成以太网功能,结合其工业级稳定性,非常适合以下应用场景:

1.工业数据采集网关:简化现场部署,实现传感器数据的稳定上传

2.远程监控终端:用于工厂、机房、变电站等环境的设备状态远程监控

3.串口转网口设备:将传统 RS232/RS485 串口设备快速升级为以太网设备

4.智能楼宇节点:用于照明、空调、门禁等楼宇设备的网络控制

5.工业 PLC 扩展模块:为 PLC 增加以太网通信能力,实现远程编程和数据采集

10. 系列预告与资源获取

10.1系列预告

下一篇教程我们将讲解 W55RP20 MicroPython开发下的 MQTT+阿里云实现上传数据,带你了解连接建立、心跳包维护、异常重连等关键机制,掌握嵌入式以太网通信的基础能力。

10.2 资源获取

本文完整代码:WIZnet 官方 Gitee 仓库
W55RP20 芯片手册:WIZnet 官方资料网址


如果本文对你有帮助,欢迎点赞、收藏、关注,你的支持是我们持续更新的动力!如有任何问题,欢迎在评论区留言,我们会第一时间回复。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐