胡 嬌1,,孫 堅1,,王曉薇1,沈 澍2,,3,,鄒志強2,3
(1.南京郵電大學 貝爾學院,,江蘇 南京 210023,;
2.南京郵電大學 計算機學院,江蘇 南京 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)星導航技術(shù),,能讓簇頭節(jié)點發(fā)送信息并使用GSM網(wǎng)絡(luò)。同時在GPS模塊加入GPS記錄單元——Itead Arduino GPS定位導航擴展板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)初始化,包括傳感器的初始化,;
?。?)獲取校正系數(shù),處理器先從MS5541C的64 bit的PROM中讀取它自帶的校準數(shù)據(jù),,然后將校準數(shù)據(jù)轉(zhuǎn)換成校正系數(shù),;
(3)讀取水質(zhì)參數(shù),;
?。?)溫度校正,首先計算出校正溫度,,然后依據(jù)測量溫度和校正溫度計算得出實際溫度,;
(5)對壓強值和pH值進行溫度補償,;
?。?)數(shù)據(jù)傳遞,即對數(shù)據(jù)進行位置信息綁定后將數(shù)據(jù)包通過串口傳遞給無線通信模塊,。
3.2 簇頭節(jié)點主程序
簇頭節(jié)點主要實現(xiàn)位置信息的獲取和數(shù)據(jù)的轉(zhuǎn)發(fā),,主程序流程圖如圖6。主要步驟如下:
?。?)系統(tǒng)初始化,,包括GPS模塊的初始化;
?。?)通過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ù),;
(3)數(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)進行了初步測試,。其中室外選在了南京郵電大學仙林校區(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] 吳岳忠,汪濤,,周訓志,,等.基于物聯(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.