第 13 篇:W55RP20-EVB-Pico CircuitPython实战:MQTT 协议与 阿里云对接
上一篇实战教程,我们完成了W55RP20芯片与MQTTX本地服务器的双向通信,掌握了MQTT协议基础应用与调试方法。本篇内容我们聚焦工业级物联网场景,实现W55RP20通过MQTT协议与阿里云IoT平台对接,完成温湿度数据定时上传、设备在线监控、消息回调处理等核心功能,掌握阿里云IoT平台配置、MQTT身份认证、JSON数据封装、定时上传逻辑等关键技能,适配远程数据监控、设备管理等工业级物联网场景
本文为 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 篇:静态 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、准备工作
1.1 软件准备
所需软件均为免费版本,按要求下载安装即可,无需额外付费,适配C语言开发需求,新增阿里云IoT平台相关操作工具。
|
软件名称 |
版本要求 |
下载地址 |
说明 |
|
Thonny |
4.0 及以上 |
轻量级 MicroPython IDE,支持代码编辑、烧录与串口调试,新手友好 |
|
|
W55RP20-EVB-Pico 模块 CircuitPython驱动库 |
最新稳定版 |
WIZnet 官方固件/驱动库下载 |
专为 W55RP20-EVB-Pico 模块编写,已集成 WIZnet 硬件驱动、TCP/IP协议栈及MQTT客户端库 |
|
串口调试助手(如SecureCRT) |
任意版本 |
官方下载或第三方工具 |
用于查看串口输出的运行日志、调试信息,定位连接和数据上传问题 |
|
阿里云IoT平台 |
在线版 |
创建产品、注册设备,获取MQTT连接参数,查看上传的温湿度数据 |
1.2 硬件准备

-
W55RP20-EVB-Pico × 1
-
Micro USB 数据线(必须支持数据传输,不能使用纯充电线)× 1
-
标准网线 × 1
-
开启 DHCP 功能的路由器 / 交换机 × 1(用于获取网络参数,实现 DNS 解析)
1.3 阿里云IoT平台准备
在进行代码开发前,需先在阿里云IoT平台完成产品创建和设备注册,获取MQTT连接所需的核心参数(客户端ID、用户名、密码),步骤如下:
-
登录阿里云IoT平台(需注册阿里云账号,个人版免费),进入「设备管理」→「产品」,点击「创建产品」;
-
产品配置:产品名称自定义(如W55RP20温湿度采集),所属品类选择「自定义品类」,节点类型选择「设备」,联网方式选择「以太网」,数据格式选择「JSON」,点击「确认创建」;

-
添加设备:进入创建好的产品,点击「设备管理」→「添加设备」,设备名称自定义(如W5500_01),点击「确认」,完成设备注册;
-
获取连接参数:进入设备详情页,点击「MQTT连接参数」,记录以下3个核心参数(后续替换到代码中):
-
客户端ID(Client ID):格式为「产品ID.设备名称|securemode=2,signmethod=hmacsha256,timestamp=xxxxxxxxx|」
-
用户名(Username):格式为「设备名称&产品ID」
-
密码(Password):通过阿里云签名工具生成(需输入设备密钥、客户端ID等信息,具体生成方法见下文代码说明)


-
-
添加物模型(可选):进入产品「物模型定义」,添加「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 固件烧录方式,操作简单无需额外烧录器,新手可快速上手:
-
按住 RP2040 开发板上的 BOOTSEL 按键不放;
-
使用 Micro USB 数据线连接开发板与电脑;
-
待电脑识别出名为 RPI-RP2 的 U 盘后,松开 BOOTSEL 按键;
-
将编译生成的 UF2 固件文件拖拽到 U 盘中;
-
开发板会自动重启,固件烧录完成。
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连接和数据上传问题:
-
波特率:115200
-
数据位:8
-
停止位:1
-
校验位:无
-
流控:无
-
选择开发板对应的串口(通常显示为 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 极简工作流程
-
开发板初始化:完成W55RP20硬件初始化、SPI配置、以太网初始化,获取局域网IP,确保能访问互联网;
-
MQTT连接:通过adafruit_minimqtt库初始化MQTT客户端,配置阿里云MQTT连接参数(ClientID、用户名、密码、Broker地址),与阿里云IoT平台建立连接;
-
数据封装:按阿里云JSON格式,封装温湿度参数(本实战使用固定值,后续可替换为传感器采集值);
-
数据上传:按固定周期(每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 编译与烧录步骤
-
打开Thonny,将上述代码复制到code.py文件中,修改阿里云MQTT相关参数(ClientID、用户名、密码等);
-
确认开发板通过Micro USB数据线连接电脑,Thonny已识别开发板(解释器选择正确);
-
点击Thonny工具栏中的“保存”按钮,将代码保存到开发板(选择“W55RP20”对应的存储设备);
-
保存完成后,开发板会自动运行代码,打开串口调试助手,即可查看运行日志;
-
若代码有修改,重复步骤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平台,进入设备详情页,通过以下两种方式验证数据上传是否成功:
-
方式一:设备在线状态验证——在设备详情页,“设备状态”显示“在线”,说明开发板与阿里云平台连接成功;

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

-
方式三:数据可视化验证——点击“监控运维”→“物模型数据”,可实时查看温湿度数据(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 官方资料网址
如果本文对你有帮助,欢迎点赞、收藏、关注,你的支持是我们持续更新的动力!如有任何问题,欢迎在评论区留言,我们会第一时间回复。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)