Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
网络学习营
【网络编程学习】+ A Byte of China + Onenet平台接入
发布于 2018-08-14 17:41:41 浏览:2722
订阅该版
* 本帖最后由 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/),完成注册后,点击开发者中心,然后创建**产品。** ![TIM截图20180814104431.png](/uploads/201808/14/125231v9t7wxpqoqqpqoiy.png) 选择**wifi**连接方式,接入协议选择**MQTT**(还有其他接入协议如HTTP/TCP等,有兴趣的小伙伴可以尝试一下)。 ![TIM截图20180814113803.png](/uploads/201808/14/125231x9eewofoo9e4pddf.png) 建立完成产品之后,就可以在产品页面中看到我们新建的产品,点击产品名进入**产品概况**。在**产品概况**中可以看到**产品ID**和**产品APIkey**,这两点在后面会使用到。此外在该页面中我们可以看到该产品中没有设备,所以我们需要添加具体的**设备**。 ![TIM截图20180814114259.png](/uploads/201808/14/125232v9e407eh370w6n79.png) ![TIM截图20180814114402.png](/uploads/201808/14/125233ov9vvpo3poon2o00.png) 先定义一个易记的设备名称,然后填入一个鉴权信息,注意这个信息针对**每一个设备都是不同的。** ![TIM截图20180814114751.png](/uploads/201808/14/125233lv7p9cccknw1qcdz.png) 完成产品创建后,我们就可以在“**设备管理**”页面中看到刚创建的设备,设备名旁边的灰色圆点表示目前设备不在线(我们目前还没有开始终端侧的开发)。点击设备名可以看到设备的详细信息,在这里我们需要添加**设备APIkey**。 ![TIM截图20180814114901.png](/uploads/201808/14/125234y70zdcw70kfqiiuu.png) 在此页面中填入APIkey名称(自定),和关联设备的名称(此例为之前设备名rtt1),然后就可以生成设备**APIkey。** ![TIM截图20180814115718.png](/uploads/201808/14/125234n0ezrj5m1024oelj.png) 到目前为止,我们就创建好了**产品**和**设备**,这里需要记录5个数据,用于终端侧进行匹配,如图依次是:**1-设备ID,2-鉴权信息,3-设备APIkey,4-产品ID,5-产品APIkey**。 ![TIM截图20180814121100.png](/uploads/201808/14/125234tjmmzlll5sdgxhqq.png) ![TIM截图20180814121154.png](/uploads/201808/14/125235qc0mvwll0cmchosw.png) 最后我们还需要创建一个**数据流**,在页面左侧栏选择**数据流模板**,点击**添加数据流**,按如图所示**创建数据流**。 ![TIM截图20180814121510.png](/uploads/201808/14/125236p2eath2td22zcoue.png) 完成数据流创建后,就可以在设备管的**数据流管理**中看到数据(此时还没有数据)。至此 onenet侧的工作的就完成了。 ![TIM截图20180814121247.png](/uploads/201808/14/125235pavrnwunwgzj3x3o.png) ----------------------------------------我是华丽的分界线------------------------------------------------------------------------------ 现在我们开始**RT-Thread终端侧**的配置,这里我们还是使用qemu来模拟。 首先menuconfig onenet的应用,路径如图所示,这里需要使能**onenet sample**和**onenet MQTT protocol**(之前因为没有使能onenet sample,导致无法使用onenet_set_cmd_rsp等命令),然后在后面的5项中填入上文提及的**1~5点(设备ID,鉴权信息,设备APIkey,产品ID,产品APIkey)**关键信息。 ![TIM截图20180814142402.png](/uploads/201808/14/163150w0x00002s1x0111x.png) 然后增加文件系统支持的文件类型数和文件个数(这里设置小了会导致后面无法验证)。 ![TIM截图20180814163759.png](/uploads/201808/14/163912t6rs2qrl2b88s2bs.png) 然后进行pkgs --update, scons就完成了**RT-Thread终端侧**的配置 ----------------------------------------我是华丽的分界线------------------------------------------------------------------------------ 试验结果 进入qemu环境,输入**onenet_mqtt_init**初始化,显示连接正常。 ![TIM截图20180814143002.png](/uploads/201808/14/162719akr2x3pii32v5i5k.png) 这时再回到onenet的页面看**设备管理**,会发现设备已经**上线**。 ![TIM截图20180814143106.png](/uploads/201808/14/162720jxfyk0f2fmxx001g.png) 我们先进行下行试验,如图所示在设备管理中选择发送命令,输入内容,选择字符串类型,点击发送。 ![TIM截图20180814143220.png](/uploads/201808/14/162720vamu0emjf7j5s05d.png) ![TIM截图20180814143257.png](/uploads/201808/14/162720btpgxmyfpm27aokk.png) 这时RT-Thread会收到数据,但暂时无法打印收到的内容,这时因为我们还没有注册收到信息后的回调函数。 ![TIM截图20180814143348.png](/uploads/201808/14/162720rgwmms2wm2ci6ci4.png) 通过**onenet_set_cmd_rsp**命令完成注册,这样就可以打印收到的信息了(这里遇到一个坑,就是在menuconfig的onenet设置中没有使能onenet sample,所以找不到onenet_set_cmd_rsp这条命令) ![TIM截图20180814145412.png](/uploads/201808/14/162720ttmkklkzkkjkkj02.png) 完成了下行命令之后,让我们试试数据上行,输入**onenet_upload_cycle**命令,RT-Thread将定时上发随机的温度值到onenet平台的**temperature数据流**中(一定要记得创建这个数据流) ![TIM截图20180814151521.png](/uploads/201808/14/162720mm6met2m2eeetr5h.png) 这时我们可以在onenet平台的**设备管理**的**数据流管理**中看到我们的数据。 ![TIM截图20180814151603.png](/uploads/201808/14/162721g89gj9rfmxfvwzr9.png) 然后我们试一下主动上发,这里氛围数值和字符,但在onenet平台貌似是同一种解析,我们同样把他发送到temperature数据流中,依次为20,,25,30,35。 ![TIM截图20180814153157.png](/uploads/201808/14/162721z9ivrrrn7kovgzsn.png) 这里我们可以看到Temperature的数据展示就和我们输入的一样。 至此上下行的试验我们就做完了。 ![TIM截图20180814153350.png](/uploads/201808/14/162721q3fmw3eoe3m4l35i.png) What's more 数据已经上传到onenet平台了,但我们不会每次登陆onenet平台进行控制,所以onenet会提供接口给我们对接到我们自己的系统中。为了演示这样的效果,onenet平台还提供了可视化的应用可以快速给我们出demo,这里为大家演示一下。 先进入**产品概况**,点击**创建应用**。填写应用名称(自定)。 ![TIM截图20180814165209.png](/uploads/201808/14/170747neg6cczvvclpu0wr.png) ![TIM截图20180814165259.png](/uploads/201808/14/170748v1xkkjxn1jixanxn.png) 然后进入点击**编辑**,进入编辑页面。 ![TIM截图20180814165327.png](/uploads/201808/14/170748ax60qxf3flq0p0ov.png) 我们在这里添加三个组件:**开关,命令行和折线图**。 ![TIM截图20180814165659.png](/uploads/201808/14/170748rwkky9o992lczy9l.png) 开关组件选择设备为**rtt1**,开关开值为“**RT-Thread ON**”,开关关值为“**RT-Thread OFF**”。 ![TIM截图20180814165720.png](/uploads/201808/14/170748actfo4m8wbsuqusy.png) 命令框组件选择设备为**rtt1**. ![TIM截图20180814165758.png](/uploads/201808/14/170748h4e99fq7rlleyl9s.png) 折线图组件选择设备为**rtt1**,**数据流为temperature**。 ![TIM截图20180814170257.png](/uploads/201808/14/170748wk7fff8u7970k769.png) 然后点击保存,**预览**,点击开关ON、OFF,这是RT-Thread终端可以显示“RT-Thread ON”和“RT-Thread OFF” ![TIM截图20180814170508.png](/uploads/201808/14/170748rx67nqkj7588rbpn.png)![TIM截图20180814170527.png](/uploads/201808/14/170749tsqclq01js7vc1qb.png) 在命令框内输入字符,非十六进制发送,这时RT-Thread终端将收到“Hello, RT-Thread” ![TIM截图20180814170605.png](/uploads/201808/14/170749r3sbifbvn8s2qste.png)![TIM截图20180814170617.png](/uploads/201808/14/170749yckptuf25mmh4z6u.png) 我们输入**onenet_upload_cycle**命令让其周期上发随机温度值,我们可以在onenet页面上看到实时的数据。 ![TIM截图20180814170648.png](/uploads/201808/14/170749fgg3v3vzz22fzfgt.png)![TIM截图20180814170722.png](/uploads/201808/14/170749b3nqnkbbl35sqa6g.png) 总结: 至此,onenet平台学习结束,中间遇到了许多小坑,都是自己没有好好看教程导致的。坑1:是在menuconfig的onenet设置中没有使能onenet sample,所以找不到onenet_set_cmd_rsp这条命令。 坑2:教程中详细说明了创建产品和设备,没有说明创建数据流的过程。 坑3:有时候pkgs --update会失败,有可能是网路问题,更换网络即可。 RT-Thread的onenet组件确实为开发者提供了非常便捷的方式接入了物联网平台,期待各位小伙伴有更多更有趣的应用。 ![TIM截图20180814165836.png](https://oss-club.rt-thread.org/uploads/201808/14/170748klnn6ss5tosffi0s.png)
查看更多
3
个回答
默认排序
按发布时间排序
艾那的小强
2018-08-15
这家伙很懒,什么也没写!
步骤非常详细。谢谢分享。
armink
2018-08-15
这家伙很懒,什么也没写!
赞,整理的这么详细,楼主费心了。 >中间遇到了许多小坑,都是自己没有好好看教程导致的 --- 可不可以列一下呢,这样我们的教程对一些容易出错的地方,好增加一些强调
ianhom
2018-08-15
这家伙很懒,什么也没写!
>赞,整理的这么详细,楼主费心了。 --- 回头我在整理一下帖子~~
撰写答案
登录
注册新账号
关注者
0
被浏览
2.7k
关于作者
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
组件 lwip v2.0.3 版本使用 netdev网卡的 ping 功能
2
简单两步配置RTT源码阅读环境 vsc+clangd
3
恩智浦[FRDM-MCXN947]初探 之 ADC与DAC
4
LVGL使用字库IC芯片显示中文
5
基于STM32H750和Rt-Thread的CANFD通信实现的记录(一)
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
807
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部