(上海海洋大學(xué),上海 201306)
近年來我國工業(yè)農(nóng)業(yè)突飛猛進(jìn),隨之帶來一系列水質(zhì)污染問題。我國的水環(huán)境問題十分嚴(yán)峻,長江、黃河也出現(xiàn)了許多水質(zhì)問題,黃河的斷流,泥沙淤積十分嚴(yán)重,長江支流水量銳減,每年排入長江的污水達(dá)到220億噸,這個量達(dá)到了全國污水排放量的三分之一,黃金水道變成了綿延在中國大地上的污染帶,自我凈化能力已經(jīng)不足以修復(fù)自身了。
水質(zhì)監(jiān)測主要通過人力采樣,帶回監(jiān)測站化驗檢測并進(jìn)行數(shù)據(jù)分析。這種方法缺點很多,時效性差,從采樣到化驗,再到數(shù)據(jù)分析,樣品的水質(zhì)特性可能已經(jīng)發(fā)生變化。水質(zhì)抽樣不具有普遍性,不能檢測整個水域,水質(zhì)自動檢測系統(tǒng)應(yīng)運而生,憑借互聯(lián)網(wǎng)的發(fā)展,實現(xiàn)了智能化。全球定位系統(tǒng)和無線局域網(wǎng),衛(wèi)星通訊技術(shù)的成熟,研究者開始設(shè)計一種無人船代替人力,進(jìn)行水質(zhì)監(jiān)測和實時測量。
多年的研究表明,目前國內(nèi)外對無人船的主要技術(shù)難關(guān)有以下幾處:
(1)無人船動力以及自動航行技術(shù):在水面復(fù)雜的情況下,對船只航行、航速的控制尤為重要。
(2)無人船自動導(dǎo)航:根據(jù)其工作地點、目標(biāo)方位、運行要求合理規(guī)劃航行路徑。
(3)無線通訊技術(shù):無人船如何與地面基站進(jìn)行信息傳遞,確保傳遞準(zhǔn)確、快速、抗干擾。
針對這些技術(shù)難關(guān),提出了水面航行器水樣采集裝置設(shè)計,主要從船體結(jié)構(gòu)、傳感器模塊、通訊模塊、GPS模塊、界面設(shè)計好人接口設(shè)計方面進(jìn)行優(yōu)化。
無人船裝置設(shè)置多個模塊,包括核心處理器、電源、傳感器、通訊器和軟件顯示,船體模型如圖1所示,該船為雙體船,為多層構(gòu)造,從上而下依次安裝各模塊。最頂端安裝雷達(dá),用于障礙物躲避和航行功能;其下安裝攝像頭,通過無線傳輸,給軟件端傳輸實時畫面;船艙中的核心處理器部分為傳感器,所有傳感器都安裝在船底,便于采樣處理。
圖1 無人船外觀圖
本課程設(shè)計的無人船采用的是RDO-206溶解氧數(shù)字式傳感器,量程為0~20mg/L,分辨率可到達(dá)0.01mg/L,精度可達(dá)測量值2%范圍內(nèi),采用12~24VDC供電,內(nèi)置溫度傳感器,自動進(jìn)行溫度補償,重350g,防護(hù)等級IP68。測量方法為熒光法,熒光法測溶解氧的原理是基于物理學(xué)中特定物質(zhì)對活性熒光的猝熄原理,熒光法測試原理圖如圖2所示。傳感器的一個發(fā)光二極管發(fā)射的藍(lán)光照在熒光帽內(nèi)表面的熒光物質(zhì)上,其表面的熒光物質(zhì)受到激發(fā),發(fā)出紅光,通過計算紅藍(lán)光之間的相位差,對比內(nèi)部標(biāo)定值,便可以計算出氧分子濃度,再經(jīng)由自動補償可以輸出最終結(jié)果。
圖2 熒光法測試原理圖
PH值對水質(zhì)的影響主要在以下幾個方面:PH值變化導(dǎo)致碳酸鹽類物質(zhì)沉積,出現(xiàn)腐蝕管道的問題。PH值影響微生物生長,PH值在5.5~8.2時最適合鐵細(xì)菌的繁殖,進(jìn)而導(dǎo)致“紅水”現(xiàn)象。PH值過高過低都產(chǎn)生影響,PH低于7時,會散發(fā)刺激性味道,高于7時,水質(zhì)產(chǎn)生苦味,色度增加。國家規(guī)定,PH值應(yīng)控制在6.5~8.5之間。
為了檢測PH值,人們采取了諸多手段,如試劑法、滴定法、儀器測量法等。本無人船采用PHG-202 PH傳感器,如圖3所示,該傳感器量程廣,精度達(dá)到了0.01PH,工作環(huán)境溫度為0~65℃,自帶溫度補償,防護(hù)等級達(dá)IP68,滿足功能需求。
圖3 PH傳感器
濁度,即溶液對光線通過時產(chǎn)生的阻礙程度,包括懸浮物質(zhì)對光的散射和溶質(zhì)分子對光的吸收。濁度的主要影響因子有:懸浮物質(zhì)的含量,大小,形狀以及折射系數(shù)。測量濁度需要盡快,在測定前需要搖動水樣,等待恢復(fù)室溫之后測定。濁度的高低不直接表明水質(zhì)污染程度,但是可以直觀地讓人們明白,水質(zhì)變壞了。
濁度測量有多種方法,主流的有以下幾種:比濁法或射光法、濁度計測量法。目前被廣泛認(rèn)可的是濁度計測量,其主要原理是通過濁度計發(fā)出光線,光線穿過樣品溶液,在與入射光線呈90°方向上檢測有多少光在水中被散射掉了。本船采用的是InPro8050濁度傳感器,采用逆向散射,單光纖的結(jié)構(gòu),此傳感器測試原理圖如圖4所示。
圖4 濁度計測試原理圖
本設(shè)計的無人船試用的范圍是小型湖泊,范圍較小,試用WIFI作為通訊方式比較合理。無人船搭載的是ATK-ESP8266 WIFI模塊,內(nèi)置TCP/IP協(xié)議棧,傳統(tǒng)串口設(shè)備通過簡單配置,就可以通過WIFI傳輸數(shù)據(jù),WIFI模塊原理圖如圖5所示。
圖5 WiFi模塊原理圖
8266 WiFi模塊很貼心地設(shè)置了透傳模式,省去很多麻煩,我們只要設(shè)置好該模式,數(shù)據(jù)傳輸就可以實現(xiàn)了。
(1)使用AT+CWMODE=1,設(shè)置模式為SAT
系統(tǒng)反饋:OK
(2)使用AT+RST重啟模塊,等待4秒。
系統(tǒng)反饋:OK
(3)使用AT+CWJAP=“SSID”,“PASSWORD”,連接路由器WIFI,之后會獲取一個IP地址。
(4)電腦創(chuàng)建一個server。
(5)使用AT+CIPSTART=“TCP”將模塊和server連接起來,輸入IP
系統(tǒng)反饋:CONNECT
(6)設(shè)置模塊斷電后自動進(jìn)入透傳模式,使用AT+SAVETRANSLINK=1,IP地址,端口號,“TCP”指令,模塊自動斷電再啟動后已經(jīng)進(jìn)入透傳模式,無需再次設(shè)置。
(7)使用AT+CIPMODE=1指令開啟透傳模式。
系統(tǒng)反饋:OK
(8)使用AT+CIPSEND指令,開始數(shù)據(jù)傳輸。
系統(tǒng)反饋:OK
使用+++指令,退出透傳模式。
無人船采用的是國產(chǎn)RPLIDAR A1 360°激光掃描測距雷達(dá),雷達(dá)結(jié)構(gòu)如圖6所示,可實現(xiàn)平面內(nèi)半徑6m全方位掃描,自動生成掃描平面信息。采樣周期設(shè)定為1450點/周的情況下,掃描頻率可達(dá)5.5Hz,掃描頻率最高可達(dá)10Hz。該型號的激光雷達(dá)采用激光三角測距技術(shù),結(jié)合高速的視覺采集處理結(jié)構(gòu),可以實現(xiàn)每秒8000次以上的測距動作。每一次測距動作,雷達(dá)將發(fā)射紅外激光信號,激光信號向外發(fā)射的過程中遇到障礙物后產(chǎn)生散射,一些反射光會被視覺采集系統(tǒng)接收到,通過DSP處理器計算,障礙物和雷達(dá)的距離和角度信息會從通訊接口輸出。
圖6 雷達(dá)結(jié)構(gòu)圖
硬件設(shè)備的發(fā)展也帶動了軟件程序的發(fā)展,人們需要各式各樣的、全面的、精確的軟件來監(jiān)測無人船的航行狀況。在本課題設(shè)計中,需求有以下幾點:
(1)實時畫面:要求無人船安裝攝像頭,傳輸畫面到軟件上,便于操作人員觀察水域狀況并規(guī)劃航線。
(2)雷達(dá)畫面:要求無人船安裝雷達(dá),傳輸雷達(dá)掃描圖到軟件,標(biāo)注障礙物的相對位置。
(3)傳感器參數(shù):包括安裝在船底的各個傳感器,傳輸數(shù)據(jù)到軟件界面,也包括參數(shù)的動態(tài)曲線。
(4)基本操控:設(shè)置前后左右制動按鈕,便于調(diào)試和實驗。
基于以上幾個基本要求,我們選擇QT作為軟件平臺編寫程序,QT是一款跨平臺C++圖形用戶界面應(yīng)用程序,可以用來開發(fā)GUI程序,也可以用于開發(fā)控制臺,服務(wù)器等非GUI程序。QT是面向?qū)ο蟮拈_發(fā)工具,可拓展。QT Creator 是基于QT的跨平臺集成開發(fā)環(huán)境,包括項目生成代碼,自動編譯高級C++代碼。
打開QT Creator,創(chuàng)建項目之后,就會出現(xiàn)這樣的一組文件,以項目名稱構(gòu)成目錄樹,可以展開成多個項目,如圖7所示。
圖7 QT項目文件組成
從圖中可以看出,一個完整的工程包括以下幾種文件:(以1527117為例)
(1)1527117.pro是項目管理文件,包含項目的設(shè)置項等相關(guān)信息。
(2)(.h)是項目頭文件,上圖的項目中包含mainwindow.h是窗口的頭文件。
(3)(.cpp)是項目內(nèi)所有的C++源文件,圖7的項目中有兩個C++源文件,一個是main.cpp,是主函數(shù)文件,另一個是mainwindow.cpp是主窗口的實現(xiàn)文件,和mainwindow.h文件對應(yīng)。
(4)(.ui)是項目內(nèi)的界面文件,上圖的項目中有一個mainwindow.ui,是窗口的界面文件,是本文的主要研究對象。
在QT Creator的編輯模式下打開maindow.ui文件,進(jìn)入界面設(shè)計模式,如圖8示。
圖8 QT設(shè)計界面
該界面設(shè)計主要包括以下功能:
(1)實時視頻功能:無人船上搭載的攝像頭拍攝視頻通過無線通訊,顯示在界面上,設(shè)置了播放和關(guān)閉選項,體現(xiàn)了遠(yuǎn)程觀察水面狀況。
(2)端口連接:界面上顯示無線局域網(wǎng)的端口號,設(shè)置了連接鍵,體現(xiàn)了連接狀態(tài)可控制。
(3)傳感器數(shù)據(jù):界面上分別設(shè)置了四個主要傳感器的顯示框,顯示水樣檢測的數(shù)據(jù),體現(xiàn)了實時獲知水質(zhì)狀況。
(4)地址:無人船搭載了GPS模塊,界面上也設(shè)置了方位顯示,體現(xiàn)了經(jīng)度和緯度的實時顯示。
(5)激光雷達(dá):在界面上另一個主要的顯示框是雷達(dá)檢測的障礙物方位,以無人船為中心,標(biāo)出了水面障礙的相對方位,體現(xiàn)了無人船的自動避障功能。
(6)方向控制:設(shè)置了前進(jìn),后退,左右鍵,體現(xiàn)了遠(yuǎn)程端對無人船可以實現(xiàn)操控。
無人船與上位機之間主要通過無線通訊,采用TCP/IP協(xié)議,主要傳感器的運作流程如下:
圖9 傳感器運行流程
TCP(傳輸控制協(xié)議)和IP(網(wǎng)際協(xié)議)提供了點對點的連接機制,包括數(shù)據(jù)如何封裝,定址,傳輸,路由以及目標(biāo)如何接受,制定了統(tǒng)一的標(biāo)準(zhǔn)。該協(xié)議將軟件之間的通信過程抽象成四個抽象層,通過協(xié)議堆棧的方式,分別采用不同的通信協(xié)議。
使用QTcpSocket實現(xiàn)通信的基本流程大致可以概括為:
(1)建立QTcpServer模組,綁定socket套接字和端口號,用listen()語句創(chuàng)建監(jiān)聽連接,同時等客戶端的連接請求。
(2)建立QTcpSocket,用connect()語句連接服務(wù)器和端口,發(fā)送連接請求。
(3)服務(wù)器用accept()語句接受連接請求,雙發(fā)達(dá)成連接。
(4)客戶端用send()語句發(fā)送數(shù)據(jù)給服務(wù)器。
(5)服務(wù)器用recv()語句應(yīng)答并接受數(shù)據(jù)。
(6)服務(wù)器處理數(shù)據(jù)生成結(jié)果。
(7)客戶端接受結(jié)果。
(8)多次重復(fù)(3)-(7)直至任務(wù)完成。
(9)斷開連接
針對水質(zhì)污染嚴(yán)重,傳統(tǒng)檢測方法效率低下的現(xiàn)象,提出了使用無人船代替人力進(jìn)行水質(zhì)檢測,設(shè)計了基于QT的水質(zhì)檢測操縱平臺。通過多傳感器模塊的組合,馬達(dá),激光,GPS模塊的搭建,無人船的硬件部分由此組成了。借由ATK-ESP8266 WIFI模塊進(jìn)行連接,使用軟件帶有的QTcpSocket實現(xiàn)通信,得到的軟件操控界面上,實現(xiàn)了多項參數(shù)的組合顯示。