LAMP服务器平台的电梯物联网系统设计

2018-06-15 07:56
单片机与嵌入式系统应用 2018年6期
关键词:客户端电梯联网

(苏州大学 电子信息学院,苏州 215006)

引 言

近年来中国经济高速发展,电梯作为一种节省人力、方便人们生活生产的高效运输载体,在城市化进程的迅猛发展中越来越普及。出于电梯机械结构的复杂性以及对安全性保障的要求,在电梯实际运行中对种类繁多、任务冗杂的监测及维保工作有极其迫切的需求。然而,随着电梯基数的愈加庞大以及各项功能的日益更新,导致相关结构愈加复杂,相关工作的开展更加困难。

随着物联网、互联网+、云计算等概念和相关技术的发展应用到传统行业中,向各个领域注入了新的力量,本文研究的电梯物联网系统在LAMP环境下搭建服务器平台,处理通过信息采集和传输装置获取的数据,以APP和WebClient为服务终端。该系统可以为电梯生产厂商、运维厂商、物业业主、政府管理部门等提供服务,保障了电梯设备的安全、正常运行,为有关单位对电梯有效管理和监控提供了稳定的技术支持。

1 电梯物联网设计方案

1.1 系统架构

目前市面上的电梯物联网系统采用的模式是将电梯运行数据传送到集中器[1],再由集中器进行处理或由集中器经网络发送至服务器后台处理。不同于现有的电梯物联网系统,本文研究的电梯物联网系统直接将单个电梯连接到网络,在服务器端完成数据处理后反馈给用户,拓扑简明,如图1所示。

图1 电梯物联网系统拓扑结构

该系统规定了一种高效的通信协议,综合控制、数据采集、大数据分析、服务器端处理与客户端数据获取等技术,实现实时数据的传输以及对电梯运行状态的实时监控。功能平台提供综合管理的同时又能满足不同用户群体的个性化需求。

1.2 功能与实现

LAMP环境下电梯物联网系统由主控板、信息采集及传输装置、服务器及客户数据获取终端构成。该系统实现了以下功能:以SP4418为核心的主控板通过CAN总线传输获取电梯运行数据;配备高清数字摄像头的多媒体系统获取轿厢内实时音视频数据,负责多媒体广告投放和其他必要信息显示的任务;将以上装置获取的数据按不同类型通过MQTT、RTP、FTP等协议经4G数据传输模块传输至服务器;服务器则通过MySQL数据库和phpMyAdmin数据管理工具实现对电梯数据的处理;在C/S和B/S模式框架下利用HTML语言、PHP语言、JAVA语言建立浏览器终端和安卓APP终端,完成与服务器的数据交互。从而保证系统采集和处理的各项数据可以被维保单位、电梯厂家、物业管理、政府部门等单位高效地使用。功能可概括为:用户管理、电梯监控、电梯维保、数据统计、电梯传媒、数据采集,如图2所示。

图2 系统功能结构

1.3 Ngnix服务器搭建与数据库使用

由于电梯物联网系统接入的子模块较多,需要对电梯数据进行及时接收、处理以及存储。同时系统还要对接入用户身份验证和权限分配,实时处理来自浏览器端和手机客户端的数据请求,并在此基础上处理各种业务应用,如网络和系统管理并提供Web服务等。

所有这些任务的完成需要一个功能强大的服务器来支持和统筹管理,基于此并考虑到系统的安全性、稳定性、灵活性和可扩展性,选取Linux为服务器操作系统,搭建了基于Ubuntu的轻量型Nginx服务器。

如前所述,系统接收和处理的数据量庞大,并且数据会实时更新,同时还需对不同电梯按照不同条目进行分类管理,并根据请求从全体数据中提取相应数据发送给浏览器和手机客户端。而对于如此复杂的数据处理工作,需要一个体量大、带有逻辑关系的工具存放及处理整个平台的数据。

在众多数据库中MySQL体积小、速度快、成本低,配合PHP和Apache可组成良好的开发环境,目前许多小型网站的开发都选择MySQL作为网站数据库,还考虑到写入和查询的速度及灵活性,本系统选取MySQL这一关系型数据库[2]。

1.4 电梯实时数据采集及分析

电梯数据采集装置通过各传感器采集电梯运行参数并进行逻辑运算,处理得到电梯运行方向、电梯运行速度,电梯所在楼层、电梯门机状态等信息。当电梯发生故障时系统将第一时间检测出故障并发出报警信号,立即将故障信息发送至维保人员,同时自动与监控中心建立对讲连接,对被困人员进行安抚工作。

电梯物联网系统可以实时显示所有电梯的运行状态,包括离线、故障、检修、正常这几项,管理员可以直观掌握所有电梯的情况。实现方法是将存放在大数据平台的所有数据按不同电梯分类,检索所有电梯信息中的故障代码信息,统计故障代码信息不为空的数据条目,得出故障电梯台数。检修电梯台数获取方式和故障电梯台数类似。对离线电梯台数的统计要求电梯信息采集装置在向服务器发送电梯状态信息的同时,携带一个随机更改的数据,服务器每次获取数据后将当前该位数据和上次获取的数据对比判断电梯是否离线。除去异常状态即为正常运行的电梯台数,通过分析电梯运行的各项数据可以使电梯智慧化,例如学习用户的使用习惯后让电梯空闲状态停靠在使用较多的楼层等。另外保存各电梯历史故障数据,由维保人员分析具体故障和发生原因,将处理建议上传至服务器从而减少故障的发生,提高电梯的安全性。

1.5 数据终端实现

为方便用户对电梯物联网系统内电梯数据的访问,提高系统的实用性设计,为用户提供了浏览器和手机APP两处数据终端,用户可以在浏览器和手机上登录电梯物联网系统,按照用户权限实时查询或修改电梯信息。

浏览器端主要在档案管理功能下以表格的形式显示电梯信息,用户登录系统可查看所有电梯的档案信息,能够添加新电梯信息,同时可以选中某条电梯信息进行删除、修改操作,这些操作最终都将更新到数据库。

传统的页面设计方案是在页面规定大小位置生成表格后将数据填入,所以表格数据量固定,这种方式适应性差,与此相关的各项功能都依靠不同的JS函数实现,不能满足实时数据显示的灵活性要求,且代码冗长。

本系统所采用的Bootstrap-Table是一种基于Bootstrap的专门用于显示数据的jQuery表格插件,通过简单的设置即可拥有强大的单选、多选、排序、分页、编辑、导出及过滤等功能。

手机APP端同样需要获取数据库的电梯资料,由于APP只需实现对数据的访问,所以通过MQTT协议订阅来自服务器的推送即可实现。服务器将电梯数据打包后给APP提供数据接口,在APP端获取数据并解析后显示,减轻了服务器的负担。

2 LMAP环境下数据交互

本文研究的电梯物联网系统的设计关键在于如何将采集到的各项数据迅速、高效地传输到云端并进行处理,及实现数据终端对云端数据的有效访问。因此,系统规定了RESTful API协议,采用AJAX技术来实现数据交互,同时考虑系统接入点增多、用户量增加的恶劣情况,采用服务器负载均衡技术优化电梯物联网系统。

2.1 RESTful API协议的使用

物联网通信协议是双方实体完成通信或提供服务必须遵循的规则,常用的通信协议有MQTT、CoAP、RESTful/HTTP、XMPP这4种[3]。MQTT是一个即时通信协议;CoAP是专门为受限制应用服务的协议;REST指的是一组架构约束条件和原则,满足该约束条件和原则的就是RESTful;XMPP是一种基于标准通用标记语言的子集XML的协议。在RESTful API协议下客户端和服务器的交互在请求之间是无状态的,而无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境,客户端也可以缓存数据以改进性能,本系统在RESTful API协议上完成数据的传输。

本系统在RESTful API协议的基础上的应用层规定了服务器与安卓客户端数据交互协议、服务器与电梯控制器数据交互协议,从而使整个物联网系统数据的传输在统一的协议之上可以稳定、高效运行。为方便数据库对电梯数据的管理,提高数据库响应数据终端请求的效率,在数据传输之前需将信息按服务器及数据终端可识别的方式进行JSON封装。JSON是一种轻量级的数据交换格式[4],采用完全独立于编程语言的文本格式来存储和表示数据,拥有简洁、清晰的层次结构,易于阅读和编写,能够有效地提升网络传输效率。服务器与安卓客户端数据交互协议内容包括实时数据、历史故障记录、维修保养记录、电梯档案信息及电梯维保人员通信录;服务器与电梯控制器数据交互协议内容包括实时故障信息、电梯运行状态。部分协议内容见表1和表2。

表1 服务器与手机客户端数据交互协议

表2 服务器与电梯控制器数据交互协议

在服务器端为电梯控制器、安卓客户端以及浏览器端设置不同的数据接口。每台电梯的主控板将采集信息根据协议进行JSON封装后访问相应的数据接口,通过POST方式将数据传输给服务器,服务器端解析JSON数据后根据键值传递数据更新数据库。为减少数据的传输量,在传输数据中只有数字信息,服务器端获取数据后在后台通过查询方式将传递的数字信息转换成对应的具体状态信息后更新数据库。

安卓客户端和浏览器端通过GET方式访问相应数据接口,发送数据请求至服务器,服务器从数据库取相应数据并封装后通过POST方式传送至数据终端。解析JSON数据和显示任务都在数据终端完成。

2.2 AJAX技术优化数据传输

为方便使用,将数据库存储的信息在有限的界面上有序、准确、实时地显示,用户借助浏览器或手机在任何可以上网的地方通过账号和密码即可登陆电梯物联网系统进行数据访问。

图3 AJAX工作原理

在传统网页设计中,页面数据的更新必须通过手动刷新或重载整个网页的方式才能实现,这样工作量大而且会使该系统失去实时性这一优点。AJAX(异步JavaScript和XML)是一种可以实现网页异步更新的技术,能够在后台与数据库进行数据交互,并将数据实时显示在页面上,用户无需手动刷新即可掌握电梯的实时状态。同时用户可以在网页端修改数据库信息,修改对象和修改内容同样通过AJAX技术在后台传输,AJAX工作原理见图3。

AJAX传输方案的实现方法是在页面设计时嵌入JS,指向请求文件在服务器中的位置,并将请求通过GET方式发送至服务器。在请求文件中连接数据库,从数据库导出电梯状态信息封装后返回响应。在页面中解析响应数据并传递到相应位置。考虑到档案管理涉及数据复杂庞大,以及要将数据向表格填充,故将所有数据导入到txt文档,解析和传值交给页面处理,减轻数据库和服务器的负担。按键关联不同JS实现增加、删除和修改功能,在JS中将页面信息和请求内容一同通过GET方式发送至服务器,同样在请求文件中完成对数据库的操作。

2.3 服务器负载均衡

电梯数据信息、电梯监控视频信息、流媒体资源都需保存在服务器大数据平台,后期系统升级、接入点增多、用户量增加,单台服务器性能无法满足大量数据的存储和处理要求,以及大量用户的访问要求。依靠多台服务器配合使用来提供服务,实现数据分类管理、电梯数据处理服务器存储及处理电梯数据、视频存储服务器存储电梯监控视屏及流媒体视屏功能。该部分通过负载均衡技术实现[5],负载均衡设备将电梯数据处理服务器地址和视频存储服务器地址映射到同一个对外服务IP,用户访问这一IP时负载均衡设备根据请求来源进行地址处理,将请求携带的数据包分发至对应服务器。在服务器响应请求时,由于之前IP地址转换,不同应答包中源地址和目标地址与请求包对调,应答包从服务器到达负载均衡设备后将正确转发至用户,保证了访问的一致性。

结 语

[1] 高林林, 宋克柱, 郭晓天. 基于物联网的电梯监控系统设计[J]. 电子测量技术, 2016, 39(12):5-8.

[2] 游琪. 多核环境下内存数据库并发调度技术优化研究[J]. 计算机测量与控制, 2017, 25(8):234-236.

[3] 沙学军,谭学治,张乃通.几种可应用于集群移动通信系统的接续协议模拟分析[J]. 通信学报,1995(6):64-69.

[4] 高静, 段会川. JSON数据传输效率研究[J]. 计算机工程与设计, 2011, 32(7):2267-2270.

[5] 陈世芳,吕天齐,王小娟.基于负载均衡的虚拟网络映射算法研究[J]. 计算机应用研究.2016(12):3805-3808,3831.

猜你喜欢
客户端电梯联网
“身联网”等五则
《物联网技术》简介
抢占物联网
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
被困电梯以后
电梯不吃人
被困电梯,我不怕
乘电梯