陳世海 王軍 代偉 仲崇碩
[摘 要] 為提高專業(yè)實(shí)踐的工程性,培養(yǎng)學(xué)生的工程意識(shí)和創(chuàng)新能力,將實(shí)驗(yàn)室門禁系統(tǒng)研發(fā)項(xiàng)目引入實(shí)踐教學(xué),使學(xué)生在實(shí)踐中掌握嵌入式和Android開發(fā)等相關(guān)技術(shù)知識(shí)和專業(yè)技能,為其從事專業(yè)研發(fā)工作奠定基礎(chǔ)。
[關(guān)鍵詞] 項(xiàng)目驅(qū)動(dòng);專業(yè)實(shí)踐;樹莓派;Android
[中圖分類號(hào)] G642 [文獻(xiàn)標(biāo)志碼] A [文章編號(hào)] 1008-2549(2018) 11-0094-02
專業(yè)實(shí)踐教學(xué)是高等工程教育的重要環(huán)節(jié),是聯(lián)系理論知識(shí)與工程實(shí)踐的橋梁,對(duì)于培養(yǎng)學(xué)生的工程實(shí)踐能力和創(chuàng)新能力具有不可替代的作用。特別是在全球化、國(guó)際化的大背景下,如何培養(yǎng)出高質(zhì)量的工程人才,已經(jīng)成為高等工程教育要解決的核心問題。高等工程教育源于工程實(shí)踐,而最終又要服務(wù)于實(shí)踐,所以學(xué)生的專業(yè)實(shí)踐能力必然是衡量教學(xué)質(zhì)量的關(guān)鍵指標(biāo)。從實(shí)踐中來,到實(shí)踐中去[1]。將工程實(shí)踐的具體內(nèi)容以具體項(xiàng)目的形式融入專業(yè)實(shí)踐教學(xué),不僅可以培養(yǎng)學(xué)生理論聯(lián)系實(shí)踐的能力,而且可以開拓學(xué)生的思路、培養(yǎng)學(xué)生的工程思維,為其日后參與工程實(shí)踐打下扎實(shí)的基礎(chǔ)[2]。
以電子信息專業(yè)綜合實(shí)踐為例,將實(shí)驗(yàn)室門禁系統(tǒng)研發(fā)項(xiàng)目引入實(shí)踐教學(xué),使學(xué)生在項(xiàng)目實(shí)踐中掌握和鞏固嵌入式系統(tǒng)設(shè)計(jì)、Android智能平臺(tái)APP開發(fā)等專業(yè)知識(shí)和專業(yè)技能。
一 項(xiàng)目需求
隨著Android智能手機(jī)的飛速發(fā)展與普及,越來越多的APP應(yīng)用到人們的日常學(xué)習(xí)和生活之重中,開發(fā)一款基于Android的實(shí)驗(yàn)室門禁系統(tǒng),相比于IC卡式的門禁系統(tǒng)、指紋或其他生物特征識(shí)別式的門禁系統(tǒng)而言,基于Android智能手機(jī)的門禁系統(tǒng),不僅方便易用,而且能夠有效提升實(shí)驗(yàn)室的管理效能,為實(shí)驗(yàn)室的開放管理和學(xué)生實(shí)驗(yàn)提供了有力保障。
基于Android手機(jī)的實(shí)驗(yàn)室門禁系統(tǒng),將Android手機(jī)、樹莓派有效結(jié)合起來,使實(shí)驗(yàn)室門禁系統(tǒng)具有安全靈活的特點(diǎn)。硬件部分的設(shè)計(jì)分為三部分:一是繼電器電子鎖模塊;二是報(bào)警器模塊;三是攝像頭模塊。軟件部分的設(shè)計(jì)分為兩部分:一是Android應(yīng)用程序設(shè)計(jì),分為登錄界面和開門界面。二是樹莓派程序設(shè)計(jì)。主要功能如下。
(一)登錄功能
實(shí)驗(yàn)室人員在Android應(yīng)用程序中輸入用戶名密碼并發(fā)送給服務(wù)器端,服務(wù)器端接收數(shù)據(jù),與服務(wù)器中記錄的實(shí)驗(yàn)室人員信息進(jìn)行比對(duì)驗(yàn)證,驗(yàn)證成功進(jìn)入開關(guān)控制界面,完成登錄。
(二)報(bào)警功能
服務(wù)器端驗(yàn)證失敗后,Android應(yīng)用程序端允許重新輸入用戶名密碼,直到錯(cuò)誤三次時(shí),Android應(yīng)用程序發(fā)送指令給樹莓派服務(wù)器,樹莓派控制蜂鳴器報(bào)警。
(三)開門監(jiān)控功能
Android應(yīng)用程序開關(guān)控制界面發(fā)送開門指令,樹莓派接收指令執(zhí)行開門,然后攝像頭拍照保存,記錄實(shí)驗(yàn)室人員信息。
二 系統(tǒng)架構(gòu)
系統(tǒng)架構(gòu)以樹莓派嵌入式控制平臺(tái)為核心,由電子鎖模塊、電源模塊、攝像頭模塊、報(bào)警器模塊等部分組成。樹莓派通過控制GPIO引腳的高低電平輸出,來控制繼電器電子鎖模塊、報(bào)警器模塊和攝像頭的開關(guān),電源模塊為整個(gè)系統(tǒng)提供供電支持。
系統(tǒng)中繼電器電子鎖模塊所需工作電壓為直流12V,工作電流不小于800mA,而蜂鳴器報(bào)警模塊所需工作電壓為5V,而控制平臺(tái)的樹莓派的GPIO引腳的輸出電壓有5V和3.3V兩個(gè)規(guī)格,因此確定電源模塊方案時(shí),必須考慮多電壓輸出和其帶載能力。綜合考慮,選用輸出有3V、5V和12V且功率不低于15W的電源模塊。
樹莓派接收指令改變GPIO的高低電平輸出來控制繼電器的吸合與斷開,繼電器的吸合與斷開則控制了電子鎖的開門關(guān)門狀態(tài)。由于電子鎖的輸入電壓是12V,而樹莓派的輸出電壓只有5V和3.3V兩種,因此,我們選用了一個(gè)1路5V的帶光耦隔離的高電平觸發(fā)繼電器連接樹莓派和電子鎖,從而達(dá)到控制效果。電子鎖要求通電時(shí)間不超過15s,因此繼電器選擇了常開接法,當(dāng)樹莓派GPIO引腳輸出低電平給繼電器信號(hào)端時(shí),繼電器公共端與常開端斷開,電子鎖沒有電。當(dāng)樹莓派GPIO引腳輸出高電平給繼電器信號(hào)端,繼電器吸合,公共端與常開端接通,電子鎖有電開門。
樹莓派GPIO引腳輸出的是直流信號(hào),因此為簡(jiǎn)化設(shè)計(jì)可選用有源蜂鳴器,利用樹莓派的GPIO端口輸出的高低電平直接就可以控制蜂鳴器。當(dāng)手機(jī)客戶端輸入密碼出現(xiàn)三次錯(cuò)誤時(shí),手機(jī)端發(fā)出指令給樹莓派,樹莓派控制GPIO口輸出高電平,蜂鳴器報(bào)警。本次設(shè)計(jì)選用的是5V有源蜂鳴器,工作電流為小于25mA,蜂鳴器使用電源模塊供電。
攝像頭模塊的作用是對(duì)進(jìn)入實(shí)驗(yàn)室的人員進(jìn)行拍照并保存,因?yàn)闃漭善脚_(tái)自帶CSI接口,因此設(shè)計(jì)中選用樹莓派的官方攝像頭。攝像頭安裝過時(shí),首先將樹莓派CSI接口的排線插槽的扣子撥開,然后將攝像頭排線緊密插入到以太網(wǎng)網(wǎng)口和HDMI口之間的排線插槽,特別注意銀色亮面朝向HDMI口并且排線要避免彎折,排線插入之后,將插槽的扣子重新扣上。攝像頭安裝完成之后,即可在樹莓派上配置使用攝像功能。
三 軟件設(shè)計(jì)
軟件設(shè)計(jì)以Android智能手機(jī)為核心。Android是以Linux為核心的開源操作系統(tǒng),目前廣泛應(yīng)用于智能手機(jī)、平板電腦、智能手環(huán)等便攜式移動(dòng)終端設(shè)備,另外,隨著智能家居的發(fā)展,Android也應(yīng)用于智能電視、智能音響,甚至還應(yīng)用于家庭機(jī)器人等領(lǐng)域。Android智能平臺(tái)下的應(yīng)用程序主要采用Java語言開發(fā),同時(shí)也支持C++語言。
實(shí)驗(yàn)時(shí)應(yīng)用軟件開發(fā)建議采用Eclipse平臺(tái)。因?yàn)?,盡管Android studio未來的發(fā)展前景更大,然而由于目前Android studio的功能并沒有完善,因此它的用戶體驗(yàn)不好,而Eclipse因?yàn)榘l(fā)行時(shí)間較長(zhǎng),學(xué)習(xí)資料更多,更容易上手,因此APP開發(fā)環(huán)境選擇時(shí),建議學(xué)生首選Eclipse作為開發(fā)工具。本次實(shí)驗(yàn)的軟件是基于第一層,其要實(shí)現(xiàn)的基本功能為:實(shí)驗(yàn)室人員通過手機(jī)驗(yàn)證用戶名密碼,驗(yàn)證成功則可以通過手機(jī)發(fā)送指令給樹莓派進(jìn)行開關(guān)門,同時(shí)樹莓派拍照保存進(jìn)入者照片,驗(yàn)證失敗大于等于三次則發(fā)送指令給樹莓派報(bào)警。本次設(shè)計(jì)的Android應(yīng)用程序中登錄程序需要與服務(wù)器端進(jìn)行數(shù)據(jù)驗(yàn)證。因此在編寫Android端應(yīng)用程序前,要先搭建一個(gè)服務(wù)器。實(shí)驗(yàn)中可以采用免費(fèi)開源的基于java的Tomcat服務(wù)器,其支持servlet和JSP規(guī)范,Tomcat不僅技術(shù)先進(jìn)而且且性能穩(wěn)定。
Android應(yīng)用程序的設(shè)計(jì)包括了兩部分:登錄頁面和開關(guān)門頁面。登錄頁面是保證實(shí)驗(yàn)室安全的第一步,當(dāng)有人要進(jìn)入實(shí)驗(yàn)室時(shí),必須通過手機(jī)客戶端的登錄頁面驗(yàn)證用戶名密碼成功后才能進(jìn)行后面的操作。登錄頁面的作用是驗(yàn)證用戶名密碼是否正確,正確則進(jìn)行下一步,錯(cuò)誤則重新輸入,直到輸入三次報(bào)警。登錄頁面的設(shè)計(jì)分為兩部分:客戶端和服務(wù)器端。首先進(jìn)行服務(wù)器端的程序設(shè)計(jì)。服務(wù)器端分為三部分:User param、UserDAO、Servlet。User param文件中定義了用戶名和密碼,同時(shí)定義了參數(shù)的get和set方法,用于在URL中傳參和取參。UserDAO文件中建立了一個(gè)ArrayList數(shù)組作為數(shù)據(jù)庫,通過login方法對(duì)ArrayList數(shù)組進(jìn)行遍歷取值,驗(yàn)證參數(shù)是否存在。Servlet文件中的dopost方法對(duì)URL中的參數(shù)進(jìn)行提取,然后調(diào)用login方法對(duì)參數(shù)進(jìn)行驗(yàn)證,返回OK或者Wrong。
開關(guān)門頁面的作用是利用手機(jī)控制門禁。開關(guān)門頁面是安卓手機(jī)與樹莓派連接的橋梁,負(fù)責(zé)發(fā)送指令給樹莓派,達(dá)到控制樹莓派GPIO引腳的作用。手機(jī)與樹莓派利用Socket進(jìn)行通信,手機(jī)作為客戶端,樹莓派作為服務(wù)器。樹莓派要控制三個(gè)硬件模塊:繼電器電子鎖、報(bào)警器和攝像頭。繼電器和報(bào)警器需要利用GPIO引腳輸出的高低電平控制,攝像頭利用CSI接口控制。樹莓派作為服務(wù)器端,與安卓手機(jī)客戶端通過socket通信。服務(wù)器程序使用Python語言編寫。
軟件調(diào)試時(shí),首先首先測(cè)試Android應(yīng)用程序能否安裝到安卓手機(jī),并且正常運(yùn)行;接下來測(cè)試登錄功能,能否驗(yàn)證用戶名密碼的正確或錯(cuò)誤;然后再測(cè)試手機(jī)與樹莓派能否通信,樹莓派是否可以接收手機(jī)發(fā)送的數(shù)據(jù);最后測(cè)試樹莓派接收指令后是否可以控制GPIO引腳的高低電平輸出。
通過以上測(cè)試,確認(rèn)軟件部分的功能可以實(shí)現(xiàn),Android應(yīng)用程序在手機(jī)上運(yùn)行正常,正確輸入用戶名密碼之后可以跳轉(zhuǎn)到開關(guān)控制頁面,錯(cuò)誤輸入密碼三次以上蜂鳴器響。手機(jī)發(fā)送的數(shù)據(jù)樹莓派可以正常接收,并且可以控制繼電器電子鎖和攝像頭。
四 總結(jié)
針對(duì)高等工程教育實(shí)踐教學(xué)的要求和特點(diǎn),以實(shí)驗(yàn)室門禁系統(tǒng)研發(fā)項(xiàng)目為依托開展專業(yè)實(shí)踐,使學(xué)生在實(shí)踐中掌握基于樹莓派的嵌入式系統(tǒng)和Android智能手機(jī)APP等方面的技術(shù)知識(shí)和開發(fā)方法,在項(xiàng)目實(shí)踐中培養(yǎng)學(xué)生的動(dòng)手能力、創(chuàng)新思維和工程意識(shí),為其從事專業(yè)研發(fā)奠定基礎(chǔ)。(責(zé)任編輯:張宏玉)
參考文獻(xiàn)
[1]呂景泉,湯曉華,史艷霞.工程實(shí)踐創(chuàng)新項(xiàng)目(EPIP)教學(xué)模式的研究與實(shí)踐[J].中國(guó)職業(yè)技術(shù)教育,2017(05):10-14.
[2]王艷,張安富.論工程教育改革中的八個(gè)基本關(guān)系[J].高教發(fā)展與評(píng)估,2018,34(02):1-8+102.