?

可組合式堆肥發酵多層溫度自適應監測系統設計與試驗

2023-03-07 03:31王紀章
農業機械學報 2023年2期
關鍵詞:總線電路節點

王紀章 茆 寒 王 旭 周 靜

(江蘇大學農業工程學院,鎮江 212013)

0 引言

我國是農業大國,同時也是農業廢棄物產量大國,以17.29%的占比居于全球產量第一位[1],為解決廢棄物資源再利用問題,廢棄物的基料化、肥料化處理是農業廢棄物資源化利用的重要手段,而堆肥發酵是肥料化、基料化處理的關鍵技術[2],溫度是評價堆置發酵過程的一個重要指標,可以實現為翻拋作業和發酵腐熟度的評價提供依據。為了檢測堆體溫度,通常采用探針式溫度計或傳感器實現溫度檢測[3],為了檢測堆體溫度的分布,需要使用不同長度的探針傳感器進行檢測,這種檢測方式不僅操作繁瑣、檢測效率低下,而且無法做到對發酵堆溫度變化的連續監測。因此,能夠對發酵堆溫度進行便捷、有效、多位置的自動監測系統研究十分必要。

為了實現多點位溫度的同步測量,文獻[4-6]通過在系統中加入多路溫度采集模塊實現溫度監測,文獻[7]采用主從分布式設計思想解決了傳統溫度監測系統可擴展性差、數據查看不便等缺點,但該系統在進行多點位監測時存在線路較多、鋪設麻煩等缺點。針對以上缺點,文獻[8-10]提出地下無線傳感網絡,將各個傳感器采集模塊以節點形式通過無線局域網與數據匯聚模塊交互,再由數據匯集模塊處理數據并上傳至服務器。文獻[11-12]依據此概念設計出無線監測裝置,使其具備高隱藏性、易鋪設性、易升級等優點。但文獻[13-14]也發現,在與數據匯集節點進行數據交互式時,掩埋物會干擾裝置的信號強度,使數據傳輸出現丟包等現象,丟包造成數據缺失會對監測對象研究帶來一定負面影響。為保證節點數據傳輸的穩定性、準確性,文獻[15-16]使用空心探桿將傳感器采集模塊封裝在內部指定位置處,使用內置有線式數據總線與數據匯聚模塊交互,這種設計方式線路數量少、占空間小、封裝簡單,有效減小線路鋪設的繁瑣程度,但這種監測裝置在設計上不具備靈活性,無法自由更改監測點位置,當需要對傳感器采集模塊進行更新維護時,數據匯聚模塊與遠程服務器無法做到自適應同步更新。文獻[17-18]針對上述問題以傳感器節點和數據傳輸為研究點設計了監控界面可生成的監測系統框架,但此系統框架服務端數據存儲方面的開發還有待完善。

針對上述問題,本文根據堆肥發酵堆內部環境及其堆置特點,設計具備防水、耐酸、耐高溫特性的模塊化、可組合的監測系統,將傳感器采集功能模塊與數據處理功能模塊進行分離設計,基于CAN總線實現模塊之間的配置與通信;開發面向多層監測需求的自適應數據服務系統和人機接口系統;針對運行功耗需求進行電源管理電路設計,以提升系統續航時間。

1 監測系統硬件設計

1.1 模塊化組合式結構

為了實現監測系統的可組合特性,將監測系統的機械結構進行模塊化處理。如圖1所示,系統包括主機模塊、延長桿、檢測桿模塊、尖頭4部分,其中主機模塊以單片機系統為核心,內部配備數據接口、充電電池及充電口,頂部配備太陽能充電板確保系統的續航效果;配備低能耗型OLED顯示屏幕實現監測數據的實時查看,數據接口采用CAN總線,實現與檢測桿模塊之間的供電與數據通信。檢測桿模塊為獨立的采集單元,內部配備DS18B20型溫度傳感器、采集電路以及數據總線口,為了減少檢測過程中堆料中的水分和化學物質對傳感器的性能影響,通過導熱陶瓷片覆蓋溫度傳感器探頭;檢測模塊頂部和底部分別為四線航空插頭的插頭和插座,其中兩根為電源線,兩根為數據線。不同長度的延長桿可以滿足檢測桿模塊在不同深度測量的需求;尖頭安裝在最底端用于輔助組合后的桿體插入發酵堆物料中。為了防止水分進入檢測桿模塊內部,檢測桿模塊與延長桿、尖頭之間采用可旋轉螺母連接,旋轉螺母接口截面部分采用耐高溫耐腐蝕的氫化丁腈橡膠材料制作密封膠圈來密封。同時,由于發酵堆內部溫度較高,為了減小環境溫度對整個電路的影響,各模塊和延長桿采用聚四氟乙烯材料制作外殼用以抗高溫抗腐蝕,采用玻璃纖維材料覆蓋內壁達到隔熱效果。

圖1 監測系統結構圖

1.2 監測系統硬件架構

監測系統架構圖如圖2所示,監測系統硬件架構分為檢測桿模塊和主機模塊兩部分,檢測桿模塊電路主要由STM32L5低功耗芯片和CAN總線接口芯片以及溫度傳感器組成,溫度傳感器采用DS18B20型溫度傳感器,根據發酵堆溫度變化范圍(0~80℃)選擇量程為-10~100℃,分辨率為0.1℃;主機模塊部分由STM32F103芯片作為核心電路,4G模塊、通信總線接口、觸摸屏、存儲卡接口組成外設電路,由電源管理模塊對核心電路、外設以及檢測桿模塊進行供電;主機模塊與檢測桿模塊通過TJA1050 CAN總線模塊實現一對多通信,監測系統和云服務器通過4G模塊進行網絡通信,將各個檢測桿模塊監測數據進行匯聚和封裝后同步至云服務器數據庫中。

圖2 監測系統架構圖

1.3 主機模塊電路設計

如圖3所示,主機模塊采用STM32F103芯片作為主控核心,各外置功能模塊有4G模塊、OLED模塊、TF卡接口、CAN總線接口以及檢測桿模塊;4G模塊的型號為EC20CEHDLG-128-SNNS,可通過USART串口進行網絡數據交互;CAN總線接口芯片選擇TJA1050數據收發芯片,實現USART串口數據轉換成CAN總線H與L端口的電壓差信號;電源管理模塊管控所有外設的電源通斷,由STM32F103芯片上PB1到PB4引腳控制。

圖3 主機模塊電路原理圖

為了實現監測系統的低功耗運行,設計了基于2N7002的電源管理模塊,如圖4所示。該電路由前置圖騰柱電路與后端開關驅動電路組合而成[19],前置圖騰柱電路用來保護集成電路并加速MOS管的關斷時間,后置開關驅動電路通過將系統地和外設地進行隔離,在不需要指定外設工作時切斷外設接地接口,使外設模塊電路無法構成電流回路,從而降低系統休眠功耗。

圖4 電源管理電路

1.4 檢測桿模塊電路設計

圖5為檢測桿模塊硬件電路原理圖。檢測桿模塊主控部分選用STM32L5低功耗芯片,芯片外部晶振選用8 MHz的無源晶振,在晶振兩端并聯兩個22 pF的電容作為負載電容。PA9引腳連接DS18B20信號線,PB10、PB11兩個引腳連接CAN總線收發芯片,CAN總線接口芯片選擇恩智浦半導體公司(NXP)生產的TJA1050數據收發芯片,該芯片用于將USART串口數據轉換成CAN總線H與L端口的電壓差信號,實現協議轉換。STM32L5、DS18B20以及TJA1050的接地端共地。

圖5 檢測桿模塊電路原理圖

2 監測系統軟件設計

監測系統軟件包括主機模塊、檢測桿模塊軟件系統和云服務器端軟件系統。主機模塊和檢測桿模塊采用FreeRTOS實時操作系統開發,并部署FAT32文件系統用于采集數據的存儲與管理[20];服務器端采用阿里云服務器,并部署MySQL數據庫實現數據存儲與管理[21],主要包括基于CAN總線的檢測模塊自適應識別、基于JSON封裝與關系數據庫的配置信息同步與自適應匹配,以及系統現場端、服務器端、微信小程序端人機界面自適應生成等功能。

2.1 基于CAN總線的檢測模塊自適應識別與處理

為了實現檢測模塊添加和刪除操作后監測系統的模塊識別,基于CAN總線方式實現了檢測模塊的自適應識別方法,其過程如圖6所示。在主機模塊進入配置模式,主機模塊通過CAN總線向所有檢測桿模塊發送配置請求命令。檢測桿模塊接收到配置請求命令后查詢自身配置狀態標志位,若標志位為“1”則表示已配置并不參與配置,若標志位為“0”則為未配置狀態;需要進配置的檢測桿模塊將自身ID進行封裝并向CAN總線發送,取得總線競爭權的檢測桿模塊發送消息成功后,主機模塊接收到配置成功消息后將檢測桿模塊ID進行保存并處理下一個配置請求。同時將接收到的檢測桿模塊ID進行封裝并加上校驗碼進行消息回應,檢測桿模塊接到消息回應后將檢測模塊中的配置狀態標志位標記為“1”。當所有檢測桿模塊均為已配置狀態時,主機模塊將所有保存的配置信息進行JSON格式封裝并上傳至服務器中,實現配置信息的同步。

圖6 基于CAN總線的檢測模塊自適應識別與處理過程

2.2 基于JSON封裝與關系數據庫的配置信息同步與自適應匹配

由于不同監測節點的檢測桿模塊數量有差異,為了實現多個監測節點的系統管理與數據存儲需求,利用JSON實現了監測節點配置信息和采集數據的數據封裝與傳輸,利用關系數據庫實現監測節點的配置信息、采集信息的數據同步與數據管理。

2.2.1基于JSON的數據封裝

在監測系統的數據封裝中,主要包括每個監測節點的配置信息以及實時采集的檢測數據。針對本系統中的數據特點,考慮JSON具有資源占用小、數據執行速度快、跨平臺兼容性高等特點,采用JSON實現配置信息和采集信息的封裝[22]。其結構如圖7所示。其中配置信息包括監測節點ID及其包含的檢測桿模塊ID。數據采集JSON包括監測節點ID、數據采集時間以及各檢測模塊ID和采集數據。

圖7 JSON文本字符串

2.2.2基于關系數據庫的數據庫自適應生成

為了滿足監測系統的配置信息和采集數據的數據管理。如圖8所示,利用關系數據庫實現配置信息表和采集數據的存儲和管理[23]。其中配置信息表(EquipSetupTable)包括監測節點ID、檢測模塊ID、監測節點修改時間、檢測深度和采集數據信息表名。在每次修改監測節點配置信息后,系統自動生成新的采集數據信息表,采集數據信息表名命名規則為監測節點ID和修改時間;采集數據信息表包括數據ID、采集時間、各個檢測模塊數據。系統對監測節點傳輸的配置信息和采集數據JSON文件進行解析后存儲在數據庫中對應的數據表中。

圖8 數據庫自適應配置功能設計

2.2.3配置信息與采集數據同步

在系統配置和數據采集過程中,為了保證現場采集節點和服務器端的配置信息一致,需要進行數據同步。另外,在系統運行過程中需要進行采集數據的同步,以減少由網絡中斷、數據丟包等問題導致的數據異步問題。在本系統中數據同步主要由監測系統節點發起。

配置信息的同步為單次同步,即當監控系統主機模塊出現檢測桿模型信息修改時發起信息同步指令,將新生成的配置信息JSON文件傳輸至服務器端;服務器端對所接收的JSON文件進行解析,并與系統中響應的監測系統配置信息進行匹配與分析,并對數據庫中的配置信息表和采集數據信息表結構進行相應的修改。為了避免由數據表結構變化導致的數據丟失問題,在每次修改配置信息表時,都會新生成一個采集數據信息表進行采集數據的存儲。相應地,在配置信息表中也新生成一條新的記錄來描述監測系統節點的相關信息。

采集數據的同步是根據采集節點所設置的采樣間隔進行周期性數據同步,同步傳輸過程為監測節點根據所設定的數據同步頻率周期性發起數據同步,將采集數據JSON文件傳輸至數據服務器中,數據服務器根據協議進行數據解析,并將數據存儲至服務器中,并返回同步成功指令至監測節點。監測節點清空JSON文件中的數據記錄,開始新的數據采樣周期。當數據同步過程中由于網絡中斷、數據丟包等問題導致出現數據異步時,監測節點則將采集數據進行累積,在系統同步通信恢復正常后將累積的數據與服務器進行同步。

2.2.4系統異常處理

系統在進行初始化或通信期間容易出現程序出錯等故障,因此在系統中加入看門狗復位和超時時間判定的方法加強運行期間的穩定性。具體方法為:在主機模塊向檢測桿模塊節點發送數據請求時,會同步開啟5s超時時間判定,當檢測桿模塊節點發生故障無法響應主機模塊的請求時,超時時間結束時主機模塊將發生故障的檢測桿模塊ID掛入異常模塊隊列中,并執行下一個檢測桿模塊的數據請求。

在系統與運行過程中,由于掉電、重啟、丟包等意外因素而導致服務器得到的溫度值出現瞬間變大、變小等現象,因此在服務器中加入異常數據過濾功能??紤]到發酵溫度屬于大滯后變量,以移動時間窗為基礎,對時間窗時段內的溫度值進行線性擬合得出當前時段的變化趨勢,對溫度跳變過大的溫度值進行剔除,采用上一時間點的溫度值進行填補[24]。

2.3 人機界面的自動生成

2.3.1現場端顯示人機界面

每個監測節點的現場端顯示人機界面采用OLED顯示,主要顯示監測系統中各檢測桿模塊信息,便于用戶查看監測系統是否運行正常。OLED左側顯示區域顯示檢測模塊采集深度,由解析服務器返回的包含該部分配置信息的JSON文件得到;右側顯示區域顯示對應采集深度的溫度數據,當主機模塊對檢測桿模塊數據匯聚完成時,OLED顯示子程序將所匯聚數據以數據隊列形式進行管理,并通過匹配檢測模塊ID的方式,確定溫度數據對應的采集深度,再將溫度數據信息存儲在OLED對應的顯示緩沖區中,將信息顯示在OLED顯示屏上,如圖9所示。

圖9 監測系統設備OLED顯示

2.3.2遠程監控界面

遠程監控顯示界面采用QT內置的GUI服務系統進行設計[25]。如圖10所示,顯示界面內包含服務器IP地址、端口,數據庫IP地址、端口等綁定信息,以及當前所連接的監測系統參數信息(包括監測系統設備ID、運行地點、系統所帶檢測桿模塊監測的數據結果)。并可以通過歷史數據查詢頁面對各個監測節點的歷史數據進行查詢,以曲線和數據表格形式顯示,并提供數據導出功能以滿足用戶的數據分析需求。

圖10 服務器端顯示界面

2.3.3微信小程序顯示

微信小程序采用Stable Build進行開發,使用JSON配置信息,CSS+XML實現視圖層,通過JavaScript實現邏輯層結構。如圖11所示,主要包含設備信息和監測數據兩個區域,設備信息區域包括“監測系統設備ID”、“模塊個數”,監測數據區域為“當前設備ID”以及對應“溫度”、“所在深度信息”,當檢測桿模塊數量發生變化時頁面會自動根據數量對監測數據區域所包含的顯示塊進行增減。

圖11 微信小程序頁面動態顯示

3 系統性能測試

為檢驗系統的實際工作效果,在江蘇省鎮江市江蘇培蕾基質科技有限公司5號發酵池內進行了系統的信息測試(圖12),該發酵池長約150 m、寬度為3.5 m、發酵堆堆高為1 m,檢測桿模塊分別位于與發酵堆表層距離0.1、20、60 cm處,每隔10 min監測系統上傳一次溫度數據。

圖12 實際測試實驗

3.1 功耗測試

采用主機模塊帶載4個檢測桿模塊進行。監測系統通過加入基于2N7002的電源管理電路對系統外設進行開斷從而降低系統運行功耗。為測試其效果,分別從非低功耗處理、軟件低功耗處理、軟硬件協同低功耗處理3方面進行4個周期的休眠喚醒測試。如圖13所示,非低功耗處理下所有外設全部打開,處理任務狀態下峰值電流超過160 mA,非處理任務時電流維持在137 mA;軟件低功耗狀態下休眠STM32F103、關閉OLED,峰值電流降至150 mA,休眠狀態下平均電流維持在100 mA,相比非低功耗處理,功耗降低26%;軟硬件協同低功耗處理下,通過電源管理模塊對所需功能的外設進行控制,當監測系統執行任務時峰值電流為110 mA,相比前兩種方式電流分別降低31%和26%,而待機模式下電流僅為0.6 mA。

圖13 3種處理方式下系統總電流變化曲線

3.2 檢測模塊采集精度測試

溫度采集精度測試通過恒溫水浴對發酵堆堆料進行加熱的方式進行,加熱器型號為威研-258,實驗過程中將溫度在10~80℃內進行調節,通過DeltaTRAK11050型工業實驗室高精度溫度計與檢測模塊進行同步測量,將溫度計測量值作為實際值與采集模塊測量值進行對比。測試結果如圖14所示,監測系統在不同溫度下的測量值與實際值回歸分析結果顯示其決定系數R2為0.999 7,相對標準偏差均不超過2.34%,滿足發酵堆監測要求。

圖14 檢測模塊采集精度測試結果

3.3 現場實驗測試

在系統運行期間同時使用TF卡和云服務器兩種方式對數據進行保存,測試服務器數據異常處理功能的性能。圖15a為主機模塊在檢測桿模塊數據匯聚后存儲到TF卡的數據,圖15b為主機模塊通過異常數據過濾后上傳至服務器中的數據。從數據采集效果可以看出,0.1 cm處的溫度呈現周期性起伏變化,白天由于太陽輻射的原因最高溫度可達到55℃,夜晚由于自然降溫的原因下降到32℃左右;監測系統在20 cm處采集到的溫度最高,并且可以達到65℃以上,隨著發酵堆深度的增加,溫度整體下降5℃左右,這是因為上層的發酵堆透氣性好、微生物活性強,進而產生的熱量更多。從異常數據處理效果看,不同層的檢測模塊在進行數據匯聚時總計出現了5次數據丟失的情況,丟失的具體表現為數值驟降,但經過2.2.4節所設計的系統異常處理后所有異常數據均被清除??傮w上,監測系統所采集的數據結果真實有效,沒有出現數據失真的現象,符合發酵堆溫度的實際變化,并且整個監測過程中服務器端對數據進行了異常處理,有效剔除了異常溫度數據,為后期數據處理提供便利。

圖15 模塊異常數據過濾

4 結論

(1)提出了一種可組合式的多層溫度監測系統。該系統具備無線網絡數據傳輸能力,且配備本地數據存儲的冗余設計,可實現對發酵堆內部溫度便捷、穩定地進行實時監測以及記錄,在農業廢棄物發酵過程溫度變化及其過程控制領域具有較大意義。

(2)針對溫度監測系統需具備抗惡劣環境、長續航要求高的特點,本文對檢測系統的外圍電路進行了設計并且加入了電源管理電路。通過軟件、硬件協調控制的方法使系統在運行過程中電流峰值降低且休眠狀態下靜態電流僅為0.6 mA,大幅度降低了能源消耗,實現監測系統長時間穩定運行。

(3)在發酵堆實際應用測試中表明,桿體中檢測桿模塊增減后無需人工再配置,監測顯示頁面可自動適配,且系統在長時間工作下數據傳輸及時準確,具備較高的可靠性。

猜你喜歡
總線電路節點
CM節點控制在船舶上的應用
電路的保護
Analysis of the characteristics of electronic equipment usage distance for common users
基于AutoCAD的門窗節點圖快速構建
解讀電路
巧用立創EDA軟件和Altium Designer軟件設計電路
基于PCI Express總線的xHC與FPGA的直接通信
機載飛控1553B總線轉以太網總線設計
基于MATLAB模擬混沌電路
抓住人才培養的關鍵節點
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合