基于ZigBee的自來水監(jiān)測網(wǎng)絡(luò)系統(tǒng)設(shè)計與實(shí)現(xiàn)
摘要:基于ZigBee的自來水水質(zhì)監(jiān)測系統(tǒng)利用傳感器采集數(shù)據(jù),用ZigBee網(wǎng)絡(luò)傳輸數(shù)據(jù),通過無線網(wǎng)絡(luò)和USB基站長距離傳送到上位機(jī)。通過對自來水水質(zhì)進(jìn)行實(shí)時的監(jiān)控,存儲水質(zhì)參數(shù)和數(shù)理統(tǒng)計,以及超閾值報警提示等功能。相比于傳統(tǒng)的人工監(jiān)測,能有效節(jié)省人工,且更能保證水質(zhì)監(jiān)測的實(shí)時性,有效性,連貫性。
本文引用地址:http://2s4d.com/article/201610/306133.htm關(guān)鍵詞:Zigbee;水質(zhì)監(jiān)測網(wǎng);網(wǎng)關(guān);serialPort
隨著我國經(jīng)濟(jì)的高速發(fā)展,水質(zhì)的污染和破壞問題日趨嚴(yán)重,著眼于社會所需,我們研究了基于ZigBee的水質(zhì)監(jiān)測系統(tǒng),為水質(zhì)保駕護(hù)航。
水質(zhì)污染問題刻不容緩,城市飲水主要是通過自來水,其中的安全隱患不容忽視,所以需要一種能隨時監(jiān)測水質(zhì)變化的設(shè)備系統(tǒng)。論文探討構(gòu)建基于ZigBee技術(shù)的自來水監(jiān)測網(wǎng)絡(luò)物理結(jié)構(gòu),重點(diǎn)是ZigBee網(wǎng)關(guān)轉(zhuǎn)wifi和轉(zhuǎn)USB的協(xié)議轉(zhuǎn)換。上位機(jī)監(jiān)控功能中,實(shí)現(xiàn)了數(shù)據(jù)實(shí)時接收、顯示以及歷史數(shù)據(jù)查詢,對超閾值數(shù)據(jù),報警提示。
1 物聯(lián)網(wǎng)ZigBee技術(shù)簡介
ZigBee技術(shù)具有自組網(wǎng),低功耗,延時小,多跳的特點(diǎn),適用于長時間組網(wǎng)監(jiān)測。在ZigBee網(wǎng)絡(luò)中有3種設(shè)備,協(xié)調(diào)器(Co_ordinator) 為全功能節(jié)點(diǎn)(FFD),負(fù)責(zé)建立網(wǎng)絡(luò),一個ZigBee網(wǎng)絡(luò)只能有一個協(xié)調(diào)器,相當(dāng)于蜂群結(jié)構(gòu)中的蜂后,當(dāng)網(wǎng)路建立完成后,協(xié)調(diào)器的功能相當(dāng)于普通路由器(Router)。路由器負(fù)責(zé)數(shù)據(jù)的路由跳轉(zhuǎn),能夠?qū)⑾l(fā)給其他節(jié)點(diǎn)設(shè)備。終端節(jié)點(diǎn)(End device)負(fù)責(zé)數(shù)據(jù)的采集與發(fā)送。以上3種設(shè)備可以分為全功能節(jié)點(diǎn)(FFD)和半功能節(jié)點(diǎn)(RFD)。
每個節(jié)點(diǎn)具有兩個地址:
1)IEEE MAC地址
這是一種64位的地址,這個地址由IEEE組織進(jìn)行分配,用于唯一的標(biāo)識設(shè)備,全球沒有任何兩個設(shè)備具有相同的MAC地址。在ZigBee網(wǎng)絡(luò)中,有時也叫MAC地址為擴(kuò)展地址。
2)16位短地址
16位短地址用于在本地網(wǎng)絡(luò)中標(biāo)識設(shè)備,和在網(wǎng)絡(luò)中發(fā)送數(shù)據(jù),所以如果是處于不同的網(wǎng)絡(luò)中有可能具有相同的短地址。當(dāng)一個節(jié)點(diǎn)加入網(wǎng)絡(luò)的時候?qū)⒂伤母腹?jié)點(diǎn)給它分配短地址,協(xié)調(diào)器的短地址是0。
ZigBee網(wǎng)路的拓?fù)浣Y(jié)構(gòu)主要為星狀(star),樹狀(Cluster_tree),網(wǎng)格(mesh),其中星狀網(wǎng)絡(luò)不支持ZigBee路由器。不同的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)適用用于不同的使用環(huán)境。
2 系統(tǒng)體系結(jié)構(gòu)
基于ZigBee的水質(zhì)監(jiān)測系統(tǒng)可以對水質(zhì)進(jìn)行實(shí)時的監(jiān)控,整個系統(tǒng)由下位機(jī)監(jiān)測網(wǎng)和上位機(jī)軟件組成,下位機(jī)監(jiān)測網(wǎng)負(fù)責(zé)數(shù)據(jù)的采集,和數(shù)據(jù)在ZigBee網(wǎng)絡(luò)上的傳輸。上位機(jī)軟件負(fù)責(zé)對來自監(jiān)測網(wǎng)數(shù)據(jù)的存儲,數(shù)理統(tǒng)計,水質(zhì)參數(shù)超標(biāo)實(shí)時報警,和設(shè)備運(yùn)行狀況的檢查。系統(tǒng)結(jié)構(gòu)如圖1所示。
3 水質(zhì)監(jiān)測網(wǎng)的下位機(jī)
下位機(jī)部分由一個ZigBee轉(zhuǎn)WiFi網(wǎng)關(guān)或一個ZigBee轉(zhuǎn)USB基站,2個PH采集節(jié)點(diǎn),一個溫度采集節(jié)點(diǎn)組成。
所有節(jié)點(diǎn)內(nèi)嵌ZigBee通訊模塊,在節(jié)點(diǎn)的通訊模塊中,燒寫了ZigBee協(xié)議棧的移植版,所有節(jié)點(diǎn)上電即進(jìn)行自組網(wǎng),進(jìn)行數(shù)據(jù)的采集和傳輸。通過AT 命令來指定協(xié)調(diào)器,路由器,和終端節(jié)點(diǎn),以及節(jié)點(diǎn)的相關(guān)參數(shù)。當(dāng)?shù)綦姇r,能進(jìn)行參數(shù)的保存。其下位采集器采用STM32,該款CPU采用的是ARM的 cortex-M3內(nèi)核。其具有出色的實(shí)時性能、優(yōu)越的功
效、高級的創(chuàng)新型的外設(shè)、最大的集成性。CPU工作頻率最高達(dá)到72 MHz。AD采集精度為12位,充分保證了采集傳感器的精度。
ZigBee通信具有通信穩(wěn)定的優(yōu)點(diǎn)。增加的無線功率放大器PA可以一定意義上克服ZigBee通信距離短的問題,使得節(jié)點(diǎn)通信距離可以達(dá)到幾千米,最大限度的保證了通信的穩(wěn)定可靠和通信距離。圖2和圖3分別描述了ZigBee節(jié)點(diǎn)接收和發(fā)送數(shù)據(jù)的流程圖。
在下位機(jī)與PC機(jī)的銜接部分,筆記本可以用WiFi網(wǎng)關(guān)或ZigBee轉(zhuǎn)USB基站來接收數(shù)據(jù),對于臺式機(jī)可以直接用ZigBee轉(zhuǎn)USB基站來接收。
4 水質(zhì)監(jiān)測網(wǎng)的上位機(jī)
上位機(jī)界面采用C#編程,開發(fā)工具為vs2012,數(shù)據(jù)庫為SOL Server。
4.1 WIFI網(wǎng)關(guān)接收模式
當(dāng)啟用WIFI網(wǎng)關(guān)接受模式時,網(wǎng)絡(luò)協(xié)議采用TCP,相比UDP穩(wěn)定,用socket套接字來連接PC機(jī)與WIFI網(wǎng)關(guān)。
當(dāng)上位機(jī)軟件啟動時,上位機(jī)首先創(chuàng)線thwatchport=new Thread(listening);用來監(jiān)視,WiFi網(wǎng)關(guān)是否與PC機(jī)相連,若沒有,則繼續(xù)監(jiān)聽。當(dāng)連接完成時,軟件創(chuàng)建另一線程threcive=new Thread(autorecive),用于接收WiFi網(wǎng)關(guān)發(fā)來的數(shù)據(jù),并隨時將數(shù)據(jù)存入數(shù)據(jù)庫中。
由于第一個線程不斷循環(huán)查詢,當(dāng)WiFi網(wǎng)關(guān)斷開,能保證WiFi網(wǎng)關(guān)重連時的成功,而不必重啟軟件。保證了系統(tǒng)的容錯率和健壯性。
偽代碼描敘如下:
運(yùn)行結(jié)果圖:
4.2 ZigBee轉(zhuǎn)USB模式
對于臺式PC機(jī),用WiFi網(wǎng)關(guān)接收模式固然可行,對于ZigBee網(wǎng)關(guān)與上位機(jī)物理距離較短時,還有另一種接收模式——ZigBee轉(zhuǎn)USB模模式。只要將USB一端插入臺式機(jī)的USB口,當(dāng)上位機(jī)軟開啟時便可以接收數(shù)據(jù)。
USB接受方式的編程實(shí)現(xiàn),采用的是serialPort控件,直接采用事件觸發(fā)的方式。
偽代碼描敘如下:
運(yùn)行結(jié)果圖:
線程和事件觸發(fā)方式,和定時器定時接收方式相比,能保證數(shù)據(jù)的隨到隨收,無數(shù)據(jù)包遺漏現(xiàn)象。
對于數(shù)據(jù)的處理,可以按時間查詢,并將查詢到的數(shù)據(jù)進(jìn)行普通的數(shù)理統(tǒng)計,如計算平均數(shù),超標(biāo)次數(shù),并且能將數(shù)據(jù)查詢統(tǒng)計結(jié)果導(dǎo)出生成Excel文件,方便用戶進(jìn)一步分析調(diào)研。
此外,上位機(jī)軟件具有良好的用戶界面,與異常處理,方便用戶操作與使用,接收界面使用動態(tài)GIF圖片制作,如圖2,第一個蘋果表示等待連接,第二個蘋果表示已連接成功,正在接收數(shù)據(jù),當(dāng)WIFI網(wǎng)關(guān)掉線時,第二個蘋果停止動態(tài)顯示,方便用戶動態(tài)感覺數(shù)據(jù)接收正在進(jìn)行,當(dāng)數(shù)值超標(biāo)時,或設(shè)備電壓不足時,軟件亦能及時彈出報警窗口。
5 結(jié)論
基于ZigBee的自來水監(jiān)測網(wǎng)能有效對自來水水質(zhì)進(jìn)行實(shí)時監(jiān)測,設(shè)計實(shí)現(xiàn)了系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu),完成了傳感器數(shù)據(jù)采集、傳輸、查詢顯示以及報警等系統(tǒng)功能。通過網(wǎng)絡(luò)傳輸傳感器的數(shù)據(jù)采用兩種方式:WiFi網(wǎng)關(guān)的socket方式和ZigBee轉(zhuǎn)USB的serialPort方式。兩種方式都能實(shí)現(xiàn)數(shù)據(jù)的實(shí)時傳輸?shù)膶?shí)時接收,基于線程的socket,使用了線程輪轉(zhuǎn)循環(huán)的方式,能有效防止WiFi網(wǎng)關(guān)掉線,并提醒用戶。此時接收線程 threcieve終止,監(jiān)聽線程thwatchport依舊循環(huán),等待WiFi網(wǎng)關(guān)重新連接。
下一階段工作的重點(diǎn),圍繞完善系統(tǒng)功能和擴(kuò)展系統(tǒng)應(yīng)用展開:
對于下位機(jī)網(wǎng)絡(luò),采集節(jié)點(diǎn)數(shù)目不夠多,參數(shù)種類也不夠豐富。在PANID,信道,和數(shù)據(jù)包一致的情況下,可以不斷加入新的節(jié)點(diǎn),增加下位機(jī)網(wǎng)絡(luò)的功能。
對于數(shù)據(jù)傳輸,利用GPRS網(wǎng),通過GPRS短信直接通知水質(zhì)超標(biāo)等情況,亦可以將ZigBee網(wǎng)絡(luò)轉(zhuǎn)為3G或4G網(wǎng)絡(luò),使數(shù)據(jù)傳輸?shù)姆绞阶兊渺`活多樣。
在上位機(jī)功能部分,豐富數(shù)據(jù)查詢統(tǒng)計方式,添加系統(tǒng)日志管理,改進(jìn)異常情況的友好提示等。豐富客戶端的操作平臺,延伸至Web方式,以及基于移動終端的App應(yīng)用。對
于已經(jīng)采集的數(shù)據(jù),可以進(jìn)行數(shù)據(jù)挖掘,和大數(shù)據(jù)運(yùn)算,研究當(dāng)?shù)亟?jīng)濟(jì),生活的狀態(tài)。
評論