项目四 安全防护系统的可视化实现
任务一:创建智慧小区安全防护系统产品设备
1.1实训目的
1、通过中移OneNET物联网开放平台新建产品(MQTT);
2、根据项目场景创建产品物模型;
3、创建基于MQTT的云平台设备;
4、查看设备运行状态及数据。
1.2实训步骤
1.2.1创建基于 MQTT 协议的产品
步骤1 点击“创建产品”按钮,进行产品添加。

添加必要的产品信息。产品品类、节点类型、接入协议、联网方式如图所示即可。

1.2.2根据项目场景创建产品物模型步骤
步骤1 进入产品开发

步骤2 点击“设置物模型”按钮,进入物模型管理页面。

步骤3 在弹出的添加页面中点击方框中按键,完成如下所示的配置后,点击“添加”按钮完成。


步骤4 点击“添加自定义功能点”

在弹出的添加页面中添加如下内容。请务必保持一致。


步骤5 保存物模型
检查无误后进行保存。

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

1.2.3 创建基于 MQTT 的设备
步骤1 进入设备管理页面
返回产品列表页面,在建立产品列表中点击“设备管理”,页面即进入设备列表管理页面。

步骤2 添加一个设备(真实)
点击右侧的“添加设备”按钮:

在弹出页面中,添加单个设备,所属产品则选择刚建立的产品名称,设备名称输入Controller

步骤3 再添加一个设备的信息(模拟)
再次点击“添加设备”,该设备名称输入Simulator,点击“确定”保存当前设备的信息。

1.3 拓展实训部分
1.3.1 设备分组管理
步骤1 创建设备分组支持设备分组功能

点击“添加分组”,填写分组名称,点击“新建”完成分组创建。

步骤2
点击页面右侧“添加设备”按钮,弹出页面分左右两栏展示设备列表。左侧列出待添加设备(已分组设备不显示),选左侧设备后,右侧显示所选设备信息,表示已选入当前分组。点击“确定”完成分组操作。

1.4实训笔记
MQTT是一个轻量级发布/订阅通讯协议,由固定头、可变头和负载组成,以极少的资源提供实时可靠消息服务。它基于客户端-服务器架构,实现消息传递。消息由主题和负载组成,分别代表消息类别和具体内容。
物模型是物联网平台中描述产品功能的数据模型,涵盖属性、服务和事件。属性描述设备状态,服务表示设备操作,事件为设备主动上报信息。物模型引入标准参数概念,降低应用开发复杂度与成本。
任务二:智慧小区安全防护系统模拟设备接入
2.1 实训目的
1、通过模拟工具调试设备接入;
2、通过模拟设备,实现属性上报;
3、OneNET 平台下发属性值(命令)到模拟设备;
2.2.1 模拟设备接入OneNET 平台
步骤1 读取必要信息
1、产品 ID,设备名称,设备密匙

步骤2 使用官方 Token 计算工具,获得验证 token 信息
res:products/产品ID/devices/设备名称
et:用在线时间戳工具,生成一个 5 天后时间点
key:设备密匙
其余信息与图中一致

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

(1)PN设置:为接入模拟设置易于记忆的Profile Name,如“ProdSimAccess”。
(2)BA设置:设置Broker Address为mqtts.heclouds.com(MQTT设备接入平台地址)。
(3)BP设置:由于采用非TLS加密的MQTT连接,设置Broker Port为1883。
(4)CID设置:在Client ID字段中输入之前确定的设备名称,如“Device123”。
在“General”选项页中:
(5)MQTTv选择:取消默认勾选的MQTT协议版本,从下拉框中选择版本3.1.1。
在下方的第一个选项页“General”中,设置:

点击 “User Credentials”继续设置:
(6) 设置 User Name:{产品 ID}(前一个步骤中确定的产品 ID)
(7) 设置 Password:{token} (前一个步骤中计算得到的 token)

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

当工具显示正常连接后,稍等一会手动刷新,查看OneNET 平台中当前模拟的设备在页面显示为在线状态

2.2.2 模拟设备接入OneNET 平台实现属性上报
步骤1 订阅属性上报结果通知消息
点击模拟工具的“Subscribe”选项页表头,在其中的输入框填写属性上报结果通知topic。
$sys/产品 ID/设备名称/thing/property/post/reply
在模拟工具中设置MQTT订阅(Subscribe)时,你需要根据实际创建的产品和设备信息来替换产品ID和设备名称内容,并将完整的主题(topic)填入“Subscribe”选项页的输入框中。如下图所示:

点击“Subscribe”按钮向平台订阅该主题,平台返回成功后,工具左侧中的已订阅主题列表会有一条记录,且该主题下当前消息数为 0。

步骤2 发送属性上报消息
点击“Publish”选项页表头,在输入框中填入属性上报 topic 主题,该 topic为:
$sys/产品 ID/设备名称/thing/property/post

在下空白编辑区中,输入如下内容:
{
"id": "123",
"version": "1.0",
"params": {
"distance": {
"value": 28.88,//上报的属性值,填入一个合适的数字即可,如 28.88
"time": 1599534283111//属性值上报时间,该参数可删除不填,如果填写,需用时间戳计算工具获得当前时刻的时间戳(单位ms)
}
}
}
输入并检查无误后,点击“Publish”按钮。

步骤3 查看属性上报结果
点击“Subscribe”选项页表头后,可以查看之前订阅的属性上报结果通知消息。在对应的topic下,你将看到收到的消息列表。最新的一条消息通常会显示消息的id和code。这里的id通常与发送时设置的id值相匹配,而code值为200则代表该条消息已成功送达OneNET平台。这表示你的设备或应用程序成功地将数据发送到了OneNET平台,并且平台已经正确地接收到了这些数据。

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

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

步骤2 OneNET 平台下发属性数据
在“设备管理”中选择要下发属性的设备(本任务中选择前面任务中创建的产品和Simulator 设备),点击详情进入设备信息页面,切换功能为“设备调试”

在下方显示页面中选择“应用模拟器”,勾中属性功能点距离 distance,并填写一个具体数值,如 33.3,点击页面下方的 “属性设置”按钮,完成发送。可以在页面右侧的调试日志中看到下发的日志信息。
步骤3 模拟设备中查看收到的属性数据值
点击模拟工具的“Subscribe”选项页表头,你将能够查看已订阅的topic列表。在列表中,关于平台下发属性数据的topic下,当前消息数显示为1,这表示该topic已收到1条消息。接下来,点击右侧消息列表最下方的一条消息,你将能够查看该消息的内容信息。如果一切正常,你收到的值应该与前一步骤中平台下发的值相同。这证明了你的模拟工具已经成功订阅了该topic,并且正确地接收到了平台下发的属性数据。

2.3 拓展实训部分
2.3.1 仿真设备信息上传
步骤1 进入设备调试功能
在“设备管理”中选择要下发上报信息的设备(本任务中选择前面任务中创建的产品和 Simulator 设备),点击详情进入设备信息页面,切换功能为“设备调试”。

步骤2 启动设备模拟器

点击“启动调试”按钮。启动后,属性上报 Tab 页展示了当前设备可以上报的数据点

步骤3 输入当前设备的WiFi定位信息上报
向下浏览或通过输入关键字搜索定位到“WiFi定位”属性数据点,勾中前面的选框,并点击右侧下拉展开箭头,在该数据点下的“热点mac信息”输入框中输入某个WiFi热点的mac地址信息。结束后点击“属性上报”。

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

步骤4 在设备详情页面查看设备上报的热点位置信息数据
返回设备详情页面,切换“属性”页面,查看设备属性点的数据信息,已经有数据记录。

任务三:基于真实设备接入 OneNET 平台
3.1 实训目的
1、基于真实设备,搭建软硬件环境,接入 OneNET 平台并实现设备属性上报;
2、通过OneNET 平台的“设备调试”实现设备属性下发;
3、通过OneNET 平台的“API 调试”实现设备属性下发;
4、直接基于API 方式实现设备属性下发;
3.2 实训步骤
3.2.1 真实设备接入OneNET 平台实现属性上报
步骤1 基于 OneNET 物联网实验箱搭建实训项目终端硬件平台
选取 OneNET 物联网实验箱“核心模块”以及“Wifi 模块”、“蜂鸣器模块”、 “超声波模块”进行搭建
步骤2 修改设备程序的 OneNET 平台网络接入配置参数
修改如下几处代码,让工程具备正确的网络访问以及 OneNET 平台接入验证和适配本次实训任务所需的物模型数据属性上报、写入能力。具体代码文件在工程中的位置如下图所示

1. /device/src/net_device.c 约 677 行处,将{wifi}、{password}替换为设备所在 Wifi 网络用户名和密码;

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

步骤3 编译工程,连接下载器烧写程序到设备中
下载器的连接以及烧写过程略。下载成功后设备重新加电,等待一定时间,进入下一步。
步骤4 OneNET 平台侧查看设备状态
登录OneNET平台后,需要确认“Controller”设备的运行状态为在线。具体操作可参考之前查看设备状态的步骤。(如果发现设备显示为不在线,应首先检查网络接入设置,确认设备已成功连接到互联网)接着,核实OneNET平台的鉴权信息,包括设备ID、API Key等是否填写正确无误。(如果以上检查都没有问题,那么可能需要进一步排查代码修改处是否存在错误,例如MQTT连接参数、发布/订阅主题等设置是否符合要求。通过这些步骤,可以逐步定位并解决设备不在线的问题)

步骤5 OneNET 平台侧查看设备上报数据信息
进入设备详情页面,查看属性表格页展示的各个数据点显示的信息。(下图仅为示例参考)

3.2.2 下发属性在终端设备上执行生效(设备调试)
步骤1 通过 OneNET平台 的设备调试方式进行属性下发
首先,打开设备管理列表页面,从列表中选择先前步骤中创建的MQTT产品下的“Controller”设备。接着,点击该设备的“详情”按钮,进入设备详情页面。在设备详情页面中,找到并点击“设备调试”选项,进入OneNET平台的设备调试功能页面。在设备调试功能页面,您需要切换调试方式为“应用模拟器”。一旦切换完成,下方的页面将展示物模型中可写的属性功能点。这些属性是可以设置的,以便进行设备的调试和测试工作。
请确保按照这些步骤正确操作,以便能够顺利进入设备调试页面并设置所需的属性。。


先勾选一个功能点,然后设置下发的数值。(以蜂鸣器为例,这是一个 bool 型功能点,勾选后,可设置值为 true、false 两个之一,本次任务选择 true 作为下发数值)点击页面下方的“属性设置”按钮,右侧调试日志展示了下发的报文,设备端也同时将该数值执行生效。

3.2.3 下发属性在终端设备上执行生效(API 调试)
步骤2 进入“API 调试”功能页面
点击“运维监控”菜单下“API 调试”子菜单,并展开工作页面左列显示的大类调试类别中的“物模型使用”下拉列表,选择“设置设备属性”API项,如下图所示:

在中间页面展示的必填参数中,填写页面中输入必要的参数,如下图所示,本次任务中,填入真实接入的设备“Controller”所对应的相关信息:

其中的params内容填写要设置的属性标识符以及对应设置值,本次任务中设置蜂鸣器状态为true,文本示例参考如下:
{
"beep": true
}
点击下方的“执行”按钮,等待一会儿后,设备端执行下发的属性值(蜂鸣器响),同时右侧列页面刷新显示出调用结果,也就是整个API 模拟调用的报文交互结果。几个红色框强调处,是api 调用的关键信息。实际的API 接口调用能否正确,需要这几处关键信息填写正确。

3.2.4 基于API 方式实现设备属性下发
步骤1 填入必要参数
1、根据API文档的信息,确定设备属性设置的请求方式、请求 url ,填入到 Postman 工具url填写栏,将 Postman工具url填写栏前面的下拉选项改为“POST”。

2、确定请求 body 内容及格式,以蜂鸣器属性值(beep)下发为例, product_id为产品ID,device_name为设备名称,params 为需要下发的结构化数据,同时包含了要下发的“beep”属性点的值,示例中为 true 数据。以键值对形式将上述需要设置的具体参数组装为 body 报文内容,最终填入 Postman 工具的 Body 选项页内。
{
"product_id": "84qVvid4b5",
"device_name": "Controller",
"params":
{
"beep": true
}
}
3、确定请求的 Header 内容,这里需要一个向 OneNET 平台鉴权所需的必要信息字段,就是“authorization ”信息,res 参数须以“userid/ 用户 ID”的格式填入,版本号须为“2022-05-01”,字段具体内容根据实际情况进行填入。

步骤2 发起 API 请求,查看结果
在发起请求前,请确认真实设备在线。以蜂鸣器属性值(beep)为例,使用Postman发起请求,经过平台鉴权后,请求将下发至目标设备,开启蜂鸣器开关,蜂鸣器将按照预设逻辑鸣响。

3.2.5 基于OneNET 云平台的场景联动
步骤 1 进入 OneNET 平台 场景联动管理功能
进入 OneNET 平台 控制台页面,点击“数据流转”菜单下“场景联动”子菜单。

步骤2 创建场景联动规则
点击页面右上角“新建场景”,填写场景名称。

步骤3 编辑距离探测告警的联动规则
触发方式:“设备触发”
产品分组:“选择产品”
具体产品:选择之创建的MQTT产品名称
设备: Controller设备
信息源类型:“设备功能点”
功能:“距离”数据点
关系运算符:“<”
数值: "5"

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

点击“确定”创建好改场景信息,并修改其启用状态为“开”。

步骤4 再新增一个联动规则,实现距离安全时取消告警
参考步骤3 描述,新增联动规则“距离安全取消告警”,其条件与步骤3中的大部分相似,但距离逻辑判断改为“>20”,蜂鸣器执行动作数值设为“0”。完成设置后,启用该规则。进入联动规则配置页面。新增一个规则,命名为“距离安全取消告警”。在条件设置部分,找到与距离相关的逻辑判断,将逻辑操作符修改为“>”(大于)。在数值输入框中输入“20”,表示当距离大于20时触发该规则。
在执行动作部分,找到与蜂鸣器相关的设置,将蜂鸣器的数值改为“0”,表示关闭蜂鸣器。确认所有设置无误后,点击“确认”按钮保存该规则。将该条场景规则的启用状态改为“开”,使其生效。

步骤5 设备上线,观察场景实现效果
当超声波模块的探头被近距离遮挡时,其距离探测器会检测到距离的显著变化。经过一段短暂的响应时间后,与之关联的蜂鸣器模块将开始鸣叫,以提醒用户或进行相应的警示。一旦遮挡物从超声波模块上移开,系统将会再次经过一段短暂的检测时间,随后蜂鸣器模块将自动停止鸣叫,表示障碍物已被清除。
若设备未能按照预设的场景联动规则逻辑执行,用户可以通过访问场景列表中的该条场景,并点击“查询日志”功能,进入联动日志查看界面。通过仔细分析联动日志中的记录,用户可以找出设备未按预期执行的具体原因,从而进行相应的故障排除或优化设置。



任务四:安全防护系统的可视化实现
4.1 实训目的
1、学会OneNET 平台数据可视化编辑器的使用;
2、能够进行可视化数据源的配置;
3、对智慧小区安全防护系统进行可视化展现。
4.2 实训步骤
4.2.1 物联网云平台可视化组件配置运用
步骤1 创建一个可视化项目

新增可视化项目,选2D“空白模板”,填写项目名称、描述后,点击“确定”完成创建。

可以选择具有一定页面效果的模板比如“模板-智慧园区“。

步骤2 增加数据源模板
点“数据管理”>“数据源模板”,右侧点击“创建数据源模板”,为距离变化图表预设数据源模板。

在展开的配置项中,先设定“数据类 ”型为“物联网平台”,依次填写带“*”的所有项:

步骤3 编辑可视化页面及各个组件

选择一个合适的图表,若是空白模板,则添加一个图表

步骤4 设置图表的数据来源
保持折线图处于选择状态,现在切换到“数据”页。选择“数据绑定方式”为“数据源”,此时“数据源选择”下拉列表为“请选择”状态,点击“管理数据源”按钮,弹出“数据源管理”页面。

点击“数据源模板”Tab 页,展示目前所有的数据源模板,可以看到一条在之前步骤中已经创建好的记录(名称为 distance),点击该记录操作列中最右图标:“以此模板创建数据源”。关闭窗口回到视图编辑页面。

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

步骤5 设置不使用数据过滤器
点击 “使用数据过滤器”前面的勾选框,去掉勾选,即不使用数据过滤器。点击“数据处理结果”按钮,查看弹出的窗口中展示的数据,这些数据就是设备定时上报的属性点形成的(图例中的 value对应的值,就是上报的间隔距离值)。关闭弹出窗口继续下一步。

步骤6 设置图表的横轴列展示字段名与数据提供字段相匹配
现在切换回“样式”属性 Tab 页。展开“数据系列”的节点,修改列字段名为“value”,保持与数据源中提供的数值字段“value”相一致。

步骤7 预览无误后保存视图,完成可视化项目
完成视图编辑后,点击顶部的“保存”按钮(编辑状态和预览状态均可),完成项目保存。

共有 0 条评论