项目四 基于 OneNET 的智慧小区安全防护系统

一.项目背景

最近几年,随着中国经济蓬勃发展,越来越多的人开始追求更安全、更舒适的生活环境,在该种时代背景之下,智能小区“顺势而生”,受到了广大民众的热爱与认可。参照国内外诸多知名专家与学者针对“智能小区”所给出的解释以及中国住宅产业办公室经过大量研讨与分析之后而总结出的概念,智能小区这一概念进行了重新定义,即通过通信技术、控制技术等手段,利用传输网络,建设由安防系统、信息服务系统、物业管理系统以及家居智能化组成的一种功能齐全、具备多样性特征的管理集成系统,可以切实提升小区的安全性,目的是让人民对高生活品质的要求得到满足。目前虽然社会的治安情况总体在变好,但是小区内仍然会发生偷盗、抢劫、诱拐儿童等犯罪事件,其主要原因之一就是小区不封闭,外来人员能够自由出入,没有实时的监控设备导致警方破案非常困难,犯罪的破案率不高,犯罪分子有恃无恐。拥有各种智能安防设备的新一代智能小区就很好的解决了上述问题,在小区入口安装停车场道闸系统和人行道闸系统并配备高清摄像机,可时刻管控出入小区人员,在小区围墙上安装电子围栏,防止人员翻墙而入,可实现整个园区为一个封闭的整体,从而达到安全防范的效果。

二.实验目的

1、通过中移OneNET物联网开放平台新建产品(MQTT);
2、根据项目场景创建产品物模型;
3、创建基于MQTT 的云平台设备;
4、查看设备运行状态及数据。
5、通过模拟工具调试设备接入;
6、通过模拟设备,实现属性上报;
7、OneNET 平台下发属性值(命令)到模拟设备;

三.实验步骤

步骤一 登录OneNET,通过中移物联网首页的“全部产品服务”菜单进入 “物联网开放平台”功能页。

1.png
2.png

步骤 2 创建产品,展开左侧菜单“产品开发”功能,点击“创建产品”按钮,进行产品添加。(如已创建了产品,则展示有产品列表,可继续点击按钮创建)

3.png

在弹出的页面中第一步,参考下图信息,填写信息中,添加必要的产品信息(标记*号的项)。其中“节点类型”选择“直连设备”,“接入协议”选择“MQTT”,“数据协议”选择“OneJson”,“联网方式”选“Wi-Fi”,“开发方案”选择“自定义方案”,完成后点击确定,即创建成功。

4.png

步骤 3 进入产品开发详情页面,点击产品开发

5.png
6.png

步骤 4 进入物模型管理页面

点击页面右侧的“设置物模型”按钮,进入物模型管理页面,按下述步骤添加系统功能点和自定义功能

7.png

步骤 5 添加系统功能点

8.png

在弹出的添加页面中,选择如下图所示的系统功能点,点击右下角的“添加”按钮完成添加。

9.png

步骤 4 添加自定义功能点

10.png

点击“添加自定义功能点”,在弹出的添加页面中,按如下各个字段内容,添加项目场景所需的功能点信息。多个自定义功能点,需每次新增后,再次点击添加。


11.png
12.png

步骤 5 检查并保存创建的物模型

检查页面上添加的物模型各功能点信息无误后,点击“保存”按钮,并点击弹出的确认提示“确定”。则创建的物模型在 OneNET 平台上生效。


13.png
14.png

步骤 6 进入设备管理页面

当我们完成上一步骤返回产品列表页面时,可在刚建立产品列表的操作项中点击“设备管理”,页面即进入设备列表管理页面。我们也可以点击左侧菜单的“设备接入管理”,进入下一级菜单“设备管理”,同样进入该管理页面


15.png

步骤 7 添加一个设备的信息,用于真实设备接入

目前刚创建的产品,当前设备数为 0,我们点击右侧的“添加设备”按钮


16.png

在弹出的添加设备页面中,添加单个设备,所属产品则选择刚建立的产品名称,设备名称输入Controller(其他信息可自行填写)最后点击“确定”保存当前设备的信息。


17.png

步骤 8 再添加一个设备的信息,用于模拟工具接入

再次点击“添加设备”,该设备名称输入Simulator,产品依旧选择刚建立的产品名称,最后点击“确定”保存当前设备的信息。


18.png

步骤 9 查看设备运行状态

点击左侧菜单“设备管理”,显示设备列表页面,其中“设备状态”列展示了对应设备的运行状态。初始创建的设备,显示为“未激活”,当实体设备使用该条设备信息接入到 OneNET 平台后,则显示为“在线”,断开与OneNET 平台的连接后,则显示为“离线”,且“最近在线时间”列会记录最后一次上线时间信息


19.png

步骤 10查看设备详细信息

点击设备列表右侧操作项“详情”,在设备详情页面,查看设备及归属产品的详细信息。这里的信息,后续任务步骤中会使用到。


220.jpg

切换到“属性”页面,可以查看当前设备下的各个物模型功能点实际数据,下图因为设备不是初次创建,所以有数据记录。


221.jpg

步骤 11 查看设备日志

OneNET 平台提供了核心服务全链路日志,包括设备上下线、设备上行消息、下行消息、业务处理消息(物模型调用、存储、规则引擎、HTTP 推送、MQ推送)等。日志列表提供了强大灵活的搜索功能,可查询设备日志详细信息,进行故障分析。
点击左侧菜单“运维监控”展开,“设备日志”子菜单,显示所有设备的日志列表页面,可以选择筛选条件,精细过滤快速查找日志信息。因为当前设备是初次创建,相关日志信息还没有,下图是一个已经产生日志记录的设备日志查询列表。在未来实训环节,我们将通过这里的功能方便便捷查找传输的数据值, 或者快速定位问题。


222.jpg

步骤 12 创建设备分组

支持设备分组功能,可以将不同产品下的不同设备组合在一起,即增加一个跨产品的自定义设备组合。每个设备最多添加进一个分组,通过用户自定义的分组,标记特征,从而实现设备资源的重新组合以方便特定应用场景下的物联网项目应用。
点击左侧“设备分组”子菜单进入分组管理页面,点击右侧“添加分组”,在弹出的页面中填写分组名称,点击“新建”完成分组创建。


20.png
21.png

点击创建好的分组信息列表操作列中的“详情”,进入当前设备分组信息页面。


23.png

步骤 13 为分组添加设备

初始时没有设备存在于该分组中,列表显示为空白。注意分组信息展示的内容,分组也有自己的key, 这个 key 可用于按分组方式接入 OneNET 平台的方式时,计算 Token 的授权凭据。


24.png

点击页面右侧“添加设备”按钮,弹出的页面展示了左右两栏设备列表。左侧列出了所有产品下的待添加设备,已加入到某个分组的设备则不会显示。选择左侧之前创建好的设备,右侧会自动出现该设备信息,表示已被选择加入到当前分组中。点击下面的“确定”按钮完成将设备加入到分组的操作。


25.png

步骤 14 获取产品、设备的必要信息

产品 ID:点击产品开发管理菜单,在具体产品列表中,找到产品 ID 列,复制其字段信息,注意保持其大小写(后文使用“{产品 ID}”来指代,即表示需用这里复制的实际的产品 ID 字段信息替换,下同)


223.jpg

设备名称:点击设备管理菜单,在具体设备列表中,找到设备名称列,本任务中,我们选择“Simulator”设备作为模拟对象,记录该名称,注意保持其大小写。(后文用{设备名称}来指代)


224.jpg

设备密钥:点击设备列表右侧操作项“详情”,在设备详情页面,点击“展开”,记录设备密钥信息,注意保持其完整性。(可直接点击“复制”用于粘贴)。


225.jpg

步骤 15 使用官方 Token 计算工具,获得验证 token 信息

下载并运行“实训资料包\工具包\Token 计算器”路径下的“tokenV2.0.exe”,在工具页面按下表信息填入各个字段(其中部分参数填写需用上面步骤中获得的信息替换):


35.jpg

步骤 16 安装并配置 MQTT.fx 工具模拟设备信息

下载并安装“实训资料包\工具包\MQTT 客户端”路径下的“mqttfx-1.7.1-windows-x64.exe”应用程序。安装完毕后,双击桌面建立的MQTT.fx 快捷方式,运行MQTT.fx 客户端:
点击界面齿轮图标,进入客户端配置页面:


32.png

(1) 设置 Profile Name:可设置一个便于记忆的名字,如“某某产品某某设备接入模拟”
(2) 设置 Broker Address:mqtts.heclouds.com (MQTT 设备接入平台网址)
(3) 设置 Broker 端口:1883 (本次实训任务采用非 TLS 加密的 MQTT 连接)
(4) 设置 Client ID:{设备名称}(前一个步骤中确定的设备名称填入此处)
在下方的第一个选项页“General”中,设置:
(5) MQTT 协议版本号:取消默认勾中,确保下方版本选择下拉框可选,并选择为 3.1.1


33.png

点击 “User Credentials”选项页,继续设置:
(6) 设置 User Name:{产品 ID}(前一个步骤中确定的产品 ID)
(7) 设置 Password:{token} (前一个步骤中计算得到的 token)
点击OK 保存连接配置。


34.png

步骤 17 使用 MQTT.fx 工具模拟设备接入运行 MQTT.fx 工具,点击选择刚刚保存的连接配置列表项,点击“Connect”,如果一切正常,工具将很快登陆接入OneNET 平台,此时 Connect 按钮变灰,右侧 Disconnect 按钮处于激活状态。

36.png

提示:可以点击”Log“ 选项页,查看工具连接服务端的情况,正常连接成功则提示类似如下图红框所示信息。


37.png

当工具显示正常连接后,查看OneNET 平台中当前模拟的设备在页面显示为在线状态(提示:页面的状态不会自动刷新,可以稍微等待后手动刷新页面,确认模拟工具的连接情况与页面上对应设备的状态对应。)


38.png

步骤 18 断开 MQTT.fx 工具模拟,查看 OneNET 平台中设备的状态变化点击 MQTT 工具窗口中的 “Disconnect”按钮,断开工具的 MQTT 连接,等待一会儿后,刷新OneNET平台中设备列表页面,查看显示的设备状态信息:可以看到其状态都变为离线。

39.png
40.png

步骤 19 订阅属性上报结果通知消息

首先根据前述步骤完成模拟工具 MQTT.fx 模拟一个设备(本任务为 Simulator)接入 OneNET 平台,在平台侧页面中查看到设备为上线状态。点击模拟工具的“Subscribe”选项页表头,在其中的输入框填写属性上报结果通知topic。
这是为了确保设备上传消息确实被平台所接受处理,模拟设备通过订阅 OneNET 平台中已提前创建好的该 MQTT 设备属性上报的结果回复 topic 主题,来等待获取对应的属性上报结果消息,属性上报结果回复 topic 为:
$sys/产品 ID/设备名称/thing/property/post/reply
其中产品 ID、设备名称内容,根据实际创建的产品和设备信息替换,将替换后完整的 topic,填入模拟工具“Subscribe”选项页中的输入框,如下图所示:


41.png

点击“Subscribe”按钮向平台订阅该主题,平台返回成功后,工具左侧中的已订阅主题列表会有一条记录,且该主题下当前消息数为 0。(注:如点击后工具未反应,则需要排查是否填写了正确的产品 ID 和设备名称(当前工具接入时所用的产品和设备信息是否相一致))


42.png

步骤 20 发送属性上报消息

点击“Publish”选项页表头,切换到消息发送页,在输入框中填入属性上报 topic 主题,该 topic为:$sys/产品 ID/设备名称/thing/property/post
(同样需要将其中的产品 ID、设备名称替换为实际的信息后填入该输入框。)在下空白编辑区中,输入如下内容,输入并检查无误后,点击“Publish”按钮。


43.png

步骤 21 查看属性上报结果

点击“Subscribe”选项页表头,查看之前订阅的属性上报结果通知消息 topic 下,收到的消息如下图


44.png

步骤 22 OneNET 平台中查看设备的属性最新值

回到 OneNET 平台中设备管理页面,进入“Simulator”设备详情,查看当前设备各个属性的最新数据,确认显示出通过模拟工具上报来的 value 值:


45.png

步骤 23 订阅接收平台下发属性数据的 topic

设备侧如需要收到平台下发的数据,需要订阅接收平台下发数据的 topic,该 topic 为:$sys/产品 ID/设备名称/thing/property/set
点击模拟工具的“Subscribe”选项页表头,在其中的输入框填写平台下发属性数据的 topic。点击“Subcribe”按钮完成订阅,如下所示,成功后订阅列表会多一个新的订阅频道,当前消息数为 0。


46.png

步骤 24 OneNET 平台下发属性数据,

在“设备管理”中选择要下发属性的设备(本任务中选择前面任务中创建的产品和Simulator 设备),点击详情进入设备信息页面,切换功能为“设备调试”,在下方显示页面中选择“应用模拟器”,勾中属性功能点距离 distance,并填写一个具体数值,如 33.3,点击页面下方的 “属性设置”按钮,完成发送。可以在页面右侧的调试日志中看到下发的日志信息。


47.png

步骤 25 模拟设备中查看收到的属性数据值

点击模拟工具的“Subscribe”选项页表头,可以看到已订阅列表中,关于平台下发属性数据的topic, 当前消息数是 1。点击右侧消息列表最下方一条消息,可以看到其中的内容信息,收到的值与前一步骤中下发的值相同。


48.png

步骤 26 进入设备调试功能

在“设备管理”中选择要下发上报信息的设备(本任务中选择前面任务中创建的产品和 Simulator 设备),点击详情进入设备信息页面,切换功能为“设备调试”。(注:如果此时页面提示设备已经登陆,需要先检查,之前模拟工具是否还处于连接状态中,如是则点击模拟工具中的“Disconnect”按钮,并等待一定时间再次刷新页面,直到页面显示可以启动调试。)


49.png

步骤 27 输入当前设备的WiFi定位信息上报

刷新页面提示可以启动调试后,点击“启动调试”按钮。启动后,属性上报 Tab 页展示了当前设备可以上报的数据点,图示仅参考操作的位置示意,不代表所示信息必须保持一样。
向下浏览或通过输入关键字搜索定位到“WiFi定位”属性数据点,勾中前面的选框,并点击右侧下拉展开 箭 头 , 在 该 数 据 点 下 的 “ 热 点 mac 信 息 ” 输 入 框 中 输 入 某 个 WiFi 热 点 的 mac 地 址 信 息 , 如dc:fe:18:f2:4c:67|ac:b3:b5:1d:63:80。点击下方的“属性上报”。


51.png

观察页面右侧显示的数据上报及平台回应信息,确认数据成功上报。


52.png

步骤 28 在设备详情页面查看设备上报的热点位置信息数据

返回设备详情页面,切换“属性”页面,查看设备属性点的数据信息,已经有数据记录。


53.png

步骤 29 重复为另一个 Controller 设备上报地理位置信息数据

重复步骤 1、2、3、4,但此时选择的设备为“Controller”,其他操作方式与前述步骤一致,返回设备详情页面,查看该设备下的地理位置属性点信息,已经有数据记录。


54.png

步骤30 关键代码

A. 工程相对路径\device\src\net_device.c


58.png

B. 工程相对路径\onenet\src\onenet.c


59.png

C. 工程相对路径\applications\application.c


60.png

D. 工程相对路径\onenet\src\cmd_callback.c


61.png

步骤31 编译程序并烧写,随机设备处于在线状态,进入设备详情页面,查看属性表格页展示的各个数据点显示的信息。

65.png

步骤 32 进入 OneNET 平台 场景联动管理功能

登录 OneNET 云平台,进入 OneNET 平台 控制台页面,点击“数据流转”菜单下“场景联动”子菜单,进入场景联动管理功能页面,点击页面右上角“新建场景”,填写场景名称,这里我们需要一个“距离太近告警”的场景,点击添加进入下一步。
111.png

步骤 33 编辑距离探测告警的联动规则
如果是初次创建,这里直接展示的触发条件以及执行动作编辑页面。
首先选择触发条件为:满足全部条件执行,其次在“条件一”内容中,依次选择:
1、触发方式:“设备触发”
2、选择产品分组:“选择产品”
3、选择具体产品:选择之前实训任务中创建的MQTT产品名称
4、选择设备: 选择该产品下的Controller设备
5、选择信息源类型:“设备功能点”
6、选择功能:选择该产品下的“距离”数据点
7、修改关系运算符:“<”
8、数值:填入“5”(双引号不要填)。


112.png

其次点击增加“执行动作”,在“动作一”内容中,依次选择:
1、选择动作类型:“设备执行”
2、选择产品分组:“选择产品”
3、选择具体产品:选择之前实训任务中创建的MQTT产品名称
4、选择设备: 选择该产品下的Controller设备
5、选择功能:选择该产品下的“蜂鸣器”
6、数据值选择“1”。


113.png

点击“确定”创建好改场景信息,并修改其启用状态为“开”。,再新增一个联动规则,名称可以为“距离安全取消告警”。该规则的具体条件及动作与步骤3大部分相同,除了其中的条件部分,距离逻辑判断修改为“>”,数值为“20”,执行动作部分,蜂鸣器的数值改为“0”。最后点击“确认”按钮,并同样将该条场景规则的启用状态修改为“开”,完成本次编辑内容。

设备上电运行后,近距离遮挡超声波模块的距离探测器探头,稍等一定时间后,蜂鸣器模块鸣叫,移开超声波模块遮挡, 再稍等一定时间后,蜂鸣器模块停止鸣叫。

步骤 34 创建一个可视化项目

1.jpg
2.jpg

首先新增一个可视化项目


3.jpg
4.jpg

增加数据源模板


5.jpg

按照图示内容进行填写


6.jpg

编辑可视化页面及各个组件,添加常规图表中的平滑折线图,


8.jpg
9.jpg

如图设置图表的数据来源


10.jpg
11.jpg

此时“数据源选择”下拉列表会出现一条可选的记录,形如“distance_XXXX”,代表以“distance” 模板生成的记录,平台自动追加后缀加以命名。选择该条记录作为折线图的数据源。


12.jpg

点击 “使用数据过滤器”前面的勾选框,去掉勾选,即不使用数据过滤器。点击“数据处理结果”按钮,结果如图所示。


13.jpg

设置图表的横轴列展示字段名与数据提供字段相匹配


14.jpg

新增一个数据源模板,如图所示


15.jpg

为可视化视图添加地理位置组件


16.jpg

设置地图控件的数据来源


17.jpg
18.jpg

点击“数据处理结果”按钮,查看弹出的窗口中展示的数据,是否形如下图所示


19.jpg

增加过滤代码,匹配地图控件的格式要求,将数据过滤器编辑框中,自动生成的过滤器代码全选,删除,对照下图红框部分,输入新的过滤逻辑代码,注意“[”、“{”等括号的配对关系,以及“.”、“,”等间隔符号正确性。编辑完成后点击下方的保存按钮,让过滤器生效。


20.jpg

再次点击“数据处理结果”按钮,查看弹出的窗口中展示的数据,是否如下图在报文字段上一致


21.jpg

最后结果如图所示


111.png

四. 实验中出现的问题

1.设备不上线
重新烧程序,重新接入,重新设置热点
2.POST MAN出现错误,无法成功
重新检查设备信息和Token是否正确,还有接入地址是否正确
3.可视化折线图只有一个点
上线后反复刷新

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

推荐阅读更多精彩内容