胡 嬌1,孫 堅1,王曉薇1,沈 澍2,3,鄒志強2,3
(1.南京郵電大學(xué) 貝爾學(xué)院,江蘇 南京 210023;
2.南京郵電大學(xué) 計算機學(xué)院,江蘇 南京 210003;
3.江蘇省無線傳感網(wǎng)高技術(shù)研究重點實驗室,江蘇 南京 210003)
摘 要: 為了對水環(huán)境進行數(shù)據(jù)采集、傳輸和顯示的全方位處理,設(shè)計了一套基于無線傳感網(wǎng)(WSNs)的水環(huán)境云端監(jiān)測系統(tǒng),闡述了系統(tǒng)的網(wǎng)絡(luò)架構(gòu)及具體組成部分,包括終端監(jiān)測節(jié)點、簇頭節(jié)點、數(shù)據(jù)匯聚節(jié)點和基于Yeelink的遠程監(jiān)視中心,并詳細介紹了各部分的軟硬件設(shè)計。同時,支持用戶在手機終端實時監(jiān)測采集到的水溫、壓強、pH值等信息。通過實驗和測試可以看出,該系統(tǒng)為低成本實時在線水質(zhì)監(jiān)測提供了一套可行的方案。
關(guān)鍵詞: Arduino;水環(huán)境監(jiān)測;無線傳感網(wǎng)絡(luò)(WSNs);云端網(wǎng)絡(luò);Yeelink
0 引言
隨著人口膨脹和經(jīng)濟的高速增長,環(huán)境污染變得日益嚴重,特別是近年來的水質(zhì)污染。大自然是一個有機的整體,水環(huán)境的惡化不可避免地會影響整體環(huán)境改變[1]。傳統(tǒng)的水質(zhì)監(jiān)測主要是通過用便攜式儀器進行人工檢測、分析計算水環(huán)境中微生物的活性情況,但這些方法或效率低,或成本高,或精度低,并且對周邊生態(tài)環(huán)境有影響[2-3]。也有人采用開源平臺來搭建監(jiān)測系統(tǒng),但規(guī)模較小,不適合大面積、分散的水域監(jiān)測[4]。直到最近幾年,無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSNs)技術(shù)的引入,使得監(jiān)測效率得到大幅度提高[5-6]。但是,由于水質(zhì)環(huán)境的復(fù)雜性以及河流湖泊地域的限制,WSNs實施起來比較困難,并且單個節(jié)點大多數(shù)只能測量單一數(shù)據(jù),很難對水環(huán)境做出正確判斷,處理的數(shù)據(jù)也是通過較為傳統(tǒng)的終端機顯示。
本文在WSNs的基礎(chǔ)上,針對當前水質(zhì)監(jiān)測技術(shù)的不足,設(shè)計了一種水環(huán)境云端監(jiān)測系統(tǒng)。該設(shè)計對傳感器節(jié)點進行整合,利用雙核結(jié)構(gòu)將原本單一的傳感器整合在一個節(jié)點上,使得單一節(jié)點可同時監(jiān)測溫度、pH值和壓強等多項數(shù)據(jù);憑借WSNs技術(shù)布局靈活、成本低、功耗低、無需基礎(chǔ)設(shè)施支撐等優(yōu)勢,解決組網(wǎng)問題,實現(xiàn)對水域的覆蓋;加入GPS模塊,結(jié)合壓力傳感器實現(xiàn)監(jiān)測節(jié)點的三維定位;在數(shù)據(jù)顯示上,本設(shè)計一改傳統(tǒng)的終端機顯示方法,引入當前熱門的云端網(wǎng)絡(luò)技術(shù),將數(shù)據(jù)匯聚節(jié)點處理得到的數(shù)據(jù)直接發(fā)送至云端網(wǎng)絡(luò),使用戶可以在Yeelink物聯(lián)網(wǎng)平臺上實時監(jiān)測水質(zhì)數(shù)據(jù),真正實現(xiàn)隨時隨地進行水質(zhì)監(jiān)測。
1 系統(tǒng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)
為了獲得最佳效果,本系統(tǒng)設(shè)計了一種混合網(wǎng)絡(luò)拓撲結(jié)構(gòu),整個系統(tǒng)由以下四部分組成:終端監(jiān)測節(jié)點、簇頭節(jié)點、數(shù)據(jù)匯聚節(jié)點和遠程監(jiān)視中心。其中終端監(jiān)測節(jié)點、簇頭節(jié)點和數(shù)據(jù)匯聚節(jié)點構(gòu)建成了一個無線傳感器網(wǎng)絡(luò),如圖1所示。擬定在監(jiān)測區(qū)域部署N個節(jié)點得到N維的原始信號。接著,按照分層分簇的網(wǎng)絡(luò)結(jié)構(gòu)進行邏輯映射得到M個簇,簇頭節(jié)點分別為{B1,B2,B3,…,BM},簇頭節(jié)點負責收集本簇內(nèi)的數(shù)據(jù);最后,由M個簇頭節(jié)點把信息匯聚到數(shù)據(jù)匯聚節(jié)點,由數(shù)據(jù)匯聚節(jié)點傳輸?shù)缴蠈拥脑贫司W(wǎng)絡(luò)。因此,數(shù)據(jù)匯聚節(jié)點與簇頭節(jié)點之間構(gòu)成了樹狀網(wǎng)絡(luò),而每個簇頭節(jié)點所負責的一簇區(qū)域內(nèi)的各個終端節(jié)點之間則構(gòu)成了一個網(wǎng)狀網(wǎng)絡(luò),以確保能選擇最佳的路由路徑進行數(shù)據(jù)的傳輸。
在簇頭節(jié)點上部署GPS定位裝置,用以提供準確的參考坐標,而在每個簇頭節(jié)點負責的一簇區(qū)域當中,采用三邊定位算法來計算每個終端監(jiān)測節(jié)點的位置坐標。結(jié)合壓力傳感器得出的水深,從而獲得三維坐標。
2 系統(tǒng)硬件設(shè)計
系統(tǒng)核心處理器選用ATmega328,其I/O口豐富,可以支持更多種類和更大數(shù)量的傳感器,實現(xiàn)更多水質(zhì)參數(shù)的監(jiān)測[7]。系統(tǒng)各部分分工合作,終端監(jiān)測節(jié)點采集傳感器數(shù)據(jù),分析處理后發(fā)送給簇頭節(jié)點;簇頭節(jié)點實現(xiàn)本簇內(nèi)終端監(jiān)測節(jié)點數(shù)據(jù)的收集;數(shù)據(jù)匯聚節(jié)點監(jiān)測網(wǎng)絡(luò),實現(xiàn)數(shù)據(jù)的統(tǒng)計分析和上傳。系統(tǒng)硬件結(jié)構(gòu)組成如圖2。
2.1 電源模塊
節(jié)點采用外部+5 V電源供電,通過高效線性穩(wěn)壓器AMS1117得到+3.3 V電壓供給無線傳輸模塊、數(shù)據(jù)上傳模塊、GPS模塊和溫度壓強傳感器。而調(diào)理電路工作所需的±5 V電壓則是利用ICL7660得到,如圖3所示。
2.2 調(diào)理模塊
本系統(tǒng)測量pH值采用雷磁公司的E-201-C傳感器,其輸出信號為微弱的直流信號,大小與pH值存在線性關(guān)系,信號范圍為-450~+450 mV,不便于采集。于是通過調(diào)理模塊對該信號進行線性處理,最終得到便于采集的0~3 V范圍的電壓信號。
圖3展示的便是調(diào)理電路,由跟隨、線性放大和反向放大三部分組成。用VOUT表示調(diào)理電路的輸出,VIN表示pH傳感器信號,最終兩者間服從關(guān)系如下:
這里取R2、R3、R4、R7皆為1 k,則式(1)為:
VOUT=VREF-2VIN(2)
得到的輸出可直接送至處理器讀取進行A/D轉(zhuǎn)換。由于實際情況多變,調(diào)理電路的放大倍數(shù)和電平抬升量均是可調(diào)節(jié)的,可以減小誤差,更好地適應(yīng)多樣化的環(huán)境。
2.3 GPS模塊
GPS模塊選用一款與Arduino兼容的GPS擴展板,支持GPS衛(wèi)星導(dǎo)航技術(shù),能讓簇頭節(jié)點發(fā)送信息并使用GSM網(wǎng)絡(luò)。同時在GPS模塊加入GPS記錄單元——Itead Arduino GPS定位導(dǎo)航擴展板NEO-6,可記錄GPS數(shù)據(jù),方便后期數(shù)據(jù)分析,改進分簇算法,解決覆蓋率不足等問題。
2.4 數(shù)據(jù)上傳模塊
數(shù)據(jù)上傳模塊采用以W5100為核心的網(wǎng)絡(luò)擴展模塊。W5100內(nèi)部集成了TCP/IP協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層和物理層,使用它可以不需要考慮以太網(wǎng)的控制,只需要進行簡單的端口控制便可實現(xiàn)網(wǎng)絡(luò)連接。擴展版支持SPI接口,使得W5100可以利用SPI協(xié)議與處理器進行通信從而獲取需要上傳的數(shù)據(jù)[7]。
2.5 接口電路
無線通信模塊選用CC2530核心板,進行邏輯電平匹配后,使用標準的串口與ATmega328通信,不僅降低了開發(fā)難度,也提升了系統(tǒng)的整體性能。終端監(jiān)測節(jié)點采用了微型數(shù)字型溫度壓強傳感器MS5541C,其工作于+3.3 V的數(shù)字電壓下,內(nèi)部集成了A/D轉(zhuǎn)換器,可將電壓值直接轉(zhuǎn)換為16位數(shù)字信號輸出,精度高,支持SPI協(xié)議,在時鐘(32.768 kHz)的控制下與ATmega328通信,實現(xiàn)溫度壓強的測量[8]。接口電路原理如圖4所示。
3 系統(tǒng)軟件設(shè)計
3.1 終端監(jiān)測節(jié)點主程序
MS5541C是一款綜合了溫度和壓力測量的微型數(shù)字型傳感器,可以根據(jù)下式
P=P0+ρgh(3)
計算水深。其中P是水下壓強,P0是大氣壓強(約為1 Pa),ρ、g、h分別是水的密度、重力加速度和水的深度。這樣結(jié)合簇頭節(jié)點上GPS模塊可以實現(xiàn)水域的三維監(jiān)測。由于壓強傳感器的輸出電壓受溫度等因素的影響較大,需要通過外圍處理器進行軟件補償。
于是主程序除了負責系統(tǒng)的初始化、定位和數(shù)據(jù)的采集處理之外,還要實現(xiàn)與傳感器的通信,如圖5所示。
主程序主要進行以下操作:
?。?)系統(tǒng)初始化,包括傳感器的初始化;
(2)獲取校正系數(shù),處理器先從MS5541C的64 bit的PROM中讀取它自帶的校準數(shù)據(jù),然后將校準數(shù)據(jù)轉(zhuǎn)換成校正系數(shù);
(3)讀取水質(zhì)參數(shù);
?。?)溫度校正,首先計算出校正溫度,然后依據(jù)測量溫度和校正溫度計算得出實際溫度;
?。?)對壓強值和pH值進行溫度補償;
(6)數(shù)據(jù)傳遞,即對數(shù)據(jù)進行位置信息綁定后將數(shù)據(jù)包通過串口傳遞給無線通信模塊。
3.2 簇頭節(jié)點主程序
簇頭節(jié)點主要實現(xiàn)位置信息的獲取和數(shù)據(jù)的轉(zhuǎn)發(fā),主程序流程圖如圖6。主要步驟如下:
?。?)系統(tǒng)初始化,包括GPS模塊的初始化;
(2)通過AT指令啟動GPS功能并記錄GPS坐標;
(3)將本簇頭節(jié)點獲取的位置坐標廣播給終端監(jiān)測節(jié)點及其他簇頭節(jié)點;
?。?)簇頭節(jié)點進入路由模式,與終端監(jiān)測節(jié)點和其他簇頭節(jié)點進行無線通信,實現(xiàn)數(shù)據(jù)包的轉(zhuǎn)發(fā)等功能。
3.3 數(shù)據(jù)匯聚節(jié)點主程序
數(shù)據(jù)匯聚節(jié)點主程序負責讀取CC2530傳遞過來的數(shù)據(jù)并交由W5100上傳。由于采用雙核模式,主程序可以設(shè)計得非常簡單,流程如圖7所示。主要步驟如下:
?。?)系統(tǒng)初始化,包括網(wǎng)絡(luò)端口初始化以及設(shè)備編號、傳感器編號配置等,初始化后進入偵聽狀態(tài);
?。?)如果產(chǎn)生串口中斷,表明CC2530有數(shù)據(jù)發(fā)送過來,則讀取數(shù)據(jù);
?。?)數(shù)據(jù)讀取完畢后,進行簡單的處理,隨后將數(shù)據(jù)上傳至遠程監(jiān)視中心,上傳結(jié)束后繼續(xù)偵聽。
3.4 無線通信程序
CC2530的引入使得無線通信的軟件設(shè)計變得非常簡單,直接使用TI公司提供的協(xié)議棧ZStack進行開發(fā)[9-11]。該協(xié)議棧是基于操作系統(tǒng)而存在的,建立在事件循環(huán)機制的思想之上。
數(shù)據(jù)匯聚節(jié)點上電初始化后首先詢問是否存在現(xiàn)有網(wǎng)絡(luò),如有則直接入網(wǎng)綁定,開始轉(zhuǎn)發(fā)數(shù)據(jù)、審核入網(wǎng)申請,相當于執(zhí)行簇頭節(jié)點程序;若不存在則將自己配置為協(xié)調(diào)器,啟動網(wǎng)絡(luò),為入網(wǎng)節(jié)點分配地址,接收數(shù)據(jù)并上傳。終端監(jiān)測節(jié)點初始化后詢問是否存在現(xiàn)有網(wǎng)絡(luò),沒有則等待,有則直接入網(wǎng)綁定,運行三邊算法進行定位,然后開始采集傳感器數(shù)據(jù)并傳遞給父節(jié)點,等待應(yīng)答,如果一直收不到應(yīng)答則重新尋找網(wǎng)絡(luò)。無線通信的工作流程如圖8所示。
4 遠程監(jiān)視中心
遠程監(jiān)視中心采用Yeelink物聯(lián)網(wǎng)交互平臺,可以實現(xiàn)對前端的信息采集和信息處理設(shè)備的管理。在平臺上注冊,然后添加自己的設(shè)備,對設(shè)備進行管理。由于Yeelink平臺是開放的,這就需要對每個用戶以及用戶的設(shè)備進行管理,確保傳感器數(shù)據(jù)與用戶傳感器一一對應(yīng)。Yeelink為了解決這個問題,采用分層管理的模式:用戶層、設(shè)備層和傳感器層[12]。首先分配給注冊用戶獨有的APIKEY,每個用戶可自行管理自己賬戶的設(shè)備,系統(tǒng)分配給每個設(shè)備獨有的設(shè)備編號,設(shè)備里可以添加各種傳感器,同樣地,系統(tǒng)分配給傳感器獨有的傳感器編號。
Yeelink物聯(lián)網(wǎng)平臺能同時支持電腦終端和手機終端實時顯示,用戶可實時查看水質(zhì)參數(shù),十分便捷??蛻舳孙@示界面如圖9所示。
5 系統(tǒng)測試
對監(jiān)測節(jié)點進行了防水處理之后,選取了室內(nèi)和室外兩種測試對該系統(tǒng)進行了初步測試。其中室外選在了南京郵電大學(xué)仙林校區(qū)的人工湖(大致在北緯32°06′34.40″,東經(jīng)118°55′40.58″)。
溫度測量范圍能達到-40℃~+85.0℃,精度在1℃以內(nèi);壓強測量范圍為0~14 bar,精度達到1 mbar;pH值測量范圍為1~14,精度達0.01。在水下測量時,選擇12月初某天的8∶00~20∶00時間段,每半小時測量一次,并記錄數(shù)據(jù)。在湖面下0.5 m左右處最低溫度為 7.0 ℃,最高溫度為9.12 ℃,壓強在1 050 mbar左右,pH值在7.20左右。測試數(shù)據(jù)顯示如圖10所示。并對標準儀器進行人工測量得到的值與系統(tǒng)測量得到的數(shù)據(jù)進行了對比。
通過以上數(shù)據(jù)可以發(fā)現(xiàn),pH值的測量誤差相對較大,這是由于pH電極的信號需要經(jīng)過調(diào)理電路的處理,而這種模擬電路帶來的誤差較大,但總體來說系統(tǒng)測量值與人工測量得到的數(shù)據(jù)基本接近,說明本系統(tǒng)數(shù)據(jù)測量的準確性。目前平均數(shù)據(jù)傳送時延在20~30 s之間,有較好的實時性。無線通信部分采用最新的ZigBee2007協(xié)議棧,采取了碰撞避免策略,MAC層也采用了完全確認(ACK)的數(shù)據(jù)傳輸模式,支持差錯重傳,提升了系統(tǒng)的可靠性。
6 結(jié)論
本文針對水質(zhì)參數(shù)的網(wǎng)絡(luò)監(jiān)測問題,設(shè)計并實現(xiàn)了一個基于無線傳感網(wǎng)的水質(zhì)參數(shù)云端監(jiān)測系統(tǒng),該系統(tǒng)由終端監(jiān)測節(jié)點、簇頭節(jié)點、數(shù)據(jù)匯聚節(jié)點和遠程監(jiān)視中心組成,可以完成信息的自動采集、信息的無線傳輸以及基于云端的信息存儲,并可以在移動終端實時查看監(jiān)測數(shù)據(jù)。大量的實際實驗表明本系統(tǒng)具有一定的實時性和可靠性。本系統(tǒng)不僅可以滿足對水環(huán)境的監(jiān)測需要,而且由于模塊化設(shè)計,使得本系統(tǒng)具有一定的普適性,可用于其他環(huán)境監(jiān)測的領(lǐng)域,具有廣闊的應(yīng)用市場??紤]到能源功率和成本問題,本系統(tǒng)還需要進一步優(yōu)化。
參考文獻
[1] JIN D L, LIU Y W. An overview of the water environment[J]. Water Resour, 2006(27):33-36.
[2] Jiang Peng, Xia Hongbo, He Zhiye. Design of a water environment monitoring system based on wireless sensor networks[J]. Sensors, 2009,9(8):6411-6434 .
[3] 周良明,劉玉光,郭佩芳,等.多參數(shù)水質(zhì)檢測儀在海洋水質(zhì)監(jiān)測中的應(yīng)用[J].氣象水文海洋儀器,2003(4):45-56.
[4] TATSIOPOULOS C, KTENA A. A smart ZigBee based wireless sensor meter system[C]. 2009 16th International Conference on Systems,Signals and Image Processing,2009:1-4.
[5] He Dong, Zhang Lixin. The water quality monitoring system based on WSN[C]. 2012 2nd International Conference on Consumer Electronics, Communications and Networks,2012:3661-3664.
[6] 秦華,孫曉松.基于Arduino/Android的環(huán)境狀況監(jiān)測系統(tǒng)設(shè)計[J].無線互聯(lián)科技,2013(1):59-61.
[7] 程晨.Arduino開發(fā)實踐指南AVR篇[M].北京:機械工業(yè)出版社,2012.
[8] 徐守品,劉越,張靚.基于ATMEGA32單片機高精度微水測量儀的設(shè)計與實現(xiàn)[J].精密制造與自動化,2012(4):34-36.
[9] 李新.基于CC2530的ZigBee網(wǎng)絡(luò)節(jié)點設(shè)計[J].PLC&FA,2011(3):97-99.
[10] 吳岳忠,汪濤,周訓(xùn)志,等.基于物聯(lián)網(wǎng)的家居室內(nèi)環(huán)境在線監(jiān)控系統(tǒng)研究[J].微型機與應(yīng)用,2014,33(14):60-63.
[11] 張毅,張靈至,盧威.面向物聯(lián)網(wǎng)的ZigBee-紅外控制系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2013,39(5):82-85.
[12] Yeelink. API Documents[EB/OL].(2014-12)[2015-01-12]. http://www.yeelink.net/develop/api.