張松峰 陳帆
摘 要:針對(duì)現(xiàn)有智能燈光系統(tǒng)協(xié)議不統(tǒng)一,不具備互操作性的問(wèn)題,基于ZigBee 協(xié)議ZLL規(guī)范設(shè)計(jì)了具備遠(yuǎn)程訪問(wèn)與控制功能的智能燈光系統(tǒng)。文中基于TI CC2530及Z-Stack協(xié)議棧開發(fā)了ZigBee網(wǎng)絡(luò),論述了Z-Stack協(xié)議棧中的ZCL庫(kù)及ZLL規(guī)范,并給出了基于云平臺(tái)的智能燈光系統(tǒng)架構(gòu),同時(shí)基于S5PV210及嵌入式Linux系統(tǒng)設(shè)計(jì)了網(wǎng)關(guān)系統(tǒng),該系統(tǒng)能夠接入云平臺(tái)并與ZigBee協(xié)調(diào)器通信。實(shí)際測(cè)試表明,系統(tǒng)能夠通過(guò)云平臺(tái)實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)并通過(guò)Z-Stack ZCL API實(shí)現(xiàn)控制器對(duì)燈的操控,并能夠滿足ZLL規(guī)范。
關(guān)鍵詞:ZigBee; ZLL;智能燈光;遠(yuǎn)程控制
中圖分類號(hào):TN915 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2016)05-00-03
0 引 言
人們的生活及工業(yè)生產(chǎn)中存在著大量的照明系統(tǒng),特別是大型樓宇內(nèi)會(huì)存在大量的燈光系統(tǒng),對(duì)這些燈光系統(tǒng)進(jìn)行智能化控制能夠?qū)崿F(xiàn)節(jié)能及靈活的控制策略。由ZigBee聯(lián)盟制定的ZigBee通信協(xié)議具有短距離、低復(fù)雜度、自組網(wǎng)、低功耗等特點(diǎn),主要針對(duì)物聯(lián)網(wǎng)應(yīng)用。聯(lián)盟同時(shí)制定了ZCL(ZigBee Cluster Library,ZCL),基于ZCL可實(shí)現(xiàn)通信、控制的標(biāo)準(zhǔn)化,以便不同廠家的設(shè)備可以互聯(lián)互通。近幾年來(lái),國(guó)內(nèi)外大量學(xué)者基于ZigBee技術(shù)開發(fā)設(shè)計(jì)了智能家居[1-5,7]、智能燈光及特定領(lǐng)域物聯(lián)網(wǎng)應(yīng)用系統(tǒng),文獻(xiàn)[5]基于Cortex-A8處理器將ZigBee網(wǎng)絡(luò)與以太網(wǎng)連通,使設(shè)計(jì)的智能家居系統(tǒng)具備遠(yuǎn)程控制功能。但這些系統(tǒng)基本都采用自定義應(yīng)用層通信協(xié)議,不具備互聯(lián)互通的特性。只有實(shí)現(xiàn)通信參數(shù)具體化及不同廠家設(shè)備的互操作,才符合ZigBee協(xié)議設(shè)計(jì)的初衷。文獻(xiàn)[6]論述了開發(fā)符合標(biāo)準(zhǔn)協(xié)議規(guī)范的產(chǎn)品的必要性,并研究了基于TI Z-Stack協(xié)議棧開發(fā)符合ZigBee協(xié)議HA(Home Automation,HA)標(biāo)準(zhǔn)的智能家居系統(tǒng)的方法,但并沒(méi)有給出實(shí)際的系統(tǒng)設(shè)計(jì)。本文基于TI公司Z-Stack協(xié)議棧論述并設(shè)計(jì)了符合ZigBee協(xié)議ZLL(ZigBee Light Link,ZLL)規(guī)范的智能燈光系統(tǒng),能夠?qū)崿F(xiàn)對(duì)燈光系統(tǒng)的智能及遠(yuǎn)程控制。
1 ZCL庫(kù)及ZLL規(guī)范
ZigBee協(xié)議是基于分層的架構(gòu),其物理層及MAC層采用IEEE802.15.4標(biāo)準(zhǔn),上層的網(wǎng)絡(luò)層、應(yīng)用層等由ZigBee聯(lián)盟定義。協(xié)議中引入了規(guī)范(Profile)和簇(Cluster)的概念,規(guī)范針對(duì)不同的應(yīng)用領(lǐng)域,如用于智能家居的HA規(guī)范,用于智能照明的ZLL規(guī)范等。
1.1 ZCL庫(kù)
在一個(gè)規(guī)范下有不同的簇,每一個(gè)簇對(duì)應(yīng)一個(gè)應(yīng)用,如一個(gè)調(diào)光器所具備的命令:開燈、關(guān)燈、變亮等組成一個(gè)簇,簇是命令與屬性的集合。當(dāng)設(shè)備收到一個(gè)空中消息時(shí)根據(jù)簇ID及命令I(lǐng)D做出相應(yīng)的處理,基于ZCL庫(kù)協(xié)議開發(fā)的設(shè)備能夠?qū)崿F(xiàn)互聯(lián)互操作。
每個(gè)節(jié)點(diǎn)的簇分為輸入簇和輸出簇,輸入簇列表指明了該端點(diǎn)能夠接受的簇,輸出簇列表指明了該端點(diǎn)能夠發(fā)出的簇。只有當(dāng)一個(gè)端點(diǎn)的輸出簇與另一個(gè)端點(diǎn)的輸入簇相匹配時(shí)才可以實(shí)現(xiàn)設(shè)備的操作。
Z-Stack中的ZCL[8]庫(kù)API基于Client/Server模型,Server端存儲(chǔ)屬性,Client端發(fā)出操作屬性的命令。整個(gè)ZCL庫(kù)分為基礎(chǔ)層和功能域兩部分,基礎(chǔ)層是相應(yīng)命令的底層實(shí)現(xiàn),功能域?qū)崿F(xiàn)不同應(yīng)用領(lǐng)域的特有功能,功能域的命令通過(guò)對(duì)基礎(chǔ)層函數(shù)的調(diào)用來(lái)實(shí)現(xiàn)。
1.2 ZLL規(guī)范
ZLL[9]規(guī)范是燈光系統(tǒng)規(guī)范,構(gòu)建在ZigBee-pro棧結(jié)構(gòu)上。該規(guī)范定義了燈光系統(tǒng)中控制器節(jié)點(diǎn)、燈節(jié)點(diǎn)要實(shí)現(xiàn)的不同簇及命令,ZLL規(guī)范指明了不同燈節(jié)點(diǎn),如on/off型、調(diào)光型、調(diào)色溫型等相關(guān)的簇命令,實(shí)現(xiàn)這些命令能夠保證不同廠家的設(shè)備可以進(jìn)行互操作。
在ZLL規(guī)范的功能描述部分詳細(xì)定義了Light Link設(shè)備組網(wǎng)及通信的具體參數(shù)。如規(guī)范定義:ZLL設(shè)備使用ZigBee-Pro協(xié)議棧,設(shè)備版本號(hào)為0x02,profile ID為0xc05e。
2 智能燈光系統(tǒng)架構(gòu)
ZigBee網(wǎng)絡(luò)主要由終端節(jié)點(diǎn)、路由器、協(xié)調(diào)器三種角色的設(shè)備組成,協(xié)調(diào)器負(fù)責(zé)網(wǎng)絡(luò)的形成及入網(wǎng)管理,路由器實(shí)現(xiàn)網(wǎng)絡(luò)范圍的擴(kuò)充及數(shù)據(jù)中轉(zhuǎn),終端節(jié)點(diǎn)負(fù)責(zé)具體應(yīng)用設(shè)備的控制及數(shù)據(jù)采集。系統(tǒng)主要由云平臺(tái)、網(wǎng)關(guān)、ZigBee網(wǎng)絡(luò)三部分構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖1所示。云平臺(tái)實(shí)現(xiàn)手機(jī)及PC端的控制接入,能夠遠(yuǎn)程控制并查看ZigBee設(shè)備;網(wǎng)關(guān)實(shí)現(xiàn)ZigBee協(xié)議與以太網(wǎng)協(xié)議的數(shù)據(jù)交換,是云平臺(tái)與ZigBee網(wǎng)絡(luò)的橋梁。
2.1 云平臺(tái)系統(tǒng)設(shè)計(jì)
云平臺(tái)實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)ZigBee網(wǎng)絡(luò)設(shè)備,能夠?qū)υO(shè)備進(jìn)行實(shí)時(shí)查看、控制等操作,不同系統(tǒng)的物聯(lián)網(wǎng)云平臺(tái)功能具有一定的共性,且構(gòu)建云平臺(tái)成本較高,因而一些公司搭建了公用的云平臺(tái)系統(tǒng),本系統(tǒng)正是采用由中移物聯(lián)網(wǎng)開發(fā)的onenet云平臺(tái)[10]系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)控制。基于onenet平臺(tái)提供的API實(shí)現(xiàn)向云端提交數(shù)據(jù)及獲取數(shù)據(jù)的功能。onenet平臺(tái)與網(wǎng)關(guān)之間基于HTTP協(xié)議通信,采用JSON格式進(jìn)行數(shù)據(jù)交換。
根據(jù)onenet平臺(tái)API接口文檔定義,向平臺(tái)提交數(shù)據(jù)點(diǎn)的HTTP消息的請(qǐng)求行為及請(qǐng)求報(bào)頭在本系統(tǒng)中為:
GET /devices/733***/datapoints HTTP/1.1
api-key: z*********=sFwTcLDTkMQ=
Host: api.heclouds.com/r/n/r/n
請(qǐng)求HTTP消息可以不包含消息正文,不包含正文時(shí),系統(tǒng)將返回所請(qǐng)求設(shè)備下所有數(shù)據(jù)流的最新數(shù)據(jù)。
收到HTTP消息后,onenet平臺(tái)會(huì)返回響應(yīng)消息,響應(yīng)的狀態(tài)行為:
HTTP/1.1 200 OK
指明HTTP消息正確接收。在消息正文部分以JSON格式包含了請(qǐng)求設(shè)備下所包含的數(shù)據(jù)流最新數(shù)據(jù)值及時(shí)間信息。本系統(tǒng)獲取數(shù)據(jù)點(diǎn)的一次返回消息的正文部分如下所示:
{“errno”:0,“data”:{“count”:1,“datastreams”:[{“datapoints”:[{“at”:“2016-01-19 16:35:40.000”,“value”:0}],“id”:“key0”}]},“error”:“succ”}
鍵datastreams的鍵值是包含數(shù)據(jù)點(diǎn)的數(shù)組,鍵datapoints的鍵值指明了id為key0的數(shù)據(jù)流的值value為0。
2.2 網(wǎng)關(guān)系統(tǒng)設(shè)計(jì)
網(wǎng)關(guān)系統(tǒng)負(fù)責(zé)ZigBee協(xié)議與以太網(wǎng)協(xié)議轉(zhuǎn)換,是ZigBee網(wǎng)絡(luò)與云平臺(tái)的橋梁。本系統(tǒng)網(wǎng)關(guān)基于Cortex-A8內(nèi)核的S5PV210處理器設(shè)計(jì),采用友善之臂的Smart210開發(fā)平臺(tái),并通過(guò)UART口與ZigBee協(xié)調(diào)器通信,由于通信距離短,所以采用4線制TTL電平信號(hào),接口連線如圖2所示。
網(wǎng)關(guān)系統(tǒng)軟件基于嵌入式Linux操作系統(tǒng),通過(guò)定時(shí)信號(hào)使用戶程序周期性地向云平臺(tái)服務(wù)器提交或查詢數(shù)據(jù),并通知ZigBee協(xié)調(diào)器。
2.3 ZigBee網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)
ZigBee網(wǎng)絡(luò)由協(xié)調(diào)器、路由器、終端節(jié)點(diǎn)組成,基于TI公司的CC2530芯片開發(fā),CC2530片上具備2.4 G無(wú)線收發(fā)器,硬件AES加解密,支持IEEE802.15.4標(biāo)準(zhǔn),能夠單芯片配合TI提供的Z-Stack協(xié)議棧實(shí)現(xiàn)ZigBee網(wǎng)絡(luò)的組建及通信。
圖2 網(wǎng)關(guān)與ZigBee協(xié)調(diào)器通信接口
ZigBee節(jié)點(diǎn)組成結(jié)構(gòu)如圖3所示,節(jié)點(diǎn)系統(tǒng)以CC2530為核心,配合電源模塊、按鍵模塊、燈光控制模塊組成,并引出UART接口,以便與網(wǎng)關(guān)通信。
圖3 ZigBee節(jié)點(diǎn)組成圖
軟件部分配合Z-Stack協(xié)議棧開發(fā)。協(xié)調(diào)器與網(wǎng)關(guān)通信采用Client/Server模型,網(wǎng)關(guān)作為Client端,協(xié)調(diào)器作為Server端,網(wǎng)關(guān)周期性地主動(dòng)與協(xié)調(diào)器通信,獲取數(shù)據(jù)或提交數(shù)據(jù)。協(xié)調(diào)器軟件流程圖如圖4所示。
圖4 協(xié)調(diào)器軟件流程圖
3 智能燈光系統(tǒng)簇結(jié)構(gòu)設(shè)計(jì)
本系統(tǒng)中實(shí)現(xiàn)了開關(guān)節(jié)點(diǎn)對(duì)燈節(jié)點(diǎn)的控制及復(fù)位操作,燈節(jié)點(diǎn)作為輸入節(jié)點(diǎn),開關(guān)節(jié)點(diǎn)作為輸出節(jié)點(diǎn)。兩種節(jié)點(diǎn)可以實(shí)現(xiàn)以下兩個(gè)簇:
ZCL_CLUSTER_ID_GEN_BASIC,
ZCL_CLUSTER_ID_GEN_ON_OFF
本系統(tǒng)軟件部分基于TI公司的Z-Stack協(xié)議棧設(shè)計(jì),Z-Stack提供了ZCL簇API接口,基于函數(shù)回調(diào)的方式實(shí)現(xiàn)命令處理,其開發(fā)流程主要包括以下步驟:
(1)ZCL初始化;
(2)ZCL命令回調(diào)函數(shù)注冊(cè);
(3)ZCL屬性注冊(cè)。
ZCL初始化負(fù)責(zé)注冊(cè)相應(yīng)端點(diǎn)(endpoint)到AF層。通過(guò)調(diào)用函數(shù):
void zclHA_Init(SimpleDescriptionFormat_t *simpleDesc)實(shí)現(xiàn)對(duì)端點(diǎn)的注冊(cè)。
其回調(diào)函數(shù)的數(shù)據(jù)結(jié)構(gòu)是一個(gè)包含多個(gè)函數(shù)指針的結(jié)構(gòu)體,每一個(gè)函數(shù)指針對(duì)應(yīng)不同命令的處理,當(dāng)收到相應(yīng)命令時(shí)便會(huì)調(diào)用該命令對(duì)相應(yīng)的函數(shù)做處理。回調(diào)函數(shù)注冊(cè)API為:
ZStatus_t zclGeneral_RegisterCmdCallbacks (uint8 endpoint, zclGeneral_AppCallbacks_t *callbacks)
通過(guò)調(diào)用該函數(shù)實(shí)現(xiàn)端點(diǎn)與對(duì)應(yīng)回調(diào)函數(shù)的綁定及注冊(cè),當(dāng)收到相應(yīng)命令時(shí)系統(tǒng)會(huì)調(diào)用該命令對(duì)應(yīng)的回調(diào)函數(shù)。
屬性注冊(cè)通知系統(tǒng)該節(jié)點(diǎn)不同命令所具備的相關(guān)屬性值,屬性存儲(chǔ)在一個(gè)數(shù)組中,該數(shù)組的每一個(gè)元素對(duì)應(yīng)一個(gè)屬性,本系統(tǒng)中的一個(gè)屬性記錄結(jié)構(gòu)如下:
{
ZCL_CLUSTER_ID_GEN_ON_OFF, // cluster ID
{ // Attribute record
ATTRID_ON_OFF, //Attribute ID
ZCL_DATATYPE_UINT8, // Data Type
ACCESS_CONTROL_READ, // Read/write
(void *)&zclHomeAppSw_OnOff // Pointer to data field
}
}
每一個(gè)簇可以有多個(gè)屬性值,每一條屬性都有所屬的簇,屬性包含屬性ID、數(shù)據(jù)類型、讀寫權(quán)限及數(shù)據(jù)域等參數(shù)。
本系統(tǒng)中主要有開關(guān)節(jié)點(diǎn)和燈節(jié)點(diǎn)兩種終端節(jié)點(diǎn),兩種節(jié)點(diǎn)要分別實(shí)現(xiàn)所需要的簇命令處理函數(shù)。
開關(guān)節(jié)點(diǎn)要實(shí)現(xiàn)的簇命令回調(diào)函數(shù)包括:
zclHomeAppSw0_BasicResetCB, //復(fù)位操作
zclHomeAppSw0_IdentifyCB, //確認(rèn)操作
燈節(jié)點(diǎn)要實(shí)現(xiàn)的簇命令回調(diào)函數(shù)包括:
zclSampleLight_BasicResetCB,//復(fù)位操作
zclSampleLight_IdentifyCB, //確認(rèn)操作
zclSampleLight_OnOffCB, //開關(guān)命令
4 系統(tǒng)測(cè)試
本系統(tǒng)基于ZigBee ZLL規(guī)范設(shè)計(jì),系統(tǒng)的核心功能是控制器發(fā)出開關(guān)命令,燈節(jié)點(diǎn)收到信號(hào)后做出執(zhí)行動(dòng)作。系統(tǒng)由一個(gè)協(xié)調(diào)器、4個(gè)節(jié)點(diǎn)(分為2個(gè)燈,2個(gè)控制器)、一個(gè)網(wǎng)關(guān)及onenet云平臺(tái)構(gòu)成。在實(shí)驗(yàn)室環(huán)境中做了系統(tǒng)測(cè)試。
開關(guān)燈命令通過(guò)調(diào)用Z-Stack API函數(shù)實(shí)現(xiàn),函數(shù)格式如下:
zclGeneral_SendOnOff_CmdToggle (ZCLHOMEAPPSW0_ENDPOINT, &zclHomeAppSW0_DstAddr, false, HomeAppSW0_TransID );
測(cè)試分2種,ZigBee控制節(jié)點(diǎn)按鍵控制命令和onenet平臺(tái)控制命令如下所示:
(1)通過(guò)對(duì)ZigBee節(jié)點(diǎn)按鍵操作控制Light狀態(tài),燈節(jié)點(diǎn)和控制節(jié)點(diǎn)相距10 m測(cè)試正常,能夠有效通信并控制。
(2)通過(guò)onenet平臺(tái)對(duì)系統(tǒng)測(cè)試,網(wǎng)關(guān)通過(guò)路由器接入Internet。轉(zhuǎn)變平臺(tái)按鍵狀態(tài),ZigBee端收到信號(hào)并能夠做出響應(yīng),實(shí)現(xiàn)了系統(tǒng)的設(shè)計(jì)目標(biāo)。
5 結(jié) 語(yǔ)
本文設(shè)計(jì)了基于ZigBee協(xié)議ZLL規(guī)范的智能燈光系統(tǒng),實(shí)現(xiàn)了基于以太網(wǎng)的遠(yuǎn)程訪問(wèn)控制,系統(tǒng)的核心在于能夠符合ZLL規(guī)范,免除了自定義私有應(yīng)用層協(xié)議的麻煩,便于不同廠家設(shè)備的互聯(lián)互操作??v觀ZigBee技術(shù)的發(fā)展,以后的研究重點(diǎn)應(yīng)放在基于領(lǐng)域規(guī)范的標(biāo)準(zhǔn)化設(shè)計(jì)方面,以便實(shí)現(xiàn)產(chǎn)品的標(biāo)準(zhǔn)化開發(fā)。
參考文獻(xiàn)
[1]尹紀(jì)庭,袁佳,焦志曼,等.基于ARM和Zigbee的智能家居控制系統(tǒng)研究與開發(fā)[J].計(jì)算機(jī)測(cè)量與控制,2013,21(9):2451-2454.
[2]吳文忠,李萬(wàn)磊.基于ARM和ZigBee的智能家居系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(6):1987-1990.
[3]滿莎,楊恢先,彭友,等.基于ARM9的嵌入式無(wú)線智能家居網(wǎng)關(guān)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2010,30(9):2541-2544.
[4]龐泳,李光明.基于Zigbee的智能家居系統(tǒng)改進(jìn)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(5):1547-1550,1582.
[5] Shuyan Zhang,Pingping Xiao,Juan Zhu, et al.Design of Smart Home Control System Based on Cortex-A8 and ZigBee[C].Software Engineering and Service Science(ICSESS),2014 5th IEEE International Conference on,2014:675-678.
[6]姚志鵬.基于Z-stack協(xié)議棧ZCL庫(kù)且符合HA規(guī)范的ZigBee應(yīng)用開發(fā)[J].物聯(lián)網(wǎng)技術(shù),2013,3(4):54-56.
[7] Chunlai Zhou,Wenhui Huang,Xiaoyun Zhao.Study on architecture of smart home management system and key devices[C].International Conference on Computer Science and Network Technology, 2013:1255-1258.
[8] Texas Instruments, Inc. Z-Stack ZigBee Cluster Library Application Programming Interface[R].San Diego, California USA: Texas Instruments, Inc.,2011.
[9] ZigBee Alliance. ZigBee Light Link Standard[R].San Ramon, CA: ZigBee Alliance, Inc., 2012.
[10] 中國(guó)移動(dòng)物聯(lián)網(wǎng)開放平臺(tái)[EB/OL]. Available:http://open.iot.10086.cn/