趙曉軍,溫丁一,申軍濤,張國騫
(河北大學(xué)電子信息工程學(xué)院,河北保定071002)
白洋淀是華北平原最大、最典型的濕地,對維護(hù)周邊生態(tài)平衡發(fā)揮著不可替代的作用。但由于上游工業(yè)生產(chǎn)、居民生活用水持續(xù)增加,開發(fā)利用地表水,超量開采地下水,使白洋淀濕地面積逐年減少面臨著干淀的威脅。因此,對白洋淀濕地進(jìn)行監(jiān)測和保護(hù)已經(jīng)刻不容緩,然而濕地環(huán)境復(fù)雜,定期地對濕地各個(gè)區(qū)域進(jìn)行監(jiān)測保護(hù)將會(huì)耗費(fèi)大量人力物力,而且不能做到實(shí)時(shí)監(jiān)控,有一定的滯后性。
現(xiàn)在基于ZigBee的無線傳感網(wǎng)絡(luò)具有低功耗、低速率、低成本、高安全性以及全數(shù)字化等諸多優(yōu)點(diǎn)使得其輕松地解決了濕地監(jiān)測方面的問題。因此本文采用ZigBee無線傳感技術(shù)構(gòu)成靜態(tài)無線傳感網(wǎng)絡(luò)覆蓋濕地的復(fù)雜的地形區(qū)域,以無人船攜帶ZigBee節(jié)點(diǎn)構(gòu)成移動(dòng)節(jié)點(diǎn)來監(jiān)測水質(zhì)信息,形成更大范圍的現(xiàn)場監(jiān)測網(wǎng)絡(luò)?,F(xiàn)場網(wǎng)絡(luò)通過GPRS通信技術(shù)連接互聯(lián)網(wǎng),互聯(lián)網(wǎng)網(wǎng)站用來實(shí)時(shí)顯示濕地各區(qū)域的溫度、濕度、水質(zhì)等信息。從而實(shí)現(xiàn)了對濕地環(huán)境的大范圍監(jiān)測,為及時(shí)地采取保護(hù)濕地的行動(dòng)和措施提供實(shí)時(shí)的信息。
基于ZigBee和互聯(lián)網(wǎng)的遠(yuǎn)程監(jiān)控系統(tǒng)可分為現(xiàn)場ZigBee無線傳感監(jiān)測網(wǎng)絡(luò)、網(wǎng)關(guān)和監(jiān)控網(wǎng)站終端3個(gè)部分。遠(yuǎn)程監(jiān)控系統(tǒng)的總體結(jié)構(gòu)如圖1所示。
圖1 遠(yuǎn)程監(jiān)控系統(tǒng)的總體結(jié)構(gòu)圖
現(xiàn)場監(jiān)測網(wǎng)絡(luò)采用ZigBee無線傳感網(wǎng)絡(luò),ZigBee固定節(jié)點(diǎn)和移動(dòng)節(jié)點(diǎn)(無人船等)攜帶各類傳感器來監(jiān)測濕地環(huán)境數(shù)據(jù),路由節(jié)點(diǎn)組成中間傳輸線路負(fù)責(zé)把這些數(shù)據(jù)傳給協(xié)調(diào)器[1-2]。網(wǎng)關(guān)負(fù)責(zé)把 ZigBee 協(xié)調(diào)器接收來的數(shù)據(jù)通過GPRS傳到互聯(lián)網(wǎng)上確定地址的服務(wù)器。監(jiān)控網(wǎng)站終端把接收到的信息進(jìn)行識(shí)別,分組儲(chǔ)存到數(shù)據(jù)庫中,并把監(jiān)控到的信息和各節(jié)點(diǎn)的分布、工作情況顯示在網(wǎng)站的前臺(tái)頁面上,這樣用戶可以隨時(shí)隨地登錄網(wǎng)站,訪問網(wǎng)站數(shù)據(jù)庫來查看監(jiān)控信息,而且網(wǎng)站還可以顯示ZigBee各個(gè)節(jié)點(diǎn)的工作情況,了解整個(gè)網(wǎng)絡(luò)的工作情況,如果發(fā)生故障,便可以及時(shí)了解制定決策方案。
ZigBee是一種基于IEEE802.15.4的無線通信協(xié)議,它包含了有關(guān)組網(wǎng)、安全和應(yīng)用軟件方面的技術(shù)標(biāo)準(zhǔn)。而且具有功耗低、成本低、網(wǎng)絡(luò)容量大、安全性高、協(xié)議簡單、全球通用等優(yōu)勢。因此非常適宜小數(shù)據(jù)流的傳輸。
完整的ZigBee協(xié)議棧由高層應(yīng)用規(guī)范、應(yīng)用匯聚層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層組成。網(wǎng)絡(luò)層以上協(xié)議由ZigBee聯(lián)盟制定,IEEE802.15.4負(fù)責(zé)物理層和鏈路層標(biāo)準(zhǔn)[3]。協(xié)議棧構(gòu)架如圖2所示。
圖2 協(xié)議棧構(gòu)架
現(xiàn)場靜態(tài)監(jiān)測網(wǎng)絡(luò)負(fù)責(zé)覆蓋濕地復(fù)雜地形區(qū)域,以全功能設(shè)備(FFD)作為協(xié)調(diào)器和路由節(jié)點(diǎn)來組建網(wǎng)狀拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò),以精簡功能設(shè)備(RFD)作為終端節(jié)點(diǎn)來采集信息。
ZigBee網(wǎng)狀拓?fù)浣Y(jié)構(gòu)是一個(gè)高級(jí)別冗余性網(wǎng)絡(luò)。它能自動(dòng)選擇最優(yōu)的傳播路徑,提高連接質(zhì)量。當(dāng)路由節(jié)點(diǎn)部署的密度夠大時(shí),一旦一條最優(yōu)的通信路徑中斷,網(wǎng)絡(luò)會(huì)自動(dòng)在冗余的其他路徑中選擇另一條最合適的路徑維持正常通信,這就很大程度地提高了系統(tǒng)信息傳輸?shù)目煽啃院头€(wěn)定性[4]。
為了確保各個(gè)終端節(jié)點(diǎn)處于正常工作狀態(tài),所有的終端節(jié)點(diǎn)每隔1 min發(fā)送一次信息給協(xié)調(diào)器,協(xié)調(diào)器不斷檢查節(jié)點(diǎn)信息,如果5次檢測不到某個(gè)節(jié)點(diǎn)的信息,則認(rèn)定該節(jié)點(diǎn)出現(xiàn)故障,則向上級(jí)發(fā)送故障警報(bào)。
建立網(wǎng)絡(luò)過程如圖3所示。
圖3 ZigBee網(wǎng)絡(luò)構(gòu)建流程圖
網(wǎng)絡(luò)中移動(dòng)節(jié)點(diǎn)主要是利用無人船等設(shè)備配備終端節(jié)點(diǎn)來監(jiān)測濕地的水質(zhì)信息,然后把采集到的水質(zhì)信息通過動(dòng)態(tài)連接靜態(tài)網(wǎng)絡(luò)路由節(jié)點(diǎn),它能配合陸地上的靜態(tài)監(jiān)測網(wǎng)絡(luò)來實(shí)現(xiàn)濕地的全方位監(jiān)測。
移動(dòng)節(jié)點(diǎn)設(shè)計(jì)主要問題是移動(dòng)節(jié)點(diǎn)入網(wǎng)和出網(wǎng)的問題,移動(dòng)節(jié)點(diǎn)移入移出靜態(tài)網(wǎng)絡(luò)或者從一個(gè)靜態(tài)網(wǎng)絡(luò)移出而進(jìn)入另一個(gè)網(wǎng)絡(luò),要保證信息傳輸?shù)倪B貫性和無失真。這里采用了一種信號(hào)能量檢測的方案:ZigBee協(xié)議棧的物理層包含信號(hào)能量監(jiān)測的功能。根據(jù)ZigBee協(xié)議定義,通信過程中接收方有兩個(gè)數(shù)值能反映兩個(gè)通信節(jié)點(diǎn)的距離,那就是接收信號(hào)強(qiáng)度指示RSSI和LQI[5]。
移動(dòng)節(jié)點(diǎn)移入網(wǎng)絡(luò)過程中網(wǎng)絡(luò)中的節(jié)點(diǎn)會(huì)接收到移動(dòng)節(jié)點(diǎn)的信號(hào),這需要在靜態(tài)網(wǎng)絡(luò)各個(gè)路由中預(yù)先設(shè)定好最大門限值(RSSI_Max和LQI_Max),而且需要移動(dòng)節(jié)點(diǎn)以廣播的方式發(fā)送自己的RSSI和LQI,這樣路由節(jié)點(diǎn)可以從移動(dòng)節(jié)點(diǎn)的廣播發(fā)送中得到RSSI和LQI。然后與設(shè)定好的RSSI_Max和LQI_Max值進(jìn)行比較,如果比門限值大則該路由查找路由表,如果移動(dòng)節(jié)點(diǎn)不存在,則把移動(dòng)節(jié)點(diǎn)注冊為子節(jié)點(diǎn),隨后馬上通知移動(dòng)節(jié)點(diǎn)解除與原父節(jié)點(diǎn)的關(guān)聯(lián)[5]。這樣就解決了網(wǎng)絡(luò)切換中的通信中斷問題。移動(dòng)節(jié)點(diǎn)切換接入流程如圖4所示。
圖4 移動(dòng)節(jié)點(diǎn)切換接入設(shè)計(jì)
ZigBee網(wǎng)絡(luò)以CC2530[6]芯片為核心,網(wǎng)絡(luò)中的協(xié)調(diào)器、路由節(jié)點(diǎn)和終端采集節(jié)點(diǎn)都采用CC2530芯片。結(jié)構(gòu)如圖5所示。CC2530芯片外圍射頻電路采用巴倫電路,由于CC2530的RF輸入/輸出是高阻抗差分信號(hào),要想使用倒F天線(PCB天線),需要設(shè)置巴倫電路(通常說的平衡/非平衡變壓器)以達(dá)到最佳性能,巴倫電路可以使用低成本的電感和電容實(shí)現(xiàn)。終端節(jié)點(diǎn)需要在CC2530的最小電路上接上各種傳感器,用來采集現(xiàn)場的各類信息。
圖5 ZigBee節(jié)點(diǎn)硬件結(jié)構(gòu)圖
要把ZigBee網(wǎng)絡(luò)監(jiān)測到的數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)上需要一個(gè)網(wǎng)關(guān),這里采用ZigBee/GPRS網(wǎng)關(guān),它的硬件組成包括TI公司生產(chǎn)的CC2530和MSP430F149芯片、GPRS模塊GTM900(帶天線)、外圍射頻發(fā)射電路。硬件結(jié)構(gòu)如圖6所示。
圖6 網(wǎng)關(guān)硬件結(jié)構(gòu)圖
MSP430是一個(gè)16位的單片機(jī),采用了精簡指令集(RISC)結(jié)構(gòu),具有豐富的尋址方式,簡潔的27條內(nèi)核指令以及大量的模擬指令;大量的寄存器以及片內(nèi)數(shù)據(jù)存儲(chǔ)器都可參加多種運(yùn)算;還有高效的查表處理指令。這些特點(diǎn)保證了可編制出高效率的源程序。因此以MSP430為核心處理芯片,CC2530作為ZigBee網(wǎng)絡(luò)協(xié)調(diào)器,由于采集節(jié)點(diǎn)比較多,為了保證通信的速度和效率,這里采用SPI方式實(shí)現(xiàn)CC2530與MSP430的數(shù)據(jù)通信。MSP430把信息進(jìn)行處理并通過串口傳輸給GPRS模塊GTM900,這里采用3.3 V供電的GTM900,因?yàn)镸SP430也是3.3 V供電,所以省略了電源轉(zhuǎn)換電路,從而簡化了硬件設(shè)計(jì)。為了避免出現(xiàn)故障或掉電造成的數(shù)據(jù)丟失,也為使SPI與串口數(shù)據(jù)傳輸速度保持同步性。把MSP430處理好的數(shù)據(jù)存入SD卡中緩存一下,再從SD卡中讀取數(shù)據(jù)傳送給GPRS模塊。GPRS模塊負(fù)責(zé)把數(shù)據(jù)發(fā)給指定IP的網(wǎng)絡(luò)服務(wù)器[7]。
CC2530協(xié)調(diào)器采用的是2007協(xié)議棧協(xié)調(diào)器程序,其中內(nèi)嵌了SPI程序,這里只需稍作修改。MSP430中編寫了SPI程序和串口程序,分別與CC2530、SD卡、GPRS模塊通信。由于MSP430串口與SPI接口共用,而且MSP430有兩個(gè)串口,因此必須通過IO口模擬出一個(gè)串口。GPRS無線通信模塊內(nèi)嵌TCP/IP協(xié)議,MSP430編程時(shí)調(diào)用AT指令來操作GPRS模塊,這樣就能方便地與控制中心的服務(wù)器建立TCP/IP連接。這樣一來,系統(tǒng)的軟件設(shè)計(jì)就再也不用考慮鏈路層PPP的腳本控制程序和網(wǎng)絡(luò)層TCP/UDP套接字程序的設(shè)計(jì),從而大大降低了軟件設(shè)計(jì)部分的復(fù)雜度,有效地提高了系統(tǒng)的可靠性。MSP430程序流程圖如圖7所示。
圖7 MSP430程序流程圖
終端檢測網(wǎng)站程序是在ASP.NET平臺(tái)下用C#語言編寫的B/S模式和C/S模式的軟件程序,程序主要包括前臺(tái)程序、Windows服務(wù)程序和數(shù)據(jù)庫操作程序,如圖8所示。
圖8 網(wǎng)站終端結(jié)構(gòu)
前臺(tái)程序是編寫的B/S模式下的網(wǎng)頁程序,包括登錄頁面程序、監(jiān)測頁面程序和用戶操作頁面程序。這樣可使不同權(quán)限的用戶登錄不同的頁面,進(jìn)行不同權(quán)限數(shù)據(jù)的監(jiān)測和數(shù)據(jù)庫的操作。Windows服務(wù)程序是編寫的C/S模式下的運(yùn)行在服務(wù)器上的后臺(tái)程序,它是通過Socket套接字按TCP/IP協(xié)議與GPRS進(jìn)行數(shù)據(jù)傳輸,并把數(shù)據(jù)儲(chǔ)存到數(shù)據(jù)庫中[8]。數(shù)據(jù)庫操作程序也是編寫在運(yùn)行于服務(wù)器后臺(tái)的Windiws服務(wù)程序中的。Windiws服務(wù)程序用SQL語言把從互聯(lián)網(wǎng)中得到的數(shù)據(jù)存入數(shù)據(jù)庫。
利用互聯(lián)網(wǎng)B/S的網(wǎng)絡(luò)結(jié)構(gòu)體系和C/S的后臺(tái)操作功能,增強(qiáng)和擴(kuò)大了設(shè)備的管理能力和范圍。在實(shí)時(shí)采集數(shù)據(jù)的基礎(chǔ)上,還可以對數(shù)據(jù)進(jìn)行再加工,生成報(bào)表、曲線、圖表等圖形化內(nèi)容供用戶參考,以做出更好、更準(zhǔn)確的決策。同時(shí)企業(yè)減少了數(shù)據(jù)采集、處理、維護(hù)等活動(dòng)的時(shí)間和工作量,可以獲得更好的經(jīng)濟(jì)效益。
本實(shí)驗(yàn)以白洋淀濕地為試驗(yàn)點(diǎn),實(shí)驗(yàn)中分布安裝了20個(gè)終端節(jié)點(diǎn)來采集濕地的溫度、濕度和光照強(qiáng)度。而且分布了10個(gè)路由節(jié)點(diǎn)組成靜態(tài)網(wǎng)絡(luò)來傳輸信息,有一條船攜帶移動(dòng)節(jié)點(diǎn)來采集水質(zhì)信息。移動(dòng)節(jié)點(diǎn)采集的信息加入靜態(tài)網(wǎng)絡(luò)后把信息傳給路由節(jié)點(diǎn)。各個(gè)節(jié)點(diǎn)采集的數(shù)據(jù)通過GPRS/ZigBee網(wǎng)關(guān)傳輸?shù)綄?shí)驗(yàn)室的網(wǎng)絡(luò)服務(wù)器上,通過實(shí)驗(yàn)室另一臺(tái)計(jì)算機(jī)登錄服務(wù)器,成功對現(xiàn)場進(jìn)行了監(jiān)測。如圖9為網(wǎng)站顯示現(xiàn)場節(jié)點(diǎn)測試結(jié)果。
圖9 網(wǎng)站顯示現(xiàn)場節(jié)點(diǎn)的采集信息(截圖)
圖9為通過計(jì)算機(jī)訪問遠(yuǎn)程網(wǎng)站來查詢站點(diǎn)的數(shù)據(jù),實(shí)驗(yàn)表明現(xiàn)場采集節(jié)點(diǎn)工作良好,而且能很好地將采集的數(shù)據(jù)傳到網(wǎng)站上。網(wǎng)站可以查詢各個(gè)節(jié)點(diǎn)工作情況,如果某個(gè)站點(diǎn)出現(xiàn)問題則可以及時(shí)采取相應(yīng)的措施。
通過對大量節(jié)點(diǎn)監(jiān)測數(shù)據(jù),實(shí)驗(yàn)結(jié)果表明ZigBee網(wǎng)狀結(jié)構(gòu)具有穩(wěn)定性,當(dāng)取走一個(gè)路由節(jié)點(diǎn)時(shí),網(wǎng)絡(luò)運(yùn)行正常。而且路由節(jié)點(diǎn)的增加會(huì)使網(wǎng)絡(luò)的丟包率降低、延時(shí)變小,而且隨著網(wǎng)絡(luò)的增大,網(wǎng)絡(luò)的穩(wěn)定性和所覆蓋的范圍可以大大提高。增加路由節(jié)點(diǎn)的個(gè)數(shù)縮短了節(jié)點(diǎn)距離,可以使發(fā)射功率減小。但如果減少節(jié)點(diǎn)數(shù),則節(jié)點(diǎn)的距離增大會(huì)出現(xiàn)丟包和延遲現(xiàn)象。因此需要在降低網(wǎng)絡(luò)延遲和丟包率、增加發(fā)射功率且降低功耗上作進(jìn)一步研究。
本方案是基于ZigBee和互聯(lián)網(wǎng)的遠(yuǎn)程監(jiān)控系統(tǒng)軟硬件設(shè)計(jì)方法,通過ZigBee構(gòu)成的節(jié)點(diǎn)監(jiān)測網(wǎng)絡(luò),以靜態(tài)網(wǎng)絡(luò)和動(dòng)態(tài)節(jié)點(diǎn)相結(jié)合全面覆蓋濕地各個(gè)區(qū)域,實(shí)現(xiàn)了對白洋淀濕地的實(shí)時(shí)大范圍監(jiān)測,網(wǎng)關(guān)通過GPRS成功地把監(jiān)測結(jié)果發(fā)給互聯(lián)網(wǎng)網(wǎng)站,服務(wù)器網(wǎng)站把結(jié)果顯示在前臺(tái)頁面上,而且通過數(shù)據(jù)庫實(shí)現(xiàn)了監(jiān)測結(jié)果的長期存儲(chǔ),通過濕地不同時(shí)期狀況的對比來預(yù)測濕地的發(fā)展趨勢,客戶端可以隨時(shí)隨地登錄網(wǎng)站查看信息,及時(shí)做出解決方案。
[1]祝曉東,肖四友.ZigBee技術(shù)在無線溫室數(shù)據(jù)采集系統(tǒng)中的應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用系統(tǒng),2007(12):82-85.
[2]朱永利,陳濤,郭少杰.ZigBee技術(shù)在無線抄表中的應(yīng)用[J].電力系統(tǒng)通信,2008(8):37-39.
[3]王欽,陳忠輝,陳新.基于ZigBee的倉庫溫濕度采集系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程2009,37(9):207-211.
[4]陶曉玲,黃廷磊,王勇.ZigBee網(wǎng)狀網(wǎng)技術(shù)探討[J].廣西師范學(xué)院學(xué)報(bào):自然科學(xué)版,2006,23(3):67-71.
[5]劉騫,孫懋珩.ZigBee網(wǎng)絡(luò)移動(dòng)節(jié)點(diǎn)接入與切換機(jī)制仿真分析[J].計(jì)算機(jī)與現(xiàn)代化,2008(1):60-62.
[6]盛希寧,顧濟(jì)華.基于ZigBee無線傳感網(wǎng)絡(luò)的實(shí)驗(yàn)室監(jiān)控系統(tǒng)設(shè)計(jì)[J].電子工程師,2007,33(9):67-73.
[7] YANG Xinkai,LIGeng.Pervasive computing oriented automatic meter reading system based on ZigBee and GPRS[J].Journal of Shanghai Normal Universtity:Natural Sciences,2007,36(4):41-43.
[8]明日科技.C#程序開發(fā)范例寶典[M].北京:人民郵電出版社,2007.