王紀(jì)章 茆 寒 王 旭 周 靜
(江蘇大學(xué)農(nóng)業(yè)工程學(xué)院,鎮(zhèn)江 212013)
我國(guó)是農(nóng)業(yè)大國(guó),同時(shí)也是農(nóng)業(yè)廢棄物產(chǎn)量大國(guó),以17.29%的占比居于全球產(chǎn)量第一位[1],為解決廢棄物資源再利用問題,廢棄物的基料化、肥料化處理是農(nóng)業(yè)廢棄物資源化利用的重要手段,而堆肥發(fā)酵是肥料化、基料化處理的關(guān)鍵技術(shù)[2],溫度是評(píng)價(jià)堆置發(fā)酵過程的一個(gè)重要指標(biāo),可以實(shí)現(xiàn)為翻拋?zhàn)鳂I(yè)和發(fā)酵腐熟度的評(píng)價(jià)提供依據(jù)。為了檢測(cè)堆體溫度,通常采用探針式溫度計(jì)或傳感器實(shí)現(xiàn)溫度檢測(cè)[3],為了檢測(cè)堆體溫度的分布,需要使用不同長(zhǎng)度的探針傳感器進(jìn)行檢測(cè),這種檢測(cè)方式不僅操作繁瑣、檢測(cè)效率低下,而且無法做到對(duì)發(fā)酵堆溫度變化的連續(xù)監(jiān)測(cè)。因此,能夠?qū)Πl(fā)酵堆溫度進(jìn)行便捷、有效、多位置的自動(dòng)監(jiān)測(cè)系統(tǒng)研究十分必要。
為了實(shí)現(xiàn)多點(diǎn)位溫度的同步測(cè)量,文獻(xiàn)[4-6]通過在系統(tǒng)中加入多路溫度采集模塊實(shí)現(xiàn)溫度監(jiān)測(cè),文獻(xiàn)[7]采用主從分布式設(shè)計(jì)思想解決了傳統(tǒng)溫度監(jiān)測(cè)系統(tǒng)可擴(kuò)展性差、數(shù)據(jù)查看不便等缺點(diǎn),但該系統(tǒng)在進(jìn)行多點(diǎn)位監(jiān)測(cè)時(shí)存在線路較多、鋪設(shè)麻煩等缺點(diǎn)。針對(duì)以上缺點(diǎn),文獻(xiàn)[8-10]提出地下無線傳感網(wǎng)絡(luò),將各個(gè)傳感器采集模塊以節(jié)點(diǎn)形式通過無線局域網(wǎng)與數(shù)據(jù)匯聚模塊交互,再由數(shù)據(jù)匯集模塊處理數(shù)據(jù)并上傳至服務(wù)器。文獻(xiàn)[11-12]依據(jù)此概念設(shè)計(jì)出無線監(jiān)測(cè)裝置,使其具備高隱藏性、易鋪設(shè)性、易升級(jí)等優(yōu)點(diǎn)。但文獻(xiàn)[13-14]也發(fā)現(xiàn),在與數(shù)據(jù)匯集節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交互式時(shí),掩埋物會(huì)干擾裝置的信號(hào)強(qiáng)度,使數(shù)據(jù)傳輸出現(xiàn)丟包等現(xiàn)象,丟包造成數(shù)據(jù)缺失會(huì)對(duì)監(jiān)測(cè)對(duì)象研究帶來一定負(fù)面影響。為保證節(jié)點(diǎn)數(shù)據(jù)傳輸?shù)姆€(wěn)定性、準(zhǔn)確性,文獻(xiàn)[15-16]使用空心探桿將傳感器采集模塊封裝在內(nèi)部指定位置處,使用內(nèi)置有線式數(shù)據(jù)總線與數(shù)據(jù)匯聚模塊交互,這種設(shè)計(jì)方式線路數(shù)量少、占空間小、封裝簡(jiǎn)單,有效減小線路鋪設(shè)的繁瑣程度,但這種監(jiān)測(cè)裝置在設(shè)計(jì)上不具備靈活性,無法自由更改監(jiān)測(cè)點(diǎn)位置,當(dāng)需要對(duì)傳感器采集模塊進(jìn)行更新維護(hù)時(shí),數(shù)據(jù)匯聚模塊與遠(yuǎn)程服務(wù)器無法做到自適應(yīng)同步更新。文獻(xiàn)[17-18]針對(duì)上述問題以傳感器節(jié)點(diǎn)和數(shù)據(jù)傳輸為研究點(diǎn)設(shè)計(jì)了監(jiān)控界面可生成的監(jiān)測(cè)系統(tǒng)框架,但此系統(tǒng)框架服務(wù)端數(shù)據(jù)存儲(chǔ)方面的開發(fā)還有待完善。
針對(duì)上述問題,本文根據(jù)堆肥發(fā)酵堆內(nèi)部環(huán)境及其堆置特點(diǎn),設(shè)計(jì)具備防水、耐酸、耐高溫特性的模塊化、可組合的監(jiān)測(cè)系統(tǒng),將傳感器采集功能模塊與數(shù)據(jù)處理功能模塊進(jìn)行分離設(shè)計(jì),基于CAN總線實(shí)現(xiàn)模塊之間的配置與通信;開發(fā)面向多層監(jiān)測(cè)需求的自適應(yīng)數(shù)據(jù)服務(wù)系統(tǒng)和人機(jī)接口系統(tǒng);針對(duì)運(yùn)行功耗需求進(jìn)行電源管理電路設(shè)計(jì),以提升系統(tǒng)續(xù)航時(shí)間。
為了實(shí)現(xiàn)監(jiān)測(cè)系統(tǒng)的可組合特性,將監(jiān)測(cè)系統(tǒng)的機(jī)械結(jié)構(gòu)進(jìn)行模塊化處理。如圖1所示,系統(tǒng)包括主機(jī)模塊、延長(zhǎng)桿、檢測(cè)桿模塊、尖頭4部分,其中主機(jī)模塊以單片機(jī)系統(tǒng)為核心,內(nèi)部配備數(shù)據(jù)接口、充電電池及充電口,頂部配備太陽(yáng)能充電板確保系統(tǒng)的續(xù)航效果;配備低能耗型OLED顯示屏幕實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)的實(shí)時(shí)查看,數(shù)據(jù)接口采用CAN總線,實(shí)現(xiàn)與檢測(cè)桿模塊之間的供電與數(shù)據(jù)通信。檢測(cè)桿模塊為獨(dú)立的采集單元,內(nèi)部配備DS18B20型溫度傳感器、采集電路以及數(shù)據(jù)總線口,為了減少檢測(cè)過程中堆料中的水分和化學(xué)物質(zhì)對(duì)傳感器的性能影響,通過導(dǎo)熱陶瓷片覆蓋溫度傳感器探頭;檢測(cè)模塊頂部和底部分別為四線航空插頭的插頭和插座,其中兩根為電源線,兩根為數(shù)據(jù)線。不同長(zhǎng)度的延長(zhǎng)桿可以滿足檢測(cè)桿模塊在不同深度測(cè)量的需求;尖頭安裝在最底端用于輔助組合后的桿體插入發(fā)酵堆物料中。為了防止水分進(jìn)入檢測(cè)桿模塊內(nèi)部,檢測(cè)桿模塊與延長(zhǎng)桿、尖頭之間采用可旋轉(zhuǎn)螺母連接,旋轉(zhuǎn)螺母接口截面部分采用耐高溫耐腐蝕的氫化丁腈橡膠材料制作密封膠圈來密封。同時(shí),由于發(fā)酵堆內(nèi)部溫度較高,為了減小環(huán)境溫度對(duì)整個(gè)電路的影響,各模塊和延長(zhǎng)桿采用聚四氟乙烯材料制作外殼用以抗高溫抗腐蝕,采用玻璃纖維材料覆蓋內(nèi)壁達(dá)到隔熱效果。
圖1 監(jiān)測(cè)系統(tǒng)結(jié)構(gòu)圖
監(jiān)測(cè)系統(tǒng)架構(gòu)圖如圖2所示,監(jiān)測(cè)系統(tǒng)硬件架構(gòu)分為檢測(cè)桿模塊和主機(jī)模塊兩部分,檢測(cè)桿模塊電路主要由STM32L5低功耗芯片和CAN總線接口芯片以及溫度傳感器組成,溫度傳感器采用DS18B20型溫度傳感器,根據(jù)發(fā)酵堆溫度變化范圍(0~80℃)選擇量程為-10~100℃,分辨率為0.1℃;主機(jī)模塊部分由STM32F103芯片作為核心電路,4G模塊、通信總線接口、觸摸屏、存儲(chǔ)卡接口組成外設(shè)電路,由電源管理模塊對(duì)核心電路、外設(shè)以及檢測(cè)桿模塊進(jìn)行供電;主機(jī)模塊與檢測(cè)桿模塊通過TJA1050 CAN總線模塊實(shí)現(xiàn)一對(duì)多通信,監(jiān)測(cè)系統(tǒng)和云服務(wù)器通過4G模塊進(jìn)行網(wǎng)絡(luò)通信,將各個(gè)檢測(cè)桿模塊監(jiān)測(cè)數(shù)據(jù)進(jìn)行匯聚和封裝后同步至云服務(wù)器數(shù)據(jù)庫(kù)中。
圖2 監(jiān)測(cè)系統(tǒng)架構(gòu)圖
如圖3所示,主機(jī)模塊采用STM32F103芯片作為主控核心,各外置功能模塊有4G模塊、OLED模塊、TF卡接口、CAN總線接口以及檢測(cè)桿模塊;4G模塊的型號(hào)為EC20CEHDLG-128-SNNS,可通過USART串口進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)交互;CAN總線接口芯片選擇TJA1050數(shù)據(jù)收發(fā)芯片,實(shí)現(xiàn)USART串口數(shù)據(jù)轉(zhuǎn)換成CAN總線H與L端口的電壓差信號(hào);電源管理模塊管控所有外設(shè)的電源通斷,由STM32F103芯片上PB1到PB4引腳控制。
圖3 主機(jī)模塊電路原理圖
為了實(shí)現(xiàn)監(jiān)測(cè)系統(tǒng)的低功耗運(yùn)行,設(shè)計(jì)了基于2N7002的電源管理模塊,如圖4所示。該電路由前置圖騰柱電路與后端開關(guān)驅(qū)動(dòng)電路組合而成[19],前置圖騰柱電路用來保護(hù)集成電路并加速M(fèi)OS管的關(guān)斷時(shí)間,后置開關(guān)驅(qū)動(dòng)電路通過將系統(tǒng)地和外設(shè)地進(jìn)行隔離,在不需要指定外設(shè)工作時(shí)切斷外設(shè)接地接口,使外設(shè)模塊電路無法構(gòu)成電流回路,從而降低系統(tǒng)休眠功耗。
圖4 電源管理電路
圖5為檢測(cè)桿模塊硬件電路原理圖。檢測(cè)桿模塊主控部分選用STM32L5低功耗芯片,芯片外部晶振選用8 MHz的無源晶振,在晶振兩端并聯(lián)兩個(gè)22 pF的電容作為負(fù)載電容。PA9引腳連接DS18B20信號(hào)線,PB10、PB11兩個(gè)引腳連接CAN總線收發(fā)芯片,CAN總線接口芯片選擇恩智浦半導(dǎo)體公司(NXP)生產(chǎn)的TJA1050數(shù)據(jù)收發(fā)芯片,該芯片用于將USART串口數(shù)據(jù)轉(zhuǎn)換成CAN總線H與L端口的電壓差信號(hào),實(shí)現(xiàn)協(xié)議轉(zhuǎn)換。STM32L5、DS18B20以及TJA1050的接地端共地。
圖5 檢測(cè)桿模塊電路原理圖
監(jiān)測(cè)系統(tǒng)軟件包括主機(jī)模塊、檢測(cè)桿模塊軟件系統(tǒng)和云服務(wù)器端軟件系統(tǒng)。主機(jī)模塊和檢測(cè)桿模塊采用FreeRTOS實(shí)時(shí)操作系統(tǒng)開發(fā),并部署FAT32文件系統(tǒng)用于采集數(shù)據(jù)的存儲(chǔ)與管理[20];服務(wù)器端采用阿里云服務(wù)器,并部署MySQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)與管理[21],主要包括基于CAN總線的檢測(cè)模塊自適應(yīng)識(shí)別、基于JSON封裝與關(guān)系數(shù)據(jù)庫(kù)的配置信息同步與自適應(yīng)匹配,以及系統(tǒng)現(xiàn)場(chǎng)端、服務(wù)器端、微信小程序端人機(jī)界面自適應(yīng)生成等功能。
為了實(shí)現(xiàn)檢測(cè)模塊添加和刪除操作后監(jiān)測(cè)系統(tǒng)的模塊識(shí)別,基于CAN總線方式實(shí)現(xiàn)了檢測(cè)模塊的自適應(yīng)識(shí)別方法,其過程如圖6所示。在主機(jī)模塊進(jìn)入配置模式,主機(jī)模塊通過CAN總線向所有檢測(cè)桿模塊發(fā)送配置請(qǐng)求命令。檢測(cè)桿模塊接收到配置請(qǐng)求命令后查詢自身配置狀態(tài)標(biāo)志位,若標(biāo)志位為“1”則表示已配置并不參與配置,若標(biāo)志位為“0”則為未配置狀態(tài);需要進(jìn)配置的檢測(cè)桿模塊將自身ID進(jìn)行封裝并向CAN總線發(fā)送,取得總線競(jìng)爭(zhēng)權(quán)的檢測(cè)桿模塊發(fā)送消息成功后,主機(jī)模塊接收到配置成功消息后將檢測(cè)桿模塊ID進(jìn)行保存并處理下一個(gè)配置請(qǐng)求。同時(shí)將接收到的檢測(cè)桿模塊ID進(jìn)行封裝并加上校驗(yàn)碼進(jìn)行消息回應(yīng),檢測(cè)桿模塊接到消息回應(yīng)后將檢測(cè)模塊中的配置狀態(tài)標(biāo)志位標(biāo)記為“1”。當(dāng)所有檢測(cè)桿模塊均為已配置狀態(tài)時(shí),主機(jī)模塊將所有保存的配置信息進(jìn)行JSON格式封裝并上傳至服務(wù)器中,實(shí)現(xiàn)配置信息的同步。
圖6 基于CAN總線的檢測(cè)模塊自適應(yīng)識(shí)別與處理過程
由于不同監(jiān)測(cè)節(jié)點(diǎn)的檢測(cè)桿模塊數(shù)量有差異,為了實(shí)現(xiàn)多個(gè)監(jiān)測(cè)節(jié)點(diǎn)的系統(tǒng)管理與數(shù)據(jù)存儲(chǔ)需求,利用JSON實(shí)現(xiàn)了監(jiān)測(cè)節(jié)點(diǎn)配置信息和采集數(shù)據(jù)的數(shù)據(jù)封裝與傳輸,利用關(guān)系數(shù)據(jù)庫(kù)實(shí)現(xiàn)監(jiān)測(cè)節(jié)點(diǎn)的配置信息、采集信息的數(shù)據(jù)同步與數(shù)據(jù)管理。
2.2.1基于JSON的數(shù)據(jù)封裝
在監(jiān)測(cè)系統(tǒng)的數(shù)據(jù)封裝中,主要包括每個(gè)監(jiān)測(cè)節(jié)點(diǎn)的配置信息以及實(shí)時(shí)采集的檢測(cè)數(shù)據(jù)。針對(duì)本系統(tǒng)中的數(shù)據(jù)特點(diǎn),考慮JSON具有資源占用小、數(shù)據(jù)執(zhí)行速度快、跨平臺(tái)兼容性高等特點(diǎn),采用JSON實(shí)現(xiàn)配置信息和采集信息的封裝[22]。其結(jié)構(gòu)如圖7所示。其中配置信息包括監(jiān)測(cè)節(jié)點(diǎn)ID及其包含的檢測(cè)桿模塊ID。數(shù)據(jù)采集JSON包括監(jiān)測(cè)節(jié)點(diǎn)ID、數(shù)據(jù)采集時(shí)間以及各檢測(cè)模塊ID和采集數(shù)據(jù)。
圖7 JSON文本字符串
2.2.2基于關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)自適應(yīng)生成
為了滿足監(jiān)測(cè)系統(tǒng)的配置信息和采集數(shù)據(jù)的數(shù)據(jù)管理。如圖8所示,利用關(guān)系數(shù)據(jù)庫(kù)實(shí)現(xiàn)配置信息表和采集數(shù)據(jù)的存儲(chǔ)和管理[23]。其中配置信息表(EquipSetupTable)包括監(jiān)測(cè)節(jié)點(diǎn)ID、檢測(cè)模塊ID、監(jiān)測(cè)節(jié)點(diǎn)修改時(shí)間、檢測(cè)深度和采集數(shù)據(jù)信息表名。在每次修改監(jiān)測(cè)節(jié)點(diǎn)配置信息后,系統(tǒng)自動(dòng)生成新的采集數(shù)據(jù)信息表,采集數(shù)據(jù)信息表名命名規(guī)則為監(jiān)測(cè)節(jié)點(diǎn)ID和修改時(shí)間;采集數(shù)據(jù)信息表包括數(shù)據(jù)ID、采集時(shí)間、各個(gè)檢測(cè)模塊數(shù)據(jù)。系統(tǒng)對(duì)監(jiān)測(cè)節(jié)點(diǎn)傳輸?shù)呐渲眯畔⒑筒杉瘮?shù)據(jù)JSON文件進(jìn)行解析后存儲(chǔ)在數(shù)據(jù)庫(kù)中對(duì)應(yīng)的數(shù)據(jù)表中。
圖8 數(shù)據(jù)庫(kù)自適應(yīng)配置功能設(shè)計(jì)
2.2.3配置信息與采集數(shù)據(jù)同步
在系統(tǒng)配置和數(shù)據(jù)采集過程中,為了保證現(xiàn)場(chǎng)采集節(jié)點(diǎn)和服務(wù)器端的配置信息一致,需要進(jìn)行數(shù)據(jù)同步。另外,在系統(tǒng)運(yùn)行過程中需要進(jìn)行采集數(shù)據(jù)的同步,以減少由網(wǎng)絡(luò)中斷、數(shù)據(jù)丟包等問題導(dǎo)致的數(shù)據(jù)異步問題。在本系統(tǒng)中數(shù)據(jù)同步主要由監(jiān)測(cè)系統(tǒng)節(jié)點(diǎn)發(fā)起。
配置信息的同步為單次同步,即當(dāng)監(jiān)控系統(tǒng)主機(jī)模塊出現(xiàn)檢測(cè)桿模型信息修改時(shí)發(fā)起信息同步指令,將新生成的配置信息JSON文件傳輸至服務(wù)器端;服務(wù)器端對(duì)所接收的JSON文件進(jìn)行解析,并與系統(tǒng)中響應(yīng)的監(jiān)測(cè)系統(tǒng)配置信息進(jìn)行匹配與分析,并對(duì)數(shù)據(jù)庫(kù)中的配置信息表和采集數(shù)據(jù)信息表結(jié)構(gòu)進(jìn)行相應(yīng)的修改。為了避免由數(shù)據(jù)表結(jié)構(gòu)變化導(dǎo)致的數(shù)據(jù)丟失問題,在每次修改配置信息表時(shí),都會(huì)新生成一個(gè)采集數(shù)據(jù)信息表進(jìn)行采集數(shù)據(jù)的存儲(chǔ)。相應(yīng)地,在配置信息表中也新生成一條新的記錄來描述監(jiān)測(cè)系統(tǒng)節(jié)點(diǎn)的相關(guān)信息。
采集數(shù)據(jù)的同步是根據(jù)采集節(jié)點(diǎn)所設(shè)置的采樣間隔進(jìn)行周期性數(shù)據(jù)同步,同步傳輸過程為監(jiān)測(cè)節(jié)點(diǎn)根據(jù)所設(shè)定的數(shù)據(jù)同步頻率周期性發(fā)起數(shù)據(jù)同步,將采集數(shù)據(jù)JSON文件傳輸至數(shù)據(jù)服務(wù)器中,數(shù)據(jù)服務(wù)器根據(jù)協(xié)議進(jìn)行數(shù)據(jù)解析,并將數(shù)據(jù)存儲(chǔ)至服務(wù)器中,并返回同步成功指令至監(jiān)測(cè)節(jié)點(diǎn)。監(jiān)測(cè)節(jié)點(diǎn)清空J(rèn)SON文件中的數(shù)據(jù)記錄,開始新的數(shù)據(jù)采樣周期。當(dāng)數(shù)據(jù)同步過程中由于網(wǎng)絡(luò)中斷、數(shù)據(jù)丟包等問題導(dǎo)致出現(xiàn)數(shù)據(jù)異步時(shí),監(jiān)測(cè)節(jié)點(diǎn)則將采集數(shù)據(jù)進(jìn)行累積,在系統(tǒng)同步通信恢復(fù)正常后將累積的數(shù)據(jù)與服務(wù)器進(jìn)行同步。
2.2.4系統(tǒng)異常處理
系統(tǒng)在進(jìn)行初始化或通信期間容易出現(xiàn)程序出錯(cuò)等故障,因此在系統(tǒng)中加入看門狗復(fù)位和超時(shí)時(shí)間判定的方法加強(qiáng)運(yùn)行期間的穩(wěn)定性。具體方法為:在主機(jī)模塊向檢測(cè)桿模塊節(jié)點(diǎn)發(fā)送數(shù)據(jù)請(qǐng)求時(shí),會(huì)同步開啟5s超時(shí)時(shí)間判定,當(dāng)檢測(cè)桿模塊節(jié)點(diǎn)發(fā)生故障無法響應(yīng)主機(jī)模塊的請(qǐng)求時(shí),超時(shí)時(shí)間結(jié)束時(shí)主機(jī)模塊將發(fā)生故障的檢測(cè)桿模塊ID掛入異常模塊隊(duì)列中,并執(zhí)行下一個(gè)檢測(cè)桿模塊的數(shù)據(jù)請(qǐng)求。
在系統(tǒng)與運(yùn)行過程中,由于掉電、重啟、丟包等意外因素而導(dǎo)致服務(wù)器得到的溫度值出現(xiàn)瞬間變大、變小等現(xiàn)象,因此在服務(wù)器中加入異常數(shù)據(jù)過濾功能??紤]到發(fā)酵溫度屬于大滯后變量,以移動(dòng)時(shí)間窗為基礎(chǔ),對(duì)時(shí)間窗時(shí)段內(nèi)的溫度值進(jìn)行線性擬合得出當(dāng)前時(shí)段的變化趨勢(shì),對(duì)溫度跳變過大的溫度值進(jìn)行剔除,采用上一時(shí)間點(diǎn)的溫度值進(jìn)行填補(bǔ)[24]。
2.3.1現(xiàn)場(chǎng)端顯示人機(jī)界面
每個(gè)監(jiān)測(cè)節(jié)點(diǎn)的現(xiàn)場(chǎng)端顯示人機(jī)界面采用OLED顯示,主要顯示監(jiān)測(cè)系統(tǒng)中各檢測(cè)桿模塊信息,便于用戶查看監(jiān)測(cè)系統(tǒng)是否運(yùn)行正常。OLED左側(cè)顯示區(qū)域顯示檢測(cè)模塊采集深度,由解析服務(wù)器返回的包含該部分配置信息的JSON文件得到;右側(cè)顯示區(qū)域顯示對(duì)應(yīng)采集深度的溫度數(shù)據(jù),當(dāng)主機(jī)模塊對(duì)檢測(cè)桿模塊數(shù)據(jù)匯聚完成時(shí),OLED顯示子程序?qū)⑺鶇R聚數(shù)據(jù)以數(shù)據(jù)隊(duì)列形式進(jìn)行管理,并通過匹配檢測(cè)模塊ID的方式,確定溫度數(shù)據(jù)對(duì)應(yīng)的采集深度,再將溫度數(shù)據(jù)信息存儲(chǔ)在OLED對(duì)應(yīng)的顯示緩沖區(qū)中,將信息顯示在OLED顯示屏上,如圖9所示。
圖9 監(jiān)測(cè)系統(tǒng)設(shè)備OLED顯示
2.3.2遠(yuǎn)程監(jiān)控界面
遠(yuǎn)程監(jiān)控顯示界面采用QT內(nèi)置的GUI服務(wù)系統(tǒng)進(jìn)行設(shè)計(jì)[25]。如圖10所示,顯示界面內(nèi)包含服務(wù)器IP地址、端口,數(shù)據(jù)庫(kù)IP地址、端口等綁定信息,以及當(dāng)前所連接的監(jiān)測(cè)系統(tǒng)參數(shù)信息(包括監(jiān)測(cè)系統(tǒng)設(shè)備ID、運(yùn)行地點(diǎn)、系統(tǒng)所帶檢測(cè)桿模塊監(jiān)測(cè)的數(shù)據(jù)結(jié)果)。并可以通過歷史數(shù)據(jù)查詢頁(yè)面對(duì)各個(gè)監(jiān)測(cè)節(jié)點(diǎn)的歷史數(shù)據(jù)進(jìn)行查詢,以曲線和數(shù)據(jù)表格形式顯示,并提供數(shù)據(jù)導(dǎo)出功能以滿足用戶的數(shù)據(jù)分析需求。
圖10 服務(wù)器端顯示界面
2.3.3微信小程序顯示
微信小程序采用Stable Build進(jìn)行開發(fā),使用JSON配置信息,CSS+XML實(shí)現(xiàn)視圖層,通過JavaScript實(shí)現(xiàn)邏輯層結(jié)構(gòu)。如圖11所示,主要包含設(shè)備信息和監(jiān)測(cè)數(shù)據(jù)兩個(gè)區(qū)域,設(shè)備信息區(qū)域包括“監(jiān)測(cè)系統(tǒng)設(shè)備ID”、“模塊個(gè)數(shù)”,監(jiān)測(cè)數(shù)據(jù)區(qū)域?yàn)椤爱?dāng)前設(shè)備ID”以及對(duì)應(yīng)“溫度”、“所在深度信息”,當(dāng)檢測(cè)桿模塊數(shù)量發(fā)生變化時(shí)頁(yè)面會(huì)自動(dòng)根據(jù)數(shù)量對(duì)監(jiān)測(cè)數(shù)據(jù)區(qū)域所包含的顯示塊進(jìn)行增減。
圖11 微信小程序頁(yè)面動(dòng)態(tài)顯示
為檢驗(yàn)系統(tǒng)的實(shí)際工作效果,在江蘇省鎮(zhèn)江市江蘇培蕾基質(zhì)科技有限公司5號(hào)發(fā)酵池內(nèi)進(jìn)行了系統(tǒng)的信息測(cè)試(圖12),該發(fā)酵池長(zhǎng)約150 m、寬度為3.5 m、發(fā)酵堆堆高為1 m,檢測(cè)桿模塊分別位于與發(fā)酵堆表層距離0.1、20、60 cm處,每隔10 min監(jiān)測(cè)系統(tǒng)上傳一次溫度數(shù)據(jù)。
圖12 實(shí)際測(cè)試實(shí)驗(yàn)
采用主機(jī)模塊帶載4個(gè)檢測(cè)桿模塊進(jìn)行。監(jiān)測(cè)系統(tǒng)通過加入基于2N7002的電源管理電路對(duì)系統(tǒng)外設(shè)進(jìn)行開斷從而降低系統(tǒng)運(yùn)行功耗。為測(cè)試其效果,分別從非低功耗處理、軟件低功耗處理、軟硬件協(xié)同低功耗處理3方面進(jìn)行4個(gè)周期的休眠喚醒測(cè)試。如圖13所示,非低功耗處理下所有外設(shè)全部打開,處理任務(wù)狀態(tài)下峰值電流超過160 mA,非處理任務(wù)時(shí)電流維持在137 mA;軟件低功耗狀態(tài)下休眠STM32F103、關(guān)閉OLED,峰值電流降至150 mA,休眠狀態(tài)下平均電流維持在100 mA,相比非低功耗處理,功耗降低26%;軟硬件協(xié)同低功耗處理下,通過電源管理模塊對(duì)所需功能的外設(shè)進(jìn)行控制,當(dāng)監(jiān)測(cè)系統(tǒng)執(zhí)行任務(wù)時(shí)峰值電流為110 mA,相比前兩種方式電流分別降低31%和26%,而待機(jī)模式下電流僅為0.6 mA。
圖13 3種處理方式下系統(tǒng)總電流變化曲線
溫度采集精度測(cè)試通過恒溫水浴對(duì)發(fā)酵堆堆料進(jìn)行加熱的方式進(jìn)行,加熱器型號(hào)為威研-258,實(shí)驗(yàn)過程中將溫度在10~80℃內(nèi)進(jìn)行調(diào)節(jié),通過DeltaTRAK11050型工業(yè)實(shí)驗(yàn)室高精度溫度計(jì)與檢測(cè)模塊進(jìn)行同步測(cè)量,將溫度計(jì)測(cè)量值作為實(shí)際值與采集模塊測(cè)量值進(jìn)行對(duì)比。測(cè)試結(jié)果如圖14所示,監(jiān)測(cè)系統(tǒng)在不同溫度下的測(cè)量值與實(shí)際值回歸分析結(jié)果顯示其決定系數(shù)R2為0.999 7,相對(duì)標(biāo)準(zhǔn)偏差均不超過2.34%,滿足發(fā)酵堆監(jiān)測(cè)要求。
圖14 檢測(cè)模塊采集精度測(cè)試結(jié)果
在系統(tǒng)運(yùn)行期間同時(shí)使用TF卡和云服務(wù)器兩種方式對(duì)數(shù)據(jù)進(jìn)行保存,測(cè)試服務(wù)器數(shù)據(jù)異常處理功能的性能。圖15a為主機(jī)模塊在檢測(cè)桿模塊數(shù)據(jù)匯聚后存儲(chǔ)到TF卡的數(shù)據(jù),圖15b為主機(jī)模塊通過異常數(shù)據(jù)過濾后上傳至服務(wù)器中的數(shù)據(jù)。從數(shù)據(jù)采集效果可以看出,0.1 cm處的溫度呈現(xiàn)周期性起伏變化,白天由于太陽(yáng)輻射的原因最高溫度可達(dá)到55℃,夜晚由于自然降溫的原因下降到32℃左右;監(jiān)測(cè)系統(tǒng)在20 cm處采集到的溫度最高,并且可以達(dá)到65℃以上,隨著發(fā)酵堆深度的增加,溫度整體下降5℃左右,這是因?yàn)樯蠈拥陌l(fā)酵堆透氣性好、微生物活性強(qiáng),進(jìn)而產(chǎn)生的熱量更多。從異常數(shù)據(jù)處理效果看,不同層的檢測(cè)模塊在進(jìn)行數(shù)據(jù)匯聚時(shí)總計(jì)出現(xiàn)了5次數(shù)據(jù)丟失的情況,丟失的具體表現(xiàn)為數(shù)值驟降,但經(jīng)過2.2.4節(jié)所設(shè)計(jì)的系統(tǒng)異常處理后所有異常數(shù)據(jù)均被清除??傮w上,監(jiān)測(cè)系統(tǒng)所采集的數(shù)據(jù)結(jié)果真實(shí)有效,沒有出現(xiàn)數(shù)據(jù)失真的現(xiàn)象,符合發(fā)酵堆溫度的實(shí)際變化,并且整個(gè)監(jiān)測(cè)過程中服務(wù)器端對(duì)數(shù)據(jù)進(jìn)行了異常處理,有效剔除了異常溫度數(shù)據(jù),為后期數(shù)據(jù)處理提供便利。
圖15 模塊異常數(shù)據(jù)過濾
(1)提出了一種可組合式的多層溫度監(jiān)測(cè)系統(tǒng)。該系統(tǒng)具備無線網(wǎng)絡(luò)數(shù)據(jù)傳輸能力,且配備本地?cái)?shù)據(jù)存儲(chǔ)的冗余設(shè)計(jì),可實(shí)現(xiàn)對(duì)發(fā)酵堆內(nèi)部溫度便捷、穩(wěn)定地進(jìn)行實(shí)時(shí)監(jiān)測(cè)以及記錄,在農(nóng)業(yè)廢棄物發(fā)酵過程溫度變化及其過程控制領(lǐng)域具有較大意義。
(2)針對(duì)溫度監(jiān)測(cè)系統(tǒng)需具備抗惡劣環(huán)境、長(zhǎng)續(xù)航要求高的特點(diǎn),本文對(duì)檢測(cè)系統(tǒng)的外圍電路進(jìn)行了設(shè)計(jì)并且加入了電源管理電路。通過軟件、硬件協(xié)調(diào)控制的方法使系統(tǒng)在運(yùn)行過程中電流峰值降低且休眠狀態(tài)下靜態(tài)電流僅為0.6 mA,大幅度降低了能源消耗,實(shí)現(xiàn)監(jiān)測(cè)系統(tǒng)長(zhǎng)時(shí)間穩(wěn)定運(yùn)行。
(3)在發(fā)酵堆實(shí)際應(yīng)用測(cè)試中表明,桿體中檢測(cè)桿模塊增減后無需人工再配置,監(jiān)測(cè)顯示頁(yè)面可自動(dòng)適配,且系統(tǒng)在長(zhǎng)時(shí)間工作下數(shù)據(jù)傳輸及時(shí)準(zhǔn)確,具備較高的可靠性。