一、实验背景
随着科技的快速发展,智慧小区作为城市发展的重要组成部分,对安全防护系统的要求日益提高。安防距离探测产品作为智慧小区安全防护系统的重要组成部分,能够实时监测小区内各关键区域的距离变化,为小区的安全管理提供有力支持。本实验旨在通过搭建安防距离探测产品的系统环境,实现产品设备的创建、模拟设备接入、系统终端设备的搭建、真实设备接入以及可视化实现等,从而验证产品的功能性和实用性。
二、实验目标
- 熟练掌握安防距离探测产品的系统搭建和配置方法;
- 实现产品设备的创建和模拟设备接入;
- 完成系统终端设备的搭建和真实设备接入,实现场景联动;
- 学会使用OneNET平台数据可视化编辑器,对安防距离探测产品进行可视化展现。
- 使用CoAP接入OneNET平台。
三、实验步骤
1.创建产品设备
- 在OneNET平台中创建智慧小区安防距离探测系统产品

其中“节点类型”选择“直连设备”,“接入协议”选择“MQTT”,“数据协议”选择“OneJson”,“联网方式”选“Wi-Fi”,“开发方案”选择“自定义方案”。
1.1创建产品物模型
- 点击产品开发


- 在设置物模型处添加系统功能点

- 在设置物模型处添加自定义功能点

- 保存

- 添加设备

- 查看设备属性及日志


1.2设备分组管理
- 每个设备最多添加进一个分组,通过用户自定义的分组,标记特征,从而实现设备资源的重新组合以方便特定应用场景下的物联网项目应用。添加好分组后添加相应设备。

- 分组也有自己的key, 这个 key 可用于按分组方式接入 OneNET 平台的方式时,计算 Token 的授权凭据。
2.模拟设备接入
2.1模拟设备在线
- 获得验证 token 信息

- 生成Token

- 安装并配置 MQTT.fx 工具模拟设备信息,进入设置

取消勾选Use Default

- 填写对应信息

- 点击Connect

- 查看设备在线

2.2模拟设备接入OneNET 平台实现属性上报
- 订阅属性上报结果通知消息

- 注意到已订阅主题列表会有一条记录,且该主题下当前消息数为0

- 发送属性上报消息

{
"id": "123",
"version": "1.0",
"params": {
"distance": {
"value": 28.88,
"time": 1599534283111
}
}
}

- 注意其中time当前时刻的时间戳(单位ms)

- OneNET 平台下发属性数据

- 接收下方信息

- 仿真设备信息上传

3.系统终端设备的搭建
3.1搭建系统终端设备,修改相关代码
- 根据安防距离探测产品的需求,搭建系统终端设备,根据实训场景,选取 OneNET 物联网实验箱“核心模块”以及“Wifi 模块”、“蜂鸣器模块”、 “超声波模块”等场景所需的模块进行搭建;载入项目三终端设备侧代码工程,工程相对路径\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=\"{wifi}\",\"{密码}\"\r\n", "GOT IP",400))//更改此处为热点名称和密码
#endif
ONETNET_INFO onenet_info = {"", "{设备密钥}", "",
"{产品ID}", "", "",
"183.230.40.96", "1883", 0,
0, 0, 1, 0, 0, 0, 0, 0, 0};
char devicename[32]="设备名称";
//更改此处产品id,设备名称,设备key,备注:设备key可以用产品key替换,权限更高。
- 编译工程,连接下载器烧写程序到设备中 OneNET 平台侧查看设备状态和设备上报数据信息

3.2真实设备接入实现场景联动
- 下发属性在终端设备上执行生效(API 调试)

{
"beep": true
}
- 其中几个红色框强调处,是api 调用的关键信息。实际的API 接口调用能否正确,同样需要这几处关键信息填写正确

3.3基于API 方式实现设备属性下发
- 生成Token

- 填写对应信息

- 打开蜂鸣器开关beep为true

{
"product_id": "***",
"device_name": "***",
"params":
{
"beep": true
}
}
3.4基于OneNET 云平台的场景联动
- 配置场景联动规则,如当距离超过预设阈值时触发报警等。

- 距离安全取消告警

-
智能安防距离太近告警
4.可视化实现
- 在OneNET平台中创建可视化项目,选择适合的模板或空白模板作为基础。



- 配置数据源模板,将安防距离探测产品设备的数据作为数据源。

- 编辑可视化页面,添加折线图等组件展示设备上报的距离数据。

- 绑定数据源到可视化组件,实现数据的实时展示。距离数据,点击管理数据源

- 复制数据源模板

- 取消勾选使用数据过滤器

- 数据处理结果如下

- 地理位置添加

- 数据过滤器需修改
{
dev1: {
lon: data[0].value.longitude,
lat: data[0].value.latitude
}
}]
- 预览并优化可视化视图效果,确保展示清晰、直观。
- 保存视图并发布可视化项目,方便相关人员查看和监控安防距离探测产品的实时数据。
5.使用CoAP接入OneNET平台

- 进入产品详情页面,设置产品的物模型,将多余的功能点删除,只保留 Brand, WifiSwitch 和 CarReverseSignal 三个功能点,其中前两者为属性,后者为事件。

- 准备Java运行环境(使用JDK1.8 安装程序)
- 以管理员身份打开Windows PowerShell,添加下面两个环境变量
setx /m JAVA_HOME "C:\Program Files\Java\jdk1.8.0_101"
setx /m CLASSPATH ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;"
setx /m PATH "%PATH%;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;"
- 生成所需Token

- 在OneNET-CoAP-Shell所在位置的文件管理器地址栏上输入 cmd 然后回车,启动 cmd 窗口。输入命令
java -jar coap-shell-1.1.2-SNAPSHOT.jar
- 启动OneNET-CoAP-Shell

- 连接平台
connect coap://183.230.102.122:5683
- 接入平台,完成登录
- POST $sys/{pid}/{device-name}/login
coap://183.230.102.116:5683:>post /$sys/pid/device-name/login --payload '{"lt":600,"st":"token}' --format 'application/json'
- 将Payload的代码复制保存
----------------------------- Response -----------------------------
POST coap://183.230.102.122:5683/$sys/pid/device-name/login
MID: 37644, Type: ACK, Token: 643D45C78A9D2FBE, RTT: 45ms
Options: {"Location-Path":"$sys"}
Status : 201-Created, Payload: 8B
............................. Payload ..............................
5FD1A02C70FE3DD4
--------------------------------------------------------------------
- 上报设备属性数据
- 将登录返回得到的 Token 在此指令中携带,并构造上传的 Payload 数据。
coap://183.230.102.116:5683:>post /$sys/(pid)/(device-name)/thing/property/post --payload '{"id": "53725","version": "1.0","params": {"Brand": {"value": "上报内容"}}}' --format 'application/json' --accept 'application/json' --token 'Payload'
- 上报成功结果

- 上报设备事件数据
coap://183.230.102.116:5683:>post /$sys/pid/device-name/thing/event/post --payload '{"id":"1637633595439","version":"1.0","params":{"CarReverseSignal":{"value":{"ReverseStatus":true,"ReverseTime":1637633573000,"gnssHead":99.9}}}}' --format 'application/json' --accept 'application/json' --token 'Paylad'
- 上报成功结果

- 设备离线
coap://183.230.102.116:5683:>post /$sys/pid/device-name/logout --payload '{"st":"Token"}' --format 'application/json'
四、实验结果
通过本实验,成功搭建了安防距离探测产品的系统环境,实现了产品设备的创建、模拟设备接入、系统终端设备的搭建、真实设备接入以及可视化实现。实验结果表明,安防距离探测产品能够实时监测小区内各关键区域的距离变化,并通过OneNET平台实现数据的可视化展示,为小区的安全管理提供了有力支持。同时,实验过程中也发现了部分问题和不足,如设备上报数据的稳定性、可视化界面的优化等,需要进一步改进和完善。
五、实验总结
本实验通过实际操作和验证,让我们深入了解了安防距离探测产品的系统搭建和配置方法,掌握了OneNET平台数据可视化编辑器的使用技巧,为后续的产品开发和应用打下了坚实的基础。同时,实验也锻炼了我们的动手能力和问题解决能力,让我们对智慧小区安全防护系统的认识更加深入和全面。
