一、实验背景
随着国民经济的不断进展,人民生活水平在不断地提高;科学的进展和技术的进步,也让人民的生活观念发生了前所未有的改变。现如今,人们需要的不仅仅是生活便利的住宅,更需要的是一个能够给人安全感的生活空间,可以让人们的生命和财产得到更可靠的保障。因此,在现代化的智能小区和家庭中,家居安防监控系统作为其重要组成部分,其研究意义就不言而喻了。在如今这样一个电子化时代,各种家用电器不断地应用在家庭中的同时,随之而来的是,各种不安全因素也伴随着这些产品进入了家庭。
二、实验目标
1、 基于真实设备,搭建软硬件环境,接入 OneNET 平台并实现设备属性上报;
2、 通过 OneNET 平台的“设备调试”实现设备属性下发;
3、 通过 OneNET 平台的“API 调试”实现设备属性下发;
4、 直接基于 API 方式实现设备属性下发;
三、实验步骤
3.1真实设备接入 OneNET 平台实现属性上报
步骤 1 选取 OneNET 物联网实验箱“核心模块”以及“Wifi 模块”、“蜂鸣器模块”、 “超声波模块”进行搭建
(1)运行 Keil uVision5 应用程序,编译后查看编译结果,错误为0(如下图所示)
步骤 2 修改设备程序的 OneNET 平台网络接入配置参数
(1)修改net_device.c文件中约 677 行处,将{wifi}、{password}替换为设备所在 Wifi 网络用户名和密码(将{}括号一起替换,下同)
(2)修改onenet.c文件中约 56 行处,依次修改{设备密钥}、{产品 id}、{设备名称}为之前步骤中在 OneNET Studio 中所创建的产品、设备相关信息,本例中设备名称就是之前步骤中创建的“Controller”设备,并对应填入其设备密钥
步骤 3 修改设备程序的上报属性值映射关系以及 OneNET 平台下发属性生效命令处理代码
(3)修改application.c文件中约132 行处,根据之前步骤中在 OneNET Studio中所创建的物模型信息,依次增加属性点标识符以及对应需上报的设备数据变量,如下所示:
(4)修改cmd_callback.c文件中约51行处,根据之前步骤中在 OneNET Studio中所创建的物模型信息,增改此处的属性点标识符,对应设置需写入生效的设备数据处理函数名
(5)同时在该文件头部,增加 void CALLBACK_Beep(int value)函数声明
(6)在该文件适当位置增加该方法的具体实现逻辑代码:
步骤 4 OneNET 平台侧查看设备状态
登录 OneNET Studio,查看“Controller”设备运行状态为在线,若此时设备显示为不在线,则排查前面关于网络接入、OneNET 鉴权等代码修改处是否有误。重复步骤 3、4、5,再次检查并修改,直到本步骤查看状态为上线。
步骤 5 OneNET 平台侧查看设备上报数据信息
进入设备详情页面,查看属性表格页展示的各个数据点显示的信息
3.2下发属性在终端设备上执行生效(设备调试)
步骤 1 通过 OneNETStudio 的设备调试方式进行属性下发
点击运维菜单--设备调试,选择调试产品、设备信息,本任务需选择之前步骤创建的产品,及归属其下的”Controller“设备。切换调试方式为“应用模拟器”。先勾选一个功能点,然后设置下发的数值。(以蜂鸣器为例,这是一个 bool 型功能点,勾选后,可设置值为 true、false 两个,本次任务选择 true 作为下发数值)
点击页面下方的“属性设置”按钮,右侧调试日志展示了下发的报文,设备端也同时将该数值执行生效。
3.3下发属性在终端设备上执行生效(API 调试)
步骤 1 进入“API 调试”功能页面
点击“运维菜单”下的“API调试”,再点击“应用开发类”,选择“设备属性设置”,后填入所需信息。其中的 params 内容填写要设置的属性标识符以及对应设置值,本次任务中设置蜂鸣器状态为 true
点击执行后,右侧会显示出调用结果:
3.4 基于 API 方式实现设备属性下发
步骤 1 使用 API 接口调试工具 Postman,并填入相关参数
(1)设备属性设置的请求方式为 post,请求 url 为http://openapi.heclouds.com/application?action=SetDeviceProperty&version=1
(2)在Postman 工具的 Body 选项中填入project_id、product_id、device_name 等关键参数:(如下所示)
{
"project_id": "beXsvw",
"product_id": "vhg2bOJfUT",
"device_name": "Controller",
"params": {
"beep": false
}
}
(3)确定Header参数:
A:authorization(Token生产)
B: Content-Type:application/json
步骤 4 发起 API 请求,查看结果:
蜂鸣器开:
蜂鸣器关:
3.5基于 OneNET 云平台的场景联动
步骤 1 进入 OneNET Studio 场景联动管理功能 ,创建场景联动规则
项目管理--进入项目管理--场景联动--创建场景联动规则
1.添加第一个规则
(1)添加规则:距离探测告警
(2)编辑距离探测告警的联动规则 :
首先编辑触发条件:
A:执行限制:满足全部条件执行
B:触发方式:“设备数据触发”
C:产品:之前实训任务中创建的产品
D:设备:之前加入到项目里的“Controller”
E:功能:之前物模型中的“间隔距离”属性点
F:数值判断条件:逻辑判断选“<”,数值填入“5”
其次编辑执行动作:
A:动作类型:选择“设备执行”
B:产品:之前实训任务中创建的产品
C:设备:之前加入到项目里的“Controller”
D:功能:之前物模型中的“蜂鸣器”属性点
E:布尔:选择“true - 1”
最后点击“完成”按钮,确认本次编辑内容。
2.添加第二个规则
(1)添加规则:距离安全取消告警
(2)编辑距离探测告警的联动规则 :
首先编辑触发条件:
A:执行限制:满足全部条件执行
B:触发方式:“设备数据触发”
C:产品:之前实训任务中创建的产品
D:设备:之前加入到项目里的“Controller”
E:功能:之前物模型中的“间隔距离”属性点
F:数值判断条件:逻辑判断选“>”,数值填入“10”
其次编辑执行动作:
A:动作类型:选择“设备执行”
B:产品:之前实训任务中创建的产品
C:设备:之前加入到项目里的“Controller”
D:功能:之前物模型中的“蜂鸣器”属性点
E:布尔:选择“false - 0”
最后点击“完成”按钮,确认本次编辑内容。
步骤 2 设备上线,观察场景实现效果
近距离遮挡超声波模块的距离探测器探头,稍等一定时间后,蜂鸣器模块鸣叫,移开超声波模块遮挡,约 15 秒钟后,蜂鸣器模块停止鸣叫。
四、总结
在此次项目中,基于设备工程,实现了 OneNET 平台下发属性在终端设备上执行生效且基于 API 方式实现了设备属性下发。通过实验使得对OneNET云平台更为了解,对实验实施的流程思路更清晰。不足为对一些专业知识了解还不够清楚。