一.项目需求
随着城市化进程的加速和人口数量的增加,城市居民社区管理越来越复杂,安全问题也逐渐受到关注。传统的安全防护手段已经不能满足现代社区的需求,因此智能小区安全防护系统应运而生。
智能小区安全防护系统利用物联网、人工智能等先进技术,实现社区内的监控、报警、门禁、巡逻等功能,可以有效提高社区的安全性和管理效率,减少犯罪率,保障居民的生命财产安全。
项目背景中还可以加入一些现代社会面临的安全问题,比如盗窃、抢劫、火灾等,强调了安全防护系统的必要性和应用前景。同时,可以提及一些成功案例和先进技术的发展,强调智能小区安全防护系统的创新性和实用性。
二.项目目标
控制终端:距离探测(超声波测距、激光测距)、门禁(读卡指纹人脸识别、远程开启)、车辆管理系统(地感线圈、图像采集、字符识别等)入侵报警(声光报警)、视频监控(摄像头)
三.实验步骤
1.创建基于 MQTT 协议的产品
在第三步填写信息中,添加必要的产品信息(标记*号的项)。其中“节点类型”选择“直连设备”,
“接入协议”选择“MQTT”,“数据协议”选择“OneJson”,“联网方式”选“Wi-Fi”,“开发方案”选择“自定义方案”。
2.根据项目场景创建产品物模型
进入产品开发详情页面
点击页面右侧的“设置物模型”按钮,进入物模型管理页面
添加系统功能点和自定义功能点。
在弹出的添加页面中,选择如下图所示的系统功能点,点击右下角的“添加”按钮完成添加
检查页面上添加的物模型各功能点信息无误后,点击“保存”按钮,并点击弹出的确认提示
“确定”。则创建的物模型在 OneNET 平台上生效。
3.创建基于 MQTT 的设备
在产品下添加名为Controller和Simulator的设备
4.模拟设备接入OneNET 平台
4.1.获取产品、设备的必要信息(产品ID,设备名称和设备密钥)
4.2.使用官方 Token 计算工具,获得验证 token 信息
4.3.安装并配置 MQTT.fx 工具模拟设备信息
设置 Profile Name:可设置一个便于记忆的名字,如“智能小区模拟设备接入”
设置 Broker Address:mqtts.heclouds.com (MQTT 设备接入平台网址)
设置 Broker 端口:1883 (本次实训任务采用非 TLS 加密的 MQTT 连接)
设置 Client ID:{设备名称}(前一个步骤中确定的设备名称填入此处)
在下方的第一个选项页“General”中,设置MQTT 协议版本号:取消默认勾中,确保下方版本选择下拉框可选,并选择为 3.1.1
设置 User Name:{产品 ID}(前一个步骤中确定的产品 ID)
设置 Password:{token} (前一个步骤中计算得到的 token)
4.4.使用 MQTT.fx 工具模拟设备接入
点击“Connect”,如果一切正常,工具将很快登陆接入OneNET 平台,此时 Connect 按钮变灰,右侧 Disconnect 按钮处于激活状态。再点击log
点击”Log“ 选项页,查看工具连接服务端的情况,正常连接成功则提示类似如下图红框所示信息。
当工具显示正常连接后,查看OneNET 平台中当前模拟的设备在页面显示为在线状态
5.模拟设备接入OneNET 平台实现属性上报
5.1.订阅属性上报结果通知消息
点击模拟工具的“Subscribe”选项页表头,在其中的输入框填写属性上报结果通知topic。($sys/产品 ID/设备名称/thing/property/post/reply)
5.2.发送属性上报消息
点击“Publish”选项页表头,切换到消息发送页,在输入框中填入属性上报 topic 主题,该 topic为:$sys/产品 ID/设备名称/thing/property/post
在空白编辑处输入如下代码,其中value为上报的属性值,填入一个合适的数字即可,
time需用时间戳计算工具获得当前时刻的时间戳(单位ms)无误后点publish
5.3.查看属性上报结果
点击“Subscribe”选项页表头,查看之前订阅的属性上报结果通知消息 topic 下,收到的消息如下图示例:
可以看到最新的一条消息,标识了消息的 id 和 code,其中 id 的值为发送时的 id 值,code 值为 200表示该条消息成功送达 OneNET 平台。
5.4.OneNET 平台中查看设备的属性最新值
回到 OneNET 平台中设备管理页面,进入“Simulator”设备详情,查看当前设备各个属性的最新数据,确认显示出通过模拟工具上报来的 value 值:
6.OneNET 平台下发属性值到模拟工具
6.1.订阅接收平台下发属性数据的 topic
设备侧如需要收到平台下发的数据,需要订阅接收平台下发数据的 topic,该 topic 为:$sys/产品 ID/设备名称/thing/property/set
6.2.OneNET 平台下发属性数据
在“设备管理”中选择要下发属性的设备,点击详情进入设备信息页面,切换功能为“设备调试”
“应用模拟器”,勾中属性功能点距离 distance,并填写一个具体数值,点击页面下方的 “属性设置”按钮,完成发送。可以在页面右侧的调试日志中看到下发的日志信息
6.3.模拟设备中查看收到的属性数据值
7.真实设备接入OneNET 平台实现属性上报
7.1.修改设备程序的 OneNET 平台网络接入配置参数
- 工程相对路径\device\src\net_device.c 约 677 行处,将{wifi}、{password}替换为设备所在 Wifi 网络用户名和密码
#if(PHONE_AP_MODE == 1)
UsartPrintf(USART_DEBUG, "Tips: AT+CWJAP\r\n");
if(!NET_DEVICE_SendCmd("AT+CWJAP=\"111\",\"00000000\"\r\n", "GOT IP", 400))
//1.更改此处为热点名称和密码 2021-6-15
#endif
- 工程相对路径\onenet\src\onenet.c 约 56 行处,依次修改{设备密钥}、{产品 id}、{设备名称}
ONETNET_INFO onenet_info = {"", "d1U3eTZRSmZKekNnNDFoM3o2cjlmZ0dRUmpsQzA1NFk=", "",
"05cd0XY2bQ", "", "",
"183.230.40.96", "1883", 0,
0, 0, 1, 0, 0, 0, 0, 0, 0};
char devicename[32]="Controller";
//2、更改此处产品id,设备名称,设备key,备注:设备key可以用产品key替换,权限更高。
8.烧写程序,OneNET 平台侧查看设备上报数据信息
9.通过 OneNET平台 的设备调试方式进行属性下发
进入 OneNET 平台 的设备调试功能页面。本任务中,需要切换调试方式为“应用模拟器”先勾选一个功能点,然后设置下发的数值。(以蜂鸣器为例,这是一个 bool 型功能点,勾选后,可设置值为 true、false 两个之一)点击页面下方的“属性设置”按钮,右侧调试日志展示了下发的报文,设备端也同时将该数值执行生效。
10.基于OneNET 云平台的场景联动
1.创建场景联动规则
点击页面右上角“新建场景”,填写场景名称,这里我们需要一个“距离太近告警”的场景,点击添加进入下一步。
再创建一个“距离太远取消告警”的场景,将两条场景规则的启用状态修改为“开”
2.设备上线,观察场景实现效果
近距离遮挡超声波模块的距离探测器探头,稍等一定时间后,蜂鸣器模块鸣叫,移开超声波模块遮挡, 再稍等一定时间后,蜂鸣器模块停止鸣叫。
四、安全防护系统的可视化实现
1.物联网云平台可视化组件配置运用
1.1创建一个可视化项目
先新增一个可视化项目,在弹出的模板选择页面,选择一个 2D 项目模板下的“空白模板”作为
本次项目可视化的基础模板
1.2增加数据源模板
点击左侧菜单“数据管理”下“数据源模板”子菜单,右侧页面中,点击“创建数据源模板”,预先为界面展示距离的变化图表建立一个数据来源模板。
1.3编辑可视化页面及各个组件
点击这里进入编辑
双击添加的控件,右侧出现对应控件的“样式”属性修改 Tab 页,根据项目看板展示效果所需,自行展开具体的属性列表项,调整各项属性,达到最优显示效果
点击“数据源模板”Tab 页,展示目前所有的数据源模板,可以看到一条在之前步骤中已经创建好的记录(名称为 distance),点击该记录操作列中最右图标:“以此模板创建数据源”。
1.4设置图表的横轴列展示字段名与数据提供字段相匹配
展开“数据系列”的节点,修改列字段名为“value”,保持与数据源中提供的数值字段“value”相一致