摘 要:隨著科技的進步,物聯網不斷發展,呈現出如火如荼的態勢。針對市場的需要,本方案基于目前普遍流行的Android系統,設計出一套完善的物聯網解決方案,使得人們能通過智能終端,遠程跨網控制LED等智能設備,同時能夠實施感知家中溫度,濕度等各類信息。該系統經過多次測試,性能穩定、實時性好、成本低廉,同時能很好滿足人們智能家居的需求。
關鍵詞:物聯網;Android;智能家居;遠程控制
引言
有無數人可能遇到過這樣的問題:剛剛走到樓下準備去上班,卻忘記自己是否關閉好門窗、電器,只得回到家里查看卻發現實際上已經關閉好了。又或者孩子在家里睡覺,家長去上班卻總擔心要是空調一直開著會不會讓孩子著涼...似乎現實中還有眾多的可能,讓人總是那么不“放心”。
在面臨生活中種種的不方便后,我們開始設計了這樣一種作品。忘記有沒有關好電器、門窗?打開我們的“家居助手”,輕輕的點擊一下,智慧與科技會從手機開始流過網線、流過服務器、流過路由器、流進家里...最終你能了解家中所有的情況,隨時隨地地操控。而這種種的一切均在彈指一瞬間完成。
當未來的世界里,你能通過手機便能開關燈、打開電熱水器、開啟空調、關閉門窗、甚至能看到家里電量使用狀況、能付款、能控制車庫、能當做汽車鑰匙......這種將生活“一手掌控”的時代是多么的令人興奮!
本設計的主要特點如下:
(1)基于目前廣泛流行的Android系統進行設計,在軟件上兼容Android4.4-Android6.0,覆蓋市場主流Android版本。同時使用Material Design設計理念,使客戶端更加便捷智能,更具UI友好性。
(2)本設計可以實現對家中設備的跨網控制,直接通過公網控制家中智能設備,且對設備IP類型無任何限制,更具實用性。
(3)家庭主機采用基于ARM Cortex-A7的樹莓派,功耗更低,穩定性更強,可擴展性更高。
1 系統總體架構
本作品主要針對智能家居進行控制,根據需求,采用C/S(客戶端/服務器)模式。客戶端為Android智能終端與家庭主機,服務端為Linux服務器。在本設計中,智能家居工作原理為:在家庭主機與智能終端連上Internet后,家庭主機通過POST,GET實施向服務器發送溫度,濕度等家庭信息,同時讀取服務器中操作指令。服務器接收到家庭主機溫度、濕度等信息后將其存儲到相應空間。智能終端通過Httpurlconnection向服務器發送操作指令,同時讀取服務器中存儲的家庭信息,并在終端實時更新。通過設備間不斷協調,實現終端對家居設備的遠程控制。
2 系統設計
2.1 Android客戶端UI設計
Android客戶端設計主要包括UI界面,Httpurlconnection通信及線程的相關應用等。Android應用程序由一個Activity和若干個Fragment組成,遵循Google的Material Design設計語言,通過陰影將并不鋪滿頁面的內容從背景層中剝離,并通過陰影深度來表達層級。同時,通過Navigation Drawer導航菜單的應用,提供了在非頂級視圖間導航的能力,更加美觀與易用。MD設計語言的存在使得UI更加豐富、歡快,予用戶一種愉快的操作體驗。可以通過向左側劃動劃出導航欄,點擊不同的欄目以進入不同的房間進行操作。
2.2 Android客戶端程序設計
在Android M,出于能耗的考量,Google官方移除了開源項目HttpClient的支持,提倡使用Httpurlconnection,為了保持良好的兼容性與穩定性,本項目采用Httpurlconnection進行Get、Post的網絡操作。同時,為了保持良好的操作體驗,在本設計中,所有的網絡耗時操作都放在子線程中進行,通過Handler機制進行線程間消息的傳輸及UI的更新,每個HttpURLConnection實例都可用于生成單個請求,但是其他實例可以透明地共享連接到HTTP服務器的基礎網絡。請求后在HttpURLConnection的InputStream或OutputStream上調用close()方法可以釋放與此實例關聯的網絡資源,但對共享的持久連接沒有任何影響。如果在調用disconnect()時持久連接空閑,則可能關閉基礎套接字。
客戶端與服務器之間的通信一般需要以下幾個步驟:
(1)建立Httpurlconnection對象,初始化請求頭。
(2)建立連接,向服務器發送Get/Post請求。
(3)服務器響應客戶端請求。
(4)服務器處理并向客戶端發送響應信息。
(5)客戶端接受服務器返回的信息并進行處理。
2.3 家庭主機設計
本作品采用基于基于ARM Cortex-A7的樹莓派2b。樹莓派2代的Model B采用Broadcom BCM2836 900MHz的四核SoC,1GB內存,是新一代開拓者,兼容1代B+。但相比之下,樹莓派2的性能提升6倍,內存翻了一番。強大的性能提供了更高的穩定性及擴展性。
2.4 公網服務器選擇
本作品采用Yeelink第三方云服務器提供安卓端與家庭主機數據的中轉。并且通過直接訪問其API接口,進行操作指令的傳輸與信息的訪問。Yeelink獨有設計的高并發接入服務器和云存儲方案,能夠同時完成海量的傳感器數據接入和存儲任務,確保數據能夠安全的保存在互聯網上,先進的鑒權系統和安全機制,能夠確保數據只允許的范圍內傳輸。
3 結束語
設計完成后,通過項目的整體測試運行,達到了通過智能終端APP跨網控制家居設備的要求,并且穩定性及功耗均在理想范圍內。通過本系統,用戶可以隨時隨地掌握家居環境狀態,并且對家居設備進行集中監控與管理。由于本項目基于Android開發,因此在市場推廣及潛在用戶上具有極大優勢。同時,由于其強大的可擴展能力及用戶友好性,相信其具備極大的市場應用價值。
參考文獻
[1]郭霖.第一行代碼[M].北京:人民郵電出版社,2014.
[2]葉核亞.Java程序設計實用教程[M].北京:電子工業出版社,2014.
[3]Gary.Wrigh、W.Richard Stevens.TCP/IP詳解[M].北京:機械工業出版社,2013.
[4]James Payne.Python編程入門經典[M].北京:清華大學出版社,2011.
[5]William Stallings.數據與計算機通信[M].北京:電子工業出版社,2011.
[6]Richard Blum,Christine Bresnahan.樹莓派Python編程入門與實戰[M].北京:人民郵電出版社,2015.