智能井盖锁云端监测管理系统设计与实现

2022-02-19 10:23孙钢灿张宁宁赵传勇
计算机应用与软件 2022年2期
关键词:井盖日志钥匙

孙钢灿 张宁宁 赵传勇

1(郑州大学信息工程学院 河南 郑州 450000) 2(郑州大学产业技术研究院有限公司 河南 郑州 450000)

0 引 言

在社会基础设施建设中,考虑到安全性和美观性,很多设施采用地下建设的方式,如电力电缆、通信光纤、燃气设备、供水设备等[3]。这些功能井方便了人们的生活,优化了社会环境,但此类功能井也存在着很多现实的问题:1) 井内设施被盗造成区域停水、停电、停气,严重影响群众正常生活;2) 电力设备通常需要频繁的技术维护和支持,多人员交叉下井而责任分配不清给系统管理带来极大负担;3) 井盖破损和丢失严重威胁行人和行驶车辆安全,导致安全事故发生。

针对上述问题,为解决以往井盖定位系统过于简单的现状,本文基于井盖和锁相匹配并为井盖配备专用智能钥匙的思想[4-5],设计井盖锁监测管理系统,实现了对井盖全时段上锁并动态监控、实时报警。有效解决功能井井盖易丢失、无法及时修补等问题,消除安全隐患,使得人与物之间的互联关系更加密切。

1 系统架构

智能井盖锁监测管理系统是针对市政功能井使用过程中暴露出的问题提出的一种基于物联网技术的实时监测系统[6],在设计方面不仅实现了主要业务功能,还考虑了可操作性。该系统是连接客户需求、人员管理、锁具和钥匙的纽带,在设计过程中遵循了稳定可靠原则、简单易用原则、全面充分原则和可维护扩展原则。

1.1 整体架构

本系统在物联网的基础上,基于SSM框架和B/S架构[7-9],由智能井盖锁、智能钥匙、物联网、云服务器、云系统Web端、系统移动端等部分组成,以无线通信为媒介,以云服务器为信息载体,给每个井盖配备专用锁,井盖锁和钥匙之间通过NFC模块进行通信,井盖通过NB-IoT无线通信模块将信息上传到云端,平台PC端和云服务器之间基于ICMP规则,采用TCP协议进行通信[10]。系统整体架构如图1所示。

图1 系统整体架构

1.2 云平台开发架构设计

在系统设计中,我们采用三层架构搭建系统的整体框架,它们分别是表示层、业务逻辑层和数据访问层。

表示层又称Web层,负责收集客户端信息,然后把收集到的信息发送到业务逻辑层进行处理,处理结果将返回给用户端。业务逻辑层又称BLL层,负责接收表示层发送的消息,并与数据层进行数据交互,可以进行业务逻辑以及系统服务的操作,将最终的处理结果返回给表示层。业务逻辑层相当于表示层和数据访问层之间的桥梁。数据访问层又称DAL层,主要负责数据相关的操作,对数据进行资源管理。整个框架结构如图2所示。

图2 平台开发架构

使用这样的三层架构具有极大优势,可以快速访问数据库,对存储数据进行增删查改操作,同时保障系统运行稳定和数据安全。表示层提供良好的人机交互,使用者可以利用图形界面进行相关操作,表示层接收到操作指令时触发对应的事件处理机制,将用户信息提供给业务逻辑层。数据访问层处理业务逻辑层的请求,提供文件服务、权限管理、消息队列、数据访问等功能。各层进行信息交互时通过M(Model)、V(View)、C(Controller)设计模式实现。其开发理念为使用业务逻辑、数据、界面显示分离的方式来开发系统,很大程度上消除了应用间的高耦合。

2 系统功能设计

2.1 模块功能设计

根据系统功能分析及架构设计,将智能井盖监测管理系统分为平台管理、系统管理和个人中心三大模块。

平台管理模块是主要功能模块,负责核心任务,包含七个任务中心。系统管理模块负责系统的人员、区域、角色、模块的增删查改,展示系统的操作日志等。个人中心模块提供基础功能,用户进行登入登出、修改密码、修改个人信息等。

平台管理模块提供了系统的主要功能。下面对平台管理模块的授权功能进行说明。授权中心主要实现智能设备井盖锁和钥匙的添加和授权。通过NB-IoT无线技术连接硬件,获取钥匙和锁的MAC地址进行系列操作。井盖锁和钥匙授权流程如图3所示。

图3 井盖锁、钥匙授权流程

“我的通知”界面以列表形式展现历史通知日志。在“我的规则”界面,用户可以查看规则列表,添加新的规则,订阅用户,对已有的规则进行修改删除。报表中心以折线图的形式展示设备最近一周运行状况:正常井盖、异常井盖、正常打开井盖的数量。

2.2 数据库设计

对数据库系统进行设计开发是Java Web应用系统的重要组成部分。因为系统中包含大量数据,大量数据存储在数据库中进行共享和访问[11]。同时,数据安全是系统安全的必要组成。智能井盖监测管理系统中的实体主要有智能锁、告警、规则、授权、钥匙、人员、区域、角色、模块、系统操作。借助E-R(实体-关系)图来展示各实体及其关系。系统中主要的实体-关系图如图4所示。

图4 系统实体-关系图

智能井盖监测系统利用MySQL数据库储存系统数据[12],由于系统较大,构建了51张数据表,包括授权表、物联网设备表、用户表、区域表等。此处选取物联网设备表进行相关说明,物联网设备表用来存储智能锁相关的21条信息,结构如表1所示。

表1 物联网设备表

3 系统实现

3.1 系统架构实现

基于SSM框架的智能井盖监测管理系统分为三层结构,分别是表现层、服务层和持久层,同时采用了Redis等中间件功能。

表现层(Web层):用于显示客户端视图。表现层文件包括JSP、HTML和CSS。利用SpringMVC框架实现,主要功能是在浏览器上显示视图、接收用户请求、利用HTTP协议向服务器发送用户的请求。

服务层(service层):实现主要的业务逻辑,利用Spring框架实现。接收表现层发送的用户请求,并进行一系列逻辑处理,如果需要利用数据库,则转发请求到持久层,持久层操作数据库获得信息返回service层,service层将处理结果返回给表现层。

持久层(dao层):利用Mybatis框架实现,主要负责与数据库进行交互,在这一层封装对数据库访问的细节,接收service层发送的请求之后,对数据库进行增删查改操作。

3.2 平台管理模块实现

平台管理模块是系统的核心模块,设置有授权中心、设备管理中心、站点管理、锁具中心、控制器中心、消息中心,以及报表中心等。现在以授权管理中心、报表中心和消息中心进行阐述。

3.2.1授权中心实现

授权中心包含了离线单个授权、井盖锁授权、挂锁授权、添加钥匙,以及添加智能锁五个界面及其子界面。离线单个授权表现层通过OfflineAction类实现,涉及的持久化接口包括authLogDao、keysAuthDao、ikeyssDao、disDao、ilocksDao、deptDao。在进行离线单个授权时,首先利用RedisTemplate操作工具类RedisTemplateUtil获取蓝牙客户端服务器缓存的数据,若数据为空或者不为“123”,则提示“请启动中间件串口服务程序”,否则根据用户的操作利用IOTAuthModel中的方法进行实现。智能井盖的钥匙控制模块会将钥匙信息通过NB-IoT模块上传到云端服务器,当对钥匙进行操作的时候通过不同的指令获取对应的authModel。将获取的authModel和request请求的session中的userUUID拼接成authKey,放到redis缓存中。等待一段时间后,利用ResponseLockUtil进行IoT设备解析,获取返回值。若返回值为空,则返回JSON字符串,提示“未获取到数据,请重新获取”。若返回值不为空,则返回对应的值,提示操作成功。

3.2.2报表中心实现

报表中心以折线图的形式展现最近一周正常井盖、打开井盖、异常井盖的数量变化。图表实现利用echarts。用户点击“报表中心”子界面时,调用echart的index.jsp命令,引入echarts,通过使用echarts.init方法来初始化一个echarts实例和使用setOption方法生成一个折线图。当表现层发送请求,后台利用EchartAction类进行实现,通过deviceDao查询设备表获取正常设备的数量,通过deviceErrorLogDao查询设备故障日志,获取其中打开设备和异常设备的数量,查询结果返回前端表现层。

3.2.3消息中心实现

通过消息中心能实时、直观、准确地展示各种工作日志内容,主要包括授权日志、设备信息日志、开关锁日志。在进行功能操作时,后台会将操作日志存储在Action中,供管理员查询维护。授权日志包含授权名称、创建时间、授权类型、授权人员等关键信息。当用户对设备进行授权时,将以上授权信息通过AuthLog对象在RedisAction类中存储,通过IAthLogDao接口,数据固化到数据库中。设备信息日志在对设备进行监测时存储包含设备名称、通知内容、预警状态、创建时间等信息。开关锁日志用于存储用户开关锁操作信息。在对设备进行操作时,通过apiLog方法添加开锁日志,通过openLogDao存储openLog对象。通过OpenLockAction类中的list、update、likelist、prView等命令可以查看日志,以及进行精确查询和模糊查询操作。

3.2.4华为云服务器端实现

选择华为云作为云服务器提供商,在华为云上部署Java Web项目。购买华为云的弹性云服务器之后会分配一个弹性IP,外网访问的时候,即入站则选用这个IP。另外分配一个私有IP,关联自己的服务器。先为服务器分配ICMP规则,否则ping的时候会请求超时,然后为Java Web项目分配8080端口和访问规则。服务器的安装部署完成后,仍然只能通过localhost本地去访问,若要通过公网访问还需要在云服务器后台设置出入规则。设置完成后可以ping通这台云服务器的公网地址,并可以在公网通过IP和端口访问云服务器部署的Web项目。

3.3 系统功能实现

根据设计过程,采用B/S网络模式、SSM框架、HTML、CSS、Ajax技术、Java作为开发语言实现了个人中心、设备数据主界面显示、设备授权中心、管理中心、系统报警、报表中心等模块功能。

个人中心前台界面是云系统呈现给客户的第一要素,要在尽量简约的情况下突出产品的科技感,减少操作的繁琐性。登录界面如图5所示。

图5 个人中心

系统主页面是日常观测页面,为了更加直观地显示每个功能井的位置,本平台设计调用了百度地图API模块,通过开发百度网页,实现地图加载功能。通过JavaScript脚本语言在网站中创建地图应用。系统主界面如图6所示。

图6 系统主界面

采用颜色区分井盖工作模式,来更直观地显示其状态,绿色表示正常工作,黑色表示井盖锁掉线,红色则表示井盖被非正常打开且未得到处理。图7为井盖锁掉线的状态下的数据。

图7 掉线锁具信息

工作信息记录并上报是本系统的一个重要功能,主要记录每个设备被打开的情况和时间、是否异常打开,方便管理员做好工作记录。上报信息如图8所示。

图8 设备报警

智能锁具要连接到本系统需要系统对其进行授权,输入智能锁编号和唯一识别码可得到管理员授权接入系统,授权操作如图9所示。

图9 授权绑定

授权成功界面如图10所示。

图10 授权成功

报表功能实现效果如图11所示,系统对投入实验的智能锁进行每周统计并生成报表供工作人员参考,其中包括井盖正常数量,每天的打开数量和异常打开数量,根据大数据的分析,方便工作人员数据的统计和维护工作总结。

图11 报表显示

4 结 语

本文基于云服务器实现了对重要功能井的全面监控和位置锁定功能,降低了人们违规撬动井盖的动机,一旦发生异动,第一责任人实时收到系统发出的消息并及时处理。插入百度地图API,在地图上直观地显示井盖状况以及锁具自身状况,同时,设计了智能锁具、钥匙授权和数据统计管理等功能模块。通过数据库设计可完成对庞大井盖群的监管,以大数据分析思路改变工作战略。下一步,还需要降低产品造价以推广到城市普通井盖,方便人们出行,减少隐患发生,保护行人人身安全。日后还可对工作记录日志中的相关数据进行深度挖掘来发现有用价值。

猜你喜欢
井盖日志钥匙
一名老党员的工作日志
读扶贫日志
雅皮的心情日志
雅皮的心情日志
井盖为什么是圆的
找井盖
这条路上的下水道井盖都被我承包了
钥匙和锁
钥匙
钥匙失踪记