快捷导航

信息推荐

更多+
开启左侧

OneNET 示例应用程序

[复制链接]
OneNET 示例应用程序

准备工作

在 OneNET 云上注册账号

设备接入 OneNET 云之前,需要在平台注册用户账号,OneNET 云平台地址:https://open.iot.10086.cn
创建产品

账号注册登录成功后,点击开发者中心进入开发者中心界面;
点击创建产品,输入产品基本参数,在设备接入协议一栏选择 MQTT 协议,如下图所示:


产品创建成功之后,可以在开发者中心的公开协议产品中找到刚刚创建的产品,点击产品名,可以看到产品的基础信息(如产品ID,接入协议,创建时间,产品 APIkey 等,后面有用):

接入设备

在开发者中心左侧设备管理中点击添加设备按钮添加设备,设备名称我们填入test1。鉴权信息是为了区分每一个不同的设备,如果创建了多个设备,要确保每个设备的鉴权信息都不一样,我们这里填入201807171718,填完之后点击接入设备


添加 APIkey

接入设备之后,可以看到设备列表的界面多了一个设备,设备的右边有一些操作设备的按钮,点击查看详情按钮


此设备的相关信息就都显示出来了,比如:设备 ID、鉴权信息、设备 APIkey,这些信息需要记下,在ENV配置时会用到。
点击按钮添加 APIkey,APIKey 的名称一般和设备相关联,我们这里填入test_APIKey,关联设备默认为我们刚刚创建的设备test1。

开启 onenet 软件包

打开 Env 工具输入 menuconfig 按照下面的路径开启 onenet 软件包:
RT-Thread online packages    IoT - internet of things  --->        IoT Cloud  --->             OneNET: China Mobile OneNet cloud SDK for RT-Thread进入 onenet 软件包的配置菜单按下图所示配置,里面的信息依据自己的产品和设备的实际情况填写
--- OneNET: China Mobile OneNet cloud SDK for RT-Thread                                [ ]   Enable OneNET sample                                                         Enable support MQTT protocol                                                     [ ]   Enable OneNET automatic register device (NEW)                                 (35936966) device id                                                                 (201807171718) auth info    (H3ak5Bbl0NxpW3QVVe33InnPxOg=) api key                                                  (156418) product id                                                                     (dVZ=ZjVJvGjXIUDsbropzg1a8Dw=) master/product apikey (NEW)                               version (latest)  --->Enable OneNET sample :开启 OneNET 示例代码
Enable support MQTT protocol :开启 MQTT 协议连接 OneNET 支持
Enable OneNET automatic register device :开启  OneNET 自动注册设备功能
device id :配置云端创建设备时获取的 设备ID
auth info :配置云端创建产品时 用户自定义的鉴权信息 (每个产品的每个设备唯一)
api key :配置云端创建设备时获取的 APIkey
product id :配置云端创建产品时获取的 产品ID
master/product apikey :配置云端创建产品时获取的 产品APIKey
示例文件介绍

利用 Env 生成工程后,我们可以在工程的 onenet 目录下看到onenet_sample.c文件,该文件是 OneNET 软件包的示例展示,主要是展示用户如何使用 OneNET 软件包上传数据和接收命令
运行示例

在使用 OneNET 软件包之前必须要先调用onenet_mqtt_init这个命令进行初始化,初始化完成后设备会自动连接 OneNET 平台。
msh />onenet_mqtt_init[D/ONENET] (mqtt_connect_callback:85) Enter mqtt_connect_callback![D/[MQTT] ] ipv4 address port: 6002[D/[MQTT] ] HOST = '183.230.40.39'[I/ONENET] RT-Thread OneNET package(V0.2.0) initialize success.msh />[I/[MQTT] ] MQTT server connect success[D/ONENET] (mqtt_online_callback:90) Enter mqtt_online_callback!上传数据

初始化完成后,用户可以调用onenet_upload_cycle这个命令周期性的往云平台上传数据。输入这个命令后,设备会每隔 5s 向数据流 temperature 上传一个随机值。并将上传的数据打印到 shell 窗口。
msh />onenet_upload_cyclemsh />[D/ONENET] (onenet_upload_data:106) buffer : {"temperature":32}[D/ONENET] (onenet_upload_data:106) buffer : {"temperature":51}我们打开 OneNET 平台,在设备列表界面选择刚添加的设备并进入数据流展示页面。

点击temperature数据流左边的小箭头显示数据流信息,我们就可以看到刚刚上传的数据了。

如果用户想往别的数据流发送信息,可以使用以下 API 往云平台上传数据。
onenet_mqtt_publish_digitonenet_mqtt_publish_string
命令格式如下所示:
onenet_mqtt_publish_digit 数据流名称 要上传的数据onenet_mqtt_publish_string 数据流名称 要上传的字符串输入命令后没有返回错误信息就表示上传成功。
示例如下:
msh />onenet_mqtt_publish_digit test 1msh />onenet_mqtt_publish_string test 1msh />onenet_mqtt_publish_digit test 2msh />onenet_mqtt_publish_string test 1在数据流管理页面,我们可以看到多出来个 test 数据流,里面的数据就是我们刚刚上传的数据。

接收命令

在初始化时,命令响应回调函数默认指向了空,想要接收命令,必须设置命令响应回调函数,在 shell 中输入命令onenet_set_cmd_rsp,就把示例文件里的命令响应回调函数挂载上了,这个响应函数在接收到命令后会把命令打印出来。
msh />onenet_set_cmd_rsp我们点击设备列表界面的下发命令按钮。

在弹出来的窗口里输出 hello rt-thread!,然后点击发送命令。

就可以在 shell 中看到云平台下发的命令了。
msh />onenet_set_cmd_rspmsh />[D/ONENET] (mqtt_callback:60) topic $creq/6db0c1b2-9a7e-5e4a-8897-bf62d4a3461f receive a message[D/ONENET] (mqtt_callback:62) message length is 18[D/ONENET] (onenet_cmd_rsp_cb:107) recv data is hello rt-thread!
回复

使用道具 举报

精彩评论1

正序浏览
需要做PCB线路板的可以联系我

13651479995
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门评论
广告位

信息推荐

更多+

最新信息

更多+
关闭

站长推荐上一条 /2 下一条

关注我们

凡亿公众号

教育课堂

全国服务热线:

156-1688-0848

PCB制板下单邮箱:pcb@fany-eda.com

Layout设计邮箱:layout@fanypcb.com

公司地址:深圳市宝安区西乡街道河东社区新城广场3层2211-C347

长沙分部:长沙麓谷高新区麓谷新长海中心B3栋3楼304-305

工厂地址:广东省深圳市宝安区沙井镇沙头裕民路6号

Copyright   ©2015-2016  PCB联盟网|中国PCB论坛|PCB电子技术论坛  Powered by©Discuz!  技术支持:凡亿教育    ( 粤ICP备14065604号 )|网站地图