莫少凡,孔 平,李松杰,宋麗穎,李彩瑗,謝能剛
(1 安徽工業大學管理科學與工程學院,安徽 馬鞍山 243032;2 武漢大學物理科學與技術學院,湖北 武漢 430072)
隨著網絡信息技術的高速發展,互聯網及衍生的各類產品已融入生活、生產等多個領域。依托互聯網,配合多種信息傳感器的物聯網技術[1-2]廣泛應用于各行業,對促進經濟發展和社會進步具有重要意義[3-6]。目前,國外很多國家開展將物聯網技術融入養殖行業的嘗試,致力研究出更高效的生產系統。例如,挪威提出魚聯網概念,將LoRa附加模塊應用于海洋漁業中,驗證了戶外養殖實時監測的可行性[7],澳大利亞將無線傳感器網絡(Wireless Sensor Networks,WSN)[8-10]應用在畜牧業中,開發出一種易組建、成本低的自配置物聯網絡,形成“智慧農場”養殖模式[11-13]。國內學者也已開展將物聯網和無線通信技術融入水產養殖領域的研究。如李慧等[14]基于物聯網Android平臺,利用ZigBee無線通信模塊[15]構建鏈式多節點網絡,實現對多節點水質數據遠程監測。上述方案需在現場布置多個數據傳輸模塊,設備之間存在頻譜干擾會造成部分數據丟失,而系統輻射范圍受節點距離、現場開闊程度等因素影響,致使監測范圍有限?,F有研究成果表明,在大規模水產養殖模式[16-17]中仍存在水質監測難度大、數據傳輸距離短、遠程管理效果差等問題。
本研究開發了一種適用于水產養殖,帶有水質監測的增氧機遠程控制系統。該系統配備水質、氣象傳感器,通過設備內置微處理器采集數據,由4G通信裝置實現數據實時傳輸。
系統主要由底層模塊(傳感器、數據傳輸設備、現場控制模塊)、遠程服務器、遠程控制客戶端等模塊組成,系統控制電路和其他硬件設備集成安裝于增氧機控制箱中,用戶可依據實際應用場景調整安置位置。
系統外接220 V交流電源保證增氧機電機正常運轉,外接電源在控制箱中經降壓模塊調理后為其他設備供電。底層數據采集主站選用內置MIPS架構MCU芯片的數據傳輸單元,該設備采用Modbus RTU通信協議主站輪詢從站實時采集各項數據。
系統底層模塊與服務器之間采用發布、訂閱式通信,數據傳輸單元輪詢各傳感器節點后整合數據,通過采用MQTT協議搭建的通信通道上傳數據至物聯網平臺,同時底層模塊通過該通道接收由服務器下發的控制指令。系統中增氧機啟停分為現場和遠程兩種控制模式,現場控制箱內配備顯示屏實時顯示氣象、水質數據并配有手動開關可快速啟停增氧機;遠程控制基于阿里云物聯網、微信開發者等平臺共同開發,以微信小程序為應用載體,具備遠程控制增氧機、監測氣象、水質數據、溶氧閾值報警等功能,經設定兩種控制模式不可同時工作,避免造成控制邏輯混亂。
系統框架如圖1所示。

圖1 系統架構圖
數據采集模塊實現對水質、氣象、電路等數據的采集上報功能,采集周期設為1 min。系統中有瑞蒙德RMD-ISDT10-G溶氧、RMD-ISDC2M12 pH、YDPT-01環境監測變送器3種傳感器,控制電路中接入正泰DDSU-666型智能電表,采集節點選擇漢楓4G全網通DTU PG-46。
主站DTU內置多種通信協議[18],適用于多節點[19]數據采集系統,由內置SIM卡提供通信網絡服務。DTU與從站設備之間采用RS 485[20]協議通信,各傳感器修改站號后作為從站并聯接入主站信號接口,根據傳感器報文[21]格式,編寫數據采集程序并燒錄至主站MCU芯片。DTU集合數據采集、傳輸等功能,主站設備周期性采集傳感器數據,整合后發送至遠程服務器,改變了傳統外置MCU芯片的數據采集形式,擺脫了水質監測設備布線煩瑣,監測位置單一等困擾。
實際測試結果表明設備安裝于戶外時無線網絡信號可達到91%,安裝于室內時信號也可達到82%,數據傳輸迅速,且不受通信距離影響,滿足水產養殖面積大、跨度長的通信需求。
系統遠程服務器基于阿里云物聯網平臺及SQL數據庫搭建,服務器內構建底層設備物理模型用于存儲、展示數據,底層模塊采用MQTT協議實時上傳數據或接收控制指令,達到遠程監控系統目的。服務器內采用Java Script語言編寫數據解析程序,DTU周期性輪詢從站設備采集數據并上傳至服務器,經解析程序識別校驗后,提取指定寄存器內數據解析并賦值到對應物理模型,同時存儲于服務器SQL數據庫內,完成一次平臺數據更新。服務器端與用戶微信客戶端之間采用ROS(Robot Operating System,ROS)異步通信,微信應用程序作為訂閱端通過Topic通道接收來自服務器下發的各項監測數據,用戶可通過微信客戶端訪問服務器SQL數據庫或發出遠程控制指令,通信流程如圖2所示。

圖2 通信流程圖
溶氧是水產養殖最重要的水質參數之一,其含量直接影響養殖經濟效益[22]。水體中溶氧含量受氣壓、溫度、濕度等因素影響[23],高密度水產養殖模式下,面對溶氧數值變化較大時,需及時響應,以減少經濟損失,降低養殖損耗[24-25]。本系統以溶氧含量為報警觸發條件,通過設置溶氧含量閾值并配備短信報警功能,達到精準監測、及時報警的監管目的。
系統服務器作為閾值報警信息發布端,用戶的釘釘應用客戶端為信息接收端,服務器內創建閾值報警規則并設置閾值上下限,服務器接收、解析底層數據后自動執行閾值報警程序,當溶氧含量突破閾值時,服務器向用戶釘釘賬戶發送報警信息,提醒用戶開啟或關閉增氧機。閾值報警程序經測試,可全天候不間斷監測溶氧變化并及時發送報警信息,符合實際養殖需求。
為便于用戶開展養殖工作,現場控制箱內增加屏幕用于實時顯示水質、氣象數據并保留手動開關增氧機按鈕,用戶可在現場一鍵啟動增氧機?,F場顯示部分選擇支持數據主動解析和具有串口通信功能的淘晶馳X 5系列屏幕,根據需監測數據種類,在串口屏上位機軟件中制作顯示界面工程,設置屏幕為主動解析工作模式并與DTU匹配波特率。屏幕信號接收線經TTL轉RS 485模塊并聯接入底層數據采集線路中,系統工作后屏幕通過轉接模塊接收傳感器的反饋報文,根據各傳感器報文格式,采用C語言編寫屏幕主動解析程序并檢驗程序運行可靠性。
現場控制是增氧機啟停的另一種控制模式,系統控制電路中安裝模式切換按鈕。用戶按下后立即切斷電路中與遠程控制相關的繼電器設備電源,致使遠程控制指令在控制電路中無法響應,遠程控制被迫失效,同時增氧機開始工作,系統切換為現場控制模式。按鈕復位后增氧機停止運轉,并立即恢復被切斷電源的設備供電,系統重新切換為遠程控制模式,實際測試表明,兩種控制模式獨立工作,互不影響。
微信小程序是由微信平臺衍生出的一種應用服務,可適配Android、iOS、HarmonyOS等系統,程序具有普適性;相對于應用軟件而言,該程序后期維護更便捷,可按需求快速推出線上新版本[26],在使用期間僅需支付流量費即可穩定運行,給予用戶便利且高效的使用體驗。系統以微信小程序為應用載體,客戶端應用程序主要由UI渲染層和App Service邏輯層組成,渲染層使用Web View多線程渲染;邏輯層采用Js Core線程運行Java Script程序,處理邏輯運行、數據查詢以及函數調用等用戶請求。多界面應用程序則應用多個Web View線程,兩線程之間通信由微信客戶端進行中轉,當系統產生的數據變化時,由邏輯層通知到渲染層觸發頁面數據更新,邏輯層主要負責處理用戶在渲染層觸發的事件,并及時給予事件響應。
基于微信開發者平臺所設計開發,用于增氧機遠程控制的應用程序控制邏輯如圖3所示。

圖3 客戶端控制邏輯圖
用戶注冊設備進入程序主界面后,微信客戶端與遠程服務器之間建立Topic訂閱通信通道,服務器內將系統底層模塊上傳的數據解析完成后,下發至微信客戶端完成數據更新任務;用戶可以在微信端通過此通道訪問服務器的SQL數據庫查詢環境、水質等數據。在微信客戶端所下發增氧機控制指令經Topic通道上傳至服務器,服務器端采用MQTT協議通信轉發指令至現場控制箱,再由系統控制電路執行命令,同時將電機運行狀態反饋至服務器作為電機運行狀態的數據記錄。
3.3.1 氣象、水質數據監測
為解決傳統水質送檢程序煩瑣,檢測成本高等問題,本設計將養殖現場大氣壓、溫度、濕度數據,水體溶氧、pH數值,系統電路中電壓、電流數據整合為應用程序主界面,如圖4所示,可達到隨時隨地監測水質、氣象數據的目的。系統底層模塊實時采集各項數據并由數據傳輸設備上傳至物聯網平臺,經平臺解析后下傳至微信客戶端,完成一次數據更新。系統周期性采集數據,微信客戶端數據實時更新,以滿足用戶監測需求。經測試,微信客戶端30 min內完成27次數據更新,測試結果達到設計標準。

圖4 應用程序主界面
3.3.2 遠程控制功能
用戶在微信客戶端所發出的增氧機控制指令,由手機無線網絡負責遠距離傳輸,服務器配合系統控制電路做出響應,共同完成控制任務。
系統控制電路中RS 485繼電器設備的信號線并聯接入數據傳輸單元的信號接口,客戶端所下發的控制指令經服務器處理后下傳至數據傳輸單元,RS 485繼電器識別控制指令后,執行繼電器斷開或吸合指令,實現遠程控制功能。系統中該繼電器的工作狀態以報文形式通過數據傳輸單元上傳至服務器,經服務器識別解析后,作為監測電機運行狀況的數據來源,并下傳至微信客戶端作為養殖管理數據參照。
3.3.3 歷史數據查詢
由于水質、氣象數據受環境影響變化較大[27],對于養殖方式粗放、養殖布局不合理、養殖密度過大的傳統養殖模式而言[28],依靠經驗的養殖方式難以降低由環境變化而導致的經濟損失[29],故保留過去時段所監測的各項數據,對積累養殖經驗、排查養殖問題、實現科學養殖都具有重要意義。
本系統中用戶在微信客戶端可通過Topic訂閱通道訪問系統遠程服務器的SQL數據庫查看過去時段數據。應用程序經設計,將各項數據的監測時間設為橫坐標,數值大小設為縱坐標生成折線圖在客戶端展示。在已測試試驗組中選取8 h測試數據如圖5所示,實際應用時可按照需求分時段調用不同種類數據,為用戶提供靈活的數據查詢服務。

圖5 歷史數據查詢界面
本研究在安徽工業大學內布設采集節點進行實際測試,為驗證設備遠程控制可靠性,在測試階段選擇一臺參數為220 V,額定功率1.5 kW的單相異步電動機接入系統用于遠程啟停測試,設備現場布置如圖6所示。

圖6 現場試驗設備布置概況
于2022年9月20日至2022年9月29日在測試水域開展為期10 d,單次測試時長為8 h的水質監測試驗。
測試階段外接220 V交流電源為系統供電,按照傳統水質監測模式[30-32],在待測水域中安置溶氧、pH傳感器,水域上方布置環境監測變送器,設定DTU采集周期為1 min,選取一組采集數據如表1所示。

表1 氣象、水質、電路測試數據
由表1可看出,在8 h內,設備可不間斷獲取溶氧、pH、溫度、濕度、大氣壓等參數信息,其中pH測量精度達到0.02,溶氧控制精度在±0.4 mg/L,溫度測量精度達到0.5℃,氣壓測量精度達到0.1 kPa,在測試時段內不受環境因素影響,監測結果穩定,體現了系統的強魯棒性,符合水產養殖監測需求。
測試客戶端數據更新速率和遠程控制響應速度,設備通電工作后,當DTU上傳數據至服務器,微信小程序內同步更新各項監測數據,點擊遠程啟停電機按鈕,記錄數據更新時間和電機響應時間,等待下次數據更新后重復上述試驗,截取連續10次啟停測試結果如表2所示。

表2 遠程控制測試結果
從表2可以看出,設備工作時持續更新電機運行狀況,微信客戶端下一次數據更新時間約為1.2 min,達到實時監測系統的目的;遠程控制指令下發及時,設備響應延遲低于100 ms,完全達到了系統設計要求。
基于阿里云物聯網、微信開發者等平臺所設計的增氧機遠程控制系統,在微信客戶端實現遠程控制、養殖環境監測、溶氧閾值報警等功能。選用DTU承擔數據采集和傳輸任務,改變了傳統自建通信組網的監測模式,不僅降低了監測系統布建難度,減少系統硬件成本;而且擴大了監測范圍,可在待測水域任意位置布置節點,提高監測結果可信度。設備周期性輪詢從站設備后打包數據上傳,降低了設備和服務器數據處理量,當傳感器數據丟包時會導致本次數據失效,需等待下一周期數據更新。