摘 要:智能家居系統是以住宅為平臺構建的高效住宅設施,兼具安全性、便利性、舒適性和藝術性,擁有廣泛的發展前景。文章提出的多功能智能家居系統的設計與實現方案,采用ARM芯片和Linux操作系統設計了智能家居系統的服務器,利用STM32單片機實現了智能家居的門禁子系統,并利用nRF24LE1和各傳感器設計了報警模塊等子系統,利用智能手機端的Android應用程序完成了人與子系統的通信功能。經過實驗測試,系統工作穩定。
關鍵詞:智能家居;Android;嵌入式操作系統;ARM
引言
“智能家居”這一概念是旨在提高人們生活品質而提出的現代化住宅系統?!岸喙δ苤悄芗揖酉到y”因其安裝和使用的便利性,愈發受到人們的關注。為了切實保障無線家居各系統之間通信的準確性、即時性和穩定性,文章設計的基于嵌入式平臺和Android技術的智能家居系統,利用智能手機和3G網絡技術,實現了包括報警、監測、遙控、通訊等多種子系統在內的智能設備的綜合管理,滿足了住宅的智能化要求[1]。
1 智能家居系統整體設計
智能家居系統結合了自動化控制技術,傳感器技術,網絡通訊技術,嵌入式技術及android應用技術等,使用戶可以通過無線網絡技術控制各種家居設備,實現了遠程訪問和管理。其實現的主要功能包括室內家居設備的實時監控和門禁設備的集中管理,并提供了水火災報警,有毒氣體報警等功能,保證家居設備安全高效的運行。系統由硬件和軟件兩大部分組成。硬件包括服務器、家居設備子系統(門禁系統、報警系統等),軟件包括嵌入式軟件以及android手機應用軟件兩部分。其總體結構如圖1所示。
圖1 智能家居總體結構圖
2 智能家居系統的硬件整體設計
2.1 服務器控制端的硬件設計
嵌入式服務器是網絡數據的“中轉站”,具有承上啟下的作用。它不僅能夠接收應用軟件發送的網絡數據,經過分析處理之后,將控制命令發送給其他子系統,同時還負責接收報警系統的發出的報警信息,并將報警信息及時反饋給手機應用軟件,及時提醒用戶查看。
2.1.1 核心控制電路設計
在設計中,核心板采用ATMEL公司生產的 AT91SAM9263 ARM9 處理器,主頻200MHz,具有極佳的電氣性能以及抗干擾性能,完美支持Linux 2.6.30 嵌入式操作系統。
2.1.2 USB接口的實現
在本設計中USB網卡是工作在數據鏈路層的網路組件,負責連接局域網中的計算機和傳輸介質,能夠與局域網傳輸介質之間進行物理連接和電信號匹配。
2.1.3 以太網接口電路的實現
以太網僅僅是技術的規范而非表面語句意義上的具體網絡,這與IEEE802.3系列標準是相一致的[2]。本設計的以太網設備選用DM9161芯片,以太網采用帶有沖突檢測的CSMA/CD機制傳輸數據,整個網絡的信息可以在任意節點上監聽到。在以太網連接中的設備想要傳輸數據需要按照一定的步驟執行:監聽,數據處理,延時處理。
2.2 門禁系統的硬件設計
門禁系統的主要功能包括實時視頻系統和語音對講系統,能夠使用戶和訪客進行必要的溝通。該系統采用STM32F103VET6作為CPU。
2.2.1 Wi-Fi通信電路設計
由于門禁系統傳輸的實時視頻數據量和音頻數據量比較大,本設計擬采用WiFi方式進行門禁系統與服務器間的通信。WiFi終端采用臺灣環隆電氣股份有限公司(USI)生產的WM-G-MR-9模塊,模塊集成 CPU、主機接口、基帶處理模塊、射頻轉換模塊等,支持高速無線局域網連接的IEEE802.11b/g協議[3]。本設計中選用 SPI接口與STM32 進行通訊。
2.2.2 視頻和語音接口電路設計
門禁子系統需要對來訪者的視頻和聲音進行采集和處理,本設計擬采用OV2640攝像頭進行圖像采集,通過VS1003B語音模塊進行音頻采集及處理。本設計采用分辨率為320*240的JPEG流輸出,能夠同時保證圖片的質量與傳輸的速度。
來訪用戶只要按下錄音鍵即可錄制音頻,松開按鍵后音頻錄制完畢,并且保存到SD卡同時上傳到服務器,在手機應用軟件上以語音消息的形式通知用戶查看,同時用戶還可以隨時通過手機客戶端查看服務器上保存的消息記錄。
2.2.3 外接存儲電路設計
門禁系統的存儲設備選用插入式Micro SD卡,用于保存包括訪客記錄、視頻數據和音頻數據等,用戶可以在任何時間取出SD卡查看數據,同時還能夠在線聽取音頻數據。
2.3 家庭防盜和報警子系統等的硬件設計
家庭防盜和報警子系統的設計通過采用nRF24LE1模塊,配以特定功能的傳感器即可實現相應的功能[4]。
家庭防盜系統通過在一些可以進入家庭內的地方添加人體紅外傳感器,當檢測到有不明人物長久停留,防盜系統便會發出報警信息,并自動將信息上傳到服務器,服務器立即以短信和app文字消息兩種方式提醒用戶查看。報警子系統其工作原理和防盜系統相同。對于住宅內部環境溫濕度等參數的監測,我們使用SHT-10傳感器,當手機應用軟件主動請求獲取溫濕度數據時,溫濕度子模塊便開始進行溫濕度的采樣。
3 智能家居系統的軟件模塊設計
3.1 Andriod手機端的客戶程序設計
為了方便用戶隨時隨地的查看家居設備的信息,本章對智能家居控制系統的手機控制平臺進行設計,實現了3G技術的遠程管理和Wi-Fi技術對家居設備的室內控制。手機客戶端程序流程圖如圖2所示。
3.2 應用程序的UI設計
搭建好Andriod的開發環境并建立開發所用的調試環境之后,就可以在模擬器上運行手機應用程序。用戶可以查看手機應用程序的實時視頻來觀察目標區域,在用戶單擊連接按鈕時,系統將向服務器發布命令,并且創建新線程來進行視頻數據的處理。服務器采用JPEG流的方式不斷向應用程序發送視頻數據。當斷開連接時,程序銷毀緩沖區。
頁面動態顯示,聊天頁面顯示,彈窗等都是手機應用程序開發所使用的主要技術。彈窗效果的實現可以通過新建一個XML文件,并且生成一個ExitFromSettings.java類,這個類可以在頁面的底部顯示,最后在Mainfest.xml中對其進行聲明。這樣,當用戶單擊退出按鈕時,應用程序就會在頁面的底部以彈窗的形式顯示出該對話框。
3.3 Android系統線程間的通信
當Android應用程序運行的時候,需要創建一個主線程 ,UI相關的事件都需要這個線程去處理,由于Android采用UI單線程模型,所以只能在主線程中對UI元素進行操作,另外,對于運算量較大的操作和IO操作,我們需要新開線程來處理這些工作,以免阻塞UI線程,子線程與主線程之間要采用消息循環機制(Looper)與Handler進行處理[5]。
3.4 應用程序的后臺處理
系統應用需要對網絡消息進行處理,并把參數傳遞給不同的控件去更新UI,為了達到這樣的功能,采用Service控件去處理,并與應用的其他組件進行交互。
在應用程序中,只要發起網絡連接,應用程序將自動Bind一個Socket的Service,用以處理接收到的數據,并通知UI更新顯示。
4 系統功能測試
4.1 門禁系統測試
視頻測試需要應用軟件先連接服務器,在此采用Wi-Fi連接狀態下進行測試,切換應用軟件到視頻監控界面,單擊連接按鈕,就可以看到攝像頭實時采集的視頻數據了。
4.2 報警系統測試
紅外模塊一旦檢測到有物體接近,則會自動將其控制引腳拉高報警,并向服務器發送警報數據。服務器檢測到報警信號之后,立刻以文字消息和消息通知的方式通知用戶查看。同樣,水報警系統和火災報警也是用類似方式實現報警??蛻舳塑浖邮盏綀缶盘柕男Ч鐖D3所示。
4.3 溫濕度傳感器采集測試
nRF24LE1采用IIC總線與溫濕度采集模塊SHT10通信,對溫濕度進行采樣之后使用溫濕度補償函數處理,以自定義協議發送數據到服務器。服務器通過網絡傳輸到Android應用軟件中,經過計算然后更新溫濕度數據的顯示。
5 結束語
文章采用模塊化的思想設計了智能家居系統,采用ARM9和STM32設計了服務器和智能家居子系統的硬件,設計了Andriod端的應用程序。
經過實際測試,本系統實現了對室內家居設備的實時監控,對門禁設備、照明設備等的集中管理,提供了傳感器設備的故障報警功能,保證了家居設備安全高效的運行,是一套低成本、易安裝、低功耗的智能家居系統。
參考文獻
[1]陳任,余征,梁金瑤.物聯網時代的智能家居發展機遇和挑戰[J].智能建筑與城市信息,2010(5):21-23.
[2]王平,等.工業以太網技術[M].北京:科學出版社,2007:22-25.
[3]游戰清,李蘇劍.無線射頻識別技術(RFID)理論與應用[M].北京:電子工業出版社,2004:11-12.
[4]李輝,宋詩,周建江.基于ARM和nRF24L01的無線數據傳輸系統[J].國外電子元器件,2008(12):44-46.
[5]劉平.Android訪問服務器的一種數據交互方法[J].電子設計工程,2010,18(9):96-102.