项目四-基于 OneNET 的智慧小区安全防护系统及其可视化
任务一:创建智慧小区安全防护系统产品设备
1.1实训目的
1、通过中移OneNET物联网开放平台新建产品(MQTT);
2、根据项目场景创建产品物模型;
3、创建基于MQTT的云平台设备;
4、查看设备运行状态及数据。
1.2实训步骤
1.2.1创建基于 MQTT 协议的产品
步骤1 通过中移物联网首页的“全部产品服务”菜单进入 “物联网开放平台”功能页
步骤2 创建产品,展开左侧菜单“产品开发”功能,点击“创建产品”按钮,进行产品添加。
添加必要的产品信息。选择产品品类(不一定必须一致,符合项目任务背景即可),智能化方式为“设备接入”方式,其中“节点类型”选择“直连设备”,“接入协议”选择“MQTT”,“数据协议”选择“OneJson”,“联网方式”选“Wi-Fi”,“开发方案”选择“自定义方案”。其他信息字段,对本次任务实际完成效果没有影响。
1.2.2根据项目场景创建产品物模型步骤
步骤1 进入产品开发详情页面
步骤2 点击页面右侧的“设置物模型”按钮,进入物模型管理页面,按下述步骤添加系统功能点和自定义功能点。
步骤3 在弹出的添加页面中,选择如下图所示的系统功能点,点击右下角的“添加”按钮完成添加。
步骤4 点击“添加自定义功能点”
在弹出的添加页面中,按如下各个字段内容,添加项目场景所需的功能点信息。多个自定义功能点,需每次新增后,再次点击添加。(标识符字段输入内容请保持下图内容一致)
步骤5 检查并保存创建的物模型
检查页面上添加的物模型各功能点信息无误后,点击“保存”按钮,并点击弹出的确认提示“确定”。则创建的物模型在 OneNET 平台上生效。
1.2.3 创建基于 MQTT 的设备
步骤1 进入设备管理页面
当我们完成上一步骤返回产品列表页面时,可在刚建立产品列表的操作项中点击“设备管理”,页面即进入设备列表管理页面。我们也可以点击左侧菜单的“设备接入管理”,进入下一级菜单“设备管理”,同样进入该管理页面。
步骤2 添加一个设备的信息,用于真实设备接入
目前刚创建的产品,当前设备数为 0,我们点击右侧的“添加设备”按钮:
在弹出的添加设备页面中,添加单个设备,所属产品则选择刚建立的产品名称,设备名称输入Controller
步骤3 再添加一个设备的信息,用于模拟工具接入
再次点击“添加设备”,该设备名称输入Simulator(同样请按此信息输入,确保与后续实训任务相呼应),产品依旧选择刚建立的产品名称,最后点击“确定”保存当前设备的信息。
1.2.4 设备状态及信息查看
步骤1 查看设备运行状态
点击左侧菜单“设备管理”,显示设备列表页面,其中“设备状态”列展示了对应设备的运行状态。
步骤2 查看设备详细信息
点击设备列表右侧操作项“详情”,在设备详情页面,查看设备及归属产品的详细信息。这里的信息,后续任务步骤中会使用到。
1.3 拓展实训部分
1.3.1 设备分组管理
步骤1 创建设备分组支持设备分组功能,可以将不同产品下的不同设备组合在一起,即增加一个跨产品的自定义设备组合。
点击左侧“设备分组”子菜单进入分组管理页面,点击右侧“添加分组”,在弹出的页面中填写分组名称,点击“新建”完成分组创建。
点击创建好的分组信息列表操作列中的“详情”,进入当前设备分组信息页面。
步骤2 为分组添加设备初始时没有设备存在于该分组中,列表显示为空白。注意分组信息展示的内容,分组也有自己的key,这个 key 可用于按分组方式接入 OneNET 平台的方式时,计算 Token 的授权凭据。
点击页面右侧“添加设备”按钮,弹出的页面展示了左右两栏设备列表。左侧列出了所有产品下的待添加设备,已加入到某个分组的设备则不会显示。选择左侧之前创建好的设备,右侧会自动出现该设备信息,表示已被选择加入到当前分组中。点击下面的“确定”按钮完成将设备加入到分组的操作。
1.5 实训笔记
MQTT协议是一个基于发布/订阅模式的轻量级通讯协议,MQTT数据包由固定头、可变头和负载三部分构成,其最大的优点是可以以极少的网络带宽和代码量,为远程设备提供实时可靠的消息服务。
MQTT通过客户端和服务器端的交互实现消息传递。客户端可以是消息的发布者或订阅者,而服务器则负责消息的路由和转发。消息由主题(Topic)和负载(Payload)两部分组成,其中主题用于区分消息类别,负载则是具体的消息内容。
物模型是在物联网平台中用于描述产品功能的数据模型,它从属性、服务和事件三个维度描述,属性描述设备的状态和信息,服务代表设备可以执行的操作,事件则是设备主动上报的信息,这些维度共同描述了设备的功能和行为,是设备与应用之间沟通的桥梁。
为了统一不同设备的功能描述,物模型引入了标准参数概念。每个品类的设备都有一套标准参数,便于开发者理解和使用,通过标准化设备的能力表达和交互方式,降低了物联网应用开发的复杂度和成本。
任务二:智慧小区安全防护系统模拟设备接入
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) 设置 Profile Name:可设置一个便于记忆的名字,如“某产品某设备接入模拟”
(2) 设置 Broker Address:mqtts.heclouds.com (MQTT 设备接入平台网址)
(3) 设置 Broker 端口:1883 (本次实训任务采用非 TLS 加密的 MQTT 连接)
(4) 设置 Client ID:{设备名称}(前一个步骤中确定的设备名称填入此处)
在下方的第一个选项页“General”中,设置:
(5) MQTT 协议版本号:取消默认勾中,确保下方版本选择下拉框可选,并选择为 3.1.1
点击 “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
其中产品 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 平台。
步骤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, 当前消息数是 1。点击右侧消息列表最下方一条消息,可以看到其中的内容信息,收到的值与前一步骤中下发的值相同。
2.3 拓展实训部分
2.3.1 仿真设备信息上传
步骤1 进入设备调试功能
在“设备管理”中选择要下发上报信息的设备(本任务中选择前面任务中创建的产品和 Simulator 设备),点击详情进入设备信息页面,切换功能为“设备调试”。
步骤2 启动设备模拟器
注:如果此时页面提示设备已经登陆,需要先检查,之前模拟工具是否还处于连接状态中,如是则点击模拟工具中的“Disconnect”按钮,并等待一定时间再次刷新页面,直到页面显示可以启动调试。
点击“启动调试”按钮。启动后,属性上报 Tab 页展示了当前设备可以上报的数据点
步骤3 输入当前设备的WiFi定位信息上报
向下浏览或通过输入关键字搜索定位到“WiFi定位”属性数据点,勾中前面的选框,并点击右侧下拉展开箭头,在该数据点下的“热点mac信息”输入框中输入某个WiFi热点的mac地址信息,如F4-6A-DD-E9-2C-0F。点击下方的“属性上报”。
观察页面右侧显示的数据上报及平台回应信息,确认数据成功上报。
步骤4 在设备详情页面查看设备上报的热点位置信息数据
返回设备详情页面,切换“属性”页面,查看设备属性点的数据信息,已经有数据记录。
2.4 实训笔记
MQTT模拟设备接入的原理是基于发布/订阅模式的轻量级消息传输协议,通过模拟器作为客户端与物联网平台进行交互,实现设备的快速验证和测试。其步骤如下:
首先在物联网平台中创建产品并注册设备,获取必要的连接参数如产品ID、设备名称和设备密钥等;
使用支持MQTT的客户端模拟器,如MQTT.fx、MQTTX等,配置MQTT客户端,填入接入平台网址、端口、MQTT 协议版本号、产品ID,Token等信息;
连接建立后,客户端根据需求订阅相关主题,以便接收来自其他设备或应用的消息。客户端可以向指定主题发布消息,模拟设备的数据上传过程;
任务三:基于真实设备接入 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 平台接入验证和适配本次实训任务所需的物模型数据属性上报、写入能力。具体代码文件在工程中的位置如下图所示
A. 工程相对路径/device/src/net_device.c 约 677 行处,将{wifi}、{password}替换为设备所在 Wifi 网络用户名和密码(将{}括号一起替换,下同);
B. 工程相对路径/onenet/src/onenet.c 约 56 行处,依次修改{设备密钥}、{产品 id}、{设备名称}为之前步骤中在 OneNET 平台 中所创建的产品、设备相关信息,本例中设备名称就是之前步骤中创建的“Controller”设备,并对应填入其设备密钥;
步骤3 编译工程,连接下载器烧写程序到设备中
下载器的连接以及烧写过程略。下载成功后设备重新加电,等待一定时间,进入下一步。
步骤4 OneNET 平台侧查看设备状态
登录 OneNET 平 台 ,查看“Controller”设备运行状态为在线,具体操作与前述步骤中查看设备状态相同,图略。若此时设备显示为不在线,则排查前面关于网络接入、OneNET 鉴权等代码修改处是否有误。
步骤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 编辑距离探测告警的联动规则
1、触发方式:“设备触发”
2、选择产品分组:“选择产品”
3、选择具体产品:选择之前实训任务中创建的MQTT产品名称
4、选择设备: 选择该产品下的Controller设备
5、选择信息源类型:“设备功能点”
6、选择功能:选择该产品下的“距离”数据点
7、修改关系运算符:“<”
8、数值:填入 "5"
其次点击增加“执行动作”,在“动作一”内容中,依次选择:
1、选择动作类型:“设备执行”
2、选择产品分组:“选择产品”
3、选择具体产品:选择之前实训任务中创建的MQTT产品名称
4、选择设备: 选择该产品下的Controller设备
5、选择功能:选择该产品下的“蜂鸣器”
6、数据值选择 "1"。
点击“确定”创建好改场景信息,并修改其启用状态为“开”。
步骤4 再新增一个联动规则,实现距离安全时取消告警
参考步骤3 描述,再新增一个联动规则,名称可以为“距离安全取消告警”。该规则的具体条件及动作与步骤3大部分相同,除了其中的条件部分,距离逻辑判断修改为“>”,数值为“20”,执行动作部分,蜂鸣器的数值改为“0”。最后点击“确认”按钮,并同样将该条场景规则的启用状态改为“开”
步骤5 设备上线,观察场景实现效果
近距离遮挡超声波模块的距离探测器探头,稍等一定时间后,蜂鸣器模块鸣叫,移开超声波模块遮挡, 再稍等一定时间后,蜂鸣器模块停止鸣叫。
注:如设备未按场景联动的规则逻辑执行,可通过场景列表该条场景的“查询日志”进入查看场景联动日志,分析具体原因。
3.3实训笔记
红外距离探测器主要依靠红外光的发射与接收来确定距离。当红外光照射到物体上时,会根据物体的性质反射回一部分光线。这些反射回来的光线被探测器捕捉并转换为电信号,经过处理后用于计算发射点与物体之间的距离。
任务四:安全防护系统的可视化实现
4.1 实训目的
1、学会OneNET 平台数据可视化编辑器的使用;
2、能够进行可视化数据源的配置;
3、对智慧小区安全防护系统进行可视化展现。
4.2 实训步骤
4.2.1 物联网云平台可视化组件配置运用
步骤1 创建一个可视化项目
首先新增一个可视化项目,在弹出的模板选择页面,选择一个 2D 项目模板下的“空白模板”作为本次项目可视化的基础模板,填写位于右侧的项目名称、项目描述后,点击“确定”完成可视化项目创建。
可以选择具有一定页面效果的模板比如“模板-智慧园区“,后续根据需要删减部分控件。
步骤2 增加数据源模板
点击左侧菜单“数据管理”下“数据源模板”子菜单,右侧页面中,点击“创建数据源模板”,预先为界面展示距离的变化图表建立一个数据来源模板。
在展开的配置项中,先设定第一项的“数据类 ”型为“物联网平台”,这时页面会切换为配置从“物联网平台”抓取数据所需的必要信息。依次填写带“*”的所有项:
步骤3 编辑可视化页面及各个组件
选择一个合适的图表,若是空白模板,则添加一个图表
步骤4 设置图表的数据来源
保持折线图处于选择状态(可再次双击折线图,右侧出现属性修改页),现在切换到“数据”属性 Tab页。选择“数据绑定方式”为“数据源”,此时“数据源选择”下拉列表为“请选择”状态,点击“管理数据源”按钮,弹出“数据源管理”页面。
点击“数据源模板”Tab 页,展示目前所有的数据源模板,可以看到一条在之前步骤中已经创建好的记录(名称为 distance),点击该记录操作列中最右图标:“以此模板创建数据源”。关闭窗口回到视图编辑页面。
此时“数据源选择”下拉列表会出现一条可选的记录,形如“distance_XXXX”,代表以“distance” 模板生成的记录,平台自动追加后缀加以命名。选择该条记录作为折线图的数据源。
步骤5 设置不使用数据过滤器
点击 “使用数据过滤器”前面的勾选框,去掉勾选,即不使用数据过滤器。点击“数据处理结果”按钮,查看弹出的窗口中展示的数据,这些数据就是设备定时上报的属性点形成的(图例中的 value对应的值,就是上报的间隔距离值)。关闭弹出窗口继续下一步。
步骤6 设置图表的横轴列展示字段名与数据提供字段相匹配
现在切换回“样式”属性 Tab 页。展开“数据系列”的节点,修改列字段名为“value”,保持与数据源中提供的数值字段“value”相一致。
步骤7 预览可视化视图并回到编辑状态迭代优化视图效果
编辑视图界面,可以看到折线图已显示出实际的折线数据图表,可以点击右上角“预览”按钮,在全页面状态下查看整个可视化视图的效果。
步骤8 保存视图,完成可视化项目
完成视图编辑后,点击顶部的“保存”按钮(编辑状态和预览状态均可),完成项目保存。
4.3 实训笔记
物联网平台的可视化页面是一种用户界面,它允许用户以图形化的方式查看和分析连接到物联网平台的数据。它通过一个易于使用的界面展示来自各种设备和传感器的实时数据,使得用户能够监控和管理他们的物联网设备和系统。这些页面通常由图表、地图、控制面板等组件构成,它们可以展示设备状态、历史数据、实时警报和其他关键信息。
其工作步骤大致为创建可视化项目,编辑页面,调用提前创建好的数据源,完成编辑后可先预览,无误后保存。
可视化项目通过图形化的编辑器,用户无需具备编程技能即可设计和实现复杂的应用逻辑和用户界面,提供多种预定义的页面模板和可视化组件,如柱状图、饼图、地图等,支持连接多种数据源,包括云数据库、第三方APIs等,实现数据的实时更新和展示。
版权声明:
作者:dingding
链接:https://www.techfm.club/p/128626.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论