劉英明
(長春汽車工業(yè)高等專科學(xué)校 電氣工程學(xué)院,吉林 長春 130013)
由于科學(xué)技術(shù)飛速發(fā)展,通過總線技術(shù)和自動(dòng)控制技術(shù)即可對(duì)家庭住宅中各種保險(xiǎn)安全設(shè)備、家用電器進(jìn)行監(jiān)控與管理,這種系統(tǒng)被稱為Smart Home,即現(xiàn)在智能家居的原型[1-3]。本文提出了一種基于CC2530的無線智能門鎖系統(tǒng)。在這套系統(tǒng)中,智能門鎖的狀態(tài)可實(shí)時(shí)在Android手機(jī)客戶端上實(shí)時(shí)顯示。智能鎖的打開關(guān)閉狀態(tài)等信息都存儲(chǔ)在本地文件系統(tǒng)上,用戶可以隨時(shí)進(jìn)行查閱或者對(duì)非法開門信息進(jìn)行跟蹤。除此之外,該系統(tǒng)還集成了溫濕度檢測、語音控制等功能,方便用戶查看和控制智能門鎖。本文的智能門鎖系統(tǒng)可以實(shí)現(xiàn)智能家居終端和移動(dòng)客戶端的雙向通信:智能無線門鎖終端設(shè)備在獲得門鎖狀態(tài)、溫濕度等數(shù)據(jù)后將其發(fā)送給本地服務(wù)器,本地服務(wù)器在獲取到這些數(shù)據(jù)后再通過Wi-Fi網(wǎng)絡(luò)將其發(fā)送至無線門鎖系統(tǒng)配套的APP。同時(shí)在移動(dòng)客戶端中加入語音控制等技術(shù),可以通過上述途徑反向控制無線門鎖設(shè)備。這套智能無線門鎖系統(tǒng)有價(jià)格低、設(shè)備功耗低、兼容性高等優(yōu)點(diǎn),有廣闊的應(yīng)用前景[4]。
本設(shè)計(jì)建立基于CC2530芯片的智能無線門鎖系統(tǒng),該系統(tǒng)包括三個(gè)部分,分別是無線門鎖終端設(shè)備、本地服務(wù)器和配套的Android客戶端。系統(tǒng)的架構(gòu)如圖1所示,智能無線門鎖終端設(shè)備通過串口連接到本地服務(wù)器,本地服務(wù)器通過串口連接到無線AP,并將數(shù)據(jù)發(fā)送給安卓客戶端,客戶端顯示數(shù)據(jù)給用戶或發(fā)送命令控制智能家居設(shè)備。
圖1 智能門鎖系統(tǒng)總體架構(gòu)
系統(tǒng)數(shù)據(jù)傳輸?shù)那闆r如下,智能門鎖終端設(shè)備將采集到的,智能門鎖終端設(shè)備狀態(tài)信號(hào)和溫濕度數(shù)據(jù)發(fā)送給本地服務(wù)器(透傳模塊),本地服務(wù)器接收到數(shù)據(jù)后,通過無線網(wǎng)絡(luò),發(fā)送給安卓客戶端。系統(tǒng)的控制傳輸情況如下:用戶使用安卓客戶端將控制指令,通過無線網(wǎng)絡(luò)發(fā)送給本地服務(wù)器(透傳模塊),本地服務(wù)器接收到指令后,再將指令發(fā)送給智能門鎖終端設(shè)備。
本部分的主要內(nèi)容是硬件終端設(shè)備的開發(fā)。首先介紹終端設(shè)備的嵌入式軟件開發(fā)環(huán)境,然后介紹在系統(tǒng)終端設(shè)備上進(jìn)行具體開發(fā)的流程。
本系統(tǒng)的嵌入式開發(fā)環(huán)境是I A R E m b e d d e d Workbench IDE-8051,版本為10.30.1。該集成開發(fā)環(huán)境適用于大量8位、16位以及32位的微處理器和微控制器,該集成式開發(fā)環(huán)境提供一個(gè)框架,該框架將可用高度優(yōu)化的編譯器、匯編器、鏈接器等工具完整地嵌入其中[5]。
開發(fā)者使用IAR工具可以大大節(jié)約工作時(shí)間。在開發(fā)新項(xiàng)目的時(shí)候,即使在使用習(xí)慣的開發(fā)環(huán)境中也能執(zhí)行。不僅如此,它還為用戶提供容易學(xué)習(xí)和容易繼承代碼的開發(fā)環(huán)境,以及支持大多數(shù)特殊目標(biāo)的開發(fā)環(huán)境。
ZigBee網(wǎng)絡(luò)中包括Coordinator,Router和End-Device這三種邏輯設(shè)備類型。ZigBee網(wǎng)絡(luò)由一個(gè)Coordinator以及多個(gè)Router或多個(gè)End-Device組成。Coordinator負(fù)責(zé)整個(gè)網(wǎng)絡(luò)的開始。Coordinator選擇頻道和個(gè)人局域網(wǎng)絡(luò)ID(Personal Area Network ID),開始整個(gè)網(wǎng)絡(luò)。Coordinator的作用主要和網(wǎng)絡(luò)啟動(dòng)和構(gòu)成有關(guān),當(dāng)然也可以用來幫助建立局域網(wǎng)絡(luò)安全層和應(yīng)用層之間的綁定。上述工作完成后,Coordinator會(huì)在功能上就轉(zhuǎn)變?yōu)镽outer;Router的功能主要是讓其他設(shè)備加入網(wǎng)絡(luò)。通常Router必須使用主電源供電,因?yàn)橄M且恢碧幱诨顒?dòng)狀態(tài)。但是,在使用樹狀網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的情況下,Router被允許在一定期間內(nèi)工作一次,因此可以用電池供電。End-Device可以是電池驅(qū)動(dòng)的設(shè)備,因?yàn)樵撛O(shè)備沒有維護(hù)網(wǎng)絡(luò)結(jié)構(gòu)的責(zé)任,可以睡眠或者喚醒。一般來說,End-Device的存儲(chǔ)空間(尤其是RAM)要求比較小。
ZigBee網(wǎng)絡(luò)支持星型、簇狀和網(wǎng)狀三種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),三種拓?fù)浣Y(jié)構(gòu)如圖2所示,下面詳細(xì)介紹星型拓?fù)浣Y(jié)構(gòu)。星型拓?fù)浣Y(jié)構(gòu)使用一個(gè)完整功能設(shè)備作為個(gè)人局域網(wǎng)啟動(dòng)的關(guān)鍵節(jié)點(diǎn)。該ZigBee節(jié)點(diǎn)設(shè)備類型被配置為協(xié)調(diào)器,通過網(wǎng)絡(luò)層的相關(guān)功能,選擇一個(gè)沒有被其他網(wǎng)絡(luò)使用的個(gè)人局域網(wǎng)標(biāo)識(shí)符,進(jìn)而啟動(dòng)一個(gè)新的網(wǎng)絡(luò)。星型拓?fù)浣Y(jié)構(gòu)具有組網(wǎng)方便并且網(wǎng)絡(luò)的機(jī)構(gòu)容易維護(hù)等優(yōu)點(diǎn),但是其缺點(diǎn)也很明顯,如網(wǎng)絡(luò)的覆蓋范圍小、協(xié)調(diào)器的射頻覆蓋范圍限制等。如果和星型網(wǎng)絡(luò)一樣使用一個(gè)完整功能設(shè)備作為個(gè)人局域網(wǎng)協(xié)調(diào)器,但采用多個(gè)路由器參與轉(zhuǎn)發(fā)信息,這種通信方式被稱為點(diǎn)對(duì)點(diǎn)通信。點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)結(jié)構(gòu)覆蓋面積大,可以達(dá)到轉(zhuǎn)發(fā)消息繞過障礙物的效果,但是該種拓?fù)浣Y(jié)構(gòu)下,網(wǎng)絡(luò)傳輸延時(shí)大、組網(wǎng)復(fù)雜、穩(wěn)定性不容易維護(hù)。
圖2 ZigBee 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
無線門鎖系統(tǒng)的硬件由深聯(lián)智達(dá)公司生產(chǎn)的CC2530模組和本地服務(wù)器組成。CC2530模塊的硬件簡化結(jié)構(gòu)中片內(nèi)資源主要包括串口(UART)、普通I/O和外部中斷,LED模塊以及RF(無線電)等。
本地服務(wù)器采用HLK-M35透傳模塊,圖3為該透傳模塊的硬件簡化結(jié)構(gòu)[6]。
圖3 透傳模塊硬件圖
2.3.1 門鎖模擬程序
采用本地服務(wù)器上的GPIO1口作為門鎖狀態(tài)的模擬,該口外接LED燈,起到提示作用。當(dāng)該口為低電瓶,即綠燈亮起時(shí),表示門處于打開狀態(tài);當(dāng)該口為高電平,即綠燈熄滅時(shí),表示無線門鎖處于關(guān)閉狀態(tài)。使用AT指令控制,該門鎖的狀態(tài)。當(dāng)客戶端連接到該模塊時(shí),發(fā)送“hlkATat+GW=1,0”指令時(shí),門鎖被模擬打開,指示燈亮起;當(dāng)客戶端發(fā)送“hlkATat+GW=1,1”指令時(shí),門鎖被模擬關(guān)閉,指示燈熄滅。
2.3.2 溫濕度獲取程序
溫濕度獲取模塊使用SHT10溫濕度傳感器。在本設(shè)計(jì)使用到的模塊中,微電路板集成傳感器元件和信號(hào)處理電路,輸出完全校準(zhǔn)的數(shù)字信號(hào)。該傳感器具有高性價(jià)比、高響應(yīng)速度、接口簡單、體積小等特點(diǎn)。該傳感器屬于Sensirion溫濕度傳感器家族[7],本設(shè)計(jì)使用的是貼片封裝系列。在本設(shè)計(jì)中SHT10連接在CC2530芯片的P0_4和P0_5。硬件簡化結(jié)構(gòu)如圖4所示。
圖4 溫濕度模塊硬件圖
從SHT10讀到的溫度數(shù)據(jù)值t和濕度數(shù)據(jù)值h,通過公式(1)和公式(2)轉(zhuǎn)換可以達(dá)到實(shí)際的溫度值T(攝氏度)和濕度值H(相對(duì)濕度),由于數(shù)據(jù)轉(zhuǎn)換的原因,小數(shù)點(diǎn)2位以后的數(shù)據(jù)沒有實(shí)際意義。
本部分首先簡要介紹Android操作系統(tǒng)和常用四大開發(fā)組件,然后介紹Android客戶端的總體設(shè)計(jì),最后介紹Android客戶端的各個(gè)功能以及具體實(shí)現(xiàn)。
在Android應(yīng)用程序開發(fā)中經(jīng)常會(huì)用到四大開發(fā)組件,每個(gè)組件都是系統(tǒng)或用戶可以通過其進(jìn)入應(yīng)用程序的入口點(diǎn),這些組件之間相互配合,實(shí)現(xiàn)對(duì)應(yīng)的功能需求[8]。
Android的四大開發(fā)組件使其在程序開發(fā)過程中擁有很多獨(dú)到之處。開發(fā)者可以通過自己開發(fā)的應(yīng)用程序去啟動(dòng)其他應(yīng)用程序的組件。同時(shí),開發(fā)者如果希望用戶使用設(shè)備相機(jī)拍攝照片,則可以借助另一個(gè)應(yīng)用程序執(zhí)行此操作,而自身開發(fā)的應(yīng)用程序可以使用它來代替自己開發(fā)活動(dòng)來拍攝照片。開發(fā)者不需要并入相機(jī)應(yīng)用程序中的代碼,甚至不需要鏈接到它們。相反,開發(fā)者只需在捕獲照片的相機(jī)應(yīng)用程序中啟動(dòng)活動(dòng)即可。完成后,照片甚至?xí)祷氐綉?yīng)用程序,以便使用。對(duì)用戶而言,相機(jī)似乎實(shí)際上是應(yīng)用程序的一部分。
Android客戶端軟件可以分為五大模塊,如圖5所示。
圖5 客戶端軟件總體設(shè)計(jì)
(1)設(shè)備綁定模塊:Android客戶端通過Wi-Fi連接到本地服務(wù)器后,客戶端后臺(tái)會(huì)自動(dòng)識(shí)別服務(wù)器的IP地址,以確保連接到正確的設(shè)備上。
(2)網(wǎng)絡(luò)通信模塊:客戶端后臺(tái)啟動(dòng)服務(wù),在Android客戶端后臺(tái)與本地服務(wù)器建立TCP長連接,獲取門鎖狀態(tài)和溫濕度信號(hào)并控制門鎖狀態(tài),完成與服務(wù)器數(shù)據(jù)的雙向傳輸。
(3)數(shù)據(jù)存取模塊:客戶端后臺(tái)將獲取到的溫濕度數(shù)據(jù)等存儲(chǔ)在本地文件系統(tǒng)上,方便用戶進(jìn)行后續(xù)的查詢。
(4)狀態(tài)顯示模塊:在完成網(wǎng)絡(luò)數(shù)據(jù)通信并將其存儲(chǔ)到Android手機(jī)文件系統(tǒng)后,客戶端提取本地文件中的門鎖狀態(tài)、溫濕度數(shù)據(jù)等信息,在對(duì)應(yīng)的Android控件上進(jìn)行顯示。
(5)語音控制模塊:客戶端集成科大訊飛離線語音識(shí)別SDK,可通過如“開門”“關(guān)門”語音命令完成門鎖模擬打開和關(guān)閉等操作。
3.3.1 設(shè)備綁定
用戶啟動(dòng)Android客戶端,通過Wi-Fi連接到本地服務(wù)器,點(diǎn)擊“連接”頁面,客戶端后臺(tái)判斷是否連接到對(duì)應(yīng)的本地服務(wù)器。若連接成功則播放過場動(dòng)畫,進(jìn)入狀態(tài)顯示模塊。如果連接的網(wǎng)絡(luò)不是正確的網(wǎng)絡(luò),將會(huì)提示用戶信息出錯(cuò)[9]。
3.3.2 狀態(tài)顯示
客戶端進(jìn)入狀態(tài)顯示界面時(shí),后臺(tái)會(huì)開啟網(wǎng)絡(luò)通信模塊和數(shù)據(jù)存取模塊,實(shí)時(shí)獲取門鎖狀態(tài)和溫濕度狀態(tài)等信息,并通過下拉刷新將門鎖狀態(tài)及溫濕度數(shù)據(jù)顯示在對(duì)應(yīng)的控件中。刷新數(shù)據(jù)后的頁面如圖6所示。
圖6 用戶界面
3.3.3 語音控制
用戶點(diǎn)擊上方“語音控制”圖標(biāo)即可進(jìn)入語音控制模塊,通過相應(yīng)語音指令模擬控制門鎖。當(dāng)使用語音控制門鎖打開和門鎖關(guān)閉會(huì)出現(xiàn)相應(yīng)的動(dòng)畫,如圖7所示。
圖7 語音控制效果圖
本文完成了一個(gè)基于CC2530芯片的智能無線門鎖系統(tǒng)。本文詳細(xì)闡述了無線門鎖終端設(shè)備的硬件開發(fā)的要點(diǎn)與溫濕度采集的算法流程,本系統(tǒng)本文的硬件設(shè)備包括兩部分,一部分是CC2530芯片模組,主要使用網(wǎng)絡(luò)傳輸模塊和溫濕度傳感器模塊,另一部分是Wi-Fi透傳模塊,主要用于接收CC2530模組傳來的數(shù)據(jù)以及向配套的Android客戶端發(fā)送數(shù)據(jù)。本文完成了Android客戶端的開發(fā),使用Android四大開發(fā)組件完成了客戶端的開發(fā),包括設(shè)備綁定、狀態(tài)顯示、網(wǎng)絡(luò)通信、數(shù)據(jù)存取等功能的實(shí)現(xiàn)。
本設(shè)備價(jià)格低,在門鎖上面集成了溫濕度傳感器,使用范圍更加廣泛。同時(shí)在客戶端上集成了科大訊飛的語音識(shí)別功能,方便用戶使用。
本文雖然實(shí)現(xiàn)了一個(gè)智能無線門鎖系統(tǒng),但是現(xiàn)階段存在許多不足,比如:
(1)支持的終端設(shè)備類型還不夠豐富,以后可以借鑒廠商開發(fā)標(biāo)準(zhǔn),支持接入市面上常見的門鎖設(shè)備。
(2)客戶端的功能比較基礎(chǔ),沒有添加刪除設(shè)備等功能,為了用戶的使用體驗(yàn),需要增加更多功能。
(3)對(duì)于軟硬件開發(fā)的測試還不夠,只進(jìn)行了簡單的功能性測試,沒有進(jìn)行更全面的測試。
(4)系統(tǒng)中的安全加密機(jī)制還不夠成熟,而該系統(tǒng)直接涉及用戶的居家隱私,因此后續(xù)需要添加相應(yīng)的安全措施。
(5)在保證數(shù)據(jù)安全的前提下,本地服務(wù)器的數(shù)據(jù)可以上傳到云服務(wù)器,方便用戶進(jìn)行遠(yuǎn)程的連接。