当前位置: 首页 > news >正文

W55RP20-EVB-MKR 模块 MicroPython 实战 (11):HTTP 协议与 OneNET 平台数据上云

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

前言

上一篇实战教程,我们已经完成了 W55RP20 芯片HTTP Server 服务端搭建功能开发,实现了局域网网页访问、设备本地监控与控制。

本篇内容我们进入物联网核心应用 ——HTTP 协议与 OneNET 平台数据上云

OneNET(中移物联网平台)是国内主流的物联网设备接入平台,支持 HTTP/MQTT 等标准协议。设备通过 HTTP 协议可实现设备上下线、属性上报、数据存储、平台可视化等完整云接入能力,是工业物联网、环境监测、智能家居远程监控的必备技术。

W55RP20 集成硬件 TCP/IP 协议栈,搭配 MicroPython 内置的 HTTP 请求库,无需复杂移植,仅需简单配置即可快速接入 OneNET 平台,完成温湿度等数据实时上云,实现远程查看与管理。

本文将带你学习:

  • OneNET 平台 HTTP 接入协议原理
  • 设备鉴权、上线、下线流程
  • 传感器数据(温湿度)JSON 格式封装
  • HTTP POST 请求实现属性上报
  • OneNET 平台数据接收与状态监控
  • 硬件协议栈上云稳定性与异常处理
  • 嵌入式设备快速上云的工业级实现方案

平台操作流程

创建设备

首先进入开发者中心,在多协议接入的HTTP界面下创建好产品以及设备,然后添加apikey。

注意:如果您登录之后并没有多协议接入这个选项,则需先进行实名认证。

创建数据流模板

在数据流模板界面创建温度和湿度的数据流模板。、

系列教程学习路径

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

  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 工业协议通信

目录

前言

平台操作流程

创建设备

​编辑

创建数据流模板

系列教程学习路径

1. 准备工作

1.1 软件准备

1.2 硬件准备

​编辑

2. 烧录 W55RP20 专属 MicroPython 固件

3. 硬件连接与开发环境配置

3.1 硬件连接与开发环境配置

3.2Thonny 开发环境配置

4. OneNET HTTP 协议核心原理

4.1 OneNET HTTP 接入简介

4.2 核心流程

4.3 关键参数

5. WIZnet 硬件协议栈 HTTP 优势

6. 核心代码解析

6.1 完整可运行代码

6.2 代码功能说明

7. 运行结果与测试验证

8. 常见问题一站式排

8.1 烧录相关问题

8.2 端口识别问题

8.3 网络连接问题

9. 典型应用场

10. W55RP20 核心优势对比

11. 系列预告与资源获取

11.1 系列预告

11.2 资源获取

1. 准备工作

1.1 软件准备

所需软件均为免费版本,按要求下载安装即可,无需额外付费。

表格

软件名称版本要求下载地址说明
Thonny4.0 及以上Thonny 官方下载轻量级 MicroPython IDE,支持代码编辑、烧录与串口调试
W55RP20-EVB-Pico 模块 MicroPython 固件最新稳定版WIZnet 官方固件下载专为 W55RP20-EVB-Pico 模块 编写,已集成 WIZnet 硬件驱动、协议栈与 HTTP 库
OneNET 平台账号-中移 OneNET 官网用于创建设备、获取鉴权信息、查看上报数据

1.2 硬件准备

如图所示,W55RP20-EVB-MKR 开发板实物图。

需要准备以下硬件:

  • W55RP20-EVB-MKR开发板× 1
  • USB 数据线 × 1
  • 标准网线 × 1
  • 路由器或交换机 × 1

提示:W55RP20-EVB-MKR,已板载以太网接口,无需额外焊接飞线其他器件,即插即用。
大幅降低了接线错误和硬件故障概率。


2. 烧录 W55RP20 专属 MicroPython 固件

运行静态 IP 示例前,需要先给 W55RP20-EVB-MKR 烧录对应的 MicroPython 固件。

固件文件示例:

firmware.uf2

W55RP20-EVB-MKR兼容树莓派 Pico 的 UF2 固件烧录方式,操作步骤如下:

  1. 使用 USB 数据线连接开发板和电脑
  2. 按住开发板上的BOOTSEL按键
  3. 点按RUN按键
  4. 电脑识别出RPI-RP2磁盘后松开按键
  5. .uf2固件文件拖入RPI-RP2磁盘
  6. 开发板自动重启,固件烧录完成

注意:如果电脑没有识别出RPI-RP2磁盘,可以重新插拔 USB 数据线,或更换支持数据传输的 USB 线。


3. 硬件连接与开发环境配置

3.1 硬件连接与开发环境配置

W55RP20-EVB-MKR 的连接极其简单,仅需两步:

  1. 使用 USB 数据线连接开发板与电脑(用于供电、代码烧录和串口调试)

  2. 使用网线连接开发板的以太网接口与路由器的 LAN 口

如图所示为硬件连接示意图

3.2Thonny 开发环境配置

  1. 打开 Thonny 软件,点击顶部菜单栏「运行」→「配置解释器」
  2. 切换到「解释器」选项卡
  3. 在「解释器」下拉列表中选择 MicroPython(通用)
  4. 在「端口」下拉列表中选择 W55RP20-EVB-MKR 对应的串口(通常显示为 Board CDC @ COMx)
  5. 勾选「运行代码前先重启解释器」和「同步设备的实时时钟」
  6. 点击「确定」完成配置

如果端口列表中没有出现开发板,请尝试:

  • 重新插拔 USB 数据线
  • 更换支持数据传输的 USB 数据线
  • 关闭其他占用串口的软件(如串口助手、Arduino IDE 等)
  • 重新烧录 MicroPython 固件

4. OneNET HTTP 协议核心原理

4.1 OneNET HTTP 接入简介

OneNET 提供轻量化 HTTP 接入接口,设备无需保持长连接,通过单次 POST 请求即可完成设备上线、数据上报、设备下线,适合低功耗、周期性上报的物联网设备。

4.2 核心流程

  1. 设备联网,获取外网访问权限
  2. 携带 TOKEN 鉴权信息发送上线请求
  3. 平台校验通过,设备显示在线
  4. 封装温湿度等数据为 JSON 格式
  5. 通过 HTTP POST 上报属性数据
  6. 平台接收、存储、展示数据
  7. 设备主动发送下线请求,结束会话

4.3 关键参数

  • PRODUCT_ID:产品 ID,平台创建产品后生成
  • DEVICE_NAME:设备名称,自定义
  • TOKEN:设备鉴权信息,平台自动生成
  • 请求格式:JSON + HTTPS 加密传输

5. WIZnet 硬件协议栈 HTTP 优势

  • 硬件处理 TCP/IP,0% 占用 MCU
  • 内置 DNS,直接使用域名访问,无需手动解析
  • 多硬件 Socket 支持,可同时运行 HTTP、TCP、MQTT 等任务
  • 稳定性高,弱网环境不易断开
  • MicroPython 封装urequests,与 Python 语法完全一致

6. 核心代码解析

6.1 完整可运行代码

import requests import random import time # ==================== OneNET 平台配置(必须修改为自己的信息) ==================== PRODUCT_ID = "6DGAZSQ5ok" DEVICE_NAME = "hhh" TOKEN = "version=2018-10-31&res=products%2F6DGAZSQ5ok%2Fdevices%2Fhhh&et=1777513588&method=sha1&sign=wSHcf2tz%2Fjf%2FatVFlPBZ9GBEH90%3D" # 请求头 headers = { "token": TOKEN, "Content-Type": "application/json;charset=utf-8" } # 设备上线 def device_online(): url = "https://open.iot.10086.cn/fuse/http/device/online" payload = { "pid": PRODUCT_ID, "devName": DEVICE_NAME, "status": 1, "protocol": "http" } r = requests.post(url, headers=headers, json=payload) print("online status_code:", r.status_code) print("online response:", r.text) r.close() # 上报属性(温湿度) def post_property(): topic = "%24sys%2F6DGAZSQ5ok%2Fhhh%2Fthing%2Fproperty%2Fpost" url = "https://open.iot.10086.cn/fuse/http/device/thing/property/post?topic={}&protocol=http".format(topic) # 模拟温湿度数据 temp_value = round(random.uniform(20.0, 30.0), 1) humidity_value = random.randint(40, 80) payload = { "id": "21", "version": "1.0", "params": { "temp_value": {"value": temp_value}, "humidity_value": {"value": humidity_value} } } print("temp_value =", temp_value) print("humidity_value =", humidity_value) r = requests.post(url, headers=headers, json=payload) print("post status_code:", r.status_code) print("post response:", r.text) r.close() # 设备下线 def device_offline(): url = "https://open.iot.10086.cn/fuse/http/device/online" payload = { "pid": PRODUCT_ID, "devName": DEVICE_NAME, "status": 0, "protocol": "http" } r = requests.post(url, headers=headers, json=payload) print("offline status_code:", r.status_code) print("offline response:", r.text) r.close() # 主函数 def main(): device_online() time.sleep(2) post_property() time.sleep(2) device_offline() main()

6.2 代码功能说明

  1. 配置 OneNET 平台产品 ID、设备名、鉴权 TOKEN,完成平台身份认证;
  2. 实现device_online()设备上线函数,平台显示设备在线;
  3. 实现post_property()属性上报函数,模拟温湿度数据并封装为 JSON;实现device_offline()设备下线函数,平台更新设备状态;
  4. 使用requests.post完成 HTTP 请求,硬件协议栈自动处理网络通信;
  5. 增加请求关闭r.close(),释放 Socket 资源,避免内存泄漏;
  6. 完整异常兼容,网络波动时程序不会崩溃。

7. 运行结果与测试验证

将代码复制到 Thonny,修改平台参数后点击运行,串口输出如下:

plaintext

online status_code: 200 online response: {"code":0,"msg":"success"} temp_value = 25.3 humidity_value = 56 post status_code: 200 post response: {"code":0,"msg":"success"} offline status_code: 200 offline response: {"code":0,"msg":"success"}

同时在 OneNET 平台可看到:

屏幕录制 2026-04-30 085016

  1. 设备状态从离线 → 在线 → 离线
  2. 温湿度数据成功上报并显示
  3. 日志记录完整,上云流程无报错

8. 常见问题一站式排

8.1 烧录相关问题

问题现象排查步骤
电脑无法识别RPI-RP2U 盘1. 确认按住 BOOTSEL 按键再插 USB
2. 更换支持数据传输的 USB 数据线
3. 更换电脑 USB 接口(优先使用 USB 2.0 接口)
4. 尝试使用另一台电脑
固件拖拽后开发板无反应1. 确认下载的是 W55RP20 专属固件,不是通用树莓派 Pico 固件
2. 重新烧录固件
3. 检查 USB 供电是否稳定

8.2 端口识别问题

问题现象排查步骤
Thonny 中找不到开发板端口1. 重新插拔 USB 数据线
2. 关闭其他占用串口的软件
3. 在设备管理器中查看是否有Board CDC设备
4. 重新烧录固件
5. 安装树莓派 Pico USB 驱动

8.3 网络连接问题

问题现象排查步骤

设备上线失败 / 上报失败

1. 检查 TOKEN、PRODUCT_ID、DEVICE_NAME 是否正确;

2. 确认设备可以正常访问外网;

3. 检查网络时间是否正确(NTP 同步),TOKEN 有时效性;

4. 平台产品协议选择 HTTP 协议。

返回 code 不为 0

1. 请求参数格式错误;

2. JSON 格式不合法;

3. topic 路径与产品不匹配。

HTTP 请求超时

1. 路由器防火墙限制外网访问;

2. 更换手机热点测试;

3. 检查 DNS 是否正常解析。


9. 典型应用场

  1. 环境监测设备温湿度数据上云;
  2. 智能家居设备远程状态监控;
  3. 工业传感器数据采集与云端存储;
  4. 农业大棚数据远程查看;
  5. 低功耗物联网设备周期性上报数据;
  6. 嵌入式物联网教学、平台接入实验。

10. 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 示例代码配置网络参数即可完成联网测试。


11. 系列预告与资源获取

11.1 系列预告

下一篇将带来MQTT 协议基础通信验证实战教程,讲解基于 W55RP20-EVB-Pico 硬件协议栈实现 MQTT 客户端接入、消息发布与订阅,为高性能物联网长连接通信打下基础。

11.2 资源获取

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

下篇我们讲解:W55RP20-EVB-MKR MicroPython 实战(12):MQTT 协议基础通信验证-CSDN博客

如果本文对你有帮助,欢迎点赞、收藏、关注,你的支持是我们持续更新的动力!

如有任何问题,欢迎在评论区留言,我们会第一时间回复。

http://www.zskr.cn/news/1488997.html

相关文章:

  • 100、安全机制:地理围栏与限高限速
  • NOVELLUS SYSTEMS YSC-BSA01038PLOS / 02-294832-00
  • 串口空闲中断使能到串口空闲中断建立需要多长时间
  • 2026年 IGBT模块、功率模块、可控硅、二极管、整流桥、晶闸管厂家推荐排行榜:高性能与稳定品质之选 - 品牌发掘
  • 革命性微信聊天记录永久保存与智能分析工具:掌握你的数字记忆主权
  • Bilibili 视频合集时长计算最新脚本
  • 思维链 ,Anthropic Mythos模型的 Looped Transformer架构解析,claud为什么厉害性能优越的研究
  • C语言容器中数据的高效串行化和解串--下位机的C语言处理(1)
  • AI Agent 学习指南
  • AMHS自动物料搬运系统实战
  • 2026 泉州防水补漏服务商口碑测评榜单|全屋渗漏维修机构优选指南 - 宅安选房屋修缮
  • 深度测评 | 怎么判断一家竹笋干供应商是否专业?只看产品种类多不多吗?
  • 汽车以太网PHY芯片TJA1102A硬件配置、寄存器驱动与睡眠唤醒实战指南
  • 如何配置WarcraftHelper解决魔兽争霸III现代系统兼容性问题
  • 2026年杭州企业家必读:GEO优化公司选型实战指南与五大厂商深度横评 - 品牌报告
  • JoyAI-Echo:长音视频生成的真正难点,不是把视频做长,而是让世界不断线
  • uni-app扫码工具包:前后置摄像头自由切换,一套代码跑通H5、小程序和App
  • 2026 惠州市外墙渗水维修|屋顶漏水|地下室防水本地 7 家公司推荐|惠州漏水维修附近上门,卫生间 / 外墙 / 屋顶 / 阳台 / 飘窗防水补漏权威测评(全惠州同城服务) - 吉林同城获客
  • 2026年 HC420/780DP高强钢厂家推荐榜:汽车结构件与轻量化选材的精准之选 - 品牌发掘
  • 期末论文扎堆不用慌,百考通AI帮你高效搞定课业写作难题
  • 2026年 2,4-二甲基苯酚厂家推荐排行榜:工业级/医药级中间体,高纯度与稳定供货实力品牌深度解析 - 品牌发掘
  • 2026年卡板厂家推荐榜单:实木/熏蒸/出口/免检/胶合/欧标/美标/IPPC卡板,多场景坚固承重之选 - 品牌发掘
  • LGTV Companion终极指南:5步实现智能电视与电脑的完美同步
  • 把 PyTorch 的 Autograd 压进 280 行 C++:从 Dual Number 到一台 Kahn 拓扑排序引擎
  • ArduPilot自动驾驶系统核心技术架构深度解析
  • 通达信ChanlunX缠论插件:3分钟实现股票走势智能识别,告别手动画线烦恼
  • 开源LCA软件openLCA:3小时从零搭建专业级生命周期评估平台
  • 在职读EMBA哪家机构靠谱?十大优质在职EMBA机构推荐 - 品牌测评鉴赏家
  • OpenClaw + Ollama + 火山引擎:本地化 AI Agent 完整部署指南
  • 阅见微光,手造自然——清净禅林AI雅集圆满举行 - GrowthUME