莫少凡,孔 平,李松杰,宋麗穎,李彩瑗,謝能剛
(1 安徽工業(yè)大學(xué)管理科學(xué)與工程學(xué)院,安徽 馬鞍山 243032;2 武漢大學(xué)物理科學(xué)與技術(shù)學(xué)院,湖北 武漢 430072)
隨著網(wǎng)絡(luò)信息技術(shù)的高速發(fā)展,互聯(lián)網(wǎng)及衍生的各類產(chǎn)品已融入生活、生產(chǎn)等多個領(lǐng)域。依托互聯(lián)網(wǎng),配合多種信息傳感器的物聯(lián)網(wǎng)技術(shù)[1-2]廣泛應(yīng)用于各行業(yè),對促進經(jīng)濟發(fā)展和社會進步具有重要意義[3-6]。目前,國外很多國家開展將物聯(lián)網(wǎng)技術(shù)融入養(yǎng)殖行業(yè)的嘗試,致力研究出更高效的生產(chǎn)系統(tǒng)。例如,挪威提出魚聯(lián)網(wǎng)概念,將LoRa附加模塊應(yīng)用于海洋漁業(yè)中,驗證了戶外養(yǎng)殖實時監(jiān)測的可行性[7],澳大利亞將無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)[8-10]應(yīng)用在畜牧業(yè)中,開發(fā)出一種易組建、成本低的自配置物聯(lián)網(wǎng)絡(luò),形成“智慧農(nóng)場”養(yǎng)殖模式[11-13]。國內(nèi)學(xué)者也已開展將物聯(lián)網(wǎng)和無線通信技術(shù)融入水產(chǎn)養(yǎng)殖領(lǐng)域的研究。如李慧等[14]基于物聯(lián)網(wǎng)Android平臺,利用ZigBee無線通信模塊[15]構(gòu)建鏈?zhǔn)蕉喙?jié)點網(wǎng)絡(luò),實現(xiàn)對多節(jié)點水質(zhì)數(shù)據(jù)遠程監(jiān)測。上述方案需在現(xiàn)場布置多個數(shù)據(jù)傳輸模塊,設(shè)備之間存在頻譜干擾會造成部分?jǐn)?shù)據(jù)丟失,而系統(tǒng)輻射范圍受節(jié)點距離、現(xiàn)場開闊程度等因素影響,致使監(jiān)測范圍有限?,F(xiàn)有研究成果表明,在大規(guī)模水產(chǎn)養(yǎng)殖模式[16-17]中仍存在水質(zhì)監(jiān)測難度大、數(shù)據(jù)傳輸距離短、遠程管理效果差等問題。
本研究開發(fā)了一種適用于水產(chǎn)養(yǎng)殖,帶有水質(zhì)監(jiān)測的增氧機遠程控制系統(tǒng)。該系統(tǒng)配備水質(zhì)、氣象傳感器,通過設(shè)備內(nèi)置微處理器采集數(shù)據(jù),由4G通信裝置實現(xiàn)數(shù)據(jù)實時傳輸。
系統(tǒng)主要由底層模塊(傳感器、數(shù)據(jù)傳輸設(shè)備、現(xiàn)場控制模塊)、遠程服務(wù)器、遠程控制客戶端等模塊組成,系統(tǒng)控制電路和其他硬件設(shè)備集成安裝于增氧機控制箱中,用戶可依據(jù)實際應(yīng)用場景調(diào)整安置位置。
系統(tǒng)外接220 V交流電源保證增氧機電機正常運轉(zhuǎn),外接電源在控制箱中經(jīng)降壓模塊調(diào)理后為其他設(shè)備供電。底層數(shù)據(jù)采集主站選用內(nèi)置MIPS架構(gòu)MCU芯片的數(shù)據(jù)傳輸單元,該設(shè)備采用Modbus RTU通信協(xié)議主站輪詢從站實時采集各項數(shù)據(jù)。
系統(tǒng)底層模塊與服務(wù)器之間采用發(fā)布、訂閱式通信,數(shù)據(jù)傳輸單元輪詢各傳感器節(jié)點后整合數(shù)據(jù),通過采用MQTT協(xié)議搭建的通信通道上傳數(shù)據(jù)至物聯(lián)網(wǎng)平臺,同時底層模塊通過該通道接收由服務(wù)器下發(fā)的控制指令。系統(tǒng)中增氧機啟停分為現(xiàn)場和遠程兩種控制模式,現(xiàn)場控制箱內(nèi)配備顯示屏實時顯示氣象、水質(zhì)數(shù)據(jù)并配有手動開關(guān)可快速啟停增氧機;遠程控制基于阿里云物聯(lián)網(wǎng)、微信開發(fā)者等平臺共同開發(fā),以微信小程序為應(yīng)用載體,具備遠程控制增氧機、監(jiān)測氣象、水質(zhì)數(shù)據(jù)、溶氧閾值報警等功能,經(jīng)設(shè)定兩種控制模式不可同時工作,避免造成控制邏輯混亂。
系統(tǒng)框架如圖1所示。
圖1 系統(tǒng)架構(gòu)圖
數(shù)據(jù)采集模塊實現(xiàn)對水質(zhì)、氣象、電路等數(shù)據(jù)的采集上報功能,采集周期設(shè)為1 min。系統(tǒng)中有瑞蒙德RMD-ISDT10-G溶氧、RMD-ISDC2M12 pH、YDPT-01環(huán)境監(jiān)測變送器3種傳感器,控制電路中接入正泰DDSU-666型智能電表,采集節(jié)點選擇漢楓4G全網(wǎng)通DTU PG-46。
主站DTU內(nèi)置多種通信協(xié)議[18],適用于多節(jié)點[19]數(shù)據(jù)采集系統(tǒng),由內(nèi)置SIM卡提供通信網(wǎng)絡(luò)服務(wù)。DTU與從站設(shè)備之間采用RS 485[20]協(xié)議通信,各傳感器修改站號后作為從站并聯(lián)接入主站信號接口,根據(jù)傳感器報文[21]格式,編寫數(shù)據(jù)采集程序并燒錄至主站MCU芯片。DTU集合數(shù)據(jù)采集、傳輸?shù)裙δ?主站設(shè)備周期性采集傳感器數(shù)據(jù),整合后發(fā)送至遠程服務(wù)器,改變了傳統(tǒng)外置MCU芯片的數(shù)據(jù)采集形式,擺脫了水質(zhì)監(jiān)測設(shè)備布線煩瑣,監(jiān)測位置單一等困擾。
實際測試結(jié)果表明設(shè)備安裝于戶外時無線網(wǎng)絡(luò)信號可達到91%,安裝于室內(nèi)時信號也可達到82%,數(shù)據(jù)傳輸迅速,且不受通信距離影響,滿足水產(chǎn)養(yǎng)殖面積大、跨度長的通信需求。
系統(tǒng)遠程服務(wù)器基于阿里云物聯(lián)網(wǎng)平臺及SQL數(shù)據(jù)庫搭建,服務(wù)器內(nèi)構(gòu)建底層設(shè)備物理模型用于存儲、展示數(shù)據(jù),底層模塊采用MQTT協(xié)議實時上傳數(shù)據(jù)或接收控制指令,達到遠程監(jiān)控系統(tǒng)目的。服務(wù)器內(nèi)采用Java Script語言編寫數(shù)據(jù)解析程序,DTU周期性輪詢從站設(shè)備采集數(shù)據(jù)并上傳至服務(wù)器,經(jīng)解析程序識別校驗后,提取指定寄存器內(nèi)數(shù)據(jù)解析并賦值到對應(yīng)物理模型,同時存儲于服務(wù)器SQL數(shù)據(jù)庫內(nèi),完成一次平臺數(shù)據(jù)更新。服務(wù)器端與用戶微信客戶端之間采用ROS(Robot Operating System,ROS)異步通信,微信應(yīng)用程序作為訂閱端通過Topic通道接收來自服務(wù)器下發(fā)的各項監(jiān)測數(shù)據(jù),用戶可通過微信客戶端訪問服務(wù)器SQL數(shù)據(jù)庫或發(fā)出遠程控制指令,通信流程如圖2所示。
圖2 通信流程圖
溶氧是水產(chǎn)養(yǎng)殖最重要的水質(zhì)參數(shù)之一,其含量直接影響?zhàn)B殖經(jīng)濟效益[22]。水體中溶氧含量受氣壓、溫度、濕度等因素影響[23],高密度水產(chǎn)養(yǎng)殖模式下,面對溶氧數(shù)值變化較大時,需及時響應(yīng),以減少經(jīng)濟損失,降低養(yǎng)殖損耗[24-25]。本系統(tǒng)以溶氧含量為報警觸發(fā)條件,通過設(shè)置溶氧含量閾值并配備短信報警功能,達到精準(zhǔn)監(jiān)測、及時報警的監(jiān)管目的。
系統(tǒng)服務(wù)器作為閾值報警信息發(fā)布端,用戶的釘釘應(yīng)用客戶端為信息接收端,服務(wù)器內(nèi)創(chuàng)建閾值報警規(guī)則并設(shè)置閾值上下限,服務(wù)器接收、解析底層數(shù)據(jù)后自動執(zhí)行閾值報警程序,當(dāng)溶氧含量突破閾值時,服務(wù)器向用戶釘釘賬戶發(fā)送報警信息,提醒用戶開啟或關(guān)閉增氧機。閾值報警程序經(jīng)測試,可全天候不間斷監(jiān)測溶氧變化并及時發(fā)送報警信息,符合實際養(yǎng)殖需求。
為便于用戶開展養(yǎng)殖工作,現(xiàn)場控制箱內(nèi)增加屏幕用于實時顯示水質(zhì)、氣象數(shù)據(jù)并保留手動開關(guān)增氧機按鈕,用戶可在現(xiàn)場一鍵啟動增氧機?,F(xiàn)場顯示部分選擇支持?jǐn)?shù)據(jù)主動解析和具有串口通信功能的淘晶馳X 5系列屏幕,根據(jù)需監(jiān)測數(shù)據(jù)種類,在串口屏上位機軟件中制作顯示界面工程,設(shè)置屏幕為主動解析工作模式并與DTU匹配波特率。屏幕信號接收線經(jīng)TTL轉(zhuǎn)RS 485模塊并聯(lián)接入底層數(shù)據(jù)采集線路中,系統(tǒng)工作后屏幕通過轉(zhuǎn)接模塊接收傳感器的反饋報文,根據(jù)各傳感器報文格式,采用C語言編寫屏幕主動解析程序并檢驗程序運行可靠性。
現(xiàn)場控制是增氧機啟停的另一種控制模式,系統(tǒng)控制電路中安裝模式切換按鈕。用戶按下后立即切斷電路中與遠程控制相關(guān)的繼電器設(shè)備電源,致使遠程控制指令在控制電路中無法響應(yīng),遠程控制被迫失效,同時增氧機開始工作,系統(tǒng)切換為現(xiàn)場控制模式。按鈕復(fù)位后增氧機停止運轉(zhuǎn),并立即恢復(fù)被切斷電源的設(shè)備供電,系統(tǒng)重新切換為遠程控制模式,實際測試表明,兩種控制模式獨立工作,互不影響。
微信小程序是由微信平臺衍生出的一種應(yīng)用服務(wù),可適配Android、iOS、HarmonyOS等系統(tǒng),程序具有普適性;相對于應(yīng)用軟件而言,該程序后期維護更便捷,可按需求快速推出線上新版本[26],在使用期間僅需支付流量費即可穩(wěn)定運行,給予用戶便利且高效的使用體驗。系統(tǒng)以微信小程序為應(yīng)用載體,客戶端應(yīng)用程序主要由UI渲染層和App Service邏輯層組成,渲染層使用Web View多線程渲染;邏輯層采用Js Core線程運行Java Script程序,處理邏輯運行、數(shù)據(jù)查詢以及函數(shù)調(diào)用等用戶請求。多界面應(yīng)用程序則應(yīng)用多個Web View線程,兩線程之間通信由微信客戶端進行中轉(zhuǎn),當(dāng)系統(tǒng)產(chǎn)生的數(shù)據(jù)變化時,由邏輯層通知到渲染層觸發(fā)頁面數(shù)據(jù)更新,邏輯層主要負責(zé)處理用戶在渲染層觸發(fā)的事件,并及時給予事件響應(yīng)。
基于微信開發(fā)者平臺所設(shè)計開發(fā),用于增氧機遠程控制的應(yīng)用程序控制邏輯如圖3所示。
圖3 客戶端控制邏輯圖
用戶注冊設(shè)備進入程序主界面后,微信客戶端與遠程服務(wù)器之間建立Topic訂閱通信通道,服務(wù)器內(nèi)將系統(tǒng)底層模塊上傳的數(shù)據(jù)解析完成后,下發(fā)至微信客戶端完成數(shù)據(jù)更新任務(wù);用戶可以在微信端通過此通道訪問服務(wù)器的SQL數(shù)據(jù)庫查詢環(huán)境、水質(zhì)等數(shù)據(jù)。在微信客戶端所下發(fā)增氧機控制指令經(jīng)Topic通道上傳至服務(wù)器,服務(wù)器端采用MQTT協(xié)議通信轉(zhuǎn)發(fā)指令至現(xiàn)場控制箱,再由系統(tǒng)控制電路執(zhí)行命令,同時將電機運行狀態(tài)反饋至服務(wù)器作為電機運行狀態(tài)的數(shù)據(jù)記錄。
3.3.1 氣象、水質(zhì)數(shù)據(jù)監(jiān)測
為解決傳統(tǒng)水質(zhì)送檢程序煩瑣,檢測成本高等問題,本設(shè)計將養(yǎng)殖現(xiàn)場大氣壓、溫度、濕度數(shù)據(jù),水體溶氧、pH數(shù)值,系統(tǒng)電路中電壓、電流數(shù)據(jù)整合為應(yīng)用程序主界面,如圖4所示,可達到隨時隨地監(jiān)測水質(zhì)、氣象數(shù)據(jù)的目的。系統(tǒng)底層模塊實時采集各項數(shù)據(jù)并由數(shù)據(jù)傳輸設(shè)備上傳至物聯(lián)網(wǎng)平臺,經(jīng)平臺解析后下傳至微信客戶端,完成一次數(shù)據(jù)更新。系統(tǒng)周期性采集數(shù)據(jù),微信客戶端數(shù)據(jù)實時更新,以滿足用戶監(jiān)測需求。經(jīng)測試,微信客戶端30 min內(nèi)完成27次數(shù)據(jù)更新,測試結(jié)果達到設(shè)計標(biāo)準(zhǔn)。
圖4 應(yīng)用程序主界面
3.3.2 遠程控制功能
用戶在微信客戶端所發(fā)出的增氧機控制指令,由手機無線網(wǎng)絡(luò)負責(zé)遠距離傳輸,服務(wù)器配合系統(tǒng)控制電路做出響應(yīng),共同完成控制任務(wù)。
系統(tǒng)控制電路中RS 485繼電器設(shè)備的信號線并聯(lián)接入數(shù)據(jù)傳輸單元的信號接口,客戶端所下發(fā)的控制指令經(jīng)服務(wù)器處理后下傳至數(shù)據(jù)傳輸單元,RS 485繼電器識別控制指令后,執(zhí)行繼電器斷開或吸合指令,實現(xiàn)遠程控制功能。系統(tǒng)中該繼電器的工作狀態(tài)以報文形式通過數(shù)據(jù)傳輸單元上傳至服務(wù)器,經(jīng)服務(wù)器識別解析后,作為監(jiān)測電機運行狀況的數(shù)據(jù)來源,并下傳至微信客戶端作為養(yǎng)殖管理數(shù)據(jù)參照。
3.3.3 歷史數(shù)據(jù)查詢
由于水質(zhì)、氣象數(shù)據(jù)受環(huán)境影響變化較大[27],對于養(yǎng)殖方式粗放、養(yǎng)殖布局不合理、養(yǎng)殖密度過大的傳統(tǒng)養(yǎng)殖模式而言[28],依靠經(jīng)驗的養(yǎng)殖方式難以降低由環(huán)境變化而導(dǎo)致的經(jīng)濟損失[29],故保留過去時段所監(jiān)測的各項數(shù)據(jù),對積累養(yǎng)殖經(jīng)驗、排查養(yǎng)殖問題、實現(xiàn)科學(xué)養(yǎng)殖都具有重要意義。
本系統(tǒng)中用戶在微信客戶端可通過Topic訂閱通道訪問系統(tǒng)遠程服務(wù)器的SQL數(shù)據(jù)庫查看過去時段數(shù)據(jù)。應(yīng)用程序經(jīng)設(shè)計,將各項數(shù)據(jù)的監(jiān)測時間設(shè)為橫坐標(biāo),數(shù)值大小設(shè)為縱坐標(biāo)生成折線圖在客戶端展示。在已測試試驗組中選取8 h測試數(shù)據(jù)如圖5所示,實際應(yīng)用時可按照需求分時段調(diào)用不同種類數(shù)據(jù),為用戶提供靈活的數(shù)據(jù)查詢服務(wù)。
圖5 歷史數(shù)據(jù)查詢界面
本研究在安徽工業(yè)大學(xué)內(nèi)布設(shè)采集節(jié)點進行實際測試,為驗證設(shè)備遠程控制可靠性,在測試階段選擇一臺參數(shù)為220 V,額定功率1.5 kW的單相異步電動機接入系統(tǒng)用于遠程啟停測試,設(shè)備現(xiàn)場布置如圖6所示。
圖6 現(xiàn)場試驗設(shè)備布置概況
于2022年9月20日至2022年9月29日在測試水域開展為期10 d,單次測試時長為8 h的水質(zhì)監(jiān)測試驗。
測試階段外接220 V交流電源為系統(tǒng)供電,按照傳統(tǒng)水質(zhì)監(jiān)測模式[30-32],在待測水域中安置溶氧、pH傳感器,水域上方布置環(huán)境監(jiān)測變送器,設(shè)定DTU采集周期為1 min,選取一組采集數(shù)據(jù)如表1所示。
表1 氣象、水質(zhì)、電路測試數(shù)據(jù)
由表1可看出,在8 h內(nèi),設(shè)備可不間斷獲取溶氧、pH、溫度、濕度、大氣壓等參數(shù)信息,其中pH測量精度達到0.02,溶氧控制精度在±0.4 mg/L,溫度測量精度達到0.5℃,氣壓測量精度達到0.1 kPa,在測試時段內(nèi)不受環(huán)境因素影響,監(jiān)測結(jié)果穩(wěn)定,體現(xiàn)了系統(tǒng)的強魯棒性,符合水產(chǎn)養(yǎng)殖監(jiān)測需求。
測試客戶端數(shù)據(jù)更新速率和遠程控制響應(yīng)速度,設(shè)備通電工作后,當(dāng)DTU上傳數(shù)據(jù)至服務(wù)器,微信小程序內(nèi)同步更新各項監(jiān)測數(shù)據(jù),點擊遠程啟停電機按鈕,記錄數(shù)據(jù)更新時間和電機響應(yīng)時間,等待下次數(shù)據(jù)更新后重復(fù)上述試驗,截取連續(xù)10次啟停測試結(jié)果如表2所示。
表2 遠程控制測試結(jié)果
從表2可以看出,設(shè)備工作時持續(xù)更新電機運行狀況,微信客戶端下一次數(shù)據(jù)更新時間約為1.2 min,達到實時監(jiān)測系統(tǒng)的目的;遠程控制指令下發(fā)及時,設(shè)備響應(yīng)延遲低于100 ms,完全達到了系統(tǒng)設(shè)計要求。
基于阿里云物聯(lián)網(wǎng)、微信開發(fā)者等平臺所設(shè)計的增氧機遠程控制系統(tǒng),在微信客戶端實現(xiàn)遠程控制、養(yǎng)殖環(huán)境監(jiān)測、溶氧閾值報警等功能。選用DTU承擔(dān)數(shù)據(jù)采集和傳輸任務(wù),改變了傳統(tǒng)自建通信組網(wǎng)的監(jiān)測模式,不僅降低了監(jiān)測系統(tǒng)布建難度,減少系統(tǒng)硬件成本;而且擴大了監(jiān)測范圍,可在待測水域任意位置布置節(jié)點,提高監(jiān)測結(jié)果可信度。設(shè)備周期性輪詢從站設(shè)備后打包數(shù)據(jù)上傳,降低了設(shè)備和服務(wù)器數(shù)據(jù)處理量,當(dāng)傳感器數(shù)據(jù)丟包時會導(dǎo)致本次數(shù)據(jù)失效,需等待下一周期數(shù)據(jù)更新。