APP下载

基于Android平台的教学楼智能门锁系统设计

2020-01-07

关键词:服务端门锁教学楼

(集美大学机械与能源工程学院, 福建厦门361000)

随着物联网技术[1]的不断发展,物联网的应用范围不断扩大,在智能家居[2]方面的应用已经非常普遍。随着智慧校园概念的提出,人们开始关注智慧校园的建设,其中教学楼的管理是智慧校园建设中的重要组成部分。

目前,大多数教学楼中教室的管理仍然是采用人工开、关机械门锁的方式,管理人员往往要携带大串钥匙手动打开或者关闭教室门锁。由于教学楼中的教室众多,楼层较高,因此管理人员工作强度大且繁杂,而且钥匙管理也多有不便,容易出现遗失等意外情况。为了解决上述问题,本文中创新性地设计基于物联网的教学楼智能门锁管理系统,建立基于结构化查询语言数据库MySQL的教学楼门锁数据库,服务端采用视图逻辑分离架构(SpringMVC)模式进行开发,客户端为基于Android平台的手机应用,智能门锁终端与服务端采用套接字(Socket)通信方式,由发送心跳包来保持稳定连接。通过客户端,管理员可以远程管理教学楼门锁。

1 系统总体设计

本控制系统采用客户端/服务端(C/S)架构。客户端采用基于Android平台的智能手机作为控制端,门锁硬件作为响应终端、远程服务端[3]来进行指令的传输及信息的反馈。服务端是基于Java EE平台[4]所编写的Web服务端,其功能是接收、解析、发送指令并且回传信息给用户, 智能门锁终端根据指令执行响应, 真正实现了教学楼门锁的远程管理, 其总体结构如图1所示。 由图中可以看出, 远程服务端连接着智能手机客户端与门锁终端, 客户端通过网络访问服务端平台, 向服务端发送请求, 并获取服务端反馈的信息。 智能门锁接收远程服务端指令, 由单片机解析并执行对应的程序, 当指令执行完成后, 反馈信息给服务端, 继而客户端得到反馈通知。

图1 教学楼智能门锁系统总体结构

2 智能门锁硬件设计

智能门锁硬件采用“进阶精简指令器处理器(ARM) -通用分组无线服务技术(GPRS) -步进电机”架构,以STM32F103C8T6单片机[5]作为控制器,以SIM900A模块作为GPRS数据传输模块,通过步进电机来控制锁舌的移动,实现门锁的开关动作。具体智能门锁硬件组成如表1所示。

表1 智能门锁硬件组成

2.1 处理器模块

智能门锁的控制核心采用STM 32F103C8T6单片机,该单片机是基于Cortex-M3内核的ARM系列的32位处理器。该处理器性能优秀,工作主频高达72 MHz,具有20 kB的静态随机存储器、 64 kB的程序存储器和4个定时器,完全满足性能上的要求,已广泛应用于工业控制领域。 通过Keil软件及下载器组合, 提供了在线编译、 调试、 下载、 仿真等多项功能。

2.2 GPRS模块

智能门锁的数据传输模块采用SIM 900A[6]模块,该GPRS模块的尺寸为24 mm×24 mm×3 mm(长度×宽度×厚度), 是一款双频功能模块,支持全球移动通信系统(GSM)、 GPRS双频模式,工作频段分别为900、 1 800 MHz,待机功耗低,待机模式下电流低于18 mA,睡眠模式下电流仅为2 mA,可以低功耗地实现语音、短信、数据的传输。模块内嵌有传输控制协议/网际协议(TCP/IP),支持用户数据协议(UDP)和TCP通信,工作电压为3.3~5 V,瞬间电流最高为2 A,可以直连单片机,支持AT指令集,通过AT指令设置SIM 900A工作模式与远程服务端的连接及通信。由于门锁终端必须与服务端保持连接,因此模块采用TCP通信方式进行稳定、 可靠的连接。

2.3 步进电机驱动模块

步进电机的驱动模块采用L298N作为驱动芯片,模块驱动电压为5~35 V,由于所需工作电压较大,因此需要通过电源升压模块XL6019调节输出电压。驱动模块的工作模式为双H桥驱动,可以驱动1台两相步进电机或四相步进电机工作,通过OUT1—OUT4 4个引脚输出脉宽调制(PWM)信号驱动步进电机转动,使电机正转或反转,实现开锁或关锁的动作,驱动模块的原理如图2所示。

步进电机选取3D打印机中使用的42型步进电机,该型步进电机为两相四线步进电机,步距角为1.8°,工作模式为两相四拍模式,电机绕组正转的通电顺序依次为A、 B、 C、 D,数学模型如表2所示。

2.4 智能门锁机械结构设计

虽然智能门锁实现了远程控制功能;但是电子设备无法避免出现故障,且有断电的可能性,因此智能门锁也必须保留原始机械锁的结构,当出现意外情况时,可通过备用钥匙进行手动开锁。图3所示为智能门锁的机械结构, 包括: 活动锁舌, 外接把手可以自由开启;步进电机与反锁锁舌控制单元,锁舌与滑动导轨相连,导轨与齿轮相啮合,作为实现控制的关键部分;电源模块,给硬件模块提供电源,电源部分采用充电锂电池组与外部电源进行供电,在未断电的情况下由外部电源进行供电,在断电情况下可由电池组进行供电,保证正常工作;预留锁芯孔,保证门锁在紧急情况下可以使用备用钥匙进行手动开锁。图4为整体结构装配图。

图2 步进电机驱动模块原理图

表2 步进电机正转数学模型

图3 智能门锁的机械结构

3 Android手机客户端软件设计

Android手机客户端软件是基于Android平台[6]使用Java语言编写的[7], 开发环境采用谷歌官方推出的Android Studio 集成开发环境编写程序,Android Studio提供了软件的编写、调试、代码重构、模拟器仿真等强大的功能,尤其是模拟器的仿真与真机的效果几乎一样。软件的总体设计风格采用谷歌官方推荐的卡片式材料设计(Material Design)语言,界面设计友好,简单易懂。客户端软件的主要功能如表3所示。

图4 智能门锁的整体结构装配图

表3 客户端主要功能模块

3.1 客户端数据加密

作为一款智能门锁控制应用, 安全性无疑是非常重要的, 关系到整个教室的财物是否得到安全保障, 因此对于密码的保存、 数据传输以及登陆验证都必须经过加密处理。 为了确保管理员密码以及数据传输的安全性, 该应用采用高级加密标准(AES)算法[8]进行加密。 该算法是一种对称性加密算法, 要求加密密钥与解密密钥必须相同。设AES的加密函数为E, 则C=E(K,P), 其中K为密钥,P为明文,C为输出的密文。 同样地, 解密过程就是加密过程的逆运算, 数学模型如下: 设AES解密函数为D,P=D(K,C),由接收方对传输过来的数据进行解密, 通过相同的密钥将密文还原为真实的明文, AES加密流程如图5所示。

AES—高级加密标准。图5 高级加密标准加密流程

3.2 主功能控制界面

软件的主功能界面布局采用抽屉布局(DrawerLayout)组件。该组件除主视图外还自带一个侧滑的菜单视图(效果图如图6、 7所示),点击右上角图片或者从左侧拖动就可以打开该侧滑视图。主视图为控制区,通过选择所属的区域,选择教学楼以及楼层,显示出对应楼层的所有教室。该视图是一个碎片(Fragment)视图,选择不同的区域、教学楼、楼层会动态地更换为对应的Fragment视图,人机交互友好。在Fragment视图中,滑动SwichCompat开关(SwichCompat为Android平台中的一个组件,起一个开关的作用),通过设置SwichCompact开关监听事件,实现对对应教室门锁进行开锁或关锁动作。

侧滑菜单视图是DrawerLayout组件的一大特色,该菜单视图设计为个人中心界面,界面如图7所示,其中包含了修改登录密码、查询开锁记录、最新通知、设置4个子菜单项,点击不同的子菜单项进入相应的视图中。

图6 控制功能区图7 侧滑菜单视图

3.3 历史记录查询

为了方便教学楼的管理,当发生突发事件时,管理员可以对历史操作记录进行查询,客户端设置了门锁历史记录查询功能。该历史记录保存于智能手机中自带的SQLite数据库中,当SwichCompat产生动作后,服务端返回的数据包中动作标志值为1时,标志开关动作成功,自动生成历史记录,保存于数据库中。由于Android原生数据库操作接口(API)较为麻烦,需要编写复杂的结构化查询(SQL)语句,这对于普通的开发人员固然不太友好,并且原生API性能较低,因此本软件采用GreenDao数据库框架。GreenDao是由Square公司开源的一个数据库框架,基于对象关系映射(ORM)原理,将Java对象映射到SQLite数据库中进行保存,并且GreenDao对SQL语句进行了封装,不需要编写复杂的SQL语句即可完成增、删、改、查等操作,且该框架支持数据库加密,安全性高。

历史记录界面仅提供最近1周的历史记录,如果需要查询更早之前的记录,则点击自定义查询按键选择查询的日期,GreenDao则查询自定义日期的历史记录,将结果显示给管理员。

4 远程服务端设计

4.1 服务端总体设计

该远程服务端是基于JavaEE平台所开发的一个Web应用服务端[8],服务端运行于Tomcat服务器上,远程服务端通过服务连接器(Servlet)响应客户端的请求。Servlet是基于超文本传输协议(HTTP)运行于服务端的程序。当客户端产生一个请求时,向服务端请求对应的Servlet来处理该请求,并返回请求结果,服务端通过操作MySQL数据库存取相应的数据,远程服务端的设计框架如图8所示。

图8 远程服务端框架

服务端通过建立套接字(Socket)连接[10]与智能门锁终端进行数据通信,为了保证该连接不被断开,智能门锁终端需要间隔固定时间向服务端发送心跳包[9],当智能门锁终端监测到服务端发送过来的指令时,通过串口将数据发送给单片机,单片机解析指令并执行相应程序,执行完后向服务端返回数据。

4.2 心跳包机制

门锁终端为了维持与服务端的连接通信,需要每隔固定的时间向服务端发送心跳帧数据,使得服务端可以判断该终端为存活状态,并且保证了终端IP地址不会产生变化。这是由于物联网卡的IP地址是由运营商动态分配,因此,如果在一段时间内没有产生数据通信,将会产生网络地址转换(network address translation,NAT)超时而被淘汰, IP地址将被收回,造成连接断开。当重新连接后,由于IP地址发生变化,不利于服务端与终端连接的稳定性,因此需在终端与服务端之间建立心跳包机制,图9所示为心跳包机制示意图。经实验测试,终端在1 d正常运行的情况下所产生的流量仅为1 MB左右,流量费用十分经济。

t1、t2、t3—服务端接收到客户端心跳包时间。图9 心跳包机制

4.3 异常处理机制

由于门锁终端与服务端必须保持稳定连接, 门锁终端才能正常接收指令,而在实际环境中,却无法避免一些特殊情况或不可抗性因素导致连接断开,例如程序跑飞、网络中断、服务端异常等情况,因此控制系统中需要有相应的异常机制对这类异常情况进行处理。上述所有情况的发生都将导致门锁终端与服务端连接断开,此时管理员在手机客户端的操作将返回失败结果。该异常机制的处理将分为以下3个步骤:

1)首先,连接断开之后,服务端将无法接收到终端发送的心跳包。在服务端程序中设置当连续3个周期内没有收到终端发送的心跳包,此时服务端将判断连接已经断开,并将智能门锁终端数据表中对应终端连接状态值修改为0,表示此时该终端状态为断开状态,该值为1时表示为正常连接状态。

2)管理员在手机客户端进行页面刷新时发送HTTP请求,服务端将返回门锁终端状态值,对于异常终端,其状态值为0,客户端将会对异常终端进行相应的标红状态显示,并且设置开关为不可点击状态,此时无法对该终端进行开关操作。

3)终端没有收到服务端的心跳反馈时,终端程序中表示获取服务端心跳反馈的布尔变量值为假,将进入重连服务端的一个循环,直到该值变为真。如果是由于STM 32模块程序跑飞导致,则会由看门狗电路实现对模块重启,重新与服务端进行连接。

经过以上3个步骤,门锁终端与服务端重新建立连接,服务端获取终端的IP地址和端口号将存储在对应的数据库中,并将终端数据表中对应终端的连接状态值改为1。

5 系统测试

5.1 正常运行测试

将智能门锁远程服务端部署于云服务器上, 手机运行客户端, 登录数据库中设定的管理员账号密码, 登录成功后进入主界面, 选择事先设定的样机所属区域, 滑动开关, 步进电机正转, 实现开锁动作。 将SwichCompat滑动至另一侧,步进电机反转,实现关锁动作。经实验测得,步进电机转动完成需要0.3 s左右时间,客户端发出指令至终端完成指令时间差为1.2 s左右。由于终端模块为GPRS模块,理论传输速率仅为56~114 kb/s,因此在进行开关动作之后必须设定一定延时间隔,防止再次操作,才能保证智能门锁正常工作。

5.2 异常运行测试

由于智能门锁在某些因素影响下会出现与服务端连接断开的情况,造成开、关锁服务失败。通过实验分析归纳出导致与服务端断开连接3个主要因素,分别为电源中断、网络异常和模块工作异常的情况。本文中对智能门锁由以上3种因素导致的异常情况产生进行了异常运行测试实验,检验异常处理机制的稳定性。

对以上3种情况分别进行30次实验测试,统计出了3种情况下终端与服务端重新进行连接平均所需时间。利用电源的开和关模拟电源中断的情况,屏蔽网络信号模拟网络异常的情况以及设置看门狗重启模块来模拟模块工作异常的情况,实验统计数据如图10所示。

图10 异常运行测试实验下终端重连时间

通过对软件及硬件功能测试,成功实现了对门锁的正常操作,并且模拟了终端出现异常情况导致终端与服务器断开连接,实验测试终端异常处理机制,可自动恢复与服务端的连接,除此之外,管理员通过手机客户端可以定位工作异常的终端,进行上报维护。

本实验对智能门锁分别进行了正常运行与异常运行测试,测试情况表现良好,软件整体的功能性基本满足管理人员的要求,实现方便管理。

6 结论

本文中设计的智能门锁控制系统是基于物联网与Android平台,利用物联网模块通信,通过手机客户端实现教学楼门锁的远程管理,保障了教室财物的安全,减小了管理员的工作强度。对客户端的数据传输进行了加密处理,保证了客户端使用的安全性。本设计完成了硬件部分的设计、客户端软件及服务端程序的编写,经实验测试,实现了预期功能要求。该系统成本低廉,运行可靠稳定,适合于教学楼的远程管理。

猜你喜欢

服务端门锁教学楼
2011款别克凯越车中控门锁失灵
一种简易气门锁夹安装设备
教学楼重建工程项目中的施工技术分析
教学楼重建工程项目中的施工技术分析
6款热门智能门锁推荐
教学楼,作文本里的方格 组诗
新时期《移动Web服务端开发》课程教学改革的研究
基于遗传算法的教学楼智能照明控制系统设计
International Perspective of Translation for Cultural Dialogue
丰田威驰车门锁随速锁止功能失效