梁晶 史記征



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