李昕聰,余紫揚,劉 璞,張烈山
(浙江理工大學機械與自動控制學院,浙江杭州 310018)
水產養殖業是漁業的重要組成部分,2020年全國水產養殖總產量5 224.2萬t,同比增長2.86%[1]。然而,由于水產養殖行業的水質檢測技術不成熟、運營維護成本高,所以覆蓋率較低,水質問題發現不及時,水產產量與質量難以得到保證[2-5]。為改善水產養殖水質污染問題,運用信息化技術進行養殖水質污染監測逐漸成為水產養殖業發展主流[6-9]。
水體的溫度、濁度、硝酸鹽含量、氨氮含量、溶氧和pH等是影響水產養殖的關鍵[10-11]。目前國內普遍的水產養殖水域水質檢測方法大多利用多個固定水質檢測點或者浮標構建監測網絡,或者依靠人力攜帶各種檢測設備進行現場測量[12-14]。針對這一現象,國內外許多專家學者都展開了研究,并提出了各自的解決方案。李鑫星等[15]提出一種基于ZigBee的無線水質監測系統,定時收集觀測點的水質數據。張琴等[16]基于LoRa設計了一種低功耗水產養殖水質監控系統,在覆蓋范圍和功耗上優勢明顯。謝辰旻等[17]基于Arduino設計了一種水下航行器,配合多傳感器實現水質監測與水質改善,但仍處于試驗階段。目前大部分的解決方案都各具特點,但都或多或少存在組網復雜、成本較高、維護復雜等問題,無法大規模部署。更重要的是,只提供水質的紙面參數,缺乏對水質參數的分析以及養殖反饋,無法很好地將反饋數據快速轉變成實際利益。
無人水質測量船成本低廉,且檢測覆蓋的面積廣,基本可以實現對水域的全天候大面積檢測,適合大規模部署。NB-IoT技術(Narrow Band -Internet of things,窄帶物聯網)不僅覆蓋范圍大、占用帶寬低、運行功耗低,且可以接入蜂窩網絡,極大地簡化了網絡結構,在各方面都更適合養殖魚塘的云端監控[18-21]。
本研究提出了一種基于NB-IoT與無人船巡檢技術的水質檢測與調節物聯系統。在云端實時監控水域水質的同時,還可以獲得由專家系統根據當前水質參數提出的養殖建議,進而云端控制水質調節節點對水質進行調整。本系統在監控水質的同時為養殖戶提供更加科學的養殖管理方案,為水產的增產、增質提供了一種可行的解決辦法。
水質檢測與調節物聯系統的總體方案如圖1所示,可分成云平臺、水質監控節點以及水質調節節點3大部分。

圖1 水質檢測與調節物聯系統總體方案
云平臺包含了OneNET開放云平臺以及專家系統,其主要功能為接收節點信息、推理養殖建議以及下發控制指令;水質監控節點為搭載了各式傳感器以及視覺模塊的自主巡航無人船,其通過NB-IoT與云平臺進行通信;水質調節節點則包括水泵、增氧機、投料機等漁業養殖相關設備,可以根據控制指令進行水質的調節。
整個水質檢測與調節物聯系統工作原理如圖2所示。用戶使用Web應用通過OneNET云平臺給無人船發送指定水域的檢測點坐標,無人船會根據收到的坐標點進行自動路徑規劃并開始無人巡航。在此期間,無人船搭載的視覺模塊和多個傳感器會收集各檢測點的水質參數并判斷是否存在漂浮的死魚,數據打包后通過NB-IoT模塊發送到云平臺,繼而實時呈現在用戶的Web應用界面。當無人船結束巡航時,所有的信息匯總后會在云端通過專家系統給出水質決策,并呈現在用戶的Web應用界面。最終用戶可以根據專家系統提供的決策和實際情況,通過云端控制增氧機、投料機以及水泵等設備的開啟或關閉,以調節水質。

圖2 工作原理示意圖
至此,用戶通過該水質檢測與調節系統,實現了對整個養殖水域的水質參數實時監控,獲得了專家系統提供的養殖建議,并可以實時控制調節設備來調節水質。
1.3.1 無人船移動檢測節點
無人船作為養殖場水質參數檢測與調節物聯網系統移動節點的承載平臺,其實物圖和內部結構示意圖分別如圖3和圖4所示。

圖3 無人船實物圖

圖4 無人船內部結構示意圖
無人船上搭載了pH傳感器、濁度傳感器、亞硝酸鹽傳感器、溶氧傳感器以及氨氮傳感器,可以實現對水域水質的多參數檢測。
K210視覺模塊可以對采集的圖像信息與導入的訓練模板比對,做出死魚檢測判斷。微控制器模塊由雙MCU組成,負責系統的運算與各模塊的控制。超聲波模塊采用HC-SR04超聲波測距模塊傳感器,實現對船體前方障礙物的規避。
無線通信方面,采用了核心為M5310-A芯片的NB-IoT無線通信模塊,負責與云平臺通信。
組合導航模塊采用BD-GPS定位模塊、數字羅盤以及IMU實現組合導航獲取姿態、航向與位置信息。動力驅動模塊采用雙H橋電機驅動兩路電機并由大容量鋰電池配合太陽能電池板進行提供續航能力。電源管理模塊采用LSP電量模塊獲取鋰電池電量情況并利用太陽能發電板輔助提高無人船的巡航能力。
1.3.2 固定水質調節節點
固定水質調節節點的工作原理如圖5所示,使用NB-IoT模塊、MCU、電磁繼電器和交流接觸器與水質調節裝置相連(換水泵、增氧機、投料機等)。

圖5 水質調節節點原理框圖(以溶氧調節為例)
當觀察到從云平臺收集到的水質數據超標,用戶可點擊手機App端控制按鈕發送命令請求,OneNET云平臺端接收到請求后,通過NB-IoT網絡將控制指令傳送給固定水質調節節點的控制電路模塊。節點控制電路模塊將接收到的指令通過串口通信的方式發送至MCU。MCU根據指令要求,接通光電隔離繼電器,利用繼電器控制水質調節設備電源的通斷,實現固定水質調節節點的啟停控制,最終完成對水質的調節。
1.4.1 無線通信程序
無線通信程序設計的總體思路如圖6所示。

圖6 無線通信程序流程圖
首先對相關設備硬件完成初始化,當檢測設備都在線且網絡狀態良好時,即可通過NB-IoT模塊通訊上云,創建設備實體和資源訂閱,從而進一步實現無人船的各項基本功能。
1.4.2 組合導航
組合導航程序的流程圖如圖7所示,主要由坐標轉換子程序、路徑規劃子程序、航向角更新子程序與航向控制子程序組成。

圖7 組合導航程序流程圖
主程序首先將相關外設接口與寄存器進行初始化配置,然后將獲取所得經緯度坐標進行高斯坐標轉換。轉換完后通過設置標志位判斷當前是否處于出發點,如果處于出發點需要首先通過貪心算法選取初始目標點,否則需要判斷當前位置是否處于目標點范圍之內。如果當前處于目標點范圍之內,需要通過貪心算法選取新的目標點,否則繼續計算當前位置與目標位置間的期望航向角,然后比較期望航向角與經過磁偏角自校正后的當前無人船航向角,如果航向角差在誤差范圍之內,則保持當前航向繼續直行,否則調用PID控制子程序調節PWM輸出的運動狀態,對無人船的航向進行糾正直至保持在誤差范圍之內后繼續直行。
1.4.3 死魚異物檢測
針對水產養殖行業中常見的漂浮死魚,通過前期對大量的養殖水域水面漂浮死魚相關圖片學習訓練,系統地整理相關數據集。采用CNN網絡搭載數據集訓練模型,通過顏色增強、增加隨機角度等圖像增強相關策略提高模型精度[22-23]。
實際運行時,攝像頭采集圖像信息傳入K210芯片內部的KPU組件運行模型。K210芯片內的KPU將圖像處理的結果代入區域層通過進行比對,判斷相機拍攝范圍內是否存在死魚。當識別到水面上存在漂浮死魚時,通過控制K210微控制器上的IO口信號輸出與船載STM32微控制器實現通信,并上傳云端。死魚異物檢測算法如圖8所示。

圖8 死魚異物檢測算法流程圖
1.4.4 專家系統
實現感知數據到OneNET云服務器的傳輸后,云端可獲得養殖場的水質數據。在此基礎上,專家系統通過對云端數據進行水質分析與養殖方案的智能推薦,將傳統的根據人工經驗進行管理轉變為依靠專家系統的智能推薦,從而實現現代化魚塘養殖管理方式的轉型升級,對養殖場水質進行準確合理的判斷和科學決策。
專家系統整體結構圖如圖9所示。

圖9 專家系統整體結構圖
本系統將專家知識通過數學建模形成數值化體系,構建的知識庫包含事實庫和規則庫兩部分,其中事實庫包含生產要素信息表,規則庫包含生產要素對應規則表、魚類最優水質指標表;推理機部分通過構筑Rete網絡,采用正向推理規則中的Rete算法實現推理,通過模式匹配得到推薦方案,最終通過Web應用向用戶推送當前水質分析情況以及水質調節方案。
基于OneNET平臺開發的水質檢測調節系統用戶主界面如圖10所示,包含了水質指標實時數據、實時地圖定位、控制選項、池塘養殖建議等信息,直觀展示了當前無人船的工作狀態以及實時的水質參數。

圖10 用戶系統主界面
基于OneNET云平臺開發Web應用程序,嵌入高德地圖,其用戶界面如圖11所示。用戶點擊地圖獲取水質檢測目標點經緯度并利用NB-IoT物聯網下行通信將經緯度發送給無人船。

圖11 云上定點界面
開啟自主巡航模式后,無人船將自動進行路徑規劃并駛向航行目標點。在抵達目標點后,無人船會懸停并采集水質數據發送至云平臺,完畢后駛向下一目標點直至目標點遍歷完成。
云上遙控的界面如圖12所示,通過與底層節點的雙向通信,實現在云端對無人船移動水質檢測節點航行方向和水質調節設備的啟停進行控制。

圖12 云上遙控方案
利用NB-IoT技術實現水質參數遠距離透傳和上云,實現云上感知的功能,云平臺數據顯示界面如圖13所示。

圖13 云上感知界面
根據導入的航行目標點,無人船自主巡航駛向目標點。抵達目標點后懸停,測量水質,采集多組水質數據上傳至云平臺,作為該區域的水質平均指標。
云平臺在接收整合完整的水域水質數據之后,由專家系統根據數據給出科學的決策,并在Web界面滾動播報水質調控方案和養殖建議。云上施策可以在監控水質的基礎上,為養殖戶提供更加科學的養殖管理方案,盡可能地提高水產養殖質量。
為對本系統各項功能指標進行測試與驗證,利用開發完成的系統對某地實際養殖魚塘進行多目標點的水質參數巡檢,提前用云上設點功能設置檢測點,無人船根據給定的檢測點進行自主巡航并測量多種水質參數并給出相應的反饋建議。功能驗證主要包括4個部分:(1)無人船自主巡航功能;(2)多點水質參數動態測量功能;(3)水面漂浮死魚識別功能;(4)水質數據分析反饋功能。
3.2.1 無人船自主巡航功能
表1為無人船自主巡航中,通過組合導航技術實際到達的目標點懸停的位置與預設目標點位置以及它們之間的偏差,并在圖14中直觀地呈現了預設目標點與實際懸停位置的偏差。其中無人船懸停位置為懸停穩定后10次讀取BD-GPS取平均值后得到的數據。從表1可以看出,在無人船遍歷9個預設目標點的過程中,最小偏差為0.96 m,最大偏差為2.42 m。

表1 自主巡航試驗數據

圖14 自主巡航偏差
目前國內一些無人船研究,如劉星橋等[24]研制的基于GPS和GPRS自學習游弋式遠程監測系統,其實際導航位置與設定位置之間的誤差小于2 m。雖然本系統該參數誤差較之偏大,但是其導航運算量大,不利于長久續航。并且在實際應用中,由于水質不會在小范圍內發生突變,因此該定位精度基本滿足了無人船在養殖場中的巡航要求。
3.2.2 多點水質參數動態測量功能
表2為無人船在水域中采集到的pH、溶氧含量、亞硝酸鹽含量、氨氮含量和溫度等影響水產養殖質量的關鍵水質參數,驗證了搭載了多種傳感器的無人船可以高效實時地完成檢測點水質的測量。測量結果與第三方檢測機構的對該魚塘的水樣送檢結果基本吻合,證明了本研究所述系統水質檢測的可靠性。

表2 試驗水質測試數據
3.2.3 水面漂浮死魚識別功能
如圖15為船載相機拍攝漂浮死魚的識別結果。對超過2100張實際水面漂浮死魚的圖像特征提取與學習,目前船載K210模塊死魚識別的成功率已經可達80%以上,可以滿足實際的識別要求。國內如馬來賓等[25]通過搭載相機實現對水質的遠程監控,但無法對水面信息進行直接提取判斷;江先亮等[26]利用船載雙攝像頭用于對巡航障礙物的判斷,輔助無人船的自主航行。

圖15 死魚識別結果
3.2.4 水質數據分析反饋功能
如圖16為某次無人船巡航結束后手機APP的顯示控制界面。

圖16 手機APP界面
從圖16中可以看出在終端給出了當前水產養殖場的相關養殖水質參數(以鱖魚為例),并對應于給出了不同指標的評價(正常、偏高、偏低),用戶可以切換至自己所養殖的魚類,查看對應的分析結果。手機APP終端提供了水質調節節點的控制按鈕,方便及時調節水質。同時增加了無人船的控制按鈕,可以臨時控制無人船更改航向或者緊急情況下實現對無人船的回收快速回收。
根據不同的水質情況以及不同的魚類,專家系統會推理給出相關養殖建議呈現在Web界面。表3整理了針對鱖魚在不同水質指標下,專家系統給出的建議(部分)。從表3可以看出,結合多個水質參數指標,專家系統給出了相應的養殖建議,為養殖戶合理調整水質提供了一個參考。而目前大多數水質監測系統大多是停留在水質數據的可視化[27-32],缺乏對信息的處理與分析,無法提供給養殖戶直觀有效地參考建議。

表3 專家系統養殖建議反饋
水質檢測與調節物聯系統利用無人船搭載多種水質傳感器作為可移動的物聯網感知節點,通過自主巡航和數據采集并利用NB-IoT技術將數據接入云平臺,在云端利用專家系統進行數據分析和決策反饋。在實際應用中,本系統不僅解決了在人工抽檢和浮標組網監測中出現的效率低下、成本高、檢測范圍小等問題,而且通過水質數據的科學分析與反饋更是減小了誤判的可能性,助力水產品增產提質。
□