肖忠祥++戎騰學(xué)++范鵬召
摘要:隨著物聯(lián)網(wǎng)和智慧家庭領(lǐng)域的不斷發(fā)展,使運(yùn)用Arduino開源平臺、ZigBee無線通信協(xié)議、Android智能終端及相關(guān)傳感器模塊搭建的互聯(lián)互通的智能家居系統(tǒng)成為可能。家庭網(wǎng)關(guān)作為智能家居網(wǎng)的核心,不僅要實(shí)現(xiàn)家庭設(shè)備間的通信,還需要完成各設(shè)備網(wǎng)絡(luò)的接入以及遠(yuǎn)程監(jiān)控和集中控制等功能。主要基于ZigBee和開源Arduino對智能網(wǎng)關(guān)進(jìn)行了研究設(shè)計(jì),實(shí)現(xiàn)智能家居真正意義上的"互聯(lián)互通、互懂互控”。為智能家居進(jìn)一步的開發(fā)提供了強(qiáng)有力的保障基礎(chǔ)。
關(guān)鍵詞 Arduino;ZigBee;智能網(wǎng)關(guān);智能家居
中國法分類號:TN914 文獻(xiàn)標(biāo)識: A 文章編號:1009-3044(2016)07-0252-03
Design and Implementation of Smart Open-source Gateway based on ZigBee and Arduino
XIAO Zhong-xiang 1,RONG Teng-xue 2,F(xiàn)AN Peng-zhao3
(1.College of Electronic Engineering,Xi'an Shiyou University,Xi'an 710065, China; 2.Quality Supervision and Inspection Center of Petroleum Instruments,Xi'an Shiyou University,Xi'an 710065, China; 3.College of Computer Engineering,Xi'an Shiyou University1, Xi'an 710065, China)
Abstract: With the continuous development of the field of IOT and smart home, it is possible that the use of open-source Arduino platform、ZigBee wireless communication protocol、Android smart terminal and some sensor module to build a interoperability smart home system. Home gateway as the core of smart home network, it not only to achieve communication each devices,but also need to complete each device access to the network,remote monitoring and centralized control. It mainly studied and designed the smart gateway based on ZigBee and open source Arduino,, realizing the true sense of“interoperability,mutual understand and control”in smart home. That provides a strong guarantee for the further development of smart home.
Key words: Arduino; ZigBee; smart gateway; smart home
智能家居概念的起源很早,自智能家居概念的起源非常早,自從康涅狄格州在1984年完成第一座智能大廈后,美國、新加坡、德國、日本等經(jīng)濟(jì)發(fā)達(dá)國家紛紛提出了多種智能方案。并得到廣泛應(yīng)用。早在1998年,比爾蓋茨已經(jīng)為自己建造了一個智能化住宅。初期的智能家居是有線連接的,在一定程度上限制了自身的發(fā)展,而且價格不菲,不是普通大眾的消費(fèi)品。無線解決方案帶來了家庭自動化的曙光,切斷了連線,有利于進(jìn)一步應(yīng)用的發(fā)展。當(dāng)前,市場上的智能家居根據(jù)使用的不同無線技術(shù)主要可分為四種,分別是Wi-Fi、藍(lán)牙、ZigBee和Zwave,這些關(guān)鍵技術(shù)可以對智能家居任意遠(yuǎn)程控制。
ZigBee內(nèi)置了AES128位的加密算法,從組網(wǎng)規(guī)模上看ZigBee具有很強(qiáng)的優(yōu)勢,理論上節(jié)點(diǎn)數(shù)多達(dá)65000. 2.4GHZ的頻段是最常用的,主要應(yīng)用于科學(xué)、醫(yī)療和工業(yè)上,ZigBee應(yīng)用協(xié)議也應(yīng)用在該頻段上。在智能家居中, ZigBee自身已經(jīng)具備完整路由的功能,增強(qiáng)了穿透能力。Arduino采用電子積木的方式開發(fā),為多種傳感器原型的制作提供了有利條件,使得終端設(shè)備和各種傳感器接入標(biāo)準(zhǔn)不一致的問題迎刃而解,而且Android則提供了良好的人機(jī)界面。ZigBee、Arduino及Android結(jié)合起來為智能家居應(yīng)用的開發(fā)創(chuàng)造了無限可能,對智慧家庭、物聯(lián)網(wǎng)的發(fā)展會起到很大的推動作用。該文將結(jié)合這幾種技術(shù)設(shè)計(jì)一個智能家居的智能網(wǎng)關(guān)。
1 關(guān)鍵技術(shù)
1.1 ZigBee無線傳感技術(shù)
ZigBee無線傳感技術(shù)是一種雙向通信技術(shù),主要具有距離短、功耗低、復(fù)雜度低、速率低和成本低的特點(diǎn)。在短距離、功耗低以及傳輸速率要求低的設(shè)備間應(yīng)用于傳輸數(shù)據(jù),還應(yīng)用于傳輸規(guī)范的間歇性數(shù)據(jù)和周期性數(shù)據(jù)。
ZigBee技術(shù)的安全性是有保證的,到目前為止還沒有一個被破獲的案例。對其系統(tǒng)性的設(shè)計(jì)直接影響安全性:使用AES高級加密系統(tǒng),保密程度等同于銀行卡加密技術(shù)的12倍;其次,在組網(wǎng)方面ZigBee采用蜂窩的結(jié)構(gòu),所有設(shè)備與網(wǎng)關(guān)關(guān)的通信是多方向的,有較高的網(wǎng)絡(luò)穩(wěn)定性;此外,ZigBee網(wǎng)絡(luò)理論節(jié)點(diǎn)數(shù)多達(dá)65300個,能夠覆蓋智能小區(qū)和樓宇等,足以滿足智能家居網(wǎng)絡(luò)的使用需求;最后,ZigBee的通信是雙向的,設(shè)備既可以接收到命令,而且可以反饋其執(zhí)行情況,對用戶體驗(yàn)的意義很大,尤其體現(xiàn)在安全設(shè)備上。另外,ZigBee相關(guān)設(shè)計(jì)功耗較低,能夠用電池充分供電,電池使用年限較長,可以達(dá)到節(jié)約能源和環(huán)保的目的。
1.2 Arduino開源平臺
Arduino是源自意大利的開源電子硬件項(xiàng)目的一個開源電子原型制作平臺,它包括一個具備簡單I/O功效的電路板和一個開源的軟件開發(fā)環(huán)境,既可以獨(dú)立運(yùn)行,又具備互動性。使用者能夠應(yīng)用相對簡單的程序?qū)rduino電路板進(jìn)行操控,結(jié)合各類傳感器和功能模塊,實(shí)現(xiàn)豐富的感知、識別、處理等功能。Arduino開源易用的特點(diǎn)為智能產(chǎn)品的原型設(shè)計(jì)提供了很好的平臺,隨著用戶和周邊產(chǎn)品的增多,Arduino已經(jīng)形成了一個開源的生態(tài)系統(tǒng),其豐富的軟硬件資源能夠滿足絕大多數(shù)智能產(chǎn)品原型設(shè)計(jì)的需要。
然而,Arduino并不是專門針對智能產(chǎn)品原型設(shè)計(jì)而開發(fā)的,在面對數(shù)量龐大的可用資源時,使用者很有可能感到迷惑和不知所措。因此,對智能產(chǎn)品原型設(shè)計(jì)進(jìn)行深入的研究,并有針對性地將Arduino及其生態(tài)系統(tǒng)的優(yōu)勢融入其中,對于提高智能產(chǎn)品原型在智能產(chǎn)品設(shè)計(jì)中的作用有重要的意義。
2 智能網(wǎng)關(guān)的硬件設(shè)計(jì)
2.1 智能網(wǎng)關(guān)硬件結(jié)構(gòu)
在智能家居系統(tǒng)中智能網(wǎng)關(guān)具有非常重要的作用,也是家庭外部通訊網(wǎng)絡(luò)和家庭內(nèi)部控制網(wǎng)絡(luò)之間的橋梁,起到了很好的連接作用。智能網(wǎng)關(guān)的總體硬件結(jié)構(gòu)設(shè)計(jì)如圖1所示,其包含的模塊主要有Arduino核心控制模塊、儲存系統(tǒng)人機(jī)交互模塊、網(wǎng)絡(luò)模塊、電源模塊、通信網(wǎng)絡(luò)模塊和擴(kuò)展接口等。
如硬件結(jié)構(gòu)圖所示,含W5100的Arduino模塊作為主要的核心模塊[2],以Arduino模塊為核心拓展開的其他硬件模塊通過串口、USB接口等串行總線與其通信,達(dá)到協(xié)同工作的目的。W5100是一款多功能的單片網(wǎng)絡(luò)接口芯片,嵌入式設(shè)備可以在占用較低系統(tǒng)資源的條件下快速完成網(wǎng)絡(luò)通訊。集成了TCP/IP協(xié)議棧,以太網(wǎng)的MAC和PHY的三種功能,可以滿足各種單片機(jī)在沒有操作系統(tǒng)的支持下接入網(wǎng)絡(luò),操作簡單、可靠。ZigBee模塊的主要功能是提供家居網(wǎng)關(guān)與家居內(nèi)部ZigBee網(wǎng)絡(luò)交互的通信接口,客戶可以通過家居網(wǎng)關(guān)平臺接入家居內(nèi)部的ZigBee網(wǎng)絡(luò),并對具有ZigBee節(jié)點(diǎn)的家電設(shè)備進(jìn)行監(jiān)控。外圍設(shè)備和擴(kuò)展模塊主要完成設(shè)備地址譯碼和外部通信的任務(wù),并預(yù)留接口。
2.2 ZigBee通信模塊電路設(shè)計(jì)
ZigBee通信模塊起著舉足輕重的作用,是組建家庭內(nèi)網(wǎng)的基本單元,其主要作用是把家庭內(nèi)網(wǎng)與互聯(lián)網(wǎng)連接起來,最終實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā)。CC2530的8051內(nèi)核經(jīng)過特殊設(shè)計(jì),可以與ZigBee無線電路協(xié)同工作[3],其工作頻段在2.4GHZ。核心硬件CC2530擁有極高的集成度,因此外接的必要原件比較少。一般只需一個晶振就能滿足無線收發(fā)和組網(wǎng)要求。本系統(tǒng)設(shè)計(jì)的ZigBee通信模塊硬件原理圖如圖2所示。
3 智能網(wǎng)關(guān)軟件設(shè)計(jì)
3.1智能網(wǎng)關(guān)系統(tǒng)架構(gòu)
按照該系統(tǒng)的設(shè)計(jì)需求,本網(wǎng)關(guān)既要運(yùn)行TCP/IP協(xié)議,又要運(yùn)行ZigBee協(xié)議[4]。如圖3所示為智能網(wǎng)關(guān)的軟件架構(gòu)。軟件設(shè)計(jì)采用分層化的模塊結(jié)構(gòu),每一層模塊都有其獨(dú)立的功能,通過接口函數(shù)為每一層模塊的上層提供服務(wù)[5]。在架構(gòu)圖中,最底層的是硬件驅(qū)動模塊,主要是在網(wǎng)關(guān)上ZigBee和Arduino所有硬件的驅(qū)動程序。在HAL層之上是硬件抽象層,硬件抽象層之上是Arduino核心處理系統(tǒng),在這之上的是TCP/IP協(xié)議棧和ZigBee協(xié)議棧。頂層是智能網(wǎng)關(guān)架構(gòu)要實(shí)現(xiàn)的應(yīng)用層,實(shí)現(xiàn)人機(jī)交互[6]。
3.2 軟件系統(tǒng)應(yīng)用程序設(shè)計(jì)
ZigBee協(xié)議棧是在OSAL操作系統(tǒng)上運(yùn)行的,OSAL基于任務(wù)的調(diào)度機(jī)制,通過觸發(fā)相關(guān)任務(wù)的事件觸來應(yīng)對一個事件號。如圖4所示是協(xié)議棧流程圖。當(dāng)某一個事件發(fā)生時,比如按鍵,這將會調(diào)用按鍵的響應(yīng)函數(shù),通過響應(yīng)函數(shù)生成一個任務(wù),再通過這個任務(wù)來發(fā)送osal_msg_send函數(shù),發(fā)送消息處理循環(huán),并注冊事件,等待處理[7]。在應(yīng)用層,事件被其處理函數(shù)檢測到后,將會調(diào)用相應(yīng)的處理函數(shù)。
系統(tǒng)中Arduino主板含有W5100,集成了TCP/IP開源的協(xié)議棧LwIP,安裝好驅(qū)動以后要將LwIP移植到Z-Stack上,LwIP協(xié)議棧的所有TCP/IP協(xié)議都在一個進(jìn)程當(dāng)中。如圖5所示為Arduino主板的程序流程圖。其中ZigBee終端設(shè)備(ZDO)的主要工作是接收網(wǎng)絡(luò)協(xié)調(diào)器發(fā)來的控制命令,如家電的各種開關(guān)操作等,再通過協(xié)調(diào)器查看家電設(shè)備的運(yùn)行情況。
終端設(shè)備有休眠和喚醒兩種狀態(tài),但大多數(shù)處在休眠狀態(tài),當(dāng)有新的任務(wù)執(zhí)行時,就將其喚醒,任務(wù)執(zhí)行完畢后則再次進(jìn)入休眠的狀態(tài)。如圖6所示位設(shè)備終端的主流程圖。
4 智能網(wǎng)關(guān)測試
家居智能網(wǎng)關(guān)系統(tǒng)啟動后加入內(nèi)部網(wǎng)絡(luò)的方式主要有協(xié)調(diào)器和路由器兩種,通過TCP/IP協(xié)議與網(wǎng)絡(luò)相連。用戶在終端設(shè)備上通過WWW瀏覽器就能輕松地實(shí)現(xiàn)各種家庭智能應(yīng)用,主要包括家電的管理,對其進(jìn)行智能化的監(jiān)控等[9]。
網(wǎng)關(guān)測試主要分三步進(jìn)行,首先是安裝CP2102驅(qū)動,一一對應(yīng)連接好CP2102與Arduino主板,通過USB給其供電,接下來給Arduino主板下載程序,代碼刷好以后,插上網(wǎng)線,打開串口測試聯(lián)網(wǎng)是否成功。然后將ZigBee模塊插到ZigBee開發(fā)板上,搭建IAR環(huán)境,連接下載器并安裝好驅(qū)動,編譯并下載ZigBee自組網(wǎng)代碼[8]。成功后再給ZigBee開發(fā)板的P1.0接一個LED。最后把ZigBee開發(fā)板插入Arduino板對應(yīng)的管腳,通過手機(jī)控制端來測試[9]。手機(jī)打開m.znck007.com,新建一個開關(guān),點(diǎn)擊開關(guān),LED燈閃爍,網(wǎng)關(guān)正常,接下來就可以組網(wǎng),實(shí)現(xiàn)下一步的智能控制。
5 結(jié)束語
目前,智能家居系統(tǒng)的實(shí)現(xiàn)方案和功能有很多,但它們過于復(fù)雜和封閉。本文主要基于無線傳感技術(shù)ZigBee和開源平臺Arduino對家居的智能網(wǎng)關(guān)進(jìn)行了需求分析,進(jìn)而完成軟硬件的設(shè)計(jì)和實(shí)現(xiàn)工作。在功能測試和通信距離的測試方面,將智能網(wǎng)關(guān)應(yīng)用到實(shí)際的家庭環(huán)境中,并對測試結(jié)果進(jìn)行分析,為今后更方便快捷的設(shè)計(jì)提供依據(jù)。由于設(shè)計(jì)時間段,再結(jié)合現(xiàn)有的技術(shù),目前只是設(shè)計(jì)了系統(tǒng)的雛形,接下來應(yīng)該繼續(xù)進(jìn)行相關(guān)研究,結(jié)合嵌入式相關(guān)技術(shù),實(shí)現(xiàn)網(wǎng)關(guān)的真正智能化,并增加系統(tǒng)的穩(wěn)定性。
參考文獻(xiàn):
[1] 姜宇航. 基于物聯(lián)網(wǎng)的智能家居控制系統(tǒng)設(shè)計(jì)[D].長春:吉林大學(xué),2014.
[2] ZigBee Alliance. ZigBee Specification 2006.[2010-08].http://www.zigbee.org.
[3] 楊楠. 基于Arduino的智能產(chǎn)品原型設(shè)計(jì)研究[D].無錫:江南大學(xué),2014.
[4] 邢偉偉,白瑞林,孟偉. ZigBee無線網(wǎng)關(guān)在MODBUS通信中的應(yīng)用[J]. 計(jì)算機(jī)工程與用,2011,29:81-84.
[5] QIU Ying,LI Shining,WU Wen, et al. General mote platform design for wireless sensor Network[J].CEA, 2012, 48(23): 90-94.
[6] 吳紅蓮. 基于嵌入式系統(tǒng)的智能家庭網(wǎng)關(guān)研究[D].杭州:浙江大學(xué),2006.
[7] 鄭昊. 基于Arduino/Android的藍(lán)牙通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:湖北大學(xué),2012.
[8] 金東勇. ZigBee技術(shù)在智能家居控制系統(tǒng)中的應(yīng)用研究[D].太原:太原理工大學(xué),2008.
[9] Dunkels A.Full TCP/IP for 8-bit architectures. Proceedings of the First International Conference on Mobile Systems, Applications, and Services(MOBISYSp03).San Francisco,2003:85-98.