第 11 篇:W55RP20-EVB-Pico C实战:HTTP 协议与 OneNET 平台数据上云前置验证


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

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

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

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

本文将带你学习:

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

 平台操作流程

 创建设备

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

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

创建数据流模板

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

系列教程学习路径
本专栏共 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 工业协议通信

目录

第 11 篇:W55RP20-EVB-Pico C实战:HTTP 协议与 OneNET 平台数据上云前置验证

 平台操作流程

 创建设备

​编辑

创建数据流模板

一、准备工作

1.1 软件准备

1.2 硬件准备

1.3 本篇实际使用的工程文件

二、W55RP20 C语言开发环境与固件说明

2.1 工程位置

2.2 本篇对应固件

2.3 编译命令

三、硬件连接与网络配置

3.1 硬件连接

3.2 开发板默认网络参数

四、HTTP POST JSON 极简解析

五、核心 C 语言代码复制与编译烧录

5.1 主程序入口

5.2 JSON Body 构造

5.3 编译与烧录步骤

六、运行结果与 HTTP POST JSON 验证

6.1 串口输出结果

6.2 结果说明

七、常见问题一站式排查

八、W55RP20 在这类协议验证中的核心优势

九、典型应用场景

十、系列预告与资源获取

10.1 系列预告

10.2 资源获取


1. 准备工作

1.1 软件准备

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

表格

软件名称 版本要求 下载地址 说明
Thonny 4.0 及以上 Thonny 官方下载 轻量级

CircuitPython

IDE,支持代码编辑、烧录与串口调试
W55RP20-EVB-Pico 模块

CircuitPython

固件
最新稳定版 WIZnet 官方固件下载 专为 W55RP20-EVB-Pico 模块 编写,已集成 WIZnet 硬件驱动、协议栈与 HTTP 库
OneNET 平台账号 - 中移 OneNET 官网 用于创建设备、获取鉴权信息、查看上报数据

1.2 硬件准备

W55RP20-EVB-Pico 模块已集成以太网相关器件,无需额外焊接飞线,配合 RP2040 开发板可快速搭建开发环境,大幅降低接线错误和硬件故障概率。

  • W55RP20-EVB-Pico × 1
  • Micro USB 数据线(必须支持数据传输,不能使用纯充电线)× 1
  • 标准网线 × 1
  • 开启 DHCP 功能的路由器 / 交换机 × 1(用于获取网络参数,实现 DNS 解析)

2. 烧录 W55RP20-EVB-Pico 模块专属 MicroPython 固件

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

  1. 按住 RP2040 开发板上的 BOOTSEL 按键不放;
  2. 使用 Micro USB 数据线连接开发板与电脑;
  3. 待电脑识别出名为 RPI-RP2 的 U 盘后,松开 BOOTSEL 按键;
  4. 将下载好的 W5500_RP2040_firmware.uf2 固件文件拖拽到 U 盘中;
  5. 开发板会自动重启,固件烧录完成。

注意:如果电脑没有识别出 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 口(或直接连接电脑网口,需手动配置电脑 IP 与开发板同网段)。

3.1.3 模块与开发板接线

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

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

3.2 开发板默认网络参数

IP   = 192.168.11.20
SN   = 255.255.255.0
GW   = 192.168.11.1
DNS  = 8.8.8.8
PORT = 80

四、HTTP POST JSON 极简解析

本篇的核心思路是:

  1. 开发板构造一个 JSON Body
  2. 通过 HTTP POST 发送到测试服务
  3. 接收并打印服务器响应

这一步是后续对接 OneNET、阿里云等平台接口前非常合适的基础验证。

五、核心 C 语言代码复制与编译烧录

5.1 主程序入口

入口文件:

核心代码如下:

static uint8_t g_http_target_domain[] = "httpbin.org";
static uint8_t g_http_target_ip[4] = {107, 23, 218, 37};
static uint8_t g_http_target_uri[] = "/post";
request.method = (uint8_t *)HTTP_POST;
request.uri = g_http_target_uri;
request.host = g_http_target_domain;
request.connection = (uint8_t *)"close";
request.content_type = (uint8_t *)HTTP_CTYPE_APP_JSON;

5.2 JSON Body 构造

return (uint16_t)sprintf((char *)buf,
                         "{\"board\":\"W55RP20-EVB-Pico\",\"demo\":\"http-post-json\",\"sample\":%lu}",
                         (unsigned long)sample);

5.3 编译与烧录步骤

  1. 编译目标 w55rp20_http_post_json
  2. 生成 w55rp20_http_post_json.uf2
  3. 烧录开发板并重启

六、运行结果与 HTTP POST JSON 验证

6.1 串口输出结果

W5500 bring-up: version=0x04 pio-div=2.0 reset=10ms/100ms
W5500 net: MAC=00:08:DC:12:34:56 IP=192.168.11.20 GW=192.168.11.1 SN=255.255.255.0 DNS=8.8.8.8 DHCP=off
W5500 phy: mode=auto speed=100M duplex=full link=up
http-post: target host=httpbin.org ip=107.23.218.37 uri=/post

如果连接和请求都顺利,还会继续看到:

http-post: sent POST http://httpbin.org/post body-len=...
http-post: response len=...

6.2 结果说明

这一篇的意义不是宣称已经完成 OneNET HTTPS 接入,而是先验证:

  • POST 请求是否能发出
  • JSON Body 是否能正确携带
  • 响应是否能被正确接收

七、常见问题一站式排查

问题现象 排查步骤
1. 串口停在 target host=... 1. 检查目标 IP 或网络出口是否可达;2. 检查直连场景是否具备外网能力;3. 优先确认基础网络连通。
2. POST 无响应 1. 查看串口是否已打印 sent POST;2. 检查目标站点可用性;3. 检查网络是否允许外部 HTTP 连接。
3. 返回内容异常 1. 检查 JSON Body 构造是否正确;2. 检查 content_type 是否为 application/json;3. 查看完整串口回包。

八、W55RP20 在这类协议验证中的核心优势

对比维度 W55RP20 的优势说明
以太网接口形态 板载以太网接口,适合直接做上云前的 POST 请求验证。
网络协议处理 集成硬件 TCP/IP 协议栈,适合轻量级应用层协议实验。
工程交付方式 C 工程可直接生成 uf2 文件,便于快速迭代。
调试体验 串口可以完整打印请求和响应过程。
协议扩展能力 适合作为后续扩展认证头、平台参数和更完整云平台协议的基础工程。

九、典型应用场景

  • 上云前置联调
  • HTTP POST 数据上报验证
  • JSON 结构验证
  • 平台接入前的网络链路测试

十、系列预告与资源获取

10.1 系列预告

后续可在这版基础上继续扩展:

  • OneNET 认证参数
  • 平台 URL 适配
  • 更复杂的上报字段

10.2 资源获取

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐