王文劍,潘善亮
(寧波大學(xué),浙江 寧波 315211)
通過分析水質(zhì)監(jiān)測技術(shù)現(xiàn)狀及其發(fā)展趨勢,針對不同的水質(zhì)監(jiān)測環(huán)境與目標,提出一整套融合多種信息源的水質(zhì)監(jiān)測模型與方案。在此基礎(chǔ)上,運用先進的無線傳感器網(wǎng)絡(luò)(WSN, Wireless Sensor Networks)、數(shù)據(jù)分析等技術(shù),建立區(qū)域水質(zhì)監(jiān)控與管理平臺。主要內(nèi)容包括:
(1)適合于郊外山區(qū)的大型水質(zhì)監(jiān)測無線傳感器網(wǎng)絡(luò)的設(shè)計方案;
(2)高性能、低功耗水質(zhì)監(jiān)測無線傳感器網(wǎng)絡(luò)節(jié)點設(shè)計與實現(xiàn);
(3)無線傳感器節(jié)點在目標區(qū)域的部署與無線傳感器網(wǎng)絡(luò)組網(wǎng);
(4)研究多種水質(zhì)監(jiān)測技術(shù)的有機融合,根據(jù)需要合理部署不同類型傳感器和監(jiān)測設(shè)備;
(5)水質(zhì)監(jiān)測數(shù)據(jù)的整理,綜合型水質(zhì)監(jiān)測平臺的設(shè)計與實現(xiàn)。
本課題的主要研究思路是:在引進國外先進ASI(Actuator-Sensor-Interface)傳感器基礎(chǔ)上,采用基于NXP JN5148無線微控制器模塊的低功耗傳感器,通過分布式動態(tài)組網(wǎng),實現(xiàn)大范圍、24小時不間斷的監(jiān)測。同時設(shè)計具有定位功能的GPRS無線傳感器節(jié)點,能夠隨時偵測到飲用水源的污染情況,適用于組網(wǎng)困難等惡劣環(huán)境下的監(jiān)測,使水質(zhì)監(jiān)測和管理更為全面有效,從而實現(xiàn)水質(zhì)狀態(tài)的實時監(jiān)測,避免人工測量的繁瑣及監(jiān)測數(shù)據(jù)的延時,解決傳統(tǒng)水質(zhì)監(jiān)測平臺續(xù)航差、維護成本高、適應(yīng)性差等問題。采用基于支持向量機算法的水質(zhì)異常模式識別方法進行數(shù)據(jù)分析,基于WorldWind的可視化界面,逐漸提高系統(tǒng)的智能化水平。
總體方案設(shè)計主要分成三個基礎(chǔ)組成部分,分別是硬件采集傳輸模塊,服務(wù)器端數(shù)據(jù)存儲和處理模塊,用戶端數(shù)據(jù)展示模塊。
在硬件端,為保證設(shè)備在實際應(yīng)用的可靠性,分別采用了兩套傳輸方案,一套采用ZigBee協(xié)議用于無線傳輸,一套則采用GPRS用于數(shù)據(jù)傳輸,中間層協(xié)議分別采用TCP/IP協(xié)議和MQTT推送協(xié)議。終端控制器采用LPC1758和ARM9,ZigBee模塊采用NXP JN5148芯片,GPRS模塊采用M35GSM芯片[2]。
LPC1758與JN5148間使用串口進行通信,底層通信采用485總線,通信協(xié)議使用Modbus協(xié)議,單片機終端中使用FreeRTOS系統(tǒng)進行資源管理,同時在系統(tǒng)中架設(shè)兩個協(xié)議棧TCP/IP以及Modbus。GPRS終端中,ARM9與M35GSM芯片同樣采用串口進行通信,ARM9中使用linux系統(tǒng)進行資源管理,配置端口單獨采用以太口,在ARM9中分別架設(shè)兩個協(xié)議棧:Modbus以及TCP/IP協(xié)議,控制芯片與傳感器使用標準485連接,傳感器與ARM間通信協(xié)議采用Modbus協(xié)議。
服務(wù)端采用MQTT服務(wù)終端與BOOST庫聯(lián)合編程,用于實現(xiàn)后端數(shù)據(jù)的處理。數(shù)據(jù)庫端使用Oracle數(shù)據(jù)庫,并作為底層通信數(shù)據(jù)與高層終端應(yīng)用的橋梁,基于OTL庫(Oracle, Odbc and DB2-CLI Template Library)開發(fā)實現(xiàn)了通信端與服務(wù)器端的連接與數(shù)據(jù)傳輸。通過在跨平臺的C++程序中使用OTL來操作數(shù)據(jù)庫,使數(shù)據(jù)的通信與存儲更加高效安全。在數(shù)據(jù)可靠性方面,通過設(shè)置心跳報文時刻關(guān)注各個節(jié)點的運行狀況,及時將無效的報文排除,維護數(shù)據(jù)庫數(shù)據(jù)的準確性。增加了硬件中的報文緩存,并重新設(shè)計了網(wǎng)絡(luò)從異常中回復(fù)時的處理邏輯,使得系統(tǒng)具有一定的故障恢復(fù)能力;增加日志模塊,提高了對系統(tǒng)狀態(tài)的把握。項目的總體框架如圖1所示。
針對傳統(tǒng)水質(zhì)監(jiān)測平臺的硬件終端中續(xù)航差及無法適應(yīng)惡劣環(huán)境等問題,分別架設(shè)兩種終端節(jié)點,一種是基于ZigBee終端的網(wǎng)絡(luò),該網(wǎng)絡(luò)下同時掛在多個
圖1 水質(zhì)監(jiān)測系統(tǒng)總體框架
在該邏輯中,配置網(wǎng)站通過假設(shè)Tomcat服務(wù)器實現(xiàn),配置文件為一個XML文件,記錄包含有傳感器的Modbus地址、傳感器中數(shù)據(jù)的解析方式及傳感器中數(shù)據(jù)的計量單位等信息。
在服務(wù)器端,對應(yīng)于兩種不同的硬件終端,分別開發(fā)兩套后端處理程序,一套用于處理ZigBee協(xié)議傳輸?shù)腡CP二進制文件,另一套則用于處理MQTT協(xié)議傳輸?shù)腏SON數(shù)據(jù)。下面開始介紹兩種服務(wù)端軟件的內(nèi)部邏輯結(jié)構(gòu)。
為保證服務(wù)質(zhì)量,在服務(wù)端使用MQTT[7]的消息代理終端,用于處理各種硬件連接不可靠的連接情況,業(yè)務(wù)邏輯則使用專用軟件實現(xiàn),軟件的服務(wù)端架構(gòu)如圖6所示:
圖6 水質(zhì)監(jiān)測系統(tǒng)服務(wù)端軟件框架圖
上述框架中,MQTT消息代理采用mosquito程序,負責(zé)連接的建立、底層終端信息的獲取,上層軟件則負責(zé)信息的流向、存儲。上層軟件的構(gòu)架如圖7所示:
圖7 水質(zhì)監(jiān)測系統(tǒng)業(yè)務(wù)邏輯管理框架
在業(yè)務(wù)服務(wù)端,主要采用C++編程實現(xiàn),為保證項目的可移植性和軟件的可靠性,多數(shù)程序采用BOOST庫編程。內(nèi)存管理全部采用BOOST的智能指針實現(xiàn),基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)則采用BOOST庫和STL庫相結(jié)合的方式,以保持系統(tǒng)的安全可靠。
在業(yè)務(wù)端,業(yè)務(wù)邏輯被分成兩條進程進行管理,以加快數(shù)據(jù)的處理速率。首先,當(dāng)MQTT消息代理程序?qū)I(yè)務(wù)數(shù)據(jù)投遞到程序連接之后[8],MQTT連接管理將負責(zé)投遞該數(shù)據(jù)到緩存隊列當(dāng)中,緩存隊列通過一個鏈表實現(xiàn),鏈表通過加鎖機制防止前后端讀寫不一致的情況,當(dāng)數(shù)據(jù)被投遞到數(shù)據(jù)庫管理模塊后,管理端首先調(diào)用數(shù)據(jù)處理模塊對數(shù)據(jù)進行解析操作,然后根據(jù)解析內(nèi)容不同,確定投入的表,同時每次數(shù)據(jù)到達時,設(shè)備管理終端刷新計時器,若該設(shè)備是新的設(shè)備,同時還要負責(zé)將該設(shè)備插入設(shè)備在線管理池中,為該設(shè)備開啟新的計時器。業(yè)務(wù)邏輯流程圖如圖8所示。
利用采集的水質(zhì)監(jiān)測數(shù)據(jù),基于支持向量機算法建立水質(zhì)異常模式識別模型,實現(xiàn)水質(zhì)數(shù)據(jù)的智能化分類。水質(zhì)數(shù)據(jù)顯示客戶端用于在數(shù)字地理信息系統(tǒng)中實時地顯示由水質(zhì)傳感器捕獲的數(shù)據(jù),給予用戶更好的體驗以及更為直觀的數(shù)據(jù)呈現(xiàn)。用戶能夠在三維虛擬數(shù)字地球中進行漫游,能夠通過鼠標以及手勢方便地與系統(tǒng)進行交互,實時地查看各個監(jiān)測點的水質(zhì)信息。對于檢測到的水質(zhì)異常,系統(tǒng)會以動畫的方式向用戶發(fā)出警報。
系統(tǒng)開發(fā)了基于Web以及基于客戶端的虛擬數(shù)據(jù)顯示系統(tǒng),使得用戶能夠通過不同的途徑訪問系統(tǒng),以獲取實時的水質(zhì)監(jiān)測數(shù)據(jù)。WorldWind[9]是一個NASA開發(fā)的開源虛擬地理信息顯示系統(tǒng),有分別基于java和.net開發(fā)兩個版本,能夠?qū)⒒赪MS發(fā)布的地理信息數(shù)據(jù)通過一個三維的虛擬地球進行展示。通過WorldWind提供的API對其進行二次開發(fā),能夠在三維數(shù)字地球中實時地顯示水質(zhì)檢測數(shù)據(jù)。
圖8 水質(zhì)監(jiān)測系統(tǒng)業(yè)務(wù)層邏輯
基于WorldWind打造了一個水質(zhì)數(shù)據(jù)三維實時顯示系統(tǒng),用戶在三維數(shù)字地球中進行漫游,查看并管理由分布于不同監(jiān)測點的水質(zhì)傳感器捕獲的水質(zhì)信息。用戶能夠通過鼠標以及手勢的方式與客戶端進行交互,在此,基于Kinect對用戶的手勢進行捕獲和識別。多樣的交互方式大大提升了操作的靈活性以及系統(tǒng)的可用性。
該模塊的系統(tǒng)框架如圖9所示:
圖9 基于WorldWind的三維數(shù)據(jù)顯示客戶端
系統(tǒng)最終的顯示界面如圖10所示。
隨著水質(zhì)在線監(jiān)測系統(tǒng)在市某水庫的順利實施,該系統(tǒng)實現(xiàn)了水質(zhì)信息的自動獲取、實時發(fā)布和動態(tài)展示等功能;在低功耗無線水質(zhì)傳感器節(jié)點研制方面取得了突破,采用基于NXP JN5148無線微控制器模塊的低功耗傳感器節(jié)點,通過分布式動態(tài)組網(wǎng),實現(xiàn)大范圍、24小時不間斷的監(jiān)測;同時設(shè)計具有定位功能的GPRS無線傳感器節(jié)點,能夠隨時偵測到飲用水源的污染情況,適用于組網(wǎng)困難等惡劣環(huán)境下的監(jiān)測,使水質(zhì)監(jiān)測和管理更為全面有效。未來將建立具有決策支持的水資源三維展示平臺和對外網(wǎng)站,建立水資源圖像數(shù)據(jù)庫,開發(fā)基于視頻圖像的水華監(jiān)測技術(shù)和水質(zhì)圖像分析,進一步實現(xiàn)水質(zhì)監(jiān)測智能化。
圖10 水質(zhì)監(jiān)測系統(tǒng)數(shù)據(jù)顯示界面