王易川 李文鈞
摘 要:為了實現家居生活環境的智能、舒適與便利,并針對目前智能家居可擴展性差、遠程監控能力弱和大數據量高并發等問題,文中設計了一款基于ZigBee、WiFi和云服務器集群的適用于多終端遠程監控且能應對大數據量高并發量的系統。該系統由云服務層、通信網絡層、終端傳感網層構成。終端傳感網層解決了可擴展性問題;云服務層解決了遠程監控和大數據量高并發量問題,同時也可以擴展服務。實驗結果表明,該系統操作便利、可擴展性強、負載能力強、成本低,可以廣泛地推廣使用。
關鍵詞:物聯網;智能家居;ZigBee;WiFi;云服務器集群
中圖分類號:TP393 文獻標識碼:A 文章編號:2095-1302(2018)01-00-04
0 引 言
隨著科技的發展和人們生活水平的提高,居住環境備受關注,家庭生活中的舒適、安全與便利逐漸成為當下的熱點。智能家居是以物聯網技術為基礎,以住宅為應用場景,由硬件 (節點、網關)、服務器、終端軟件(Web、App、微信小程序)構成的家居閉環生態圈。目前,智能家居系統中存在的可擴展性差、遠程監控能力弱和大數據量高并發量問題,是制約智能家居發展的重要因素。本文從智能家居的實際需求出發,綜合利用ZigBee、WiFi和云服務器集群技術設計了一種三層架構的智能家居系統,很好地解決了上述問題,具有很高的應用價值。
1 系統總體設計方案
本設計研究的基于ZigBee、WiFi和云服務器集群的物聯網智能家居系統由云服務層、通信網絡層、終端傳感網層構成。整體框架如圖1所示。通過在住宅中布設多種傳感器設備,可實時采集住宅環境參數,并將所采集到的信息通過通信網絡上傳到云服務器集群平臺,經分析和處理后,可在監控終端實時監控家居環境,并可對電視機、空調、電動窗簾、電燈、門禁系統、云攝像頭等進行遠程操控。
(1)云服務層:以云服務器集群作為智能家居系統運行和管理的平臺,主要包括網關端服務集群、業務處理模塊集群、客戶端服務集群、負載均衡、后臺管理中心、監控中心和數據中心。
(2)通信網絡層:系統可通過 WiFi 將網關數據(來自終端傳感網層的節點數據)上傳到云服務層,同時將來自云平臺的控制指令下發至終端傳感網層中的傳感節點、控制器等設備。
(3)終端傳感網層:主要包含信息采集設備和可控設備,通過傳感器節點、RFID、讀寫器等信息采集設備采集信息,并通過通信網絡層上傳給網關;通過家居控制器、全視角紅外遙控器等設備接收上層下發的控制命令,實現對家電、門窗等設備的控制。
2 系統主要通信協議
無線傳感器網絡可以采用的幾種無線通信技術的比較[1]見表1所列。
本系統選擇ZigBee無線通信技術作為無線傳感器網絡通信技術,且采用其星型拓撲結構;選擇WiFi技術作為網關與路由之間的無線通信技術。
ZigBee是一種短距離、低功耗、低成本、低復雜度的雙向無線通信技術,可以在很多微小的傳感器之間相互協調實現通信,能夠為用戶提供機動、靈活的組網方式,非常適合于智能家居網絡。
ZigBee協議分為兩部分,如圖2所示,由IEEE 802.15.4和ZigBee聯盟分別定義,應用框架層則由用戶根據需求自定義。
ZigBee協議棧將各層定義的協議集合在一起,以函數的形式實現,并給用戶提供可以直接調用的API。Z-Stack是協議棧中的一種, 其工作流程如圖3所示。
3 系統具體設計
3.1 節點設計
一個節點就是一個模塊,節點硬件平臺都是相似的,只是搭載的傳感器或控制器不同。這些節點是整個系統的基本組成單元,主要包括溫度節點、濕度節點、煙霧節點、光敏節點、空氣質量節點、一氧化碳探測節點、可燃性氣體節點、人體熱釋電節點、全視角紅外節點、窗簾節點、燈光節點、門禁節點、插座節點、攝像頭節點。
節點主芯片采用ZigBee新一代SOC芯片CC2530,CC2530是真正的片上系統解決方案[2],同時還可以配備協議棧來簡化開發。本系統中采用Z-Stack協議棧進行開發,在使用IAR + Z-Stack協議棧開發節點軟件時,由于各個傳感器節點采集和監測的變量不同但功能相似[3],因此經過簡單修改即可應用到其他模塊,極大地提高了系統的通用性和可擴展性[4]。節點的程序流程如圖4所示。
節點在完成硬件初始化工作后,微處理器將讀取功能單元的信息,并識別功能單元的作用。之后,節點需要向網關注冊,只有注冊成功,節點才能夠接入家居網絡進行工作。如果接入的模塊是傳感器,終端設備將會以一定的周期獲取傳感信息,并將數據上傳到網關。如果接入模塊為控制單元,那么終端設備將會等待網關的控制命令,在收到控制命令后作出相應的操作。
3.2 可控電器設備
可控電氣設備采用生活中的電氣設備,如節能燈、智能插座、電動窗簾、門禁、電視、空調等。設備主要分為兩種:一種是開關量設備,如節能燈、智能插座等;一種是非開關量設備,如電視機、空調等。對于開關量設備的控制,主要通過繼電器實現[5];對于非開關量設備的控制,則通過紅外自主學習功能實現。
3.3 網關設計
網關是通信網絡層與終端傳感網層之間的橋梁,它接收底層終端傳感網層采集到的現實物理世界的數據信息,并將這些數據上傳至上層的云服務層,云服務層對這些數據信息進行監控、分析、存儲和處理等操作后產生相應的操作命令,再通過網關傳送給底層的終端傳感網層,從而實現對底層終端設備的控制和操作[6]。
系統中的網關實現了WiFi和ZigBee兩種通信協議之間的轉換,使得入網設備可以和WiFi或ZigBee各自網絡內的節點設備通信[7]。采用飛思卡爾i.MX53作為核心控制芯片,運行Linux操作系統,此芯片基于ARM Cortex?-A8 內核,主頻為 1 GHz,性能強、功耗低。WiFi模塊采用WM-G-MR-09芯片,該款芯片支持802.11b/g無線網絡模式,其規格為8.2 mm×8.4 mm×1.35 mm,休眠時功耗為0.6 mA,處于接收數據模式時功耗為170 mA,當其處于發送數據模式時功耗為265 mA,完全符合系統要求[8]。ZigBee協調器模塊采用CC2530芯片。
網關結構如圖5所示。
對于網關的軟件設計采用內核版本為2.6.35的Linux操作系統,Linux是開源操作系統,內核可以被裁剪,支持大量硬件接口,適用于對成本、功耗、可靠性等有要求的嵌入式系統。網關系統初始化后,連接路由器與云服務器,連接成功后進入監聽狀態,此時可以接收來自WiFi和ZigBee的數據。在接收了WiFi數據后進行判斷,如果是控制數據則會轉發至ZigBee協調器;否則就是終端上傳的數據,將其轉發至云服務器。ZigBee協調器一直輪詢是否發生事件,根據事件作出相應的動作。
網關工作流程如圖6所示。
3.4 云服務器集群設計
之前智能家居系統通常以智能網關為中心,以一個家庭為單點,采用局域網的形式進行數據交互,無法實現遠程控制;如今智能家居系統已采用局域網與互聯網相結合的方式,以服務器為中心,進行數據的接收與處理,從而實現遠程控制。但家居系統的增多,帶來了大數據量和高并發量的問題,所以服務器的設計,直接關系著系統的遠程監控能力和應對大數據量及高并發量的能力,而這也是研發的難點。
利用云計算技術緩解資源壓力已成為一種發展趨勢,同時也可以降低成本。云計算按服務類型可分為IaaS(基礎設施即服務)、PaaS(平臺即服務)、SaaS(軟件即服務)[9];按是否公開發布服務,可分為公有云、私有云、混合云。本系統采用的云服務平臺是阿里云的ESC服務器,屬于IaaS,通過多臺ESC服務器自行組建私有集群,充分利用了云計算的優勢。這樣不僅能夠降低前期開發成本,還能節省后期維護成本。
在設計云服務平臺時要考慮以下需求:在面對大數據量和高并發量時依然能夠保證服務質量,及時處理各類意外情況;能夠響應客戶端的各種請求;網關與云服務器保持長時間連接;具有低時延的數據轉發通信鏈路。由于單節點服務器存在性能瓶頸和易崩潰的缺陷,通常單節點的云服務平臺無法滿足要求,而集群模式具有高性能、高可用、伸縮性、擴展性、一致性、安全等優點,因此本系統采用集群模式設計云服務器。首先將云服務平臺按功能進行模塊拆分,保證單個模塊的完整性和獨立性以及模塊間的低耦合度;然后將單個功能模塊部署成集群,即多臺服務器部署相同應用構成一個集群,通過負載均衡設備共同對外提供服務。另外,由于Java是一種跨平臺、適合分布式計算環境的面向對象的編程語言,而且有很多開源成熟的框架和中間件,可以降低開發周期和成本,因此云平臺的開發語言主要使用Java。
云服務器平臺總體設計架構如圖7所示。
主要模塊有網關端服務集群、業務處理模塊集群、客戶端服務集群、負載均衡、后臺管理中心、監控中心、數據中心。集群內部及三大模塊集群之間通過局域網通信,速度快、效率高,各模塊互不干擾、各司其職,耦合度較低。
網關端服務器集群是系統中的集成接入模塊,通過統一接口屏蔽了底層硬件的復雜性,主要負責與網關通信,與業務處理模塊集群進行信息交互,提供實時穩定的服務。服務分為兩種:一種是數據采集,包含主動定時采集和被動接收實時上傳的數據;另一種是數據傳送,包含接收業務處理模塊傳送來的指令并下發以及傳送網關數據至業務處理模塊。
業務處理模塊集群是云服務平臺的核心模塊,負責處理系統的核心業務,控制所有業務功能的流轉。
客戶端服務集群為監控終端提供穩定、可靠、實時的服務,監控終端為電腦、手機、平板等支持HTTP協議的設備。
負載均衡設備根據負載調度算法,將請求調度到合適的服務器節點,保證各節點共同提供穩定可靠的服務。使用Nginx服務器可實現負載均衡,也可在客戶端服務集群前實現反向代理。每處都需要部署兩臺Nginx服務器,這是主備雙機的冗余機制,可防止宕機。
后臺管理中心提供客戶信息管理、網關信息管理、節點信息管理等服務。采用由Strut2、Spring和Hibernate搭建而成的成熟SSH框架,這是一個B/S架構使用HTTP協議的Java Web網站[10]。
監控中心負責監視、收集服務器節點的運行狀況、故障報警、負載狀況、健康狀況等信息,可保證系統各個模塊及集群穩定運行。
數據中心為系統提供數據存儲服務,主要包括傳感網節點設備信息數據、集群中節點狀態數據、監控終端的數據等。
如果后期用戶量和數據量持續增大,可進行系統升級。對于客戶端服務集群,可將其再細分,并將細分出來的功能獨立的模塊再進行集群化部署,使用反向代理和負載均衡服務器對外提供服務。例如可分離出SSO(單點登錄系統)、查詢搜索系統等,然后再將分離出的系統部署成集群模式,以應對更高的并發和海量數據。業務處理模塊和網關服務模塊也可作類似的分離升級。
4 結 語
本文提出了一套從底層硬件到上層云平臺的三層架構系統設計方案[11],采用ZigBee和WiFi無線網絡技術,并結合云服務器集群技術達到對家居系統的智能化控制。終端節點采用功耗低、成本低、通用性強的模塊設計,符合家居傳感器的設計要求。上層軟件采用云服務器集群架構,運用模塊化、集群化的設計,使系統具有較強的性能和可擴展性,有效地解決了智能家居中大數據量高并發量的問題以及遠程監控能力弱的問題。該方案實現了一種分層架構、可應對大數據量與高并發量、可多終端遠程監控、可擴展的智能家居系統,具有較好的應用前景。
參考文獻
[1] 張文川.無線傳感網絡技術在地下工程檢測中的應用研究[D].南京:東南大學,2015.
[2] 馬麗萍,張衛國.基于ZigBee的電能質量監測系統的研究與設計[J].電源技術,2012,36(8):1192-1195.
[3] 高翔,鄧永莉,呂愿愿,等.基于Z-Stack協議棧的ZigBee網絡節能算法的研究[J].傳感技術學報, 2014,27(11):1534-1538.
[4] 薛震南. 基于物聯網的智能家居研究[D]. 南京:南京大學,2013.
[5] 戴建,史志才,吳飛,等.基于三層架構的智能家居系統研究與實現[J].電子測量技術,2016,39(1):114-118.
[6] 何海燕.基于樹莓派的智能家居系統設計與實現[J].中國高新技術企業,2016(17):11-12.
[7] 王旭輝.一種用于環境遠程監測的ZigBee-WiFi網關研制[J].城市建設理論研究,2014(19):554-555.
[8] 王俊青. 基于WIFI的無線圖像采集系統設計[D]. 合肥:安徽大學,2016.
[9] 余曉杉.云計算數據中心光互連網絡的研究[D]. 西安:西安電子科技大學,2013.
[10] 李健,田立峰,郭瑞.Java SSH框架在Java Web中的應用[J].電腦與電信,2016(3):69-72.
[11] 李文斌,李文鈞.基于B/S架構的戶外監護系統設計與實現[J].物聯網技術,2014,4(1):60-62.