国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android平臺的教學(xué)樓智能門鎖系統(tǒng)設(shè)計

2020-01-07 05:36:16
關(guān)鍵詞:服務(wù)端門鎖教學(xué)樓

(集美大學(xué)機(jī)械與能源工程學(xué)院, 福建廈門361000)

隨著物聯(lián)網(wǎng)技術(shù)[1]的不斷發(fā)展,物聯(lián)網(wǎng)的應(yīng)用范圍不斷擴(kuò)大,在智能家居[2]方面的應(yīng)用已經(jīng)非常普遍。隨著智慧校園概念的提出,人們開始關(guān)注智慧校園的建設(shè),其中教學(xué)樓的管理是智慧校園建設(shè)中的重要組成部分。

目前,大多數(shù)教學(xué)樓中教室的管理仍然是采用人工開、關(guān)機(jī)械門鎖的方式,管理人員往往要攜帶大串鑰匙手動打開或者關(guān)閉教室門鎖。由于教學(xué)樓中的教室眾多,樓層較高,因此管理人員工作強(qiáng)度大且繁雜,而且鑰匙管理也多有不便,容易出現(xiàn)遺失等意外情況。為了解決上述問題,本文中創(chuàng)新性地設(shè)計基于物聯(lián)網(wǎng)的教學(xué)樓智能門鎖管理系統(tǒng),建立基于結(jié)構(gòu)化查詢語言數(shù)據(jù)庫MySQL的教學(xué)樓門鎖數(shù)據(jù)庫,服務(wù)端采用視圖邏輯分離架構(gòu)(SpringMVC)模式進(jìn)行開發(fā),客戶端為基于Android平臺的手機(jī)應(yīng)用,智能門鎖終端與服務(wù)端采用套接字(Socket)通信方式,由發(fā)送心跳包來保持穩(wěn)定連接。通過客戶端,管理員可以遠(yuǎn)程管理教學(xué)樓門鎖。

1 系統(tǒng)總體設(shè)計

本控制系統(tǒng)采用客戶端/服務(wù)端(C/S)架構(gòu)??蛻舳瞬捎没贏ndroid平臺的智能手機(jī)作為控制端,門鎖硬件作為響應(yīng)終端、遠(yuǎn)程服務(wù)端[3]來進(jìn)行指令的傳輸及信息的反饋。服務(wù)端是基于Java EE平臺[4]所編寫的Web服務(wù)端,其功能是接收、解析、發(fā)送指令并且回傳信息給用戶, 智能門鎖終端根據(jù)指令執(zhí)行響應(yīng), 真正實(shí)現(xiàn)了教學(xué)樓門鎖的遠(yuǎn)程管理, 其總體結(jié)構(gòu)如圖1所示。 由圖中可以看出, 遠(yuǎn)程服務(wù)端連接著智能手機(jī)客戶端與門鎖終端, 客戶端通過網(wǎng)絡(luò)訪問服務(wù)端平臺, 向服務(wù)端發(fā)送請求, 并獲取服務(wù)端反饋的信息。 智能門鎖接收遠(yuǎn)程服務(wù)端指令, 由單片機(jī)解析并執(zhí)行對應(yīng)的程序, 當(dāng)指令執(zhí)行完成后, 反饋信息給服務(wù)端, 繼而客戶端得到反饋通知。

圖1 教學(xué)樓智能門鎖系統(tǒng)總體結(jié)構(gòu)

2 智能門鎖硬件設(shè)計

智能門鎖硬件采用“進(jìn)階精簡指令器處理器(ARM) -通用分組無線服務(wù)技術(shù)(GPRS) -步進(jìn)電機(jī)”架構(gòu),以STM32F103C8T6單片機(jī)[5]作為控制器,以SIM900A模塊作為GPRS數(shù)據(jù)傳輸模塊,通過步進(jìn)電機(jī)來控制鎖舌的移動,實(shí)現(xiàn)門鎖的開關(guān)動作。具體智能門鎖硬件組成如表1所示。

表1 智能門鎖硬件組成

2.1 處理器模塊

智能門鎖的控制核心采用STM 32F103C8T6單片機(jī),該單片機(jī)是基于Cortex-M3內(nèi)核的ARM系列的32位處理器。該處理器性能優(yōu)秀,工作主頻高達(dá)72 MHz,具有20 kB的靜態(tài)隨機(jī)存儲器、 64 kB的程序存儲器和4個定時器,完全滿足性能上的要求,已廣泛應(yīng)用于工業(yè)控制領(lǐng)域。 通過Keil軟件及下載器組合, 提供了在線編譯、 調(diào)試、 下載、 仿真等多項功能。

2.2 GPRS模塊

智能門鎖的數(shù)據(jù)傳輸模塊采用SIM 900A[6]模塊,該GPRS模塊的尺寸為24 mm×24 mm×3 mm(長度×寬度×厚度), 是一款雙頻功能模塊,支持全球移動通信系統(tǒng)(GSM)、 GPRS雙頻模式,工作頻段分別為900、 1 800 MHz,待機(jī)功耗低,待機(jī)模式下電流低于18 mA,睡眠模式下電流僅為2 mA,可以低功耗地實(shí)現(xiàn)語音、短信、數(shù)據(jù)的傳輸。模塊內(nèi)嵌有傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP),支持用戶數(shù)據(jù)協(xié)議(UDP)和TCP通信,工作電壓為3.3~5 V,瞬間電流最高為2 A,可以直連單片機(jī),支持AT指令集,通過AT指令設(shè)置SIM 900A工作模式與遠(yuǎn)程服務(wù)端的連接及通信。由于門鎖終端必須與服務(wù)端保持連接,因此模塊采用TCP通信方式進(jìn)行穩(wěn)定、 可靠的連接。

2.3 步進(jìn)電機(jī)驅(qū)動模塊

步進(jìn)電機(jī)的驅(qū)動模塊采用L298N作為驅(qū)動芯片,模塊驅(qū)動電壓為5~35 V,由于所需工作電壓較大,因此需要通過電源升壓模塊XL6019調(diào)節(jié)輸出電壓。驅(qū)動模塊的工作模式為雙H橋驅(qū)動,可以驅(qū)動1臺兩相步進(jìn)電機(jī)或四相步進(jìn)電機(jī)工作,通過OUT1—OUT4 4個引腳輸出脈寬調(diào)制(PWM)信號驅(qū)動步進(jìn)電機(jī)轉(zhuǎn)動,使電機(jī)正轉(zhuǎn)或反轉(zhuǎn),實(shí)現(xiàn)開鎖或關(guān)鎖的動作,驅(qū)動模塊的原理如圖2所示。

步進(jìn)電機(jī)選取3D打印機(jī)中使用的42型步進(jìn)電機(jī),該型步進(jìn)電機(jī)為兩相四線步進(jìn)電機(jī),步距角為1.8°,工作模式為兩相四拍模式,電機(jī)繞組正轉(zhuǎn)的通電順序依次為A、 B、 C、 D,數(shù)學(xué)模型如表2所示。

2.4 智能門鎖機(jī)械結(jié)構(gòu)設(shè)計

雖然智能門鎖實(shí)現(xiàn)了遠(yuǎn)程控制功能;但是電子設(shè)備無法避免出現(xiàn)故障,且有斷電的可能性,因此智能門鎖也必須保留原始機(jī)械鎖的結(jié)構(gòu),當(dāng)出現(xiàn)意外情況時,可通過備用鑰匙進(jìn)行手動開鎖。圖3所示為智能門鎖的機(jī)械結(jié)構(gòu), 包括: 活動鎖舌, 外接把手可以自由開啟;步進(jìn)電機(jī)與反鎖鎖舌控制單元,鎖舌與滑動導(dǎo)軌相連,導(dǎo)軌與齒輪相嚙合,作為實(shí)現(xiàn)控制的關(guān)鍵部分;電源模塊,給硬件模塊提供電源,電源部分采用充電鋰電池組與外部電源進(jìn)行供電,在未斷電的情況下由外部電源進(jìn)行供電,在斷電情況下可由電池組進(jìn)行供電,保證正常工作;預(yù)留鎖芯孔,保證門鎖在緊急情況下可以使用備用鑰匙進(jìn)行手動開鎖。圖4為整體結(jié)構(gòu)裝配圖。

圖2 步進(jìn)電機(jī)驅(qū)動模塊原理圖

表2 步進(jìn)電機(jī)正轉(zhuǎn)數(shù)學(xué)模型

圖3 智能門鎖的機(jī)械結(jié)構(gòu)

3 Android手機(jī)客戶端軟件設(shè)計

Android手機(jī)客戶端軟件是基于Android平臺[6]使用Java語言編寫的[7], 開發(fā)環(huán)境采用谷歌官方推出的Android Studio 集成開發(fā)環(huán)境編寫程序,Android Studio提供了軟件的編寫、調(diào)試、代碼重構(gòu)、模擬器仿真等強(qiáng)大的功能,尤其是模擬器的仿真與真機(jī)的效果幾乎一樣。軟件的總體設(shè)計風(fēng)格采用谷歌官方推薦的卡片式材料設(shè)計(Material Design)語言,界面設(shè)計友好,簡單易懂。客戶端軟件的主要功能如表3所示。

圖4 智能門鎖的整體結(jié)構(gòu)裝配圖

表3 客戶端主要功能模塊

3.1 客戶端數(shù)據(jù)加密

作為一款智能門鎖控制應(yīng)用, 安全性無疑是非常重要的, 關(guān)系到整個教室的財物是否得到安全保障, 因此對于密碼的保存、 數(shù)據(jù)傳輸以及登陸驗(yàn)證都必須經(jīng)過加密處理。 為了確保管理員密碼以及數(shù)據(jù)傳輸?shù)陌踩裕?該應(yīng)用采用高級加密標(biāo)準(zhǔn)(AES)算法[8]進(jìn)行加密。 該算法是一種對稱性加密算法, 要求加密密鑰與解密密鑰必須相同。設(shè)AES的加密函數(shù)為E, 則C=E(K,P), 其中K為密鑰,P為明文,C為輸出的密文。 同樣地, 解密過程就是加密過程的逆運(yùn)算, 數(shù)學(xué)模型如下: 設(shè)AES解密函數(shù)為D,P=D(K,C),由接收方對傳輸過來的數(shù)據(jù)進(jìn)行解密, 通過相同的密鑰將密文還原為真實(shí)的明文, AES加密流程如圖5所示。

AES—高級加密標(biāo)準(zhǔn)。圖5 高級加密標(biāo)準(zhǔn)加密流程

3.2 主功能控制界面

軟件的主功能界面布局采用抽屜布局(DrawerLayout)組件。該組件除主視圖外還自帶一個側(cè)滑的菜單視圖(效果圖如圖6、 7所示),點(diǎn)擊右上角圖片或者從左側(cè)拖動就可以打開該側(cè)滑視圖。主視圖為控制區(qū),通過選擇所屬的區(qū)域,選擇教學(xué)樓以及樓層,顯示出對應(yīng)樓層的所有教室。該視圖是一個碎片(Fragment)視圖,選擇不同的區(qū)域、教學(xué)樓、樓層會動態(tài)地更換為對應(yīng)的Fragment視圖,人機(jī)交互友好。在Fragment視圖中,滑動SwichCompat開關(guān)(SwichCompat為Android平臺中的一個組件,起一個開關(guān)的作用),通過設(shè)置SwichCompact開關(guān)監(jiān)聽事件,實(shí)現(xiàn)對對應(yīng)教室門鎖進(jìn)行開鎖或關(guān)鎖動作。

側(cè)滑菜單視圖是DrawerLayout組件的一大特色,該菜單視圖設(shè)計為個人中心界面,界面如圖7所示,其中包含了修改登錄密碼、查詢開鎖記錄、最新通知、設(shè)置4個子菜單項,點(diǎn)擊不同的子菜單項進(jìn)入相應(yīng)的視圖中。

圖6 控制功能區(qū)圖7 側(cè)滑菜單視圖

3.3 歷史記錄查詢

為了方便教學(xué)樓的管理,當(dāng)發(fā)生突發(fā)事件時,管理員可以對歷史操作記錄進(jìn)行查詢,客戶端設(shè)置了門鎖歷史記錄查詢功能。該歷史記錄保存于智能手機(jī)中自帶的SQLite數(shù)據(jù)庫中,當(dāng)SwichCompat產(chǎn)生動作后,服務(wù)端返回的數(shù)據(jù)包中動作標(biāo)志值為1時,標(biāo)志開關(guān)動作成功,自動生成歷史記錄,保存于數(shù)據(jù)庫中。由于Android原生數(shù)據(jù)庫操作接口(API)較為麻煩,需要編寫復(fù)雜的結(jié)構(gòu)化查詢(SQL)語句,這對于普通的開發(fā)人員固然不太友好,并且原生API性能較低,因此本軟件采用GreenDao數(shù)據(jù)庫框架。GreenDao是由Square公司開源的一個數(shù)據(jù)庫框架,基于對象關(guān)系映射(ORM)原理,將Java對象映射到SQLite數(shù)據(jù)庫中進(jìn)行保存,并且GreenDao對SQL語句進(jìn)行了封裝,不需要編寫復(fù)雜的SQL語句即可完成增、刪、改、查等操作,且該框架支持?jǐn)?shù)據(jù)庫加密,安全性高。

歷史記錄界面僅提供最近1周的歷史記錄,如果需要查詢更早之前的記錄,則點(diǎn)擊自定義查詢按鍵選擇查詢的日期,GreenDao則查詢自定義日期的歷史記錄,將結(jié)果顯示給管理員。

4 遠(yuǎn)程服務(wù)端設(shè)計

4.1 服務(wù)端總體設(shè)計

該遠(yuǎn)程服務(wù)端是基于JavaEE平臺所開發(fā)的一個Web應(yīng)用服務(wù)端[8],服務(wù)端運(yùn)行于Tomcat服務(wù)器上,遠(yuǎn)程服務(wù)端通過服務(wù)連接器(Servlet)響應(yīng)客戶端的請求。Servlet是基于超文本傳輸協(xié)議(HTTP)運(yùn)行于服務(wù)端的程序。當(dāng)客戶端產(chǎn)生一個請求時,向服務(wù)端請求對應(yīng)的Servlet來處理該請求,并返回請求結(jié)果,服務(wù)端通過操作MySQL數(shù)據(jù)庫存取相應(yīng)的數(shù)據(jù),遠(yuǎn)程服務(wù)端的設(shè)計框架如圖8所示。

圖8 遠(yuǎn)程服務(wù)端框架

服務(wù)端通過建立套接字(Socket)連接[10]與智能門鎖終端進(jìn)行數(shù)據(jù)通信,為了保證該連接不被斷開,智能門鎖終端需要間隔固定時間向服務(wù)端發(fā)送心跳包[9],當(dāng)智能門鎖終端監(jiān)測到服務(wù)端發(fā)送過來的指令時,通過串口將數(shù)據(jù)發(fā)送給單片機(jī),單片機(jī)解析指令并執(zhí)行相應(yīng)程序,執(zhí)行完后向服務(wù)端返回數(shù)據(jù)。

4.2 心跳包機(jī)制

門鎖終端為了維持與服務(wù)端的連接通信,需要每隔固定的時間向服務(wù)端發(fā)送心跳幀數(shù)據(jù),使得服務(wù)端可以判斷該終端為存活狀態(tài),并且保證了終端IP地址不會產(chǎn)生變化。這是由于物聯(lián)網(wǎng)卡的IP地址是由運(yùn)營商動態(tài)分配,因此,如果在一段時間內(nèi)沒有產(chǎn)生數(shù)據(jù)通信,將會產(chǎn)生網(wǎng)絡(luò)地址轉(zhuǎn)換(network address translation,NAT)超時而被淘汰, IP地址將被收回,造成連接斷開。當(dāng)重新連接后,由于IP地址發(fā)生變化,不利于服務(wù)端與終端連接的穩(wěn)定性,因此需在終端與服務(wù)端之間建立心跳包機(jī)制,圖9所示為心跳包機(jī)制示意圖。經(jīng)實(shí)驗(yàn)測試,終端在1 d正常運(yùn)行的情況下所產(chǎn)生的流量僅為1 MB左右,流量費(fèi)用十分經(jīng)濟(jì)。

t1、t2、t3—服務(wù)端接收到客戶端心跳包時間。圖9 心跳包機(jī)制

4.3 異常處理機(jī)制

由于門鎖終端與服務(wù)端必須保持穩(wěn)定連接, 門鎖終端才能正常接收指令,而在實(shí)際環(huán)境中,卻無法避免一些特殊情況或不可抗性因素導(dǎo)致連接斷開,例如程序跑飛、網(wǎng)絡(luò)中斷、服務(wù)端異常等情況,因此控制系統(tǒng)中需要有相應(yīng)的異常機(jī)制對這類異常情況進(jìn)行處理。上述所有情況的發(fā)生都將導(dǎo)致門鎖終端與服務(wù)端連接斷開,此時管理員在手機(jī)客戶端的操作將返回失敗結(jié)果。該異常機(jī)制的處理將分為以下3個步驟:

1)首先,連接斷開之后,服務(wù)端將無法接收到終端發(fā)送的心跳包。在服務(wù)端程序中設(shè)置當(dāng)連續(xù)3個周期內(nèi)沒有收到終端發(fā)送的心跳包,此時服務(wù)端將判斷連接已經(jīng)斷開,并將智能門鎖終端數(shù)據(jù)表中對應(yīng)終端連接狀態(tài)值修改為0,表示此時該終端狀態(tài)為斷開狀態(tài),該值為1時表示為正常連接狀態(tài)。

2)管理員在手機(jī)客戶端進(jìn)行頁面刷新時發(fā)送HTTP請求,服務(wù)端將返回門鎖終端狀態(tài)值,對于異常終端,其狀態(tài)值為0,客戶端將會對異常終端進(jìn)行相應(yīng)的標(biāo)紅狀態(tài)顯示,并且設(shè)置開關(guān)為不可點(diǎn)擊狀態(tài),此時無法對該終端進(jìn)行開關(guān)操作。

3)終端沒有收到服務(wù)端的心跳反饋時,終端程序中表示獲取服務(wù)端心跳反饋的布爾變量值為假,將進(jìn)入重連服務(wù)端的一個循環(huán),直到該值變?yōu)檎?。如果是由于STM 32模塊程序跑飛導(dǎo)致,則會由看門狗電路實(shí)現(xiàn)對模塊重啟,重新與服務(wù)端進(jìn)行連接。

經(jīng)過以上3個步驟,門鎖終端與服務(wù)端重新建立連接,服務(wù)端獲取終端的IP地址和端口號將存儲在對應(yīng)的數(shù)據(jù)庫中,并將終端數(shù)據(jù)表中對應(yīng)終端的連接狀態(tài)值改為1。

5 系統(tǒng)測試

5.1 正常運(yùn)行測試

將智能門鎖遠(yuǎn)程服務(wù)端部署于云服務(wù)器上, 手機(jī)運(yùn)行客戶端, 登錄數(shù)據(jù)庫中設(shè)定的管理員賬號密碼, 登錄成功后進(jìn)入主界面, 選擇事先設(shè)定的樣機(jī)所屬區(qū)域, 滑動開關(guān), 步進(jìn)電機(jī)正轉(zhuǎn), 實(shí)現(xiàn)開鎖動作。 將SwichCompat滑動至另一側(cè),步進(jìn)電機(jī)反轉(zhuǎn),實(shí)現(xiàn)關(guān)鎖動作。經(jīng)實(shí)驗(yàn)測得,步進(jìn)電機(jī)轉(zhuǎn)動完成需要0.3 s左右時間,客戶端發(fā)出指令至終端完成指令時間差為1.2 s左右。由于終端模塊為GPRS模塊,理論傳輸速率僅為56~114 kb/s,因此在進(jìn)行開關(guān)動作之后必須設(shè)定一定延時間隔,防止再次操作,才能保證智能門鎖正常工作。

5.2 異常運(yùn)行測試

由于智能門鎖在某些因素影響下會出現(xiàn)與服務(wù)端連接斷開的情況,造成開、關(guān)鎖服務(wù)失敗。通過實(shí)驗(yàn)分析歸納出導(dǎo)致與服務(wù)端斷開連接3個主要因素,分別為電源中斷、網(wǎng)絡(luò)異常和模塊工作異常的情況。本文中對智能門鎖由以上3種因素導(dǎo)致的異常情況產(chǎn)生進(jìn)行了異常運(yùn)行測試實(shí)驗(yàn),檢驗(yàn)異常處理機(jī)制的穩(wěn)定性。

對以上3種情況分別進(jìn)行30次實(shí)驗(yàn)測試,統(tǒng)計出了3種情況下終端與服務(wù)端重新進(jìn)行連接平均所需時間。利用電源的開和關(guān)模擬電源中斷的情況,屏蔽網(wǎng)絡(luò)信號模擬網(wǎng)絡(luò)異常的情況以及設(shè)置看門狗重啟模塊來模擬模塊工作異常的情況,實(shí)驗(yàn)統(tǒng)計數(shù)據(jù)如圖10所示。

圖10 異常運(yùn)行測試實(shí)驗(yàn)下終端重連時間

通過對軟件及硬件功能測試,成功實(shí)現(xiàn)了對門鎖的正常操作,并且模擬了終端出現(xiàn)異常情況導(dǎo)致終端與服務(wù)器斷開連接,實(shí)驗(yàn)測試終端異常處理機(jī)制,可自動恢復(fù)與服務(wù)端的連接,除此之外,管理員通過手機(jī)客戶端可以定位工作異常的終端,進(jìn)行上報維護(hù)。

本實(shí)驗(yàn)對智能門鎖分別進(jìn)行了正常運(yùn)行與異常運(yùn)行測試,測試情況表現(xiàn)良好,軟件整體的功能性基本滿足管理人員的要求,實(shí)現(xiàn)方便管理。

6 結(jié)論

本文中設(shè)計的智能門鎖控制系統(tǒng)是基于物聯(lián)網(wǎng)與Android平臺,利用物聯(lián)網(wǎng)模塊通信,通過手機(jī)客戶端實(shí)現(xiàn)教學(xué)樓門鎖的遠(yuǎn)程管理,保障了教室財物的安全,減小了管理員的工作強(qiáng)度。對客戶端的數(shù)據(jù)傳輸進(jìn)行了加密處理,保證了客戶端使用的安全性。本設(shè)計完成了硬件部分的設(shè)計、客戶端軟件及服務(wù)端程序的編寫,經(jīng)實(shí)驗(yàn)測試,實(shí)現(xiàn)了預(yù)期功能要求。該系統(tǒng)成本低廉,運(yùn)行可靠穩(wěn)定,適合于教學(xué)樓的遠(yuǎn)程管理。

猜你喜歡
服務(wù)端門鎖教學(xué)樓
一種簡易氣門鎖夾安裝設(shè)備
6款熱門智能門鎖推薦
教學(xué)樓,作文本里的方格 組詩
云存儲中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
新時期《移動Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
基于遺傳算法的教學(xué)樓智能照明控制系統(tǒng)設(shè)計
電子制作(2017年17期)2017-12-18 06:40:41
教學(xué)樓自動門控制系統(tǒng)研究與設(shè)計
電子測試(2017年12期)2017-12-18 06:35:31
在Windows Server 2008上創(chuàng)建應(yīng)用
鑰匙門鎖對對碰
白城市新區(qū)學(xué)校教學(xué)樓結(jié)構(gòu)設(shè)計
兴宁市| 大连市| 荆州市| 略阳县| 宾川县| 蒙阴县| 扬中市| 景泰县| 潞城市| 余干县| 西林县| 金川县| 台江县| 甘孜县| 肥城市| 临安市| 台安县| 博客| 全椒县| 蚌埠市| 五原县| 南京市| 伊宁县| 太原市| 钦州市| 新河县| 白朗县| 长葛市| 哈尔滨市| 股票| 唐河县| 三都| 珠海市| 温宿县| 星子县| 涪陵区| 寻乌县| 商水县| 定兴县| 普定县| 从化市|