Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
网络学习营
【网络编程学习】+ A Byte of China + Onenet平台接入
发布于 2018-08-14 17:41:41 浏览:2803
订阅该版
* 本帖最后由 ianhom 于 2018-8-16 23:50 编辑 * 顺利进入第三周的学习,有了前两周的基础,本周的学习也越来越有趣,让我们通过RT-Thread来接入onenet吧 有同学会问onenet是什么,[onenet](https://open.iot.10086.cn/)是中国移动的物联网平台,物联网终端设备可以把数据通过网络直接上传到该平台进行展示,或通过该平台下发控制命令来控制你的物联网终端设备。简单来说就是以往与终端设备交互的上位机,现在变成了中国移动的服务器,这个服务器上已经帮我们搭建好了很多成熟丰富的应用,并提供了便捷的接口来进行交互,极大的方便了物联网产品的开发和现场的部署。除了中国移动的onenet平台,电信、联通、华为、百度、阿里、腾讯、亚马逊等都有相应的物联网云平台产品。上述为个人人肉码字的经验,更多详情请自行百度。 如上所述,物联网云平台的出现,极大提升了物联网终端节点的开发与部署,如果因终端设备接入云平台这个过程耽误了开发,就无快速成型的效果了。所以RT-Thread作为一款2D(to Developer)的产品,它充分理解了“用户”、“需求”和“场景”,为大家提供了便捷的[onenet平台接入组件](https://www.rt-thread.org/document/site/submodules/onenet/docs/samples/),让使用RT-Thread的小伙伴分分钟做出有趣的产品。下面就让我们按照教程,一步步接入onenet平台吧。 对了,之前忘记说了,onenet支持HTTP,MQTT,NB-IoT等方式的接入,本次学习的是MQTT接入,不了解MQTT的小伙伴请自行学习RT-Thread文档和百度。 从这里开始要分成两个部分操作,一个是在**onenet平台上的操作,一个是在rt-thread侧的操作。** 在onenet上我们需要创建**产品**、**设备和数据流**,这里有个概念需要说明一下,**产品**是对设备类别的定义,**设备**是对具体某个终端节点的定义,举个例子,产品=iphoneX这**一款**手机,设备=小明的iphoneX这**一个**手机。**数据流**则用于区分具体设备节点上多个数据类别。有了这些概念,让我们开始onenet上的相关操作吧。 首先我们先键入[onenet官网](https://open.iot.10086.cn/),完成注册后,点击开发者中心,然后创建**产品。**  选择**wifi**连接方式,接入协议选择**MQTT**(还有其他接入协议如HTTP/TCP等,有兴趣的小伙伴可以尝试一下)。  建立完成产品之后,就可以在产品页面中看到我们新建的产品,点击产品名进入**产品概况**。在**产品概况**中可以看到**产品ID**和**产品APIkey**,这两点在后面会使用到。此外在该页面中我们可以看到该产品中没有设备,所以我们需要添加具体的**设备**。   先定义一个易记的设备名称,然后填入一个鉴权信息,注意这个信息针对**每一个设备都是不同的。**  完成产品创建后,我们就可以在“**设备管理**”页面中看到刚创建的设备,设备名旁边的灰色圆点表示目前设备不在线(我们目前还没有开始终端侧的开发)。点击设备名可以看到设备的详细信息,在这里我们需要添加**设备APIkey**。  在此页面中填入APIkey名称(自定),和关联设备的名称(此例为之前设备名rtt1),然后就可以生成设备**APIkey。**  到目前为止,我们就创建好了**产品**和**设备**,这里需要记录5个数据,用于终端侧进行匹配,如图依次是:**1-设备ID,2-鉴权信息,3-设备APIkey,4-产品ID,5-产品APIkey**。   最后我们还需要创建一个**数据流**,在页面左侧栏选择**数据流模板**,点击**添加数据流**,按如图所示**创建数据流**。  完成数据流创建后,就可以在设备管的**数据流管理**中看到数据(此时还没有数据)。至此 onenet侧的工作的就完成了。  ----------------------------------------我是华丽的分界线------------------------------------------------------------------------------ 现在我们开始**RT-Thread终端侧**的配置,这里我们还是使用qemu来模拟。 首先menuconfig onenet的应用,路径如图所示,这里需要使能**onenet sample**和**onenet MQTT protocol**(之前因为没有使能onenet sample,导致无法使用onenet_set_cmd_rsp等命令),然后在后面的5项中填入上文提及的**1~5点(设备ID,鉴权信息,设备APIkey,产品ID,产品APIkey)**关键信息。  然后增加文件系统支持的文件类型数和文件个数(这里设置小了会导致后面无法验证)。  然后进行pkgs --update, scons就完成了**RT-Thread终端侧**的配置 ----------------------------------------我是华丽的分界线------------------------------------------------------------------------------ 试验结果 进入qemu环境,输入**onenet_mqtt_init**初始化,显示连接正常。  这时再回到onenet的页面看**设备管理**,会发现设备已经**上线**。  我们先进行下行试验,如图所示在设备管理中选择发送命令,输入内容,选择字符串类型,点击发送。   这时RT-Thread会收到数据,但暂时无法打印收到的内容,这时因为我们还没有注册收到信息后的回调函数。  通过**onenet_set_cmd_rsp**命令完成注册,这样就可以打印收到的信息了(这里遇到一个坑,就是在menuconfig的onenet设置中没有使能onenet sample,所以找不到onenet_set_cmd_rsp这条命令)  完成了下行命令之后,让我们试试数据上行,输入**onenet_upload_cycle**命令,RT-Thread将定时上发随机的温度值到onenet平台的**temperature数据流**中(一定要记得创建这个数据流)  这时我们可以在onenet平台的**设备管理**的**数据流管理**中看到我们的数据。  然后我们试一下主动上发,这里氛围数值和字符,但在onenet平台貌似是同一种解析,我们同样把他发送到temperature数据流中,依次为20,,25,30,35。  这里我们可以看到Temperature的数据展示就和我们输入的一样。 至此上下行的试验我们就做完了。  What's more 数据已经上传到onenet平台了,但我们不会每次登陆onenet平台进行控制,所以onenet会提供接口给我们对接到我们自己的系统中。为了演示这样的效果,onenet平台还提供了可视化的应用可以快速给我们出demo,这里为大家演示一下。 先进入**产品概况**,点击**创建应用**。填写应用名称(自定)。   然后进入点击**编辑**,进入编辑页面。  我们在这里添加三个组件:**开关,命令行和折线图**。  开关组件选择设备为**rtt1**,开关开值为“**RT-Thread ON**”,开关关值为“**RT-Thread OFF**”。  命令框组件选择设备为**rtt1**.  折线图组件选择设备为**rtt1**,**数据流为temperature**。  然后点击保存,**预览**,点击开关ON、OFF,这是RT-Thread终端可以显示“RT-Thread ON”和“RT-Thread OFF”  在命令框内输入字符,非十六进制发送,这时RT-Thread终端将收到“Hello, RT-Thread”  我们输入**onenet_upload_cycle**命令让其周期上发随机温度值,我们可以在onenet页面上看到实时的数据。  总结: 至此,onenet平台学习结束,中间遇到了许多小坑,都是自己没有好好看教程导致的。坑1:是在menuconfig的onenet设置中没有使能onenet sample,所以找不到onenet_set_cmd_rsp这条命令。 坑2:教程中详细说明了创建产品和设备,没有说明创建数据流的过程。 坑3:有时候pkgs --update会失败,有可能是网路问题,更换网络即可。 RT-Thread的onenet组件确实为开发者提供了非常便捷的方式接入了物联网平台,期待各位小伙伴有更多更有趣的应用。 
查看更多
3
个回答
默认排序
按发布时间排序
艾那的小强
2018-08-15
这家伙很懒,什么也没写!
步骤非常详细。谢谢分享。
armink
2018-08-15
这家伙很懒,什么也没写!
赞,整理的这么详细,楼主费心了。 >中间遇到了许多小坑,都是自己没有好好看教程导致的 --- 可不可以列一下呢,这样我们的教程对一些容易出错的地方,好增加一些强调
ianhom
2018-08-15
这家伙很懒,什么也没写!
>赞,整理的这么详细,楼主费心了。 --- 回头我在整理一下帖子~~
撰写答案
登录
注册新账号
关注者
0
被浏览
2.8k
关于作者
ianhom
这家伙很懒,什么也没写!
提问
17
回答
16
被采纳
0
关注TA
发私信
相关问题
1
【LWIP学习营】第一关开发环境搭建
2
LWIP学习营第一周入门移植问题汇总贴
3
【LWIP学习营】f407+lan8720A小结
4
【LwIP学习营】【第一周】仅零散记录,无主题
5
【LWIP学习营】正点原子探索者F407+LAN8720第一周小结
6
【LwIP学习营】【第一周】网络通信基础及实现TCP 聊天客户端
7
【LwIP学习营】【第一周】LWIP移植
8
【LwIP学习营】【第一周】LWIP移植
9
【LwIP学习营】【第一周】开发板适配
10
【LwIP学习营】【第一周】环境搭建和配置验证
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【面向零基础】基于星火1号开发板从头学习基于RT-Thread的嵌入式开发 第一讲
2
新版OneNet的星火1号开发板例程适配(下)
3
基于RT-Thread的STM32F4开发第六讲——PWM输出(CH1和CH1N)
4
RT-Thread 携手 Copilot:智能代码审查,加速开源协作
5
重磅预售!RT-Trace调试工具
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
FAL
RTC
rt-smart
I2C_IIC
cubemx
UART
ESP8266
WIZnet_W5500
ota在线升级
BSP
PWM
flash
packages_软件包
freemodbus
潘多拉开发板_Pandora
GD32
ADC
定时器
编译报错
flashDB
keil_MDK
socket
中断
rt_mq_消息队列_msg_queue
Debug
ulog
SFUD
msh
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
6
个答案
3
次被采纳
xiaorui
3
个答案
1
次被采纳
yans
2
个答案
1
次被采纳
tjrong
1
个答案
1
次被采纳
miandian_7
1
个答案
1
次被采纳
本月文章贡献
Pai同学
8
篇文章
11
次点赞
Rick98
3
篇文章
10
次点赞
RTT_逍遥
2
篇文章
10
次点赞
加缪
1
篇文章
2
次点赞
河南理工大学恁带劲儿
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部