鄭希1,2,王一甲3,周金治1,2
(1.西南科技大學 信息工程學院,四川 綿陽 621010; 2.特殊環境機器人四川省重點實驗室,四川 綿陽 621010;3.西華大學 建筑與土木工程學院,四川 成都 610039)
摘要:傳統智能家居系統多以ZigBee無線技術組網,家庭網關做為控制中心接入家庭網絡,以網頁來控制網關,通過網關轉發命令給設備進行控制,所有家電設備無法獨立工作。針對此不足,提出一種連接簡單、易擴展、適用于家庭應用的家居系統。該系統以手機為控制終端,以WiFi為通信手段,去除家庭網關,直接對家中設備進行遠程控制。實驗測試表明,該系統使用靈活方便,穩定性強,易于擴展升級,用戶體驗較好。
0引言
*基金項目:特殊環境機器人技術四川省重點實驗室開放基金(13ZXTK07);西南科技大學研究生創新基金(15ycx120)隨著整個社會信息化的加速及物聯網技術的發展,智能家居迎來了爆發式的增長,越來越多的智能電器走入人們的生活,讓人們體驗到一種更加便利、安全、高效的家居生活。
傳統的智能家居系統通常由三部分組成:家庭局域網、家庭網關、外網。家庭局域網由ZigBee或者其他射頻網絡連接各家用設備、智能開關、傳感器等,為網關提供控制信號和網絡信息。家庭網關是系統的核心,實現全局控制和與外網的通信。用戶通過網頁或者客戶端來與網關進行通信并實現對家庭設備的控制。這種智能家居系統經過多年發展,依然沒有在市場上有很好的應用,可能的原因有以下幾個方面:
(1)ZigBee技術沒有統一的標準,開發難度較大,同時其與手機電腦等智能設備不兼容。
(2)必須借助家庭網關工作,使用范圍受限。
(3)設備入網安裝復雜,需要專業工程人員。
(4)通常采用網頁或者電腦客戶端進行控制,無法隨時隨地使用,用戶體驗較差。
WiFi技術因其功率較高、網絡容量較少而在智能家居領域一直沒有廣泛的使用。但隨著技術的發展,眾多廠家推出了低功耗的WiFi芯片。同時,IEEE即將發布針對物聯網應用的802.11ah標準,工作頻率使用1 GHz以下的免許可頻段[1]。具有覆蓋面更大,支持更多用戶、更低功耗的特點,使WiFi在智能家居中有更廣泛的應用。
如今智能手機的普及率越來越高,功能的日益強大,同時伴隨手機4G網絡的發展,手機逐漸成為人們隨身的信息中心。因此,手機作為智能家居控制中心將成為智能家居發展的趨勢。本文提出一種以iPhone手機為控制中心,以WiFi為家庭組網的智能家居系統。
1系統的總體設計
基于WiFi的智能家居系統主要包括家電設備控制端和iOS客戶端。用戶通過iOS客戶端交互,實現家電設備入網與控制操作。家電設備直接由無線路由器接入到家庭網絡,通過接收來自手機客戶端的網絡請求,解析出控制命令,完成相應的控制操作。系統的總體結構示意圖如圖1所示。
2智能家電控制端設計
圖3控制端工作流程本系統的智能家電由控制端接收手機端的指令來控制家電功能,總體結構框架如圖2所示。控制端核心采用美國德州儀器(TI)公司基于ARM CortexM4內核的CC3200微控制器[2]。CC3200工作在80 MHz主頻下,具有快速并行攝像頭接口、I2S、SD/MMC、UART、SPI、I2C、ADC等外設。芯片內部包含專用的WiFi模塊,可以減輕MCU的負擔,支持802.11.b/g/n射頻和嵌入式TCP/IP、TLS/SS堆棧以及多個互聯網協議,支持高級低功耗模式,滿足省電需求。外部串行閃存保存程序及外設驅動程序,系統啟動時內部Flash中的引導加載程序(bootloader)將外部Flash中的程序載入到芯片內部的SRAM中運行。傳感器模塊將外部環境參數傳入控制端,供MCU處理。控制端收到手機指令后,通過I/O口與家電產品連接并進行相應控制,完成各種不同的功能。
控制端軟件工作流程如圖3所示。系統上電啟動后,抓取UDP包配置入網,若配置不成功則進入休眠模式等待復位重新啟動系統。配置成功后,開啟HTTP服務,監聽HTTP請求并執行相應的操作。
3iOS客戶端軟件設計
iOS客戶端程序主要分為三大模塊:人機交互模塊、網絡通信模塊、數據處理模塊。人機交互模塊的工作是將人的行為轉換成數據交給其他模塊,并在UI界面上做出相應反應來體現人的這個行為;網絡通信模塊與智能家電、云服務器建立相應的連接,并通過連接進行數據交換;數據處理模塊對人機交互模塊和網絡通信模塊傳入的數據進行解析和處理。
手機客戶端工作流程如圖4。
4網絡通信
系統中的網絡通信主要包括兩個部分,一部分是配置控制端接入網絡,另一部分是手機與控制端的網絡通信。
4.1配置控制端入網
家電設備要與手機通信,首先要接入家庭中的WiFi網絡。傳統的WiFi設備接入網絡的過程分為三步:(1)WiFi設備工作在熱點模式,手機WiFi連接此熱點;(2)手機將家中路由器的SSID和密碼發送給熱點;(3)WiFi設備切換工作模式到終端模式,利用接收到的信息連接到家庭中的路由器。這種方法操作復雜,手機需要切換不同的WiFi熱點,用戶體驗較差。
對此,本文采用一種基于CC3200一鍵入網的方法,手機接入到家中的WiFi網絡,家電設備上電后,手機打開客戶端,在配置頁面可以自動獲取路由器的SSID,用戶只需輸入WiFi密碼和自定義設備名,然后點擊配置按鈕,就可以自動完成設備的入網,同時獲取到家電設備的IP地址。其工作過程分為以下四步:
(1)控制端上電后,掃描所有WiFi熱點的channel,然后配置芯片工作在掃描到的某個channel上接收UDP包,如果沒有接收到UDP包則繼續配置芯片工作在掃描到的另一個channel上。如此循環直到收到UDP包為止。
(2)手機端將無線SSID和密碼進行編碼,打包到UDP包頭的長度字節中,然后重復廣播UDP包,持續1 min。同時,啟用基于mDNS協議的Bonjour服務向本地網絡廣播消息,提問由誰提供“local._http,_tcp”服務,并等待回復。
(3)由于UDP包的幀格式中,數據包的長度是明文可見的,控制端收到UDP包,根據設定好的編碼,解析出相應的信息,接入到家中的WiFi網絡。
(4)控制端接入網絡后,收到UDP廣播消息,回復自己的設備名和IP地址。手機接收回復的消息并處理,完成入網配置。
4.2UDP廣播包編碼
UDP協議是一種無連接、不可靠的傳輸層協議,其數據報文格式包括UDP頭部和數據[3]。UDP數據報文頭部沒有加密可以被截取下來,由源端口、目的端口、包長度和檢驗和共4個字段組成,每個字段2個字節。
將SSID和密碼轉換成一系列的分隔符、tag、高位、低位等值,然后做為數據包的長度發送出去。以SSID的值為“MYAP”為例,展示如何將SSID分割成高低位。如表1所示。
然后通過高位和低位生成兩個帶有序列號的值2i和2i+1。生成規則如表2所示。通過這種規則,由2個字符的SSID“MYAP”將可得到8個值,如表3。
密碼按照同樣的規則進行編碼,將編碼后的數據按照以下格式作為UDP數據包的長度循環發送出去:分隔符-SSIDTag-分隔符-SSID length+28-分隔符-Seq0-分隔符-Seq1-分隔符-密碼Tag-密碼length+28-…。具體數據:3 1099 3 32 3 597 3 686 3 840 3 666 3 805 3 610 3 710 3 593 3 1199 3 …。
控制端抓取到UDP包,讀取包長度,根據規則進行判別,識別完后按收到的SSID和密碼信息登錄家庭WiFi網絡。
5結束語
本系統在完成設計后,經測試可以通過家庭網絡實現對家居設備的無線控制,配置設備入網方便,HTTP請求穩定可靠。通過本系統可對家居設備進行集中管理,了解當前家居設備的最新運行狀態。
本控制系統通過智能手機直接控制家居設備,省去家庭網關的中間管理,采用WiFi傳輸技術使設備兼容性更好。由于手機軟件的通用性和家居設備的獨立性,同時硬件簡單易用,便于移植和擴展,使本系統具有較高的市場應用價值。
參考文獻
[1] AUST S, PRASAD R V, NIEMEGEERS I G. IEEE 802.11 ah: advantages in standards and further challenges for sub 1 GHz WiFi[C]. Communications (ICC), 2012 IEEE International Conference on, 2012: 68856889.
[2] Texas Instruments Inc. CC3200 simplelink WiFi and IoT solution, a single chip wireless MCU[EB/OL].(20140601)[20151201]. http://www.ti.com.cn/cn/lit/ds/symlink/cc3200.pdf.
[3] TANENBAUM A S.計算網絡(第四版)[M].潘愛民,譯.北京:清華大學出版社,2004.