梁晶 史記征



摘要:隨著物聯網技術的發展,智能化已成為鎖具行業發展的趨勢之一。針對目前智能鎖不支持無線通信、不支持手機APP控制等缺點,提出一種基于藍牙無線模塊的手機控制智能鎖系統。通過手機藍牙控制智能鎖的開關,硬件端的HC-05藍牙模塊作為服務器端,手機藍牙作為客戶端;客戶端采用APPInventor編程語言制作手機APP;硬件端采用Arduino主控板控制,實現了Arduino與藍牙之間通過串口進行通信。實驗結果表明:藍牙智能鎖可以準確接收手機端發送的開、關鎖指令,具有廣闊的市場應用前景。
關鍵詞:藍牙智能鎖;Arduino控制器;手機APP
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)32-0086-03
1概述
隨著“萬物互聯”概念的提出,物聯網技術得到了飛速發展,智慧生活和智能家居理念也逐漸得到人們的認可。傳統門鎖在智能化、安全管理上仍有許多需要改進的地方,目前市場上現有的一些智能門鎖,僅僅是在開鎖方式上做了一些改變,而在無線控制、手機APP控制等方面仍存在不足,因此設計一款無線遙控、人機界面友好的智能門鎖具有重要的意義。基于以上理念,在結合物聯網技術、嵌入式技術、電子技術的基礎上,設計了一款基于Arduino的手機APP控制的智能鎖。同時,為了增加智能鎖的安全等級,用戶需先通過手機客戶端APP密碼進行驗證,然后才能對鎖具進行開關控制,有效的避免了傳統門鎖的不足。
2系統方案設計
系統總體框圖如圖1所示。藍牙模塊通過串口與Arduino主控板進行通信,利用Arduino主控板的數字引腳5控制單路繼電器的吸起和落下,從而控制電子鎖電源的導通和斷開;藍牙模塊通過無線方式與手機端藍牙進行通信,進而實現手機端APP對電子鎖的控制。
3硬件設計
3.1Arduino主控板
Arduino是個基于開放源代碼的軟硬體平臺。它的硬件具有豐富的接口,有數字I/O口、模擬I/O口,同時支持SPI、IIC、UART串口通信。
Arduino編程語言沒有復雜的單片機底層代碼,沒有難懂的匯編程序,只有簡單而實用的函數。直接調用它們就可以完成各種需要的功能,而且簡便的編程環境擁有極大的自由度,可拓展性能非常高。標準化的接口模式、豐富的開放源代碼,從而使復雜命令的編程工作變得簡單。
常用的Arduino主控板有:Arduino Uno、Arduino Mega2560、Arduino Nano、LilyPad Arduino、Arduino Leonardo等。本系統中所使用的Arduino UNO R3是一個基于ATmega328核心的微控制器板。它由14個數字輸入/輸出引腳(其中6個可以用作PWM輸出)、6個模擬輸人、一個16MHz的陶瓷諧振器、USB接口、電源插孔、ICSP頭和一個復位按鈕組成,如圖2所示。開發板出廠時已完成了啟動程序的固化,使用過程中可以直接使用USB線進行程序下載。
3.2傳感器擴展板
對于一些不熟悉電子技術的人,要添加電路是一個比較麻煩的事,借助于傳感器擴展板,能使大部分外圍元器件輕松地與Arduino主控板連接,如圖3所示。
3.3藍牙模塊
Bluetooth Bee藍牙無線數傳模塊采用XBEE造型設計,體積尺寸緊湊,兼容傳感器擴展板底座,適用于各種3.3V的單片機系統,模塊可以使用AT指令設置主從模式、波特率、配對密碼、用戶信息等。如圖4所示。
3.4單路繼電器
單路繼電器模塊是一個小電流信號控制大功率設備的常用電子模塊,可實現單片機控制大功率器件,廣泛用于單片機系統設計的智能家居項目。如圖5所示。
3.5電磁鎖
電磁鎖的原理:電磁鎖內部有電磁線圈,利用電生磁的原理,當電流通過硅鋼片時,電磁鎖會產生強大的吸力,緊緊地吸住門上鐵片,達到鎖門的效果。只要小小的電流,電磁鎖就會產生莫大的磁力。當控制電磁鎖電源系統識別人員正確后則會斷電,電磁鎖失去吸力即可開門。開門后經預設延時后電磁鎖恢復通電狀態與門上鐵片吸合,門再次鎖緊。如圖6所示。
硬件系統連接順序是:傳感器擴展板扣在Arduino主控板上,藍牙模塊扣在傳感器擴展板上,傳感器擴展板上的數字引腳5控制單路繼電器的吸起和落下,單路繼電器控制電磁鎖的電源。
4軟件設計
4.1硬件端程序代碼
設計思路:硬件端藍牙模塊收到手機端發來的命令數值16,通過串口發送給Arduino控制器,Arduino控制數字引腳5輸出高電平,使繼電器吸起,電磁鎖電源斷開,門鎖打開;延遲10秒,讓繼電器落下,電磁鎖電源合上,門鎖閉合。
打開Arduino開發編碼環境界面,輸人以下代碼,編譯通過后下載到Arduino主控板。
4.2手機端程序代碼
系統中的手機端APP采用App Inventor進行編程,App In_ventor是Google實驗室的一個計劃,由來自麻省理工學院、有“App Inventor之父”之稱的HalAbelson教授及其團隊負責主導開發。它以圖形化編程界面為主要特色,是一種簡單、快速開發Android App的開發平臺,功能強大、易學易懂。
4.2.1屏幕初始化
在沒有完成“搜索藍牙”之前,“連接藍牙”按鈕應處于非活動狀態,即不可點擊。
4.2.2“搜索藍牙”鍵設計
利用ListPicker組件實現“搜索藍牙”鍵展開功能,將手機已存儲配對過的設備做成一個列表供選擇。
4.2.3“連接藍牙”鍵設計
在ListPicker的展開列表中,選擇硬件端藍牙的名稱,然后點擊“連接藍牙”以實現手機端與硬件端的無線連接。
4.2.4“鎖按鈕”鍵設計
設計思路:點擊“鎖閉”的圖案時,先檢查輸入的密碼是否正確,如果正確則將“鎖閉”的圖案換成“開鎖”的圖案,并通過手機藍牙向Arduino主控板發送命令數值16;在延時10秒后,把“開鎖”的圖案換成“鎖閉”的圖案。
4.2.5手機端APP運行效果
5結束語
本系統是基于Arduino主控板的藍牙智能控制鎖的設計,內容包括方案的設計、硬件選型、軟件編程。經實驗測試,系統工作可靠、運行穩定、功耗低,能實現無線開鎖上鎖功能,手機端APP界面中的輸入密碼選型增強了鎖具的安全等級。此外,本設計還可以推廣到電動車、小汽車等領域,為藍牙通信在物聯網技術發展中的應用提供一定的參考價值。