徐海濤,侯 葉,劉欣茹
(西安電子科技大學(xué) 機(jī)電工程學(xué)院,陜西 西安 710071)
?
ZigBee無(wú)線窗控網(wǎng)絡(luò)節(jié)點(diǎn)的遠(yuǎn)程監(jiān)控系統(tǒng)
徐海濤,侯 葉,劉欣茹
(西安電子科技大學(xué) 機(jī)電工程學(xué)院,陜西 西安 710071)
設(shè)計(jì)了一種ZigBee無(wú)線網(wǎng)絡(luò)節(jié)點(diǎn)的監(jiān)控系統(tǒng),并通過(guò)無(wú)線移動(dòng)網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。該系統(tǒng)采用CC2530微處理器,移植ZSTACK體系,在該體系基礎(chǔ)上建立ZigBee網(wǎng)絡(luò)的無(wú)線通信環(huán)節(jié),成功運(yùn)行在ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)上。在網(wǎng)絡(luò)協(xié)調(diào)器上連接一個(gè)SIM900A模塊,采用TTL電平轉(zhuǎn)化的方式連接串口,實(shí)現(xiàn)ZigBee網(wǎng)絡(luò)與遠(yuǎn)程服務(wù)器的通信傳輸。網(wǎng)絡(luò)節(jié)點(diǎn)處分別設(shè)置兩個(gè)端口,一個(gè)設(shè)置為輸入,采集端口處狀態(tài),作為監(jiān)視端口;另一個(gè)設(shè)置為輸出,控制端口處狀態(tài),作為控制端口。阿里云服務(wù)器具備公網(wǎng)IP,可以作為本實(shí)驗(yàn)的遠(yuǎn)端服務(wù)器,在此以該服務(wù)器上的網(wǎng)絡(luò)調(diào)試助手作為顯示與控制界面,顯示網(wǎng)絡(luò)狀態(tài)并遠(yuǎn)程控制網(wǎng)絡(luò)節(jié)點(diǎn)。
CC2530;ZStack;遠(yuǎn)程監(jiān)控;ZigBee
從上個(gè)世紀(jì)開(kāi)始,無(wú)線通信技術(shù)開(kāi)始發(fā)展,相繼出現(xiàn)短距離高速率的無(wú)線通信技術(shù),如藍(lán)牙、WiFi等,為彌補(bǔ)其能耗大、無(wú)法完成上電自組網(wǎng)等功能,ZigBee技術(shù)面世并走進(jìn)人們的生活。ZigBee技術(shù)是一種低速率、低功耗的無(wú)線自組網(wǎng),與藍(lán)牙、WiFi一起稱(chēng)為三大無(wú)線通信技術(shù)[1]。
在大型交通設(shè)施,如機(jī)場(chǎng)、車(chē)站等大型公共場(chǎng)所排煙窗口往往由于位置較高,不便布線且人工費(fèi)用、維護(hù)費(fèi)用較高,無(wú)論采用人工方式或布線方式均不能有效經(jīng)濟(jì)地發(fā)揮窗口的最大化利益。此時(shí),ZigBee技術(shù)完全可以滿足此類(lèi)環(huán)境的要求,一方面此類(lèi)環(huán)境的信息量較低,且要求穩(wěn)定性好,這正是ZigBee技術(shù)的特點(diǎn);另一方面,每一個(gè)節(jié)點(diǎn)不管維護(hù)還是升級(jí)成本都很低,且省去人工費(fèi)用與排線的麻煩。因此,窗控系統(tǒng)采用ZigBee技術(shù)是一個(gè)很合適的選擇。
本文采用近程ZigBee無(wú)線網(wǎng)絡(luò)+遠(yuǎn)程無(wú)線移動(dòng)網(wǎng)絡(luò)體系,同時(shí)完成遠(yuǎn)程界面對(duì)ZigBee無(wú)線網(wǎng)絡(luò)的監(jiān)控功能。ZigBee無(wú)線網(wǎng)絡(luò)通信采用ZigBee2007-pro協(xié)議,在ZSTACK體系上,IAR8.10集成開(kāi)發(fā)環(huán)境下完成軟件開(kāi)發(fā),網(wǎng)絡(luò)節(jié)點(diǎn)處需開(kāi)辟輸入端口以采集窗口狀態(tài)和輸出端口以控制窗口狀態(tài),并且節(jié)點(diǎn)在OSAL[2]中注冊(cè)兩個(gè)事件以完成采集狀態(tài)的傳輸與控制指令的接受。網(wǎng)絡(luò)協(xié)調(diào)器[3]作為ZigBee網(wǎng)絡(luò)的大腦,設(shè)置該網(wǎng)絡(luò)唯一標(biāo)識(shí)符,允許網(wǎng)絡(luò)節(jié)點(diǎn)的加入,匯集網(wǎng)絡(luò)節(jié)點(diǎn)的信息,通過(guò)串口1采用TTL電平轉(zhuǎn)化的方式連接SIM900A模塊,將匯集的網(wǎng)絡(luò)節(jié)點(diǎn)信息通過(guò)移動(dòng)網(wǎng)絡(luò)遠(yuǎn)程傳輸給遠(yuǎn)端的服務(wù)器,也可以通過(guò)遠(yuǎn)端服務(wù)器發(fā)送指令經(jīng)由網(wǎng)絡(luò)協(xié)調(diào)器傳送到網(wǎng)絡(luò)節(jié)點(diǎn)實(shí)現(xiàn)窗口控制。
如圖1所示為系統(tǒng)整體框圖。系統(tǒng)可分為兩大環(huán)節(jié),一是通信環(huán)節(jié),二是節(jié)點(diǎn)控制、采集環(huán)節(jié)。通信環(huán)節(jié)包括個(gè)人PC與服務(wù)器的TCP/IP通信[4]、協(xié)調(diào)器與服務(wù)器之間的GPRS通信,以及協(xié)調(diào)器與節(jié)點(diǎn)之間的ZigBee無(wú)線通信??刂骗h(huán)節(jié)在ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)處實(shí)現(xiàn)。
圖1 系統(tǒng)框架
1.1 網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)
網(wǎng)絡(luò)節(jié)點(diǎn)軟件的編寫(xiě)主要分為三部分,包括網(wǎng)絡(luò)加入與通信實(shí)現(xiàn)、窗口狀態(tài)采集功能、窗口控制功能。微控制器為CC2530,在IAR8.10集成開(kāi)發(fā)環(huán)境下,移植ZSTACK體系,在應(yīng)用層注冊(cè)報(bào)告事件,加入?yún)f(xié)調(diào)器所在網(wǎng)絡(luò),并完成通信功能。在此,規(guī)定節(jié)點(diǎn)加入網(wǎng)絡(luò)后,需向網(wǎng)絡(luò)協(xié)調(diào)器發(fā)送該節(jié)點(diǎn)的網(wǎng)絡(luò)信息,發(fā)送數(shù)據(jù)格式為:sxxxxpyyyyizzzz。其中s表示該節(jié)點(diǎn)的節(jié)點(diǎn)類(lèi)型,xxxx表示該節(jié)點(diǎn)的網(wǎng)絡(luò)地址,p表示該節(jié)點(diǎn)處的父節(jié)點(diǎn),yyyy表示父節(jié)點(diǎn)的網(wǎng)絡(luò)地址,i表示該節(jié)點(diǎn)的物理地址,zzzz表示該節(jié)點(diǎn)物理地址的后四位。節(jié)點(diǎn)在加入網(wǎng)絡(luò)后協(xié)調(diào)器會(huì)分給該節(jié)點(diǎn)一個(gè)唯一的16位二進(jìn)制網(wǎng)絡(luò)地址,在此轉(zhuǎn)化為四位十六進(jìn)制地址。在ZSTACK體系中,注冊(cè)一個(gè)MY_REPORT_EVT事件,該事件用于觸發(fā)sendReport()函數(shù),該函數(shù)用于向協(xié)調(diào)器發(fā)送窗口狀態(tài)。發(fā)送數(shù)據(jù)格式為:Device:sXXXXRL。XXXX節(jié)點(diǎn)代表四位網(wǎng)絡(luò)地址,R、L分別用0、1代表兩個(gè)端口處狀態(tài)的開(kāi)關(guān)。而zb_ReceiveDataIndication()函數(shù)用于接收協(xié)調(diào)器發(fā)送的窗口控制指令。接收到的數(shù)據(jù)格式與發(fā)送數(shù)據(jù)格式相同,當(dāng)節(jié)點(diǎn)接收到數(shù)據(jù)時(shí)先判斷網(wǎng)絡(luò)地址,如果接收的網(wǎng)絡(luò)地址與節(jié)點(diǎn)地址一致,則根據(jù)數(shù)據(jù)設(shè)置控制端輸出,否則不對(duì)數(shù)據(jù)進(jìn)行處理[5]。
窗口采集功能即設(shè)置CC2530的端口P0.6、P0.7為輸入端,每隔5 s對(duì)兩個(gè)端口進(jìn)行一次數(shù)據(jù)采集,代表節(jié)點(diǎn)處窗口的狀態(tài)。而窗口控制功能設(shè)置P0.4、P0.5為輸出端,以高低電平作為輸出控制繼電器對(duì)窗口進(jìn)行開(kāi)關(guān)控制。
1.2 網(wǎng)絡(luò)協(xié)調(diào)器的設(shè)計(jì)
網(wǎng)絡(luò)協(xié)調(diào)器軟件的編寫(xiě)主要分為兩部分,包括網(wǎng)絡(luò)建立與通信實(shí)現(xiàn)、SIM900A的遠(yuǎn)程通信控制。
協(xié)調(diào)器是ZigBee網(wǎng)絡(luò)的大腦。負(fù)責(zé)網(wǎng)絡(luò)的建立、節(jié)點(diǎn)的加入允許與分配網(wǎng)絡(luò)地址、網(wǎng)絡(luò)維護(hù)等,在此協(xié)調(diào)器還加入遠(yuǎn)程通信功能。ZSTACK體系的移植與網(wǎng)絡(luò)節(jié)點(diǎn)一致,只需設(shè)置其為協(xié)調(diào)器,但是注意SENSOR_REPORT_CMD_ID的id值與網(wǎng)絡(luò)要保持一致,否則會(huì)收不到數(shù)據(jù)。
SIM900A是一款高性能工業(yè)級(jí) GSM/GPRS 模塊,工作頻段雙頻:900/1 800 MHz,可以低功耗實(shí)現(xiàn)語(yǔ)音、SMS(短信,彩信)、數(shù)據(jù)和傳真信息的傳輸,支持 RS232 串口和 LVTTL 串口。此處使用TTL串口。AT 指令集是從終端設(shè)備(TA)向終端適配器(TE)發(fā)送的。通過(guò)TA、TE發(fā)送 AT 指令來(lái)控制移動(dòng)臺(tái)的功能。用戶可以通過(guò) AT 指令進(jìn)行呼叫、短信、電話本、數(shù)據(jù)業(yè)務(wù)、傳真等方面的控制。通過(guò)CC2530的串口1的P0.3、P0.4兩個(gè)端口向SIM900A發(fā)送AT指令,用于向遠(yuǎn)程服務(wù)器發(fā)送數(shù)據(jù)或接收數(shù)據(jù)。
1.3 服務(wù)器的設(shè)計(jì)
學(xué)校網(wǎng)絡(luò)是一個(gè)局域網(wǎng),實(shí)驗(yàn)室網(wǎng)絡(luò)不具備外網(wǎng)IP,協(xié)調(diào)器不能通過(guò)移動(dòng)內(nèi)網(wǎng)找到個(gè)人PC并完成通信功能。因此,本設(shè)計(jì)加入了一個(gè)阿里云服務(wù)器,其擁有公網(wǎng)IP,具備與協(xié)調(diào)器和個(gè)人PC雙向通信的需求。
在服務(wù)器上安裝Eclipse作為Java[6]集成開(kāi)發(fā)環(huán)境,編寫(xiě)Java程序。該程序只是完成數(shù)據(jù)的轉(zhuǎn)發(fā)功能,即將協(xié)調(diào)器傳輸?shù)臄?shù)據(jù)發(fā)送到個(gè)人PC端,將PC端的指令數(shù)據(jù)發(fā)送到協(xié)調(diào)器。
1.4 PC界面的設(shè)計(jì)
Qt[7]是一個(gè)跨平臺(tái)的C++面向?qū)ο蟮膱D形用戶界面應(yīng)用程序框架。在Qt Creator 5.1.0跨平臺(tái)集成開(kāi)發(fā)環(huán)境下編寫(xiě)個(gè)人PC界面,如圖2所示。主頁(yè)面中是一個(gè)線性布局,分別表示菜單欄、狀態(tài)欄和地址端口欄。其中嵌入一個(gè)QStackedLayout布局以便顯示不同層數(shù)的各個(gè)狀態(tài),當(dāng)窗口為亮?xí)r,即燈顯示為黃色時(shí),表示窗口為打開(kāi)狀態(tài);當(dāng)窗口為暗時(shí),即燈顯示為黑色時(shí),表示窗口為關(guān)閉狀態(tài)。最下面為地址端口欄,右下角處QLineEdit顯示了PC連接的公網(wǎng)IP地址與端口號(hào)(也是服務(wù)器的公網(wǎng)地址與開(kāi)辟的通信端口)。
圖2 遠(yuǎn)程窗口監(jiān)控平臺(tái)
軟件編寫(xiě)完后,下載到ZigBee開(kāi)發(fā)板,供電并運(yùn)行,同時(shí)打開(kāi)遠(yuǎn)程服務(wù)器的網(wǎng)絡(luò)調(diào)試助手用于顯示ZigBee協(xié)調(diào)器與服務(wù)器的通信內(nèi)容,配置網(wǎng)絡(luò)調(diào)試助手為T(mén)CP Server,并配置端口號(hào)保持與SIM900A連接的端口號(hào)一致。準(zhǔn)備就緒后,讀取配置網(wǎng)絡(luò)調(diào)試助手的網(wǎng)絡(luò)數(shù)據(jù)接收區(qū)數(shù)據(jù),如圖3所示。
圖3 網(wǎng)絡(luò)調(diào)試助手接收數(shù)據(jù)
當(dāng)協(xié)調(diào)器通過(guò)SIM900A連接到服務(wù)器時(shí),網(wǎng)絡(luò)調(diào)試助手左下角會(huì)有Message:FD_ACCEPT消息提示連接成功。在網(wǎng)絡(luò)數(shù)據(jù)接收區(qū),可以讀取到數(shù)據(jù)如下:第一行顯示連接服務(wù)器的網(wǎng)絡(luò)地址及端口號(hào),用以區(qū)分是協(xié)調(diào)器還是遠(yuǎn)程的界面,此處連接的是協(xié)調(diào)器;從第二行開(kāi)始顯示的是協(xié)調(diào)器發(fā)送到服務(wù)器的數(shù)據(jù),首先當(dāng)ZigBee節(jié)點(diǎn)加入網(wǎng)絡(luò)后會(huì)向協(xié)調(diào)器發(fā)送其網(wǎng)絡(luò)地址、父節(jié)點(diǎn)網(wǎng)絡(luò)地址和自身物理地址,如圖3中第二行,其中父節(jié)點(diǎn)網(wǎng)絡(luò)地址為0000,表示其父節(jié)點(diǎn)為協(xié)調(diào)器本身;從第三行開(kāi)始均表示窗口狀態(tài)的反饋,前十二個(gè)字符表示反饋的狀態(tài)的網(wǎng)絡(luò)節(jié)點(diǎn),后兩個(gè)字符表示節(jié)點(diǎn)兩個(gè)端口窗口的狀態(tài),當(dāng)改變端口P0.6、P0.7處的輸入電平,或0~3.3 V,或3.3~0 V,從圖中第3~8行可以看到反饋狀態(tài)的變化。同理當(dāng)在發(fā)送區(qū)中向協(xié)調(diào)器發(fā)送改變窗口指令時(shí),用萬(wàn)用表測(cè)量P0.4、P0.5處輸出電壓均發(fā)生改變。
本文提出了一種ZigBee無(wú)線窗控網(wǎng)絡(luò)節(jié)點(diǎn)的遠(yuǎn)程監(jiān)控系統(tǒng),該系統(tǒng)以CC2530為主控芯片,軟件編寫(xiě)在ZSTACK體系下完成,組建了ZigBee網(wǎng)絡(luò),該系統(tǒng)具有成本低、可擴(kuò)展性強(qiáng)、穩(wěn)定性強(qiáng)、維護(hù)成本低,且便于遠(yuǎn)程控制等優(yōu)點(diǎn)。本設(shè)計(jì)對(duì)大型設(shè)施通風(fēng)窗口控制系統(tǒng)有指導(dǎo)意義,同時(shí)也可應(yīng)用于智能工業(yè)控制、家居智能化、樓宇智能化、農(nóng)業(yè)智能化等領(lǐng)域。
[1] 孫占偉,趙爍,王盼星,等. 基于物聯(lián)網(wǎng)的社區(qū)服務(wù)信息交互終端與系統(tǒng)[J]. 吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2016,34(4):516-519.
[2] 辛穎,謝光忠,蔣亞?wèn)|.基于ZigBee協(xié)議的溫度濕度無(wú)線傳感器網(wǎng)絡(luò)[J]. 傳感器與微系統(tǒng),2006, 25(7): 82-84.
[3] 蔡利婷,陳平華,羅彬,等. 基于CC2530的ZigBee數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(11):197-200.
[4]徐玉炎,明軒,張瑞,等. 基于WSN的醫(yī)療監(jiān)護(hù)系統(tǒng)的設(shè)計(jì)[J]. 電子設(shè)計(jì)工程,2015(2): 92-95.
[5] 王東, 張金榮,魏延,等. 利用ZigBee技術(shù)構(gòu)建無(wú)線傳感器網(wǎng)絡(luò)[J]. 重慶大學(xué)學(xué)報(bào), 2006,29(8): 95-98.
[6] 李正明,吳波.基于物聯(lián)網(wǎng)的智能家居控制系統(tǒng)研究[J].現(xiàn)代科學(xué)儀器,2012(2):68-71.
[7] 陸文周.Qt5開(kāi)發(fā)及實(shí)例[M].北京:電子工業(yè)出版社,2013.
The remote monitoring system of ZigBee wireless window control network node
Xu Haitao, Hou Ye, Liu Xinru
(School of Electro-Mechanical Engineering, Xidian University, Xi’an 710071, China)
This paper designs a ZigBee wireless network node monitoring system, and through the wireless mobile network to achieve remote monitoring. The system uses CC2530 microprocessor to transplant ZSTACK system, on the basis of the system, the ZigBee network wireless communication links is established, which can successfully operate on the ZigBee network nodes. The network coordinator can communicate to remote server by using TTL-level conversion of the way to connect the serial port on the SIM900A module. Two ports are set up at the network node. One is set as input to collect the status of the port, as a monitor port. And the other one is set as output to control status of the port, as a control port. Ali cloud server has public IP, which can be used as the remote server of the experiment. We can use this to display network status and control remote network nodes.
CC2530; ZStack; remote monitoring; ZigBee
TP13
A
10.19358/j.issn.1674- 7720.2017.13.022
徐海濤,侯葉,劉欣茹.ZigBee無(wú)線窗控網(wǎng)絡(luò)節(jié)點(diǎn)的遠(yuǎn)程監(jiān)控系統(tǒng)[J].微型機(jī)與應(yīng)用,2017,36(13):73-75,81.
2017-01-03)
徐海濤(1990-),男,碩士研究生,主要研究方向:嵌入式系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)。
侯葉(1961-),女,博士,教授,主要研究方向:嵌入式控制系統(tǒng)的開(kāi)發(fā)與研究。
劉欣茹(1990-),女,碩士研究生,主要研究方向:ZigBee智能控制。