项目四:基于ONNET的智慧小区安全防护系统及其可视化
任务一:创建智慧小区安全防护系统产品设备
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 添加一个设备,用于模拟真实设备接入
因为是新创建的产品,没有设备,点击“添加设备”:
在弹出的页面中,添加单个设备,所属产品选择刚建立的产品,设备名称输入Controller
步骤3 再添加一个设备
再点击“添加设备”,该设备名称输入Simulator后续操作与上述一致
1.2.4 设备状态及信息查看
步骤1 查看设备是否运行
点击“设备管理”,“设备状态”展示了对应设备的运行状态。
步骤2 查看设备信息
点击“详情”,在详情页面,查看设备及归属产品的详细信息。
1.3 拓展实训部分
1.3.1 设备分组管理
步骤1 创建设备分组支持设备分组功能,将不同产品下的不同设备组合在一起。
点击“设备分组”进入分组管理页面,点击“添加分组”,填写分组名称,点击“新建”完成创建。
点击“详情”,进入当前设备分组信息页面。
步骤2
点击添加设备”按钮,选择创建好的设备,右侧会自动出现该设备信息,表示已被选择加入到当前分组中。点击“确定”按钮完成将设备加入到分组的操作。**
1.5 实训笔记
MQTT是一种基于发布/订阅模式的轻量级消息传输协议,专为受限环境(如网络不稳定、带宽有限、设备处理能力有限等)设计,用于物联网(IoT)设备之间的通信。
物模型是物联网领域中的一个概念,它定义了设备在云平台上的数据模型,包括设备的功能描述、属性、服务和事件等。物模型是设备与云平台之间交互的抽象表示,它使得不同厂商、不同类型的设备能够以统一的方式进行管理和控制。
任务二:智慧小区安全防护系统模拟设备接入
2.1 实训目的
1、通过模拟工具调试设备接入;
2、通过模拟设备,实现属性上报;
3、OneNET 云平台下发命令到模拟设备;
2.2.1 模拟设备接入OneNET 平台
**步骤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
(4) 设置 Client ID:设备名称
在“General”中,设置:
(5) MQTT 协议版本号:取消默认勾中,选择版本为 3.1.1
点击 “User Credentials”:
(6) 设置 User Name:产品 ID
(7) 设置 Password:token}
步骤4 使用 MQTT.fx 工具模拟设备接入
运行 MQTT.fx 工具,点击“Connect”,正常运行下Connect 按钮变灰,右侧 Disconnect 按钮处于激活状态。
当工具正常连接后,手动刷新,查看当前模拟的设备显示为在线状态
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": 1998234235711//属性值上报时间,该参数可删除不填,如果填写,需用时间戳计算工具获得当前时刻的时间戳(单位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”完成订阅,如下所示。
步骤2 OneNET 平台下发属性数据
在“设备管理”中选择要下发属性的设备(Simulator 设备),点击详情,切换功能为“设备调试”
步骤3 模拟设备中查看收到的属性数据值
点击Subscribe”,可以看到已订阅列表中,关于平台下发属性数据的topic, 当前消息数是 1。点击右侧消息列表最下方一条消息,可以看到其中的内容信息,收到的值与前一步骤中下发的值相同。
2.3 拓展实训部分
2.3.1 仿真设备信息上传
步骤1 进入设备调试功能
在“设备管理”中选择要下发上报信息的设备( Simulator 设备),点击详情进入设备信息页面,切换功能为“设备调试”。
步骤2 启动设备模拟器
注:如果此时页面提示设备已经登陆,需要先检查,之前模拟工具是否还处于连接状态中,如是则点击模拟工具中的“Disconnect”按钮,并等待一定时间再次刷新页面,直到页面显示可以启动调试。
点击“启动调试”按钮。启动后,属性上报 Tab 页展示了当前设备可以上报的数据点
步骤3 输入当前设备的WiFi定位信息上报
通过输入关键字搜索定位到“WiFi定位”,勾中前面的选框,并点击右侧下拉展开箭头,在该数据点下的“热点mac信息”输入框中输入某个WiFi热点的mac地址信息,点击下方的“属性上报”。
观察页面右侧显示的数据上报及平台回应信息,确认数据成功上报。
步骤4 在设备详情页面查看设备上报的热点位置信息数据
返回设备详情页面,切换“属性”页面,查看设备属性点的数据信息。
2.4 实训笔记
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,它专为物联网(IoT)中的低带宽、高延迟或不可靠的网络连接而设计。MQTT模拟设备接入的原理主要涉及以下几个方面:
-
客户端与服务器架构:
- 客户端(Client):模拟设备通常作为MQTT客户端,负责发布(Publish)消息到特定的主题(Topic)或订阅(Subscribe)感兴趣的主题以接收消息。
- 服务器(Broker):MQTT服务器,也称为代理(Broker),负责接收所有客户端的发布消息,并将其传递给订阅了相应主题的客户端。
-
连接过程:
- 模拟设备(客户端)首先需要与MQTT代理建立TCP/IP连接。
- 连接建立后,客户端发送CONNECT消息给代理,代理响应CONNACK消息确认连接。
- 客户端可以选择性地发送用户名和密码进行认证,或者使用其他安全机制如TLS/SSL来保证通信安全。
-
消息发布与订阅:
- 客户端通过发布PUBLISH消息到特定的主题来发送数据。
- 客户端通过发送SUBSCRIBE消息来订阅感兴趣的主题,代理会记录这些订阅信息。
- 当有消息发布到已订阅的主题时,代理会将消息发送给所有订阅了该主题的客户端。
-
消息质量(QoS):
- MQTT支持三种不同的消息服务质量(QoS)级别:0(最多一次)、1(至少一次)、2(恰好一次)。
- 模拟设备可以根据需要选择合适的QoS级别来确保消息的可靠传输。
-
保持活动状态(Keep Alive):
- 客户端和代理之间会设置一个保持活动状态的时间间隔,以确保连接不会因为长时间无数据传输而断开。
- 如果在这个时间内没有消息交换,客户端会发送PINGREQ消息,代理响应PINGRESP消息,以此来维持连接。
-
断开连接:
- 当模拟设备需要断开连接时,它会发送DISCONNECT消息给代理,然后关闭TCP/IP连接。
任务三:基于真实设备接入 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 实训笔记
物联网(IoT)平台的可视化页面是一个用户界面(UI),它允许用户通过图形化的方式监控、管理和控制连接到平台的物联网设备。这些页面通常提供以下功能:
-
设备监控:
- 实时数据显示:展示设备上传的实时数据,如温度、湿度、位置等。
- 状态更新:显示设备的运行状态,如在线/离线、正常/异常等。
-
数据可视化:
- 图表和图形:使用折线图、柱状图、饼图等来展示数据趋势和模式。
- 仪表盘:提供一个综合视图,汇总关键性能指标(KPIs)和统计信息。
-
设备管理:
- 设备列表:列出所有连接的设备,包括设备ID、类型、位置等信息。
- 配置和控制:允许用户对设备进行配置更改,如设置阈值、更新固件、发送控制命令等。
-
报警和通知:
- 异常检测:当设备数据超出预设阈值时,系统会触发报警。
- 通知系统:通过电子邮件、短信或应用内通知向用户发送警报信息。
-
用户权限管理:
- 角色和权限分配:根据用户角色分配不同的权限,如管理员、操作员、访客等。
- 安全设置:确保只有授权用户可以访问敏感数据和控制功能。
-
数据分析和报告:
- 历史数据查询:允许用户查询和分析历史数据。
- 定制报告:生成和导出定制的报告,帮助用户进行决策支持。
-
集成和扩展:
- API接口:提供API接口,允许与其他系统或服务集成。
- 插件和扩展:支持第三方插件或扩展,以增强平台功能。
共有 0 条评论