基于ZigBee的自來(lái)水監測網(wǎng)絡(luò )系統設計與實(shí)現
摘要:基于ZigBee的自來(lái)水水質(zhì)監測系統利用傳感器采集數據,用ZigBee網(wǎng)絡(luò )傳輸數據,通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò )和USB基站長(cháng)距離傳送到上位機。通過(guò)對自來(lái)水水質(zhì)進(jìn)行實(shí)時(shí)的監控,存儲水質(zhì)參數和數理統計,以及超閾值報警提示等功能。相比于傳統的人工監測,能有效節省人工,且更能保證水質(zhì)監測的實(shí)時(shí)性,有效性,連貫性。
本文引用地址:http://dyxdggzs.com/article/201610/306133.htm關(guān)鍵詞:Zigbee;水質(zhì)監測網(wǎng);網(wǎng)關(guān);serialPort
隨著(zhù)我國經(jīng)濟的高速發(fā)展,水質(zhì)的污染和破壞問(wèn)題日趨嚴重,著(zhù)眼于社會(huì )所需,我們研究了基于ZigBee的水質(zhì)監測系統,為水質(zhì)保駕護航。
水質(zhì)污染問(wèn)題刻不容緩,城市飲水主要是通過(guò)自來(lái)水,其中的安全隱患不容忽視,所以需要一種能隨時(shí)監測水質(zhì)變化的設備系統。論文探討構建基于ZigBee技術(shù)的自來(lái)水監測網(wǎng)絡(luò )物理結構,重點(diǎn)是ZigBee網(wǎng)關(guān)轉wifi和轉USB的協(xié)議轉換。上位機監控功能中,實(shí)現了數據實(shí)時(shí)接收、顯示以及歷史數據查詢(xún),對超閾值數據,報警提示。
1 物聯(lián)網(wǎng)ZigBee技術(shù)簡(jiǎn)介
ZigBee技術(shù)具有自組網(wǎng),低功耗,延時(shí)小,多跳的特點(diǎn),適用于長(cháng)時(shí)間組網(wǎng)監測。在ZigBee網(wǎng)絡(luò )中有3種設備,協(xié)調器(Co_ordinator) 為全功能節點(diǎn)(FFD),負責建立網(wǎng)絡(luò ),一個(gè)ZigBee網(wǎng)絡(luò )只能有一個(gè)協(xié)調器,相當于蜂群結構中的蜂后,當網(wǎng)路建立完成后,協(xié)調器的功能相當于普通路由器(Router)。路由器負責數據的路由跳轉,能夠將消息發(fā)給其他節點(diǎn)設備。終端節點(diǎn)(End device)負責數據的采集與發(fā)送。以上3種設備可以分為全功能節點(diǎn)(FFD)和半功能節點(diǎn)(RFD)。
每個(gè)節點(diǎn)具有兩個(gè)地址:
1)IEEE MAC地址
這是一種64位的地址,這個(gè)地址由IEEE組織進(jìn)行分配,用于唯一的標識設備,全球沒(méi)有任何兩個(gè)設備具有相同的MAC地址。在ZigBee網(wǎng)絡(luò )中,有時(shí)也叫MAC地址為擴展地址。
2)16位短地址
16位短地址用于在本地網(wǎng)絡(luò )中標識設備,和在網(wǎng)絡(luò )中發(fā)送數據,所以如果是處于不同的網(wǎng)絡(luò )中有可能具有相同的短地址。當一個(gè)節點(diǎn)加入網(wǎng)絡(luò )的時(shí)候將由它的父節點(diǎn)給它分配短地址,協(xié)調器的短地址是0。
ZigBee網(wǎng)路的拓撲結構主要為星狀(star),樹(shù)狀(Cluster_tree),網(wǎng)格(mesh),其中星狀網(wǎng)絡(luò )不支持ZigBee路由器。不同的網(wǎng)絡(luò )拓撲結構適用用于不同的使用環(huán)境。
2 系統體系結構
基于ZigBee的水質(zhì)監測系統可以對水質(zhì)進(jìn)行實(shí)時(shí)的監控,整個(gè)系統由下位機監測網(wǎng)和上位機軟件組成,下位機監測網(wǎng)負責數據的采集,和數據在ZigBee網(wǎng)絡(luò )上的傳輸。上位機軟件負責對來(lái)自監測網(wǎng)數據的存儲,數理統計,水質(zhì)參數超標實(shí)時(shí)報警,和設備運行狀況的檢查。系統結構如圖1所示。

3 水質(zhì)監測網(wǎng)的下位機
下位機部分由一個(gè)ZigBee轉WiFi網(wǎng)關(guān)或一個(gè)ZigBee轉USB基站,2個(gè)PH采集節點(diǎn),一個(gè)溫度采集節點(diǎn)組成。
所有節點(diǎn)內嵌ZigBee通訊模塊,在節點(diǎn)的通訊模塊中,燒寫(xiě)了ZigBee協(xié)議棧的移植版,所有節點(diǎn)上電即進(jìn)行自組網(wǎng),進(jìn)行數據的采集和傳輸。通過(guò)AT 命令來(lái)指定協(xié)調器,路由器,和終端節點(diǎn),以及節點(diǎn)的相關(guān)參數。當掉電時(shí),能進(jìn)行參數的保存。其下位采集器采用STM32,該款CPU采用的是ARM的 cortex-M3內核。其具有出色的實(shí)時(shí)性能、優(yōu)越的功
效、高級的創(chuàng )新型的外設、最大的集成性。CPU工作頻率最高達到72 MHz。AD采集精度為12位,充分保證了采集傳感器的精度。
ZigBee通信具有通信穩定的優(yōu)點(diǎn)。增加的無(wú)線(xiàn)功率放大器PA可以一定意義上克服ZigBee通信距離短的問(wèn)題,使得節點(diǎn)通信距離可以達到幾千米,最大限度的保證了通信的穩定可靠和通信距離。圖2和圖3分別描述了ZigBee節點(diǎn)接收和發(fā)送數據的流程圖。

在下位機與PC機的銜接部分,筆記本可以用WiFi網(wǎng)關(guān)或ZigBee轉USB基站來(lái)接收數據,對于臺式機可以直接用ZigBee轉USB基站來(lái)接收。
4 水質(zhì)監測網(wǎng)的上位機
上位機界面采用C#編程,開(kāi)發(fā)工具為vs2012,數據庫為SOL Server。
4.1 WIFI網(wǎng)關(guān)接收模式
當啟用WIFI網(wǎng)關(guān)接受模式時(shí),網(wǎng)絡(luò )協(xié)議采用TCP,相比UDP穩定,用socket套接字來(lái)連接PC機與WIFI網(wǎng)關(guān)。
當上位機軟件啟動(dòng)時(shí),上位機首先創(chuàng )線(xiàn)thwatchport=new Thread(listening);用來(lái)監視,WiFi網(wǎng)關(guān)是否與PC機相連,若沒(méi)有,則繼續監聽(tīng)。當連接完成時(shí),軟件創(chuàng )建另一線(xiàn)程threcive=new Thread(autorecive),用于接收WiFi網(wǎng)關(guān)發(fā)來(lái)的數據,并隨時(shí)將數據存入數據庫中。
由于第一個(gè)線(xiàn)程不斷循環(huán)查詢(xún),當WiFi網(wǎng)關(guān)斷開(kāi),能保證WiFi網(wǎng)關(guān)重連時(shí)的成功,而不必重啟軟件。保證了系統的容錯率和健壯性。
偽代碼描敘如下:
運行結果圖:
4.2 ZigBee轉USB模式
對于臺式PC機,用WiFi網(wǎng)關(guān)接收模式固然可行,對于ZigBee網(wǎng)關(guān)與上位機物理距離較短時(shí),還有另一種接收模式——ZigBee轉USB模模式。只要將USB一端插入臺式機的USB口,當上位機軟開(kāi)啟時(shí)便可以接收數據。
USB接受方式的編程實(shí)現,采用的是serialPort控件,直接采用事件觸發(fā)的方式。
偽代碼描敘如下:
運行結果圖:

線(xiàn)程和事件觸發(fā)方式,和定時(shí)器定時(shí)接收方式相比,能保證數據的隨到隨收,無(wú)數據包遺漏現象。
對于數據的處理,可以按時(shí)間查詢(xún),并將查詢(xún)到的數據進(jìn)行普通的數理統計,如計算平均數,超標次數,并且能將數據查詢(xún)統計結果導出生成Excel文件,方便用戶(hù)進(jìn)一步分析調研。
此外,上位機軟件具有良好的用戶(hù)界面,與異常處理,方便用戶(hù)操作與使用,接收界面使用動(dòng)態(tài)GIF圖片制作,如圖2,第一個(gè)蘋(píng)果表示等待連接,第二個(gè)蘋(píng)果表示已連接成功,正在接收數據,當WIFI網(wǎng)關(guān)掉線(xiàn)時(shí),第二個(gè)蘋(píng)果停止動(dòng)態(tài)顯示,方便用戶(hù)動(dòng)態(tài)感覺(jué)數據接收正在進(jìn)行,當數值超標時(shí),或設備電壓不足時(shí),軟件亦能及時(shí)彈出報警窗口。
5 結論
基于ZigBee的自來(lái)水監測網(wǎng)能有效對自來(lái)水水質(zhì)進(jìn)行實(shí)時(shí)監測,設計實(shí)現了系統的網(wǎng)絡(luò )結構,完成了傳感器數據采集、傳輸、查詢(xún)顯示以及報警等系統功能。通過(guò)網(wǎng)絡(luò )傳輸傳感器的數據采用兩種方式:WiFi網(wǎng)關(guān)的socket方式和ZigBee轉USB的serialPort方式。兩種方式都能實(shí)現數據的實(shí)時(shí)傳輸的實(shí)時(shí)接收,基于線(xiàn)程的socket,使用了線(xiàn)程輪轉循環(huán)的方式,能有效防止WiFi網(wǎng)關(guān)掉線(xiàn),并提醒用戶(hù)。此時(shí)接收線(xiàn)程 threcieve終止,監聽(tīng)線(xiàn)程thwatchport依舊循環(huán),等待WiFi網(wǎng)關(guān)重新連接。
下一階段工作的重點(diǎn),圍繞完善系統功能和擴展系統應用展開(kāi):
對于下位機網(wǎng)絡(luò ),采集節點(diǎn)數目不夠多,參數種類(lèi)也不夠豐富。在PANID,信道,和數據包一致的情況下,可以不斷加入新的節點(diǎn),增加下位機網(wǎng)絡(luò )的功能。
對于數據傳輸,利用GPRS網(wǎng),通過(guò)GPRS短信直接通知水質(zhì)超標等情況,亦可以將ZigBee網(wǎng)絡(luò )轉為3G或4G網(wǎng)絡(luò ),使數據傳輸的方式變得靈活多樣。
在上位機功能部分,豐富數據查詢(xún)統計方式,添加系統日志管理,改進(jìn)異常情況的友好提示等。豐富客戶(hù)端的操作平臺,延伸至Web方式,以及基于移動(dòng)終端的App應用。對
于已經(jīng)采集的數據,可以進(jìn)行數據挖掘,和大數據運算,研究當地經(jīng)濟,生活的狀態(tài)。
評論