2022-04-13

   智慧小区安全防护系统——真实设备接入报告

                   杨小龙

1.项目背景

随着时代的进步与科学技术的快速发展,我们对于智慧化的生活越来越需要,而我们更需要的是安全,安全的重要性不言而喻。智能小区的建设融合了一系列现代化高新技术,是IC卡技术、通信技术、计算机技术经过深度融合与集成之后而形成的一种结果,同时也是社会发展、时代进步、科学技术水平提升环境下的必然产物。智能小区使用多种高科技手段,达到防火、防盗、防煤气泄漏等安全要求,小区本身的安防系统建立采取点、线和面的立体防护,确保做到“防患于未然”。让智能小区里的住户拥有居家安全感。

2.项目目标

1、基于真实设备,搭建软硬件环境,接入 OneNET 平台并实现设备属性上报;
2、通过 OneNET 平台的“设备调试”实现设备属性下发;
3、通过 OneNET 平台的“API 调试”实现设备属性下发;
4、直接基于 API 方式实现设备属性下发;

3.项目步骤

第一步:基于 OneNET 物联网实验箱搭建实训项目终端硬件平台

在实验箱背板上插入这四个模块(“核心模块”、“Wifi 模块”、“蜂鸣器模块”、 “超
声波模块”)搭建场景。

QQ图片20220413114643.jpg

第二步:在Keil5中修改项目三代码

步骤一:

工程相对路径\device\src\net_device.c 约 677 行处,将{热点名称}、{热点密码}替换为设备所在 Wifi 网络用户名和密码(将{}括号一起替换,下同);

image.png

步骤二:

工程相对路径\onenet\src\onenet.c 约 56 行处,依次修改{产品key}、{产品 id}、{设备名称}为之前步骤中在 OneNET Studio 中所创建的产品、设备相关信息,本例中设备名称就是之前步骤中创建的“controller”设备,并对应填入其设备密钥;

image.png

步骤三:

工程相对路径\applications\application.c 约 132 行处,增加属性点标识符以及对应需上报的设备数据变量,如下所示;

{"beep", &beep_info.beep_status[0], TYPE_BOOL, 1},
{"distance",&Sonic_Info.sonic_distance,TYPE_FLOAT,1},
image.png

步骤四:

工程相对路径\onenet\src\cmd_callback.c 约 51 行处,添加代码“{“beep”,CALLBACK_Beep},”,逗号前面的字符串标识符为"beep",逗号后的处理方法名为 CALLBACK_Beep。

image.png

步骤五:

同时在该文件头部,增加void CALLBACK_Beep(int value);这样的方法声明

image.png

步骤六:

在文件适当位置增加该方法的具体实现逻辑代码:

image.png

第三步:编译工程,连接下载器烧写程序到设备中

下载器的连接以及烧写过程略。下载成功后设备重新加电,等待一定时间,进入下一步。

第四步: 在OneNET 平台查看设备状态

登录 OneNET Studio,查看“controller”设备运行状态为在线。若此时设备显示为不在线,则排查前面关于网络接入、OneNET 鉴权等代码修改处是否有误。重复步骤 3、4、5,再次检查并修改,直到本步骤查看状态为上线。

第五步:在OneNET 平台查看设备上报数据信息

进入设备详情页面,查看属性表格页展示的各个数据点显示的信息,重点关注距离(标识符“distance”)、蜂鸣器状态(标识符“beep”)等属性点,是否已经有数值上报。(下图仅为示例参考)

屏幕截图 2022-04-12 110430.png

第六步:通过 OneNETStudio 的设备调试方式进行属性下发

选择MQTT产品下的 “controller” 设备,切换调试方式为 “应用模拟器”。

image.png

勾选蜂鸣器功能点,点击true下发数值,再点击页面下方的“属性设置”按钮,右侧调试日志展示了下发的报文,设备端也同时将该数值执行生效(蜂鸣器开始鸣叫)。

image.png

注 1:如设备端没有生效,需要分析上一实训任务中,有关属性下发的命令执行代码是否正确添加。

注 2:调试日志中会有超时等响应报文,这是因为设备收到属性下发后没有在规定时间内返回确认,OneNET 平台会认为设备响应超时从而给 API 请求端回复超时报文。

注 3:设备执行属性设置动作后,可以修改设置值为“false”, 再次下发,使设备端生效新的值。

第七步:下发属性在终端设备上执行生效(API 调试)

点击“运维监控”菜单下“API 调试”子菜单,并将工作页面左列显示的两大类调试类别中“应用开发类”下拉列表展开。往下滚动到“设备属性设置”功能项,点击使之处于选中状态,在中间一列展示的必填参数中,填写页面中输入必要的参数,如下图所示,本次任务中,填入真实接入的设备“controller”所对应的相关信息,同时其中的 params 内容填写要设置的属性标识符以及对应设置值,本次任务中设置蜂鸣器状态为 false,文本示例参考:

{
"beep": false
}

设备端蜂鸣器收到命令关闭

屏幕截图 2022-04-12 115742.png

第八步:基于 API 方式实现设备属性下发

步骤一 使用API调试工具Postman,并填入必要参数:

(1)确定设备属性设置的请求方式为 post,请求 url 为:
http://openapi.heclouds.com/application?action=SetDeviceProperty&version=1
填入到 Postman 工具上面页面的请求 url 输入框中,修改左侧请求提交方式是 POST

image.png

(2)确定请求 body 内容及格式,project_id、product_id、device_name 等关键参数的值均可参考前述任务中相同的查看方式通过 OneNET Studio 页面获得,以键值对形式将上述需要设置的具体参数组装为 body 报文内容,最终填入 Postman 工具的 Body 选项页内。

 {
 "project_id": "gZtv5W",
 "product_id": "I971NKjoBg",
 "device_name": "controller",
 "params": {
 "beep": true
 }
}
image.png

(3)确定请求的 Header 内容,这里需要一个向 OneNET 平台鉴权所需的必要信息字段,就是“authorization ”信息(注意大小写须一致),该信息可以使用“token计算工具”生成,生成方式如下图:

屏幕截图 2022-04-16 140804.png

补充Headers其余内容。

image.png

步骤二 发起 API 请求,查看结果:

发起请求前确认当前真实设备已在线,以蜂鸣器属性值(beep)下发为例,通过postman 发起请求,通过平台鉴权后,该请求会下发到对应的真实设备,打开蜂鸣器开关,蜂鸣器会按照程序里预置的逻辑进行鸣响。

屏幕截图 2022-04-13 104540.png

更改“beep”属性值为false

{
 "project_id": "gZtv5W",
 "product_id": "I971NKjoBg",
 "device_name": "controller",
 "params": {
 "beep": false
 }
}

发送请求后蜂鸣器会按照程序预置的逻辑关闭鸣响

屏幕截图 2022-04-13 104700.png

第九步:基于 OneNET 云平台的场景联动

步骤一 进入 OneNET Studio 场景联动管理功能:

进入 OneNET Studio 控制台页面,直接在“Studio 使用概览”中点击“我的项目”下已建立的项目名进入项目管理功能。

image.png

注:如用户没有创建过有关项目,OneNET Studio 提示需先创建项目,可参考之前实训任务 1 拓展任务中有关项目管理的操作步骤完成项目创建、设备添加等准备工作后,进入下一个实训环节。

然后直接点击“场景联动”子菜单,进入场景联动管理功能页面。

image.png


步骤二 创建场景联动规则:

点击功能页面右侧“添加规则”按钮,在滑出的页面规则名称中输入“距离探测告警”,点击“添加”按钮完成规则创建。

image.png


步骤三 编辑距离探测告警的联动规则:

点击创建好的这条规则的操作列中“编辑规则”功能入口,进入具体编辑页面,因为是初次进入,这里展示的触发条件以及执行动作内容为空,点击右侧的“编辑规则”按钮,
image.png

在滑出的页面中具体编辑:
首先编辑触发条件:
(1)执行限制:满足全部条件执行
(2)触发方式:“设备数据触发”
(3)产品:之前实训任务中创建的产品
(4)设备:之前加入到项目里的“controller”
(5)功能:之前物模型中的“间隔距离”属性点
(6)数值判断条件:逻辑判断选“<”,数值填入“5”

image.png

其次编辑执行动作:
(1)动作类型:选择“设备执行”
(2)产品:之前实训任务中创建的产品
(3)设备:之前加入到项目里的“controller”
(4)功能:之前物模型中的“蜂鸣器”属性点
(5)布尔:选择“true - 1”
最后点击“完成”按钮,确认本次编辑内容。



步骤四 再新增一个联动规则,实现距离安全时取消告警:

参考步骤 2 描述,再新增一个联动规则,名称可以为“距离安全取消告警”。
参考步骤 3 描述,编辑该规则的具体条件及动作,参考如下:

编辑触发条件:
(1)执行限制:满足全部条件执行
(2)触发方式:“设备数据触发”
(3)产品:之前实训任务中创建的产品
(4)设备:之前加入到项目里的“controller”
(5)功能:之前物模型中的“间隔距离”属性点
(6)数值判断条件:逻辑判断选“>”,数值填入“10”

image.png

编辑执行动作:
(1)动作类型:选择“设备执行”
(2)产品:之前实训任务中创建的产品
(3)设备:之前加入到项目里的“controller”
(4)功能:之前物模型中的“蜂鸣器”属性点
(5)布尔:选择“false - 0”
最后点击“完成”按钮,确认本次编辑内容。

image.png


步骤五 设备上线,观察场景实现效果:

QQ图片20220413114643.jpg

近距离遮挡超声波模块的距离探测器探头,稍等一定时间后,蜂鸣器模块鸣叫,移开超声波模块遮挡,约 15 秒钟后,蜂鸣器模块停止鸣叫。

注:如设备未按场景联动的规则逻辑执行,可通过规则页面的“联动日志查询”tab 页查看具体原因。响应日志会有 Fail 的失败日志,这是因为场景联动触发后,执行的属性下发后没有在规定时间内收到设备端的执行返回确认(该部分代码在示例工程代码中未实现),OneNET 平台会认为设备响应超时从而判断为失败。

4.项目总结

在本次项目实验中,基于真实设备接入 OneNET 平台,实现了通过OneNET 平台对设备属性下发并且还实现了直接基于 API 方式实现设备属性下发。通过拓展实训部分体验了基于 OneNET 云平台的场景联动。经过这次的实验使得我对OneNET云平台的使用更加熟练,对实验实施的流程思路更清晰。也让我明白了OneNET云平台还有更多的功能等着我去探索。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  •       智慧小区安全防护系统项目报告                杜海鑫 1.实验背景   随着时代的进步与...
    远方上阅读 406评论 0 0
  •    智慧小区安全防护系统——真实设备接入报告                    杨小龙 1.项目背景 随着时...
    fighting_41a7阅读 218评论 0 0
  • 智慧小区安全防护系统——真实设备接入实验报告 帅全龙 1.实验背景 随着人类社会的不断发展的同时,环境与人口等问题...
    一天三筐砂糖橘阅读 196评论 0 0
  • 一、实验背景 1、智慧小区工作需求 各类小区分布在城市的各个角落,多构成单个或多个独立的区域,而这使得小区的管理更...
    Dalala阅读 958评论 0 0
  • 基于真实设备接入 OneNET 平台实训报告 钟梓航 一.项目背景 蜂鸣器根据距离监测报警 二.项目目标 1、基于...
    草莓QQ糖阅读 201评论 0 0