孫永偉
(山東省淄博市工業(yè)學校,山東淄博,255400)
在本設(shè)計中,密碼模塊包括密碼鍵盤和顯示電路,都與智能門禁控制器直接通信,軟件流程圖如圖1所示。
圖1 智能門禁控制器與密碼模塊的通訊流程圖
業(yè)主在電梯前將電梯呼叫到達,然后進入電梯通過密碼鍵盤輸入密碼,點擊“確定鍵”,智能門禁控制器接收到密碼后,將其與數(shù)據(jù)庫里的信息對比,判斷密碼是否正確,如果正確,將在顯示電路上顯示“密碼正確”并允許業(yè)主操作電梯,如果錯誤,將在顯示電路上顯示“密碼錯誤”并不允許業(yè)主操作電梯。密碼正確后,業(yè)主選擇自己所要到達的目的樓層,智能門禁控制器接收到信息后將其發(fā)送給電梯控制器,業(yè)主即可到達目的樓層。以下是部分密碼鍵盤和顯示電路的單片機掃描程序:
本設(shè)計為了保證電梯運行狀態(tài)的更新效果,采用了Handler對象,接收線程和更新數(shù)據(jù)線程分別占用不同的線程,用以實現(xiàn)線程與線程之間的通信,Hander采用的原則是先進先出,對不同線程中運行的多個任務(wù)進行有序的排隊,Hander可以發(fā)送和處理的對象包括消息對象和Runnable對象,每一個Handler對象都關(guān)聯(lián)一個線程以及線程所對應的消息隊列。當一個Handler對象被創(chuàng)建時,相關(guān)聯(lián)的線程以及線程所對應的消息隊列也就被創(chuàng)建了[4]。Handler主要有兩個作用:
(1)安排消息或Runnable 在某個主線程中某個地方執(zhí)行;
(2)安排一個動作在不同的線程中執(zhí)行。
本設(shè)計主要包括兩個線程,一個是主線程,主線程主要是更新操作界面的顯示,電梯的運行方向、所在樓層以及電梯的模擬動畫等,另一個是接收線程,用于接收WIFI模塊發(fā)送來的信息。接收線程接收到智能門禁控制器通過WIFI通訊模塊傳送來的數(shù)據(jù),判斷接收到的數(shù)據(jù)的長度,如果為空,則返回;如果不為空,則將數(shù)據(jù)通過handler.sendMessage(message)發(fā)送到主線程,然后主線程進行更新數(shù)據(jù)。關(guān)鍵程序如下所示。
電梯控制主要是按照設(shè)定好的通信協(xié)議格式將用戶的命令發(fā)送到智能門禁控制器,控制過程如圖2所示。
圖2 電梯控制流程圖
首先加載控件Up、Down、Start按鈕,為按鈕up、down、start設(shè)置監(jiān)聽器,如果有按鈕按下,首先判斷是哪個按鈕,如果是Up鍵,發(fā)送呼叫電梯上行命令,如果是Down鍵,發(fā)送呼叫電梯下行命令,如果是Start鍵,發(fā)送電梯向目的樓層出發(fā)命令,最終通過sendMessage(bytes)發(fā)送出去[5]。關(guān)鍵程序如下所示。
本系統(tǒng)的軟件設(shè)計和硬件設(shè)計工作至此基本結(jié)束,后期根據(jù)實驗室設(shè)備條件進行了軟硬件的測試實驗,基本能夠滿足用戶要求。由于場地和實驗室條件限制的原因,智能門禁控制系統(tǒng)只進行了實驗室測試系統(tǒng)調(diào)試。實驗室試驗中,不配置電梯,因此系統(tǒng)只有單片機(門禁控制器)、密碼鍵盤(完成密碼輸入和選層兩個功能)一個液晶顯示器、一個步進電機、WIFI模塊和一臺手機,其中一臺顯示器用來顯示單片機接收到來自鍵盤和手機的指令。由于沒有電梯,手機用戶在通過驗證后單片機只向其發(fā)送設(shè)置好的電梯運行狀態(tài)并接收呼梯、樓層請求,采用步進電機模擬實現(xiàn),電梯向上運行一層樓時電機正轉(zhuǎn)一圈,電梯向下運行一層樓時反轉(zhuǎn)一圈[7]。
(1) 按照正確的方式將門禁控制器、密碼模塊、WIFI模塊、顯示電路以及電源模塊進行連接,檢查無誤后給電源模塊上電,觀察液晶顯示模塊是否正常顯示電梯的運行狀況。
(2) 通過密碼鍵盤輸入用戶密碼,然后呼叫樓層,觀察電機是否按照期望旋轉(zhuǎn)方向和旋轉(zhuǎn)轉(zhuǎn)數(shù)進行旋轉(zhuǎn),當電梯到達用戶所在樓層后,輸入目的樓層并確定,再觀察電機是否按照期望旋轉(zhuǎn)方向和旋轉(zhuǎn)轉(zhuǎn)數(shù)進行旋轉(zhuǎn)。
(3) 打開手機上的智能電梯軟件,首先顯示的是登錄界面,輸入用戶名和密碼,點擊登陸按鈕,觀察是否跳轉(zhuǎn)到操作界面,如果沒有跳轉(zhuǎn)到操作界面就會提示“用戶名或密碼錯誤”,需要重新輸入正確的用戶名和密碼,如果跳轉(zhuǎn)到操作界面,觀察是否正常顯示電梯的運行狀況。
(4) 在操作界面中輸入用戶所在樓層,然后點擊“呼叫電梯上行”按鈕,觀察電機是否按照期望旋轉(zhuǎn)方向和旋轉(zhuǎn)轉(zhuǎn)數(shù)進行旋轉(zhuǎn)并到達用戶所在樓層,然后輸入目的樓層,點擊“啟動電梯”按鈕,察電機是否按照期望旋轉(zhuǎn)方向和旋轉(zhuǎn)轉(zhuǎn)數(shù)進行旋轉(zhuǎn)并到達用戶目的樓層。
通過上述實驗發(fā)現(xiàn)整套系統(tǒng)可以正確的完成各項功能,而且步進電機模擬運轉(zhuǎn)準確,運行穩(wěn)定。