基于物联网的电梯安全监控系统设计

2018-05-14 06:38
重庆电力高等专科学校学报 2018年2期
关键词:传输方式客户端电梯

(重庆博通水利信息网络有限公司,重庆 401121)

进入20世纪以后,各个行业飞速发展,其中最引人注目的当属建筑行业。随着建筑行业的兴起,一座座高楼拔地而起。而电梯作为高楼的主要代步工具,数量急剧增长,其在运行过程中的安全性得到了空前关注。据相关统计,当前电梯发生安全事故的总数占重大特种设备事故总数的25%[1]。因此,对电梯进行有效的实时安全监控,可以确保在故障发生时及时排除故障,降低运行风险。

1 系统总体设计

电梯安全监控系统分为两大部分,即数据采集终端和电梯远程监控平台,如图1所示。数据采集终端由三星S3C6410开发板作为主控模块,外接各种传感器模块与Wi-Fi模块。各个传感器采集电梯运行过程中的相应数据,经由S3C6410主控模块,通过无线Wi-Fi模块传输至监控平台。监控平台对接收到的数据进行相应的处理分析,并判断电梯是否发生故障。电梯维修人员根据远程监控平台的处理结果及时对电梯进行维修保障,避免重大安全事故的发生。

图1 电梯安全监控系统总体设计

2 数据采集端设计

数据采集端由CPU模块、传感器模块、电源模块、无线Wi-Fi模块、存储模块等组成,如图2所示。传感器模块由上下平层感应器、上下极限感应器、基站感应器、门开关感应器、加速度传感器构成。

图2 数据采集终端设计

Wi-Fi模块选用rt3070 USB Wi-Fi无线网卡,该网卡符合IEEE 802.11n(Draft 2.0),IEEE 802.11g,IEEE 802.11b标准,无线传输速率高达150 Mb/s。内置智能天线,提供更好的无线传输性能、稳定性和无线覆盖范围。同时采用CCA技术,能自动避开频道干扰并充分利用频道捆绑优势。该产品支持64/128/152位WEP加密,以及WPA/WPA2,WPA-PSK/WPA2-PSK等高级加密与安全机制。同时,具有QSS快速安全设置功能,能够轻松设置无线安全。此外,该产品具有优先级服务功能,确保视频、语音等带宽敏感数据的优先处理。

为了使用该Wi-Fi模块进行数据的传输,必定要完成该Wi-Fi模块的驱动移植。首先进入Linux内核文件夹,使用make menuconfig来配置内核,分别配置如下:

Networking support

_*_ Wireless --->

<*> cfg80211 - wireless configuration API

<*>Generic IEEE 802.11 NetWorking Stack (mac80211)

Library routines

{*} CRC-CCITT functions

Device Drivers --->
[*] Wireless LAN --->

<*> IEEE 802.11 for Host AP(Prism2/2.5/3 and WEP/TKIP/CCMP
[*]Support downloading firmware images with Host AP driver
[*]Support for non-volatile firmware download
Ralink driver support --->
Ralink rt27xx/rt28xx/rt30xx(USB)support

紧接着使用make uImage重新编译内核,使用make modules重新编译模块,生成如图3所示的驱动模块。

图3 驱动模块

将图3中生成的4个.ko文件拷入S3C6410的文件系统中并使用insmod命令加载这些驱动,从而完成无线网卡驱动的移植。

3 远程监控平台设计

3.1 Socket通信

在本系统中数据采集终端采集数据发送给监控平台供其处理分析。采集终端相当于客户端,而监控平台相当于服务器端。服务器端设立服务,然后进入循环接收和处理请求。客户端连接到服务器,然后发送、接受或者交换数据,最后退出。两者以TCP/IP协议为基础,采用Socket通信的方式进行数据的交互。

Socket是TCP/IP网络的API,是一种非常特殊的I/O数据传输方式。Socket也可以看成是一个文件描述符,它具有一个与打开文件函数open功能类似的API, 调用该API会返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的[2]。

常用的数据传输方式分为两种:TCP传输和UDP传输。TCP传输方式是一种可靠的传输方式。当使用这种方式进行数据传输时,必须保证客户端与服务器端建立可靠有效的连接。TCP传输就好比两人打电话,两人之间必须存在着一条不中断的线路,信息没有传达给对方,对方则会等待,除非对方直接挂电话。而UDP传输方式是一种不可靠的传输方式,它只是单纯地把数据发送出去,在发送之前不用在客户端与服务器端建立一个连接,故不能保证数据能够顺利地到达目的地。针对这两种传输方式Socket通信分为两种类型:流式Socket (SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用[3];数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。

本系统中电梯的状态信息必须安全可靠地传送至监控平台,故采用流式Socket。该交互过程主要包含以下3个操作,即服务器设立服务、客户连接到服务器、服务器和客户处理事务,如图4所示。

图4 客户、服务器交互中的主要步骤

下面将具体讨论通信过程中的相应操作。

操作1:建立远程监控平台(服务器)端socket。

1)创建1个Socket

iSocketServer = socket(AF_INET, SOCK_STREAM, 0)

其中:AF_INET表示ipv4网络协议簇;SOCK_STREAM表示采用TCP传输方式;0是默认值。

2)给Socket绑定1个地址

iRet = bind(iSocketServer, (const struct sockaddr *)&tSocketServerAddr, sizeof(struct sockaddr))

其中:iSocketServer是由(1)得到的Socket描述符;tSocketServerAddr是一个指向包含有监控平台IP地址及端口号等信息的sockaddr类型的指针;sizeof(struct sockaddr)表示sockaddr这个结构体类型的大小。

3)监听接入请求

iRet = listen(iSocketServer, BACKLOG)

其中:iSocketServer是由(1)得到的Socket描述符;BACKLOG表示请求访问的客户端的最大数目。

4)进入阻塞状态,等待客户端的连接

iSocketClient = accept(iSocketServer, (struct sockaddr *)&tSocketClientAddr, &iAddrLen)

其中:SocketServer是由(1)得到的Socket描述符;tSocketClientAddr是一个指向包含有数据采集终端的IP地址及端口号等信息的sockaddr类型的指针;iAddrLen是sockaddr类型的大小。

操作2:建立数据采集终端(客户端)到远程监控平台(服务器)端的连接。

1)创建1个Socket

iSocketClient = socket(AF_INET, SOCK_STREAM, 0);

2)使用该Socket连接到服务器

iRet = connect(iSocketClient, (const struct sockaddr *)&tSocketServerAddr, sizeof(struct sockaddr))。

操作3:客户/服务器的会话。

当创建完数据采集终端与远程监控平台的Socket后,两者之间建立连接,接下来可以源源不断地将数据采集终端采集到的数据发送至远程监控平台。

iSendLen = send(iSocketClient, ucSendBuf, strlen(ucSendBuf), 0)

其中:iSocketClient是数据采集终端的socket描述符;ucSendBuf是要发送的电梯运行状态数据;strlen(ucSendBuf)是数据的大小;0是默认值。

iRecvLen = recv(iSocketClient, ucRecvBuf, 999, 0)

其中:ucRecvBuf是接收数据的缓冲区;999表示接收缓冲区的大小。

当所有的数据操作结束以后,可以调用close()函数来释放该Socket,从而停止在该Socket上的任何数据操作[4]。

close(Sockfd)

其中,Sockfd为数据采集终端或远程监控平台的Socket描述符。

Socket通信的流程如图5所示。

图5 Socket通信

3.2 数据库设计

数据库在远程监控平台中起着举足轻重的作用,监控平台接收采集终端发来的数据后,需要将数据保存在数据库中,便于平台对数据进行有效的管理。本文采用MySQL作为监控平台的数据库。

MySQL由瑞典MySQL AB设计,广泛应用于许多中小企业中。MySQL的开发基石是Linux操作系统,故MySQL数据库也继承了Linux操作系统免费开源的优点。除此之外,该数据库还具有以下优点:

1)由C语言和C++语言编写而成,在多种编译环境下进行测试,确保了源代码的移植性;

2)为各种高级编程语言提供了相应的API,适应性广;

3)支持多线程,使CPU得到充分的利用;

4)连接数据库的方式多种多样,如ODBC,TCP/IP,JDBC等。

基于以上优点,可以看出MySQL能很好地满足中小型企业进行应用开发的需求。同时,它的免费开源特性也使其拥有蓬勃的生命力。

使用MySQL时最主要的是对所要存储的数据进行表单设计,即把数据分类处理。本文需要设计的数据表单包括用户表单、电梯监控状态信息表、电梯故障案例信息表等。以电梯监控状态信息表为例,设计表单结构如表1所示。

监控平台以Socket进行通信,以MySQL进行数据存储,其监控界面如图6所示。

表1 电梯监控状态信息表

图6 电梯安全监控系统监控界面

4 结语

本文设计的电梯安全监控系统能有效地对电梯的状态信息进行实时监控,发现电梯隐患,确保电梯安全高效地运行。经测试,该系统具有良好的实用性,有一定的推广价值。

参考文献:

[1] 王斌杰.电梯远程监控系统研究与设计[D].沈阳:沈阳建筑大学,2011.

[2] 王凯,孙立国,李世丹,等.信息化雷达远程显控终端的设计与实现[J].信息与电子工程,2011,9(01):12-16.

[3] 徐鸣鹤,冷春艳,熊鸿康.机床数控系统的组网与远程监控的实现[J].机床与液压,2011,39(12):85-88.

[4] 陈长辉.UNIX下Socket编程浅析[J].福建电脑,2011,27(2):161-162.

猜你喜欢
传输方式客户端电梯
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
被困电梯以后
可穿戴式多通道传感系统功能需求分析及设计
电梯不吃人
基于分布式传感器的GIS局部放电在线监测实时数据传输方式的研究
被困电梯,我不怕
乘电梯