李昕聰,余紫揚,劉 璞,張烈山
(浙江理工大學(xué)機械與自動控制學(xué)院,浙江杭州 310018)
水產(chǎn)養(yǎng)殖業(yè)是漁業(yè)的重要組成部分,2020年全國水產(chǎn)養(yǎng)殖總產(chǎn)量5 224.2萬t,同比增長2.86%[1]。然而,由于水產(chǎn)養(yǎng)殖行業(yè)的水質(zhì)檢測技術(shù)不成熟、運營維護成本高,所以覆蓋率較低,水質(zhì)問題發(fā)現(xiàn)不及時,水產(chǎn)產(chǎn)量與質(zhì)量難以得到保證[2-5]。為改善水產(chǎn)養(yǎng)殖水質(zhì)污染問題,運用信息化技術(shù)進行養(yǎng)殖水質(zhì)污染監(jiān)測逐漸成為水產(chǎn)養(yǎng)殖業(yè)發(fā)展主流[6-9]。
水體的溫度、濁度、硝酸鹽含量、氨氮含量、溶氧和pH等是影響水產(chǎn)養(yǎng)殖的關(guān)鍵[10-11]。目前國內(nèi)普遍的水產(chǎn)養(yǎng)殖水域水質(zhì)檢測方法大多利用多個固定水質(zhì)檢測點或者浮標(biāo)構(gòu)建監(jiān)測網(wǎng)絡(luò),或者依靠人力攜帶各種檢測設(shè)備進行現(xiàn)場測量[12-14]。針對這一現(xiàn)象,國內(nèi)外許多專家學(xué)者都展開了研究,并提出了各自的解決方案。李鑫星等[15]提出一種基于ZigBee的無線水質(zhì)監(jiān)測系統(tǒng),定時收集觀測點的水質(zhì)數(shù)據(jù)。張琴等[16]基于LoRa設(shè)計了一種低功耗水產(chǎn)養(yǎng)殖水質(zhì)監(jiān)控系統(tǒng),在覆蓋范圍和功耗上優(yōu)勢明顯。謝辰旻等[17]基于Arduino設(shè)計了一種水下航行器,配合多傳感器實現(xiàn)水質(zhì)監(jiān)測與水質(zhì)改善,但仍處于試驗階段。目前大部分的解決方案都各具特點,但都或多或少存在組網(wǎng)復(fù)雜、成本較高、維護復(fù)雜等問題,無法大規(guī)模部署。更重要的是,只提供水質(zhì)的紙面參數(shù),缺乏對水質(zhì)參數(shù)的分析以及養(yǎng)殖反饋,無法很好地將反饋數(shù)據(jù)快速轉(zhuǎn)變成實際利益。
無人水質(zhì)測量船成本低廉,且檢測覆蓋的面積廣,基本可以實現(xiàn)對水域的全天候大面積檢測,適合大規(guī)模部署。NB-IoT技術(shù)(Narrow Band -Internet of things,窄帶物聯(lián)網(wǎng))不僅覆蓋范圍大、占用帶寬低、運行功耗低,且可以接入蜂窩網(wǎng)絡(luò),極大地簡化了網(wǎng)絡(luò)結(jié)構(gòu),在各方面都更適合養(yǎng)殖魚塘的云端監(jiān)控[18-21]。
本研究提出了一種基于NB-IoT與無人船巡檢技術(shù)的水質(zhì)檢測與調(diào)節(jié)物聯(lián)系統(tǒng)。在云端實時監(jiān)控水域水質(zhì)的同時,還可以獲得由專家系統(tǒng)根據(jù)當(dāng)前水質(zhì)參數(shù)提出的養(yǎng)殖建議,進而云端控制水質(zhì)調(diào)節(jié)節(jié)點對水質(zhì)進行調(diào)整。本系統(tǒng)在監(jiān)控水質(zhì)的同時為養(yǎng)殖戶提供更加科學(xué)的養(yǎng)殖管理方案,為水產(chǎn)的增產(chǎn)、增質(zhì)提供了一種可行的解決辦法。
水質(zhì)檢測與調(diào)節(jié)物聯(lián)系統(tǒng)的總體方案如圖1所示,可分成云平臺、水質(zhì)監(jiān)控節(jié)點以及水質(zhì)調(diào)節(jié)節(jié)點3大部分。
圖1 水質(zhì)檢測與調(diào)節(jié)物聯(lián)系統(tǒng)總體方案
云平臺包含了OneNET開放云平臺以及專家系統(tǒng),其主要功能為接收節(jié)點信息、推理養(yǎng)殖建議以及下發(fā)控制指令;水質(zhì)監(jiān)控節(jié)點為搭載了各式傳感器以及視覺模塊的自主巡航無人船,其通過NB-IoT與云平臺進行通信;水質(zhì)調(diào)節(jié)節(jié)點則包括水泵、增氧機、投料機等漁業(yè)養(yǎng)殖相關(guān)設(shè)備,可以根據(jù)控制指令進行水質(zhì)的調(diào)節(jié)。
整個水質(zhì)檢測與調(diào)節(jié)物聯(lián)系統(tǒng)工作原理如圖2所示。用戶使用Web應(yīng)用通過OneNET云平臺給無人船發(fā)送指定水域的檢測點坐標(biāo),無人船會根據(jù)收到的坐標(biāo)點進行自動路徑規(guī)劃并開始無人巡航。在此期間,無人船搭載的視覺模塊和多個傳感器會收集各檢測點的水質(zhì)參數(shù)并判斷是否存在漂浮的死魚,數(shù)據(jù)打包后通過NB-IoT模塊發(fā)送到云平臺,繼而實時呈現(xiàn)在用戶的Web應(yīng)用界面。當(dāng)無人船結(jié)束巡航時,所有的信息匯總后會在云端通過專家系統(tǒng)給出水質(zhì)決策,并呈現(xiàn)在用戶的Web應(yīng)用界面。最終用戶可以根據(jù)專家系統(tǒng)提供的決策和實際情況,通過云端控制增氧機、投料機以及水泵等設(shè)備的開啟或關(guān)閉,以調(diào)節(jié)水質(zhì)。
圖2 工作原理示意圖
至此,用戶通過該水質(zhì)檢測與調(diào)節(jié)系統(tǒng),實現(xiàn)了對整個養(yǎng)殖水域的水質(zhì)參數(shù)實時監(jiān)控,獲得了專家系統(tǒng)提供的養(yǎng)殖建議,并可以實時控制調(diào)節(jié)設(shè)備來調(diào)節(jié)水質(zhì)。
1.3.1 無人船移動檢測節(jié)點
無人船作為養(yǎng)殖場水質(zhì)參數(shù)檢測與調(diào)節(jié)物聯(lián)網(wǎng)系統(tǒng)移動節(jié)點的承載平臺,其實物圖和內(nèi)部結(jié)構(gòu)示意圖分別如圖3和圖4所示。
圖3 無人船實物圖
圖4 無人船內(nèi)部結(jié)構(gòu)示意圖
無人船上搭載了pH傳感器、濁度傳感器、亞硝酸鹽傳感器、溶氧傳感器以及氨氮傳感器,可以實現(xiàn)對水域水質(zhì)的多參數(shù)檢測。
K210視覺模塊可以對采集的圖像信息與導(dǎo)入的訓(xùn)練模板比對,做出死魚檢測判斷。微控制器模塊由雙MCU組成,負責(zé)系統(tǒng)的運算與各模塊的控制。超聲波模塊采用HC-SR04超聲波測距模塊傳感器,實現(xiàn)對船體前方障礙物的規(guī)避。
無線通信方面,采用了核心為M5310-A芯片的NB-IoT無線通信模塊,負責(zé)與云平臺通信。
組合導(dǎo)航模塊采用BD-GPS定位模塊、數(shù)字羅盤以及IMU實現(xiàn)組合導(dǎo)航獲取姿態(tài)、航向與位置信息。動力驅(qū)動模塊采用雙H橋電機驅(qū)動兩路電機并由大容量鋰電池配合太陽能電池板進行提供續(xù)航能力。電源管理模塊采用LSP電量模塊獲取鋰電池電量情況并利用太陽能發(fā)電板輔助提高無人船的巡航能力。
1.3.2 固定水質(zhì)調(diào)節(jié)節(jié)點
固定水質(zhì)調(diào)節(jié)節(jié)點的工作原理如圖5所示,使用NB-IoT模塊、MCU、電磁繼電器和交流接觸器與水質(zhì)調(diào)節(jié)裝置相連(換水泵、增氧機、投料機等)。
圖5 水質(zhì)調(diào)節(jié)節(jié)點原理框圖(以溶氧調(diào)節(jié)為例)
當(dāng)觀察到從云平臺收集到的水質(zhì)數(shù)據(jù)超標(biāo),用戶可點擊手機App端控制按鈕發(fā)送命令請求,OneNET云平臺端接收到請求后,通過NB-IoT網(wǎng)絡(luò)將控制指令傳送給固定水質(zhì)調(diào)節(jié)節(jié)點的控制電路模塊。節(jié)點控制電路模塊將接收到的指令通過串口通信的方式發(fā)送至MCU。MCU根據(jù)指令要求,接通光電隔離繼電器,利用繼電器控制水質(zhì)調(diào)節(jié)設(shè)備電源的通斷,實現(xiàn)固定水質(zhì)調(diào)節(jié)節(jié)點的啟??刂?,最終完成對水質(zhì)的調(diào)節(jié)。
1.4.1 無線通信程序
無線通信程序設(shè)計的總體思路如圖6所示。
圖6 無線通信程序流程圖
首先對相關(guān)設(shè)備硬件完成初始化,當(dāng)檢測設(shè)備都在線且網(wǎng)絡(luò)狀態(tài)良好時,即可通過NB-IoT模塊通訊上云,創(chuàng)建設(shè)備實體和資源訂閱,從而進一步實現(xiàn)無人船的各項基本功能。
1.4.2 組合導(dǎo)航
組合導(dǎo)航程序的流程圖如圖7所示,主要由坐標(biāo)轉(zhuǎn)換子程序、路徑規(guī)劃子程序、航向角更新子程序與航向控制子程序組成。
圖7 組合導(dǎo)航程序流程圖
主程序首先將相關(guān)外設(shè)接口與寄存器進行初始化配置,然后將獲取所得經(jīng)緯度坐標(biāo)進行高斯坐標(biāo)轉(zhuǎn)換。轉(zhuǎn)換完后通過設(shè)置標(biāo)志位判斷當(dāng)前是否處于出發(fā)點,如果處于出發(fā)點需要首先通過貪心算法選取初始目標(biāo)點,否則需要判斷當(dāng)前位置是否處于目標(biāo)點范圍之內(nèi)。如果當(dāng)前處于目標(biāo)點范圍之內(nèi),需要通過貪心算法選取新的目標(biāo)點,否則繼續(xù)計算當(dāng)前位置與目標(biāo)位置間的期望航向角,然后比較期望航向角與經(jīng)過磁偏角自校正后的當(dāng)前無人船航向角,如果航向角差在誤差范圍之內(nèi),則保持當(dāng)前航向繼續(xù)直行,否則調(diào)用PID控制子程序調(diào)節(jié)PWM輸出的運動狀態(tài),對無人船的航向進行糾正直至保持在誤差范圍之內(nèi)后繼續(xù)直行。
1.4.3 死魚異物檢測
針對水產(chǎn)養(yǎng)殖行業(yè)中常見的漂浮死魚,通過前期對大量的養(yǎng)殖水域水面漂浮死魚相關(guān)圖片學(xué)習(xí)訓(xùn)練,系統(tǒng)地整理相關(guān)數(shù)據(jù)集。采用CNN網(wǎng)絡(luò)搭載數(shù)據(jù)集訓(xùn)練模型,通過顏色增強、增加隨機角度等圖像增強相關(guān)策略提高模型精度[22-23]。
實際運行時,攝像頭采集圖像信息傳入K210芯片內(nèi)部的KPU組件運行模型。K210芯片內(nèi)的KPU將圖像處理的結(jié)果代入?yún)^(qū)域?qū)油ㄟ^進行比對,判斷相機拍攝范圍內(nèi)是否存在死魚。當(dāng)識別到水面上存在漂浮死魚時,通過控制K210微控制器上的IO口信號輸出與船載STM32微控制器實現(xiàn)通信,并上傳云端。死魚異物檢測算法如圖8所示。
圖8 死魚異物檢測算法流程圖
1.4.4 專家系統(tǒng)
實現(xiàn)感知數(shù)據(jù)到OneNET云服務(wù)器的傳輸后,云端可獲得養(yǎng)殖場的水質(zhì)數(shù)據(jù)。在此基礎(chǔ)上,專家系統(tǒng)通過對云端數(shù)據(jù)進行水質(zhì)分析與養(yǎng)殖方案的智能推薦,將傳統(tǒng)的根據(jù)人工經(jīng)驗進行管理轉(zhuǎn)變?yōu)橐揽繉<蚁到y(tǒng)的智能推薦,從而實現(xiàn)現(xiàn)代化魚塘養(yǎng)殖管理方式的轉(zhuǎn)型升級,對養(yǎng)殖場水質(zhì)進行準(zhǔn)確合理的判斷和科學(xué)決策。
專家系統(tǒng)整體結(jié)構(gòu)圖如圖9所示。
圖9 專家系統(tǒng)整體結(jié)構(gòu)圖
本系統(tǒng)將專家知識通過數(shù)學(xué)建模形成數(shù)值化體系,構(gòu)建的知識庫包含事實庫和規(guī)則庫兩部分,其中事實庫包含生產(chǎn)要素信息表,規(guī)則庫包含生產(chǎn)要素對應(yīng)規(guī)則表、魚類最優(yōu)水質(zhì)指標(biāo)表;推理機部分通過構(gòu)筑Rete網(wǎng)絡(luò),采用正向推理規(guī)則中的Rete算法實現(xiàn)推理,通過模式匹配得到推薦方案,最終通過Web應(yīng)用向用戶推送當(dāng)前水質(zhì)分析情況以及水質(zhì)調(diào)節(jié)方案。
基于OneNET平臺開發(fā)的水質(zhì)檢測調(diào)節(jié)系統(tǒng)用戶主界面如圖10所示,包含了水質(zhì)指標(biāo)實時數(shù)據(jù)、實時地圖定位、控制選項、池塘養(yǎng)殖建議等信息,直觀展示了當(dāng)前無人船的工作狀態(tài)以及實時的水質(zhì)參數(shù)。
圖10 用戶系統(tǒng)主界面
基于OneNET云平臺開發(fā)Web應(yīng)用程序,嵌入高德地圖,其用戶界面如圖11所示。用戶點擊地圖獲取水質(zhì)檢測目標(biāo)點經(jīng)緯度并利用NB-IoT物聯(lián)網(wǎng)下行通信將經(jīng)緯度發(fā)送給無人船。
圖11 云上定點界面
開啟自主巡航模式后,無人船將自動進行路徑規(guī)劃并駛向航行目標(biāo)點。在抵達目標(biāo)點后,無人船會懸停并采集水質(zhì)數(shù)據(jù)發(fā)送至云平臺,完畢后駛向下一目標(biāo)點直至目標(biāo)點遍歷完成。
云上遙控的界面如圖12所示,通過與底層節(jié)點的雙向通信,實現(xiàn)在云端對無人船移動水質(zhì)檢測節(jié)點航行方向和水質(zhì)調(diào)節(jié)設(shè)備的啟停進行控制。
圖12 云上遙控方案
利用NB-IoT技術(shù)實現(xiàn)水質(zhì)參數(shù)遠距離透傳和上云,實現(xiàn)云上感知的功能,云平臺數(shù)據(jù)顯示界面如圖13所示。
圖13 云上感知界面
根據(jù)導(dǎo)入的航行目標(biāo)點,無人船自主巡航駛向目標(biāo)點。抵達目標(biāo)點后懸停,測量水質(zhì),采集多組水質(zhì)數(shù)據(jù)上傳至云平臺,作為該區(qū)域的水質(zhì)平均指標(biāo)。
云平臺在接收整合完整的水域水質(zhì)數(shù)據(jù)之后,由專家系統(tǒng)根據(jù)數(shù)據(jù)給出科學(xué)的決策,并在Web界面滾動播報水質(zhì)調(diào)控方案和養(yǎng)殖建議。云上施策可以在監(jiān)控水質(zhì)的基礎(chǔ)上,為養(yǎng)殖戶提供更加科學(xué)的養(yǎng)殖管理方案,盡可能地提高水產(chǎn)養(yǎng)殖質(zhì)量。
為對本系統(tǒng)各項功能指標(biāo)進行測試與驗證,利用開發(fā)完成的系統(tǒng)對某地實際養(yǎng)殖魚塘進行多目標(biāo)點的水質(zhì)參數(shù)巡檢,提前用云上設(shè)點功能設(shè)置檢測點,無人船根據(jù)給定的檢測點進行自主巡航并測量多種水質(zhì)參數(shù)并給出相應(yīng)的反饋建議。功能驗證主要包括4個部分:(1)無人船自主巡航功能;(2)多點水質(zhì)參數(shù)動態(tài)測量功能;(3)水面漂浮死魚識別功能;(4)水質(zhì)數(shù)據(jù)分析反饋功能。
3.2.1 無人船自主巡航功能
表1為無人船自主巡航中,通過組合導(dǎo)航技術(shù)實際到達的目標(biāo)點懸停的位置與預(yù)設(shè)目標(biāo)點位置以及它們之間的偏差,并在圖14中直觀地呈現(xiàn)了預(yù)設(shè)目標(biāo)點與實際懸停位置的偏差。其中無人船懸停位置為懸停穩(wěn)定后10次讀取BD-GPS取平均值后得到的數(shù)據(jù)。從表1可以看出,在無人船遍歷9個預(yù)設(shè)目標(biāo)點的過程中,最小偏差為0.96 m,最大偏差為2.42 m。
表1 自主巡航試驗數(shù)據(jù)
圖14 自主巡航偏差
目前國內(nèi)一些無人船研究,如劉星橋等[24]研制的基于GPS和GPRS自學(xué)習(xí)游弋式遠程監(jiān)測系統(tǒng),其實際導(dǎo)航位置與設(shè)定位置之間的誤差小于2 m。雖然本系統(tǒng)該參數(shù)誤差較之偏大,但是其導(dǎo)航運算量大,不利于長久續(xù)航。并且在實際應(yīng)用中,由于水質(zhì)不會在小范圍內(nèi)發(fā)生突變,因此該定位精度基本滿足了無人船在養(yǎng)殖場中的巡航要求。
3.2.2 多點水質(zhì)參數(shù)動態(tài)測量功能
表2為無人船在水域中采集到的pH、溶氧含量、亞硝酸鹽含量、氨氮含量和溫度等影響水產(chǎn)養(yǎng)殖質(zhì)量的關(guān)鍵水質(zhì)參數(shù),驗證了搭載了多種傳感器的無人船可以高效實時地完成檢測點水質(zhì)的測量。測量結(jié)果與第三方檢測機構(gòu)的對該魚塘的水樣送檢結(jié)果基本吻合,證明了本研究所述系統(tǒng)水質(zhì)檢測的可靠性。
表2 試驗水質(zhì)測試數(shù)據(jù)
3.2.3 水面漂浮死魚識別功能
如圖15為船載相機拍攝漂浮死魚的識別結(jié)果。對超過2100張實際水面漂浮死魚的圖像特征提取與學(xué)習(xí),目前船載K210模塊死魚識別的成功率已經(jīng)可達80%以上,可以滿足實際的識別要求。國內(nèi)如馬來賓等[25]通過搭載相機實現(xiàn)對水質(zhì)的遠程監(jiān)控,但無法對水面信息進行直接提取判斷;江先亮等[26]利用船載雙攝像頭用于對巡航障礙物的判斷,輔助無人船的自主航行。
圖15 死魚識別結(jié)果
3.2.4 水質(zhì)數(shù)據(jù)分析反饋功能
如圖16為某次無人船巡航結(jié)束后手機APP的顯示控制界面。
圖16 手機APP界面
從圖16中可以看出在終端給出了當(dāng)前水產(chǎn)養(yǎng)殖場的相關(guān)養(yǎng)殖水質(zhì)參數(shù)(以鱖魚為例),并對應(yīng)于給出了不同指標(biāo)的評價(正常、偏高、偏低),用戶可以切換至自己所養(yǎng)殖的魚類,查看對應(yīng)的分析結(jié)果。手機APP終端提供了水質(zhì)調(diào)節(jié)節(jié)點的控制按鈕,方便及時調(diào)節(jié)水質(zhì)。同時增加了無人船的控制按鈕,可以臨時控制無人船更改航向或者緊急情況下實現(xiàn)對無人船的回收快速回收。
根據(jù)不同的水質(zhì)情況以及不同的魚類,專家系統(tǒng)會推理給出相關(guān)養(yǎng)殖建議呈現(xiàn)在Web界面。表3整理了針對鱖魚在不同水質(zhì)指標(biāo)下,專家系統(tǒng)給出的建議(部分)。從表3可以看出,結(jié)合多個水質(zhì)參數(shù)指標(biāo),專家系統(tǒng)給出了相應(yīng)的養(yǎng)殖建議,為養(yǎng)殖戶合理調(diào)整水質(zhì)提供了一個參考。而目前大多數(shù)水質(zhì)監(jiān)測系統(tǒng)大多是停留在水質(zhì)數(shù)據(jù)的可視化[27-32],缺乏對信息的處理與分析,無法提供給養(yǎng)殖戶直觀有效地參考建議。
表3 專家系統(tǒng)養(yǎng)殖建議反饋
水質(zhì)檢測與調(diào)節(jié)物聯(lián)系統(tǒng)利用無人船搭載多種水質(zhì)傳感器作為可移動的物聯(lián)網(wǎng)感知節(jié)點,通過自主巡航和數(shù)據(jù)采集并利用NB-IoT技術(shù)將數(shù)據(jù)接入云平臺,在云端利用專家系統(tǒng)進行數(shù)據(jù)分析和決策反饋。在實際應(yīng)用中,本系統(tǒng)不僅解決了在人工抽檢和浮標(biāo)組網(wǎng)監(jiān)測中出現(xiàn)的效率低下、成本高、檢測范圍小等問題,而且通過水質(zhì)數(shù)據(jù)的科學(xué)分析與反饋更是減小了誤判的可能性,助力水產(chǎn)品增產(chǎn)提質(zhì)。
□