一、实训背景
随着中国经济的持续增长、人们生活水平的不断提高,特别是物质生活水平的提高,人们已经不能满足于传统的居住环境,人们越来越重视自己的个人安全和财产安全,对人、家庭以及住宅的小区的安全方面提出了更高的要求;同时,经济的飞速发展伴随着城市流动人口的急剧增加,给城市的社会治安增加了新的难题,要保障小区的安全,防止偷抢事件的发生,就必须有自己的安全防范系统,人防的保安方式难以适应我们的要求,智能安防已成为当前的发展趋势。
二、实训目的
1、基于真实设备,搭建软硬件环境,接入 OneNET 平台并实现设备属性上报;
2、通过 OneNET 平台的“设备调试”实现设备属性下发;
3、通过 OneNET 平台的“API 调试”实现设备属性下发;
4、直接基于 API 方式实现设备属性下发;
三、实训步骤
3.1真实设备接入 OneNET 平台实现属性上报
步骤 1 硬件的搭建
[根据实训场景,选取 OneNET 物联网实验箱“核心模块”以及“Wifi 模块”、“蜂鸣器模块”、 “超
声波模块”等场景所需的模块进行搭建]
步骤 2 修改设备程序的 OneNET 平台网络接入配置参数
[基于终端设备软件:Keil uVision5 系统搭建完成好]
2.1 修改net_device.c文件中约 677 行处,将{wifi}、{password}替换为设备所在 Wifi 网络用户名和密码
2.2 修改onenet.c文件中约 56 行处,依次修改{设备密钥}、{产品 id}、{设备名称}为之前步骤中在 OneNET Studio 中所创建的产品、设备相关信息,本例中设备名称就是之前步骤中创建的“Controller”设备,并对应填入其设备密钥
2.3 修改application.c文件中约132 行处,根据之前步骤中在 OneNET Studio中所创建的物模型信息,依次增加属性点标识符以及对应需上报的设备数据变量
2.4 修改cmd_callback.c文件中约51行处,根据之前步骤中在 OneNET Studio中所创建的物模型信息,增改此处的属性点标识符,对应设置需写入生效的设备数据处理函数名
2.5 同时在该文件头部,增加 void CALLBACK_Beep(int value)函数声明
2.6 在该文件适当位置增加该方法的具体实现逻辑代码:
步骤 3
编译工程,连接下载器烧写程序到设备中
步骤 4
在OneNET 平台中查看设备状态及设备上报数据消息
3.2 下发属性在终端设备上执行生效(设备调试)
步骤 1 通过OneNETStudio 的设备调试方式进行属性下发
点击运维菜单--设备调试,选择调试产品、设备信息,本任务需选择之前步骤创建的产品,及归属其下的”Controller“设备。切换调试方式为“应用模拟器”。先勾选一个功能点,然后设置下发的数值。(以蜂鸣器为例,这是一个 bool 型功能点,勾选后,可设置值为 true、false 两个,本次任务选择 true 作为下发数值)再点击下方的“属性设置”按钮,右侧调试日志展示了下发的报文,设备端也同时将该数值执行生效。可在运维菜单--设备日志中查询刚刚下发的详情
3.3下发属性在终端设备上执行生效(API 调试)
3.4 基于 API 方式实现设备属性下发
步骤 1 准备 API 接口调试工具 Postman
步骤 2 填入必要参数
[确定请求 body 内容及格式,以蜂鸣器属性值(beep)下发为例,确定如下报文中各个关键参数对应的实际值,project_id、product_id、device_name 等关键参数的值均可参考前述任务中相同的查看方式通过 OneNET Studio 页面获得,]
[确定请求的 Header 内容,这里需要一个向 OneNET 平台鉴权所需的必要信息字段,就是“authorization ”信息(注意大小写须一致),下面是该信息的一个生成示例,具体生成方式可参考其他实训任务环节中的操作步骤指导,关键注意几处箭头处,通过 API 方式的请求,res 参数须以“userid/用户 ID”的格式填入,版本号须为“2020-05-29”,字段具体内容根据实际情况进行替换。]
步骤 3 发起 API 请求,查看结果
3.5 基于 OneNET 云平台的场景联动
步骤 1 创建场景联动规则
步骤2 编辑场景联动规则
[编辑场景联动"距离探测告警"规则][编辑场景联动"距离探测取消告警"规则]
步骤3 在 OneNET 云平台查看场景联动上报数据的联动日志
四、实训总结
在完成此次项目过程中,我们小组首先遇到的大问题就是在设备调试中属性设置后,上报数据但是蜂鸣器一直不响,在老师的帮助下解决了这个问题;在项目接近尾声,场景联动下发指令时,我们又遇到了同样的问题:蜂鸣器还是不响,经过老师多方面的排查解除了这一问题。通过此次项目我明白了实验并不是最主要培养我们的,更重要的是培养我们学习的方法以及排查错误的能力。