歐國成
(羅定職業(yè)技術學院 電子信息系,廣東 羅定 527200)
基于WSN的水產(chǎn)養(yǎng)殖水質監(jiān)測系統(tǒng)設計
歐國成
(羅定職業(yè)技術學院 電子信息系,廣東羅定 527200)
養(yǎng)殖環(huán)境水質參數(shù)采集的智能化與信息化是保障養(yǎng)殖安全、提高養(yǎng)殖質量的關鍵技術之一,本文設計了一款適于水質參數(shù)監(jiān)測的無線傳感器網(wǎng)絡節(jié)點及其網(wǎng)絡系統(tǒng)。節(jié)點以MSP430F149為處理器,nRF905射頻芯片及其外圍電路為無線通信模塊,BQ2057W充電管理芯片及其外圍電路為太陽能充電模塊,DOG-96DS溶解氧電極和PHG-96FS pH電極及其信號調理電路為傳感器模塊,并以該節(jié)點為硬件平臺編寫了通信協(xié)議、應用程序和數(shù)據(jù)監(jiān)控中心軟件,測試了節(jié)點功耗、通信距離以及鋰電池充電時間。實驗結果表明,該系統(tǒng)可實現(xiàn)水質參數(shù)的實時監(jiān)測、實時顯示和數(shù)據(jù)預警,具有遠程數(shù)據(jù)管理功能。
無線傳感器網(wǎng)絡;水質監(jiān)測;節(jié)點設計;低功耗;數(shù)據(jù)監(jiān)控中心軟件
養(yǎng)殖環(huán)境水質參數(shù)采集的智能化和信息化是保障養(yǎng)殖安全、提高養(yǎng)殖質量的關鍵技術之一[1]。國內(nèi)外已有科研人員將無線傳感器網(wǎng)絡(wireless sensor network,WSN)技術應用于水質參數(shù)采集與監(jiān)測。為滿足水質參數(shù)采集實時性高,周期性強的需求,研究人員結合不同的應用場合,設計了多種專用的無線傳感器網(wǎng)絡節(jié)點[2-3]。
張玨等[4]采用MSP430F149+CC2420設計了一款監(jiān)測水溫和pH值的無線傳感器網(wǎng)絡節(jié)點及其網(wǎng)絡系統(tǒng),其傳感器采用了美國Global Water公司的WQ系列水質參數(shù)檢測傳感器。但由于WQ系列傳感器價格較高,工作電壓要求10V以上,因此限制了其推廣和應用。
夏宏博等[5]采用MSP430F1611+CC2430設計了一款在線監(jiān)測水體pH、溶解氧和溫度參數(shù)的無線傳感器網(wǎng)絡節(jié)點及其網(wǎng)絡系統(tǒng),但由于其節(jié)點通信距離短,網(wǎng)絡丟包率和誤包率較高(通信距離為80米時丟包率和誤包率分別為22.8%和2.2%),節(jié)點缺乏長時間持續(xù)工作的能力,很難滿足實際應用的要求。
美國Heliosware公司設計了一款用于監(jiān)測水體的水壓、pH值、電導率以及溶解氧參數(shù)的無線傳感器網(wǎng)絡系統(tǒng)(EmNet)[6],并將其應用于湖泊水環(huán)境監(jiān)測。該系統(tǒng)的傳感器節(jié)點采用了ATmega103單片機和TinyOS操作系統(tǒng),采用鋰電池供電方式,無線通信頻段為900MHz。但EmNet主要應用于廢水監(jiān)測和飲用水監(jiān)測,而且功耗較高,僅適用于作研究使用。
水產(chǎn)養(yǎng)殖面積通常較大,要求無線傳感器網(wǎng)絡節(jié)點必須擁有較遠的通信距離。因此,在盡可能延長節(jié)點生命周期的基礎上,筆者通過合理的硬件系統(tǒng)和軟件系統(tǒng)設計,有效提高了節(jié)點的通信距離。同時為了滿足水質參數(shù)采集實時性高,周期性強的需求,結合網(wǎng)絡編程技術、數(shù)據(jù)庫技術,設計了一款基于WEB模式的數(shù)據(jù)監(jiān)控中心軟件系統(tǒng)。
節(jié)點通過自組網(wǎng)的形式將采集的信息發(fā)送至監(jiān)控中心,實現(xiàn)對養(yǎng)殖環(huán)境水溫、pH值和溶解氧濃度的采集。傳感器節(jié)點由處理器模塊、無線通信模塊、傳感器模塊、串口通信模塊以及電源與太陽能充電模塊組成。節(jié)點硬件結構框圖如圖1所示,節(jié)點實物圖如下頁圖2所示。
圖1 無線傳感器網(wǎng)絡節(jié)點硬件結構框圖
圖2 節(jié)點實物圖
選用TI公司的MSP430F149單片機作為節(jié)點的微控制器。該單片機具有低電源電壓范圍(1.8~3.6V)、超低功耗(等待方式:1.3μ A,RAM保持關閉方式:0.15μ A)、集成度高、外圍模塊豐富等特點。無線通信模塊采用了nRF905射頻模塊。nRF905是挪威Nordic公司推出的單片無線收發(fā)器,工作電壓為1.9~3.6V,工作于3個ISM頻道(433/868/915MHz,可以免費使用),能耗非常低,發(fā)射功率為10dBm時,發(fā)射電流為30mA,接收電流為12.5mA,掉電模式下電流僅為2.5μ A,方便進行節(jié)能設計。
綜合考慮養(yǎng)殖環(huán)境水溫、pH值和溶解氧濃度的變化范圍以及傳感器的價格因素,選擇上?;痫w實業(yè)有限公司的DOG-96DS溶解氧電極和PHG-96FSpH電極對養(yǎng)殖環(huán)境水溫、pH值和溶解氧濃度進行測量。DOG-96DS溶解氧電極的測量范圍為0~20.00mg/L,分辨率為0.01mg/L;PHG-96FS pH電極的測量范圍為-1.00~15.00pH,分辨率為0.01pH。傳感器模塊與節(jié)點核心模塊獨立設計,通過接口連接,使節(jié)點具有靈活的可擴展性和適用性。
節(jié)點采用2節(jié)鋰電池串聯(lián)供電。因MSP430F149的工作電壓為1.8~3.6V,nRF905射頻模塊的工作電壓為1.9~3.6V,而傳感器模塊需要5V電源供電,故供電電源需經(jīng)過LT1129-3.3和LT1129-5降壓至3.3V 和5V。3.3V電壓為處理器模塊和無線通信模塊供電,5V電壓為傳感器模塊和串口通信模塊供電。為實現(xiàn)低功耗設計,利用繼電器控制5V電壓輸出,當執(zhí)行數(shù)據(jù)采集任務時導通繼電器,為傳感器模塊上電;節(jié)點進入休眠時則斷開繼電器,傳感器模塊掉電。
節(jié)點生命周期短是無線傳感器網(wǎng)絡面臨的一個重要問題[7-8]。本系統(tǒng)采用TI公司生產(chǎn)的先進鋰電池充電管理芯片BQ2057W,結合太陽能電池板對2節(jié)鋰電池進行太陽能充電管理。BQ2057W具有自動重新充電、最小電流終止充電、低功耗休眠等特性,可以動態(tài)補償鋰電池組的內(nèi)阻以減少充電時間。BQ2057W的充電分為三個階段:預充狀態(tài)、恒流充電和恒壓充電階段。
軟件系統(tǒng)包括通信協(xié)議設計、應用程序設計以及數(shù)據(jù)監(jiān)控中心軟件設計。
2.1通信協(xié)議設計
通信協(xié)議設計的好壞直接影響節(jié)點的性能和整個網(wǎng)絡的穩(wěn)定性。本設計通過路由算法、休眠喚醒機制和時間同步算法等策略,達到了降低節(jié)點能耗和保證網(wǎng)絡穩(wěn)定性的目的。
2.1.1路由協(xié)議設計
對Flooding協(xié)議存在的內(nèi)爆問題,筆者做了部分改進:為源節(jié)點數(shù)據(jù)包加上序列號,序列號遞增,并為轉發(fā)節(jié)點建立轉發(fā)記錄表,登記轉發(fā)信息(源節(jié)點號和數(shù)據(jù)包序列號)。轉發(fā)節(jié)點接收到數(shù)據(jù)包后,先檢查轉發(fā)記錄表,若轉發(fā)信息無記錄則登記轉發(fā)信息并轉發(fā)數(shù)據(jù)包,若轉發(fā)信息已登記則丟棄本次數(shù)據(jù)包。由于養(yǎng)殖面積大,需要較多的轉發(fā)節(jié)點,這種利用數(shù)據(jù)包序列號的方法有效緩解了Flooding協(xié)議存在的內(nèi)爆問題,可以使網(wǎng)絡數(shù)據(jù)傳輸更通暢。
2.1.2休眠喚醒機制
針對水質參數(shù)采集周期性強的特點,設計了“采集—發(fā)送—休眠”模式的周期性休眠喚醒機制。由于節(jié)點休眠時,能耗最低,所以要盡量延長節(jié)點的休眠時間,以達到降低節(jié)點能耗、延長節(jié)點生命周期的目的。結合養(yǎng)殖環(huán)境水質參數(shù)變化緩慢的特點,實際中可以適當增大采集周期,減少采集次數(shù),盡量使節(jié)點的休眠時間變長。
2.1.3時間同步算法
由于節(jié)點晶振的差異性,當節(jié)點經(jīng)過若干次休眠喚醒循環(huán)后,節(jié)點間可能會出現(xiàn)喚醒不同步的情況,從而導致數(shù)據(jù)包丟失,甚至導致整個網(wǎng)絡癱瘓。為了避免節(jié)點間喚醒不同步,本設計加入了時間同步算法。匯集節(jié)點(或網(wǎng)關)在進入休眠前,把本地定時參數(shù)做成時間同步數(shù)據(jù)包,并廣播發(fā)送。各節(jié)點接收到同步數(shù)據(jù)包后取出同步信息并轉發(fā),根據(jù)同步信息調整自身的定時參數(shù),達到與匯集節(jié)點(或網(wǎng)關)基本同步。這樣,源節(jié)點的睡眠喚醒機制變成了“采集—發(fā)送—同步—休眠”模式。時間同步算法有效抑制了時間誤差的疊加,避免了節(jié)點間喚醒不同步,大大提高了網(wǎng)絡的穩(wěn)定性。
2.1.4網(wǎng)絡維護
節(jié)點因死亡而退出網(wǎng)絡以及新節(jié)點加入網(wǎng)絡是網(wǎng)絡維護的主要內(nèi)容。當新節(jié)點需要加入網(wǎng)絡時,節(jié)點上電后進入接收狀態(tài),等待同步數(shù)據(jù)包,接收到同步數(shù)據(jù)包后取出同步信息并轉發(fā)數(shù)據(jù)包,調整本地定時參數(shù),達到與匯集節(jié)點(或網(wǎng)關)基本同步,這樣新節(jié)點就成功加入了網(wǎng)絡。當某個節(jié)點死亡后,包含該節(jié)點的轉發(fā)路徑消失,其他節(jié)點以自組網(wǎng)多跳的方式自動形成新的轉發(fā)路徑,保障了網(wǎng)絡的通暢性。
2.2應用程序設計
應用程序設計包括底層驅動程序、數(shù)據(jù)采集、射頻發(fā)送、射頻接收、進入休眠等任務。設計思路如下:節(jié)點上電后,各模塊進行初始化,然后進入接收狀態(tài),等待同步數(shù)據(jù)包,同步后進入休眠狀態(tài),直到定時喚醒,喚醒后進行數(shù)據(jù)采集,發(fā)送數(shù)據(jù)包等任務,然后進入接收狀態(tài),等待新一輪的同步,同步后再次進入休眠狀態(tài)。
2.3數(shù)據(jù)監(jiān)控中心軟件設計
數(shù)據(jù)監(jiān)控中心軟件包括數(shù)據(jù)接收上位機和數(shù)據(jù)管理網(wǎng)站。以Microsoft Visual Studio 2008為開發(fā)平臺,SQL Server 2000為數(shù)據(jù)庫軟件,結合 ASP.NET、HTML語言以及C#語言開發(fā)了數(shù)據(jù)接收上位機和數(shù)據(jù)管理網(wǎng)站。數(shù)據(jù)接收上位機實現(xiàn)數(shù)據(jù)的實時接收和保存,數(shù)據(jù)管理網(wǎng)站實現(xiàn)數(shù)據(jù)實時顯示、歷史數(shù)據(jù)波形圖查看、水質安全指標查看、實時數(shù)據(jù)預警、后臺數(shù)據(jù)管理五大功能。
2.3.1數(shù)據(jù)接收上位機
節(jié)點通過自組網(wǎng)的形式將采集的信息發(fā)送到GPRS網(wǎng)關,再由GPRS網(wǎng)關以TCP協(xié)議發(fā)送數(shù)據(jù)到PC機終端。GPRS網(wǎng)關與PC機終端之間的通信是通過Socket進行的。所謂Socket,通常也稱作“套接字”,應用程序通常通過“套接字”向網(wǎng)絡發(fā)出請求或者應答網(wǎng)絡請求?!疤捉幼帧敝g的連接過程可分為三個步驟:服務器監(jiān)聽,客戶端請求,連接確認。本文以Microsoft Visual Studio 2010為開發(fā)環(huán)境,SQL Server 2008為數(shù)據(jù)庫軟件,用C#語言開發(fā)了PC機終端接收GPRS網(wǎng)關數(shù)據(jù)的上位機。上位機監(jiān)聽連接,GPRS網(wǎng)關發(fā)送連接請求,兩者建立連接后,上位機就可以接收GPRS網(wǎng)關數(shù)據(jù)。上位機接收數(shù)據(jù)經(jīng)過處理后,實時存入數(shù)據(jù)庫,避免數(shù)據(jù)的損壞或丟失。數(shù)據(jù)存入數(shù)據(jù)庫后,用戶登錄數(shù)據(jù)管理網(wǎng)站就能對數(shù)據(jù)進行各項操作。
2.3.2數(shù)據(jù)管理網(wǎng)站
近十年來,隨著社會科技、文化和經(jīng)濟的發(fā)展,特別是計算機網(wǎng)絡技術和通信技術的大發(fā)展,Internet用戶已經(jīng)遍及全球,有幾億人在使用Internet。為了方便用戶查看和管理數(shù)據(jù),本文設計了基于WEB模式的數(shù)據(jù)管理網(wǎng)站。用戶通過連接Internet的任何一臺計算機或者通過連接Wap網(wǎng)絡的手機都可以方便地查看和管理數(shù)據(jù)。數(shù)據(jù)管理網(wǎng)站的主要功能包括:數(shù)據(jù)實時顯示、水質安全指標查看、實時數(shù)據(jù)預警、歷史數(shù)據(jù)波形圖查看、后臺數(shù)據(jù)管理等。用戶通過點擊相應的鏈接就能進入對應功能的頁面,操作簡單方便。
3.1節(jié)點通信距離測試
水產(chǎn)養(yǎng)殖面積通常較大,要求無線傳感器網(wǎng)絡節(jié)點必須擁有較遠的通信距離。節(jié)點的通信距離與發(fā)射功率密切相關,發(fā)射功率越大,通信距離越遠,功耗也越大。設置節(jié)點天線距離地面高度為1.5m,射頻頻率為433MHz,發(fā)射功率設置為6dBm,然后進行測試。發(fā)送節(jié)點每隔5s發(fā)送一次數(shù)據(jù),接收節(jié)點接收到數(shù)據(jù)后點亮接收數(shù)據(jù)指示燈。逐漸增加收發(fā)距離,當接收節(jié)點剛好接收不到數(shù)據(jù)時,用激光測距儀測量收發(fā)節(jié)點間的距離并做記錄,調整方向測試3次,取平均值。測量的節(jié)點通信距離如表1所示。
表1 節(jié)點通信距離測試 (m)
3.2節(jié)點功耗測試
利用高精度電流表接入節(jié)點電路,測量不同工作狀態(tài)的節(jié)點電流,測試結果見表2。由表2可知,節(jié)點處于休眠狀態(tài)時的工作電流最低,僅為86.90μ A。結合養(yǎng)殖環(huán)境水質參數(shù)變化緩慢的特點,實際中可以適當增大采集周期,使節(jié)點的休眠時間盡量長,可以有效降低節(jié)點功耗,延長節(jié)點的生命周期。
表2 節(jié)點工作電流測試
根據(jù)節(jié)點在一個采集周期t(h)內(nèi)各個狀態(tài)的工作時間,可以計算出節(jié)點在一個采集周期內(nèi)消耗的總能量X1(mAh)。設2節(jié)鋰電池由滿狀態(tài)電壓下降至5.4V(系統(tǒng)最低電壓要求)所消耗的電池容量為X2(mAh),就可以計算出節(jié)點的生命周期T,計算公式為T=X2/X1*t(h)。
經(jīng)測試,2節(jié)鋰電池由滿狀態(tài)電壓降至5.4V所消耗的電池容量約為1000mAh。每個采集周期內(nèi)節(jié)點的數(shù)據(jù)采集時間為15s,數(shù)據(jù)接收發(fā)送時間為10s,其余時間節(jié)點處于休眠狀態(tài),計算出工作周期為1h和2h的節(jié)點生命周期(不考慮太陽能充電)分別為121天和194天。
3.3網(wǎng)絡丟包率測試
丟包率是指測試中丟失數(shù)據(jù)包數(shù)量占發(fā)送數(shù)據(jù)包數(shù)量的比率。對本文設計的節(jié)點系統(tǒng),進行了WSN組網(wǎng)實驗,實時測量養(yǎng)殖環(huán)境水溫、pH值和溶解氧濃度三種水質參數(shù)。組網(wǎng)共采用10個節(jié)點,節(jié)點編號分別為Node_1~Node_10,其中Node_1為網(wǎng)關,Node_2~Node_6為采集節(jié)點,Node_7~Node_10為路由節(jié)點,其中,采集節(jié)點也具有路由轉發(fā)功能。實驗時采集周期設為30min,實驗共進行25天。測試結果如表3所示,其中Node_Num代表采集節(jié)點號;Node_Packet代表采集節(jié)點產(chǎn)生的數(shù)據(jù)包個數(shù);Rec_Packet代表網(wǎng)關收到的各采集節(jié)點的數(shù)據(jù)包個數(shù);Packet_LR代表各采集節(jié)點的丟包率。整個網(wǎng)絡平均丟包率為1.80%。
表3 網(wǎng)絡丟包率統(tǒng)計表
3.4太陽能充電時間測試
由于水產(chǎn)養(yǎng)殖環(huán)境大部分在戶外,陽光充足,本文利用太陽能電池板對2節(jié)鋰電池進行充電管理。經(jīng)測試,在陽光充足時,2節(jié)鋰電池由5.4V(系統(tǒng)最低電壓要求)自動充電至8.4V(充電完畢時的最高電壓)僅需172分鐘。可見,在太陽能資源充足的地區(qū),節(jié)點的生命周期理論上可以無限長。
針對水產(chǎn)養(yǎng)殖水質參數(shù)采集實時性高、周期性強、節(jié)點部署位置可固定等特點,筆者設計了一款適合水質參數(shù)采集的無線傳感器網(wǎng)絡節(jié)點及其網(wǎng)絡系統(tǒng)。節(jié)點在空曠地帶和有障礙物情況下,最大有效通信距離分別達到195m和116m,節(jié)點休眠時電流為86.90μ A,晴天時2節(jié)鋰電池由5.4V充電至8.4V僅需172分鐘,組網(wǎng)測試的網(wǎng)絡平均丟包率為1.80%。由于傳感器模塊與節(jié)點核心模塊獨立設計,通過接口連接,使節(jié)點具有靈活的可擴展性和適用性。另外,本文設計的數(shù)據(jù)接收上位機和數(shù)據(jù)管理網(wǎng)站于一體的數(shù)據(jù)監(jiān)控中心軟件,實現(xiàn)了遠程數(shù)據(jù)實時接收和保存、數(shù)據(jù)實時顯示、數(shù)據(jù)預警、數(shù)據(jù)管理、數(shù)據(jù)導出等功能,用戶查看和管理數(shù)據(jù)十分方便。
[1]劉興國,劉兆普,王鵬祥,等.基于水質監(jiān)測技術的水產(chǎn)養(yǎng)殖安全保障系統(tǒng)及應用[J].農(nóng)業(yè)工程學報,2009,25(6):186-191.
[2]鄒賽,劉昌明,李法平.基于無線傳感器網(wǎng)絡的水環(huán)境監(jiān)測系統(tǒng)[J].傳感器與微系統(tǒng),2010,29(9):104-108.
[3]劉玉梅,張長利,王樹文,等.基于ZigBee技術的水產(chǎn)養(yǎng)殖環(huán)境監(jiān)測系統(tǒng)設計[J].自動化技術與應用,2011,30(3):50-53.
[4]張玨,李波.用于水質監(jiān)測的無線傳感器網(wǎng)絡節(jié)點設計[J].自動化技術與應用,2011,30(9):38-41.
[5]夏宏博.面向水環(huán)境監(jiān)測的無線傳感器網(wǎng)絡監(jiān)測節(jié)點設計[D].杭州:杭州電子科技大學,2009.
[6]EmNetLLC.Technology[EB/OL].(2007-06-10)[2016-03-20]. http://www.heliosware.com/technology.
[7]吳伶錫,詹杰,李琳.無線傳感器網(wǎng)絡節(jié)點的低功耗研究[J].計算機工程與應用,2009,45(7):97-99.
[8]張大蹤,楊濤,魏東梅.無線傳感器網(wǎng)絡低功耗設計綜述[J].傳感器與微系統(tǒng),2006,25(5):10-14.
【責任編校李林霞】
TP393;TP274
A
1674-0092(2016)04-0096-04
10.16858/j.issn.1674-0092.2016.04.020
2016-04-04
歐國成,男,廣東羅定人,羅定職業(yè)技術學院電子信息系講師,碩士,主要從事無線傳感器網(wǎng)絡及其應用、計算機應用技術研究。