陈世海 王军 代伟 仲崇硕 (中国矿业大学信息与控制工程学院)
专业实践教学是高等工程教育的重要环节,是联系理论知识与工程实践的桥梁,对于培养学生的工程实践能力和创新能力具有不可替代的作用。特别是在全球化、国际化的大背景下,如何培养出高质量的工程人才,已经成为高等工程教育要解决的核心问题。高等工程教育源于工程实践,而最终又要服务于实践,所以学生的专业实践能力必然是衡量教学质量的关键指标。从实践中来,到实践中去[1]。将工程实践的具体内容以具体项目的形式融入专业实践教学,不仅可以培养学生理论联系实践的能力,而且可以开拓学生的思路、培养学生的工程思维,为其日后参与工程实践打下扎实的基础[2]。
以电子信息专业综合实践为例,将实验室门禁系统研发项目引入实践教学,使学生在项目实践中掌握和巩固嵌入式系统设计、Android智能平台APP开发等专业知识和专业技能。
随着Android智能手机的飞速发展与普及,越来越多的APP应用到人们的日常学习和生活之重中,开发一款基于Android的实验室门禁系统,相比于IC卡式的门禁系统、指纹或其他生物特征识别式的门禁系统而言,基于Android智能手机的门禁系统,不仅方便易用,而且能够有效提升实验室的管理效能,为实验室的开放管理和学生实验提供了有力保障。
基于Android手机的实验室门禁系统,将Android手机、树莓派有效结合起来,使实验室门禁系统具有安全灵活的特点。硬件部分的设计分为三部分:一是继电器电子锁模块;二是报警器模块;三是摄像头模块。软件部分的设计分为两部分:一是Android应用程序设计,分为登录界面和开门界面。二是树莓派程序设计。主要功能如下。
实验室人员在Android应用程序中输入用户名密码并发送给服务器端,服务器端接收数据,与服务器中记录的实验室人员信息进行比对验证,验证成功进入开关控制界面,完成登录。
服务器端验证失败后,Android应用程序端允许重新输入用户名密码,直到错误三次时,Android应用程序发送指令给树莓派服务器,树莓派控制蜂鸣器报警。
Android应用程序开关控制界面发送开门指令,树莓派接收指令执行开门,然后摄像头拍照保存,记录实验室人员信息。
系统架构以树莓派嵌入式控制平台为核心,由电子锁模块、电源模块、摄像头模块、报警器模块等部分组成。树莓派通过控制GPIO引脚的高低电平输出,来控制继电器电子锁模块、报警器模块和摄像头的开关,电源模块为整个系统提供供电支持。
系统中继电器电子锁模块所需工作电压为直流12V,工作电流不小于800mA,而蜂鸣器报警模块所需工作电压为5V,而控制平台的树莓派的GPIO引脚的输出电压有5V和3.3V两个规格,因此确定电源模块方案时,必须考虑多电压输出和其带载能力。综合考虑,选用输出有3V、5V和12V且功率不低于15W的电源模块。
树莓派接收指令改变GPIO的高低电平输出来控制继电器的吸合与断开,继电器的吸合与断开则控制了电子锁的开门关门状态。由于电子锁的输入电压是12V,而树莓派的输出电压只有5V和3.3V两种,因此,我们选用了一个1路5V的带光耦隔离的高电平触发继电器连接树莓派和电子锁,从而达到控制效果。电子锁要求通电时间不超过15s,因此继电器选择了常开接法,当树莓派GPIO引脚输出低电平给继电器信号端时,继电器公共端与常开端断开,电子锁没有电。当树莓派GPIO引脚输出高电平给继电器信号端,继电器吸合,公共端与常开端接通,电子锁有电开门。
树莓派GPIO引脚输出的是直流信号,因此为简化设计可选用有源蜂鸣器,利用树莓派的GPIO端口输出的高低电平直接就可以控制蜂鸣器。当手机客户端输入密码出现三次错误时,手机端发出指令给树莓派,树莓派控制GPIO口输出高电平,蜂鸣器报警。本次设计选用的是5V有源蜂鸣器,工作电流为小于25mA,蜂鸣器使用电源模块供电。
摄像头模块的作用是对进入实验室的人员进行拍照并保存,因为树莓派平台自带CSI接口,因此设计中选用树莓派的官方摄像头。摄像头安装过时,首先将树莓派CSI接口的排线插槽的扣子拨开,然后将摄像头排线紧密插入到以太网网口和HDMI口之间的排线插槽,特别注意银色亮面朝向HDMI口并且排线要避免弯折,排线插入之后,将插槽的扣子重新扣上。摄像头安装完成之后,即可在树莓派上配置使用摄像功能。
软件设计以Android智能手机为核心。Android是以Linux为核心的开源操作系统,目前广泛应用于智能手机、平板电脑、智能手环等便携式移动终端设备,另外,随着智能家居的发展,Android也应用于智能电视、智能音响,甚至还应用于家庭机器人等领域。Android智能平台下的应用程序主要采用Java语言开发,同时也支持C++语言。
实验时应用软件开发建议采用Eclipse平台。因为,尽管Android studio未来的发展前景更大,然而由于目前Android studio的功能并没有完善,因此它的用户体验不好,而Eclipse因为发行时间较长,学习资料更多,更容易上手,因此APP开发环境选择时,建议学生首选Eclipse作为开发工具。本次实验的软件是基于第一层,其要实现的基本功能为:实验室人员通过手机验证用户名密码,验证成功则可以通过手机发送指令给树莓派进行开关门,同时树莓派拍照保存进入者照片,验证失败大于等于三次则发送指令给树莓派报警。本次设计的Android应用程序中登录程序需要与服务器端进行数据验证。因此在编写Android端应用程序前,要先搭建一个服务器。实验中可以采用免费开源的基于java的Tomcat服务器,其支持servlet和JSP规范,Tomcat不仅技术先进而且且性能稳定。
Android应用程序的设计包括了两部分:登录页面和开关门页面。登录页面是保证实验室安全的第一步,当有人要进入实验室时,必须通过手机客户端的登录页面验证用户名密码成功后才能进行后面的操作。登录页面的作用是验证用户名密码是否正确,正确则进行下一步,错误则重新输入,直到输入三次报警。登录页面的设计分为两部分:客户端和服务器端。首先进行服务器端的程序设计。服务器端分为三部分:User param、UserDAO、Servlet。User param 文件中定义了用户名和密码,同时定义了参数的get和set方法,用于在URL中传参和取参。UserDAO文件中建立了一个ArrayList数组作为数据库,通过login方法对ArrayList数组进行遍历取值,验证参数是否存在。Servlet文件中的dopost方法对URL中的参数进行提取,然后调用login方法对参数进行验证,返回OK或者Wrong。
开关门页面的作用是利用手机控制门禁。开关门页面是安卓手机与树莓派连接的桥梁,负责发送指令给树莓派,达到控制树莓派GPIO引脚的作用。手机与树莓派利用Socket进行通信,手机作为客户端,树莓派作为服务器。树莓派要控制三个硬件模块:继电器电子锁、报警器和摄像头。继电器和报警器需要利用GPIO引脚输出的高低电平控制,摄像头利用CSI接口控制。树莓派作为服务器端,与安卓手机客户端通过socket通信。服务器程序使用Python语言编写。
软件调试时,首先首先测试Android应用程序能否安装到安卓手机,并且正常运行;接下来测试登录功能,能否验证用户名密码的正确或错误;然后再测试手机与树莓派能否通信,树莓派是否可以接收手机发送的数据;最后测试树莓派接收指令后是否可以控制GPIO引脚的高低电平输出。
通过以上测试,确认软件部分的功能可以实现,Android应用程序在手机上运行正常,正确输入用户名密码之后可以跳转到开关控制页面,错误输入密码三次以上蜂鸣器响。手机发送的数据树莓派可以正常接收,并且可以控制继电器电子锁和摄像头。
针对高等工程教育实践教学的要求和特点,以实验室门禁系统研发项目为依托开展专业实践,使学生在实践中掌握基于树莓派的嵌入式系统和Android智能手机APP等方面的技术知识和开发方法,在项目实践中培养学生的动手能力、创新思维和工程意识,为其从事专业研发奠定基础。