曾鏡源,洪添勝,楊 洲1,,李 富
(1 廣東省山區(qū)特色農(nóng)業(yè)資源保護(hù)與精準(zhǔn)利用重點(diǎn)實(shí)驗(yàn)室,廣東 梅州 514015; 2 華南農(nóng)業(yè)大學(xué) 工程學(xué)院,廣東 廣州 510642; 3 嘉應(yīng)學(xué)院 計(jì)算機(jī)學(xué)院,廣東 梅州 514015)
我國(guó)柚、橙等柑橘類(lèi)果園主要分布在廣東、江西和廣西等地山區(qū),其水肥灌溉作業(yè)由人工現(xiàn)場(chǎng)操作逐步向離線(xiàn)定時(shí)控制[1-3]、物聯(lián)網(wǎng)在線(xiàn)遠(yuǎn)程監(jiān)控[4-6]等現(xiàn)代農(nóng)業(yè)方向發(fā)展。隨著技術(shù)的發(fā)展,設(shè)備的精細(xì)監(jiān)控、故障檢測(cè)、果園設(shè)備的兼容性和網(wǎng)絡(luò)部署等方面均在不斷完善,以適應(yīng)智慧果園和市場(chǎng)需求[7-9]。
云服務(wù)、云計(jì)算、物聯(lián)網(wǎng)、大數(shù)據(jù)、3S等為代表的信息技術(shù),被廣泛應(yīng)用于農(nóng)業(yè)各領(lǐng)域,促進(jìn)農(nóng)業(yè)的現(xiàn)代化。其中物聯(lián)網(wǎng)能獲取最直接的現(xiàn)場(chǎng)數(shù)據(jù)和控制現(xiàn)場(chǎng)設(shè)備,為農(nóng)業(yè)現(xiàn)代化提供基礎(chǔ)數(shù)據(jù)[10-13]。農(nóng)業(yè)物聯(lián)網(wǎng)局部信息傳輸技術(shù)主要有ZigBee、433 MHz無(wú)線(xiàn)射頻、Bluetooth、Wi-Fi等,遠(yuǎn)程傳輸依托運(yùn)營(yíng)商網(wǎng)絡(luò)[5,9,14]。低功耗廣域通信網(wǎng)(Low power wide area,LPWA)是面向物聯(lián)網(wǎng)中遠(yuǎn)距離和低功耗的通信需求技術(shù),主要包括窄帶物聯(lián)網(wǎng)(Narrow band internet of things, NB-IoT)、增強(qiáng)型機(jī)器類(lèi)型通信 (Enhance machine type communication,eMTC)、長(zhǎng)距離 (LoLong-range, LoRa)通信、SigFox等,具有覆蓋廣、功耗低、成本低、連接穩(wěn)定的特點(diǎn),其中,NB-IoT和LoRa因在功耗和傳輸距離方面有明顯優(yōu)勢(shì),成為推廣應(yīng)用的主要技術(shù)[15-16]。現(xiàn)階段運(yùn)營(yíng)商用NB-IoT來(lái)布置物聯(lián)網(wǎng),其上報(bào)數(shù)據(jù)至云平臺(tái)方面有優(yōu)勢(shì),但其信號(hào)覆蓋有限,需要通過(guò)LoRa擴(kuò)展其覆蓋范圍。
農(nóng)業(yè)物聯(lián)網(wǎng)會(huì)受農(nóng)業(yè)環(huán)境影響,如墻體厚度及材質(zhì)、作物高度、地形地貌、田間遮擋物、氣候等,在應(yīng)用中需要研究和整合相關(guān)技術(shù),以適應(yīng)農(nóng)業(yè)場(chǎng)景的需要。本研究依據(jù)果園灌溉需求,整合2種物聯(lián)網(wǎng)通信新技術(shù),在原有灌溉控制系統(tǒng)的基礎(chǔ)上,對(duì)通信技術(shù)和檢測(cè)電路等重新進(jìn)行了設(shè)計(jì),通過(guò)傳感器采集土壤、空氣和設(shè)備運(yùn)行狀態(tài)等相關(guān)信息反饋給云平臺(tái),使平臺(tái)全面掌握灌溉所產(chǎn)生的細(xì)微變化,從而提升灌溉的精細(xì)化水平,起到節(jié)能減排、簡(jiǎn)化網(wǎng)絡(luò)部署和節(jié)約成本等作用。以期系統(tǒng)既能滿(mǎn)足灌溉需求,又可兼容果園其他傳感器和設(shè)備,為農(nóng)業(yè)生產(chǎn)和農(nóng)產(chǎn)品信息溯源提供數(shù)據(jù)通道。
系統(tǒng)總體框架包括現(xiàn)場(chǎng)設(shè)備、無(wú)線(xiàn)網(wǎng)絡(luò)和云平臺(tái)設(shè)計(jì)。整體系統(tǒng)依托電信的NB-IoT平臺(tái)(EasyIoT開(kāi)發(fā)者云平臺(tái),簡(jiǎn)稱(chēng)公有云),實(shí)現(xiàn)終端與私有云服務(wù)器(簡(jiǎn)稱(chēng)私有云)的數(shù)據(jù)傳輸。果園局部數(shù)據(jù)傳輸采用LoRa擴(kuò)展NB終端的無(wú)線(xiàn)覆蓋范圍,也為灌溉作業(yè)提供實(shí)時(shí)的反饋信號(hào)。依據(jù)果園實(shí)際需求,設(shè)計(jì)了如圖1所示的整體系統(tǒng)架構(gòu)。
圖1 果園監(jiān)控云平臺(tái)總體架構(gòu)Fig. 1 Main architecture of cloud platform for orchard monitor and control
總體架構(gòu)中,北向系統(tǒng)主要由云服務(wù)器、PC和智能手機(jī)上的APP構(gòu)成,南向系統(tǒng)主要由負(fù)責(zé)與基站通信的通信終端模塊和與具體設(shè)備或傳感器相連的執(zhí)行機(jī)構(gòu)構(gòu)成。通信終端根據(jù)NB-IoT基站信號(hào)是否覆蓋,配備N(xiāo)B-IoT或LoRa通信模塊,具體實(shí)踐中,將通信終端與執(zhí)行機(jī)構(gòu)以通用接口的形式整合成一體。
對(duì)精細(xì)化果園管理系統(tǒng)業(yè)務(wù)需求的分析表明,通用系統(tǒng)需要滿(mǎn)足系統(tǒng)管理模塊化、設(shè)備類(lèi)型分類(lèi)化、系統(tǒng)容量最大化等要求[12,17-18]。對(duì)產(chǎn)品以研發(fā)和管理的最小功能單元?jiǎng)澐?,最小單元以模塊(包括軟件和硬件模塊)通過(guò)通用接口加載到系統(tǒng),在硬件上采用通用電路板設(shè)計(jì),在軟件上只需要更新固件,可減少設(shè)計(jì)研發(fā)及維護(hù)成本。
山地果園日常事務(wù)主要有澆水、施肥、蟲(chóng)害監(jiān)測(cè)、噴灑農(nóng)藥等[19]。果園終端的功能是可模塊化的,其中通信模塊是所有終端都必需的,用于數(shù)據(jù)的收發(fā)。指令執(zhí)行模塊和傳感器模塊是可選的,根據(jù)需求進(jìn)行選配。在原有的滴灌控制研究基礎(chǔ)上,本研究采用新的物聯(lián)網(wǎng)和互聯(lián)網(wǎng)技術(shù),為傳統(tǒng)果園設(shè)備、數(shù)據(jù)采集和智能設(shè)備設(shè)計(jì)監(jiān)控終端,以期為果園設(shè)備控制和數(shù)據(jù)傳輸提供便利。終端內(nèi)部功能框架圖如圖2所示。
圖2 終端內(nèi)部功能框架圖Fig. 2 Inner block diagram for terminal
終端樣機(jī)的主要功能有數(shù)據(jù)通信、繼電器控制、異常檢測(cè)與上報(bào)、定位、終端設(shè)備編號(hào)、常用傳感器數(shù)據(jù)采集、輸入輸出隔離、設(shè)置信息掉電存儲(chǔ)、PC機(jī)設(shè)置、提供通用接口等。
1.1.1 南向終端關(guān)鍵電路設(shè)計(jì) 終端的主控微處理器選用STM32F103(功耗要求高時(shí)用STM32L151替換),通信模組選用移遠(yuǎn)BC95-B5。其中通信模組內(nèi)部LDO輸出的DC 3V為微處理器供電。模組的RESET引腳連接微處理器的GPIO引腳,再用3 V的電壓上拉,實(shí)現(xiàn)硬件復(fù)位。新注冊(cè)設(shè)備、重設(shè)連接的服務(wù)器、修改通信模式(eDRX或PSM)或需要重新獲取基站時(shí)間時(shí),需要對(duì)模組復(fù)位,也可用AT指令對(duì)模組復(fù)位。
終端電路集成了通電檢測(cè)、電池電壓檢測(cè)和復(fù)位電路(圖3)。圖3a中PWR_BAD信號(hào)連接微處理器的GPIO口,檢測(cè)5 V電源是否正常。當(dāng)采用AC 220V為系統(tǒng)供電或USB供電處于正常供電狀態(tài)時(shí),此信號(hào)應(yīng)為高電平,據(jù)此判斷供電是否正常。ADC_BAT_V檢測(cè)鋰電池電壓,供Easy IoT的固件代碼回調(diào)使用,每次上傳數(shù)據(jù)時(shí),自動(dòng)將終端的電量信息上報(bào)。令微處理器從ADC口的讀數(shù)為D,依據(jù)圖3a電路和歐姆定律,鋰電池電壓(VLi)計(jì)算公式為:
EasyIoT平臺(tái)上報(bào)的電量是按百分比來(lái)計(jì)算的,所以折算后的上報(bào)值(Y)為:
鋰電池電量與電壓是非線(xiàn)性關(guān)系,所以實(shí)踐中對(duì)檢測(cè)精度要求較高時(shí),可以采用查表法來(lái)實(shí)現(xiàn),即根據(jù)D值查表得到電量值,然后將電量數(shù)據(jù)傳入電量回調(diào)函數(shù),上傳至計(jì)算機(jī)服務(wù)器后臺(tái)。
微處理器與BC95的復(fù)位電路分開(kāi)設(shè)計(jì),因?yàn)樘厥馇闆r下微處理器需要單獨(dú)復(fù)位,如果同時(shí)復(fù)位BC95,需要較長(zhǎng)的時(shí)間與基站重新建立連接,也增加了連接次數(shù)。為加快重啟速度和減少連接次數(shù),本研究將微處理器與模組的復(fù)位引腳分開(kāi),通過(guò)微處理器的GPIO引腳與模組的復(fù)位引腳相連,由微處理器的程序控制GPIO去復(fù)位模組。
從用電安全和用戶(hù)習(xí)慣角度考慮,外部電源只有部分時(shí)段才能提供,其他時(shí)段通過(guò)鋰電池供電,故需要有供電、充電及整流電路(也稱(chēng)LDO)(圖3b),其中用5 V電壓與電源模塊或USB的供電引腳相連,通過(guò)TP4056實(shí)現(xiàn)對(duì)鋰電池的充電管理。利用二極管D6、D8和D10結(jié)電壓壓降,將5 V降壓后直接給模組供電,這樣當(dāng)鋰電池出現(xiàn)故障時(shí),只要外部電源有電,則整個(gè)電路板就能正常供電。無(wú)鋰電池時(shí),VBAT處電壓不穩(wěn)定,特別是模組收發(fā)數(shù)據(jù)期間,電壓下降至3 V左右,但實(shí)際測(cè)試時(shí),發(fā)現(xiàn)此電壓的波動(dòng)并不影響數(shù)據(jù)收發(fā)的穩(wěn)定性。
ME6206A33為L(zhǎng)DO,輸出3.3 V供微處理器及外圍電路使用。因?yàn)锽C95可以輸出3.0 V,LDO為可選部分。D2為5.1 V穩(wěn)壓管,可防止外部輸入電壓過(guò)高燒毀內(nèi)部芯片。泵房以外的溫度、濕度、土壤含水量等傳感器模塊采用原有的太陽(yáng)能模塊供電,輸出到鋰電池接口,由BC95模組的LDO輸出3 V供系統(tǒng)其他部分使用。
果園泵房的基本功能是抽水、澆水和施肥。將澆水和施肥通過(guò)混肥裝置進(jìn)行一體化設(shè)計(jì),以達(dá)到更好的效果。果園現(xiàn)場(chǎng)測(cè)試時(shí)發(fā)現(xiàn),電網(wǎng)電壓不穩(wěn)定是山地果園普遍存在的問(wèn)題,部分地區(qū)波動(dòng)范圍為170~240 V,電機(jī)也有可能出現(xiàn)故障,果農(nóng)或果園管理人員無(wú)法確認(rèn)遠(yuǎn)程設(shè)備的運(yùn)行狀態(tài),如電機(jī)是否啟動(dòng)、電機(jī)有沒(méi)有損壞和電網(wǎng)電壓是否正常等。
在執(zhí)行終端中加入電量計(jì)量電路以獲取果園(特別是泵房)用電設(shè)備運(yùn)行的精確狀態(tài),可以精確監(jiān)控功率、電壓、電流和電量。監(jiān)控頁(yè)面可圖形化顯示當(dāng)前的功率和電壓,依據(jù)這2個(gè)參數(shù)的動(dòng)態(tài)變化,管理人員可以判斷遠(yuǎn)程設(shè)備是否有故障,甚至可以根據(jù)文獻(xiàn)[20]分析出引起故障的原因。電量檢測(cè)功能電路如圖3c所示,此電路需雙路隔離電源,其中一路供給處理器等低壓數(shù)字電路部分,另一路電量供檢測(cè)芯片HLW8032使用。
滴灌和混肥裝置常用電磁閥實(shí)現(xiàn)水管的開(kāi)關(guān)控制,電磁閥需要采用H橋電路/芯片實(shí)現(xiàn)雙向控制,其控制信號(hào)的脈沖寬度由CPU決定,以兼容不同的電磁閥。
圖3 終端關(guān)鍵電路Fig. 3 Key circuit for terminal
微處理器(Microcontroller unit, MCU)的串口負(fù)責(zé)與BC95-B5、HLW8032、PC或LoRa模塊進(jìn)行通信,另外還需要提供I2C和SPI等常用的外設(shè)接口,以提高終端的兼容性。終端MCU的主要外設(shè)接口如圖4所示。
圖4 終端MCU主要外設(shè)接口Fig. 4 Main interface for terminal MCU
繼電器和電量檢測(cè)電路負(fù)責(zé)對(duì)泵房電機(jī)抽水、澆水和施肥等作業(yè)進(jìn)行監(jiān)測(cè)和控制,檢測(cè)作業(yè)功率、電壓、電流等參數(shù)。終端內(nèi)控制板與通信模組等集成設(shè)計(jì),簡(jiǎn)化接線(xiàn)、方便測(cè)試和批量應(yīng)用。此外,終端還實(shí)現(xiàn)了電機(jī)開(kāi)關(guān)控制、藍(lán)牙通信、MOS驅(qū)動(dòng)和光耦隔離等,完善了微處理器與外圍設(shè)備的交互。1.1.2 終端固件的兼容性改進(jìn) 通信終端(含NB終端和LoRa終端)設(shè)計(jì)要考慮兼容已有設(shè)備。果園已有設(shè)備包括各種傳感器和智能設(shè)備,對(duì)外提供UART、SPI和I2C等常見(jiàn)硬件接口,通過(guò)修改已有設(shè)備的固件程序,可以實(shí)現(xiàn)數(shù)據(jù)兼容。山地果園滴灌作業(yè)需要檢測(cè)的主要指標(biāo)有土壤含水量、溫度和濕度等[2]。
終端開(kāi)發(fā)基于EasyIoT的開(kāi)源庫(kù),其終端固件與平臺(tái)的數(shù)據(jù)交換采用CoAP協(xié)議。公有云與私有云之間的數(shù)據(jù)交換采用JSON協(xié)議交換。為解決果園終端數(shù)據(jù)的多樣性,在由LoRa組成的局域網(wǎng)之間進(jìn)行數(shù)據(jù)傳輸,在NB終端內(nèi)設(shè)計(jì)了在CoAP協(xié)議內(nèi)嵌JSON數(shù)據(jù)的方式,實(shí)現(xiàn)從終端至私有云服務(wù)器的數(shù)據(jù)交換,而LoRa終端直接采用JSON數(shù)據(jù)格式[21-22]。本研究采用cJSON開(kāi)源代碼實(shí)現(xiàn),但由于STM32F1/L1系列處理器的SRAM大小和處理性能的限制,需要對(duì)cJSON源代碼進(jìn)行修改,以提高效率。
通信終端提供3種常見(jiàn)接口:UART、SPI和I2C,將已有設(shè)備的數(shù)據(jù)輸出格式修改為JSON格式,經(jīng)UART通道,即可完成數(shù)據(jù)上下行傳輸。傳感器改造后網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
嵌入開(kāi)發(fā)通信終端的內(nèi)部固件程序流程如圖6所示。
圖5 已有設(shè)備傳感器和設(shè)備改進(jìn)Fig. 5 Sensors and device improvement of existing equipment
圖6 固件程序流程圖Fig. 6 Flow chart of firmware
終端收到的平臺(tái)數(shù)據(jù),經(jīng)cJSON解釋后,數(shù)據(jù)格式與PC機(jī)指令格式保持一致,需要測(cè)試相關(guān)指令時(shí),直接由PC機(jī)發(fā)送相同的指令,方便離線(xiàn)調(diào)試。固件運(yùn)行相關(guān)的信息也通過(guò)串口發(fā)送到PC機(jī),PC機(jī)通過(guò)串口助手可實(shí)時(shí)了解系統(tǒng)運(yùn)行狀態(tài)。
固件還有數(shù)據(jù)掉電儲(chǔ)存功能,將用戶(hù)設(shè)置的參數(shù)存儲(chǔ)在Flash內(nèi)。
1.1.3 北向應(yīng)用云平臺(tái)設(shè)計(jì) EasyIoT的Java開(kāi)發(fā)包,采用HttpClient開(kāi)發(fā)包與平臺(tái)連接,數(shù)據(jù)采用JSON數(shù)據(jù)交換協(xié)議,其中JSON采用fastJSON進(jìn)行編碼與解碼。
系統(tǒng)整體主要由上報(bào)數(shù)據(jù)、發(fā)送指令、權(quán)限控制、數(shù)據(jù)解析等模塊構(gòu)成。項(xiàng)目初期選擇租用云服務(wù)器部署項(xiàng)目,云服務(wù)器使用Ubuntu系統(tǒng),運(yùn)行MySQL、Redis、Tomcat等軟件。不同的模塊組合成不同的子系統(tǒng),主要功能包括數(shù)據(jù)收集、視圖、服務(wù)調(diào)用和單點(diǎn)登錄等。云服務(wù)器開(kāi)放不同端口運(yùn)行不同的子系統(tǒng),為提高系統(tǒng)性能,使用Nginx軟件實(shí)現(xiàn)子系統(tǒng)集群。網(wǎng)頁(yè)系統(tǒng)功能如圖7所示。
圖7 網(wǎng)頁(yè)系統(tǒng)功能框圖Fig. 7 Function block of web system
為便于批量測(cè)試終端設(shè)備的運(yùn)行情況,本研究采用40 W電燈模擬泵房的水泵和燈光等需要繼電器進(jìn)行開(kāi)關(guān)控制的設(shè)備(終端的繼電器為AC 220 V/10 A,最高可帶2 200 W負(fù)載),用于測(cè)試數(shù)據(jù)收發(fā)、電學(xué)參數(shù)檢測(cè)、傳感器數(shù)據(jù)傳輸和解釋、電池待機(jī)時(shí)間、終端穩(wěn)定性等項(xiàng)目。測(cè)試板上安裝10套終端設(shè)備,持續(xù)測(cè)試和觀(guān)察終端的可靠性,也方便查找故障??刂浦噶钣蛇h(yuǎn)程服務(wù)器發(fā)送或本地計(jì)算機(jī)通過(guò)串口線(xiàn)模擬遠(yuǎn)程數(shù)據(jù)發(fā)送。本地計(jì)算機(jī)模擬遠(yuǎn)程指令發(fā)送,加快指令測(cè)試效率、減少連接次數(shù)。PC機(jī)通過(guò)USB轉(zhuǎn)UART串口適配器,連接終端微處理器的UART口,具體端口見(jiàn)圖3通信終端的主控微處理器電路圖。BC95-B5與微處理器的UART2連接,而PC機(jī)的適配器與微處理器的UART1連接,微處理器程序解釋串口指令時(shí),兩路的串口數(shù)據(jù)輸入到同一個(gè)串口指令解釋函數(shù),實(shí)現(xiàn)PC指令與遠(yuǎn)程指令同等作用,但來(lái)自PC的指令可以即時(shí)響應(yīng),起到加快調(diào)試的作用。能夠收發(fā)串口數(shù)據(jù)的軟件就可以實(shí)現(xiàn)對(duì)此終端的測(cè)試。
在STM32F103C8T6處理器上,分別基于Janson與cJSON對(duì)JSON數(shù)據(jù)進(jìn)行解釋。因Janson在Keil里提供,而cJSON來(lái)自JSON庫(kù)的源代碼。測(cè)試{"foo": 42, "bar": 7},其中將Heap_Size改為0x1800時(shí),測(cè)試生成和解釋串:{"foo": 42, "bar": 7}。Janson可以成功生成并解釋32次,第33次出錯(cuò)。cJSON可以成功生成并解釋44次,第45次出錯(cuò)。JSON測(cè)試結(jié)果表明,Janson與cJSON對(duì)JSON數(shù)據(jù)的生成次數(shù)有限。但2個(gè)庫(kù)函數(shù)對(duì)JSON串解釋未測(cè)試到上限,所以本研究設(shè)計(jì)的終端設(shè)備,JSON串改用宏定義生成,生成時(shí)間約為cJSON方法的10%,而解釋采用cJSON庫(kù)。生成和解釋的測(cè)試程序流程如圖8所示。
圖8 JSON串生成與解釋測(cè)試Fig. 8 Test for generating and parsing JSON string
大部分設(shè)備10年內(nèi)解釋次數(shù)不超過(guò)20萬(wàn)次,因此測(cè)試程序以此值為終止條件。PC觀(guān)察的測(cè)試結(jié)果表明,本研究的JSON串生成方法滿(mǎn)足設(shè)備長(zhǎng)期運(yùn)行要求。
功率計(jì)量芯片HLW8032出廠(chǎng)時(shí)已經(jīng)過(guò)校準(zhǔn),但由于電路中的采樣電阻等電路中的元器件值存在誤差,所以對(duì)于要求較高的場(chǎng)合,需要再次進(jìn)行校準(zhǔn)。本研究設(shè)計(jì)使用的元器件,測(cè)量功率分別為13和200 W的設(shè)備,實(shí)測(cè)值比標(biāo)稱(chēng)值高約10%。電量計(jì)量值校準(zhǔn)方法如圖9所示。
圖9 計(jì)量值校準(zhǔn)框圖Fig. 9 Block diagram for meterage value calibration
利用圖9的校準(zhǔn)方案,測(cè)試結(jié)果如圖10所示。由圖10可以看出,測(cè)試功率與實(shí)際功率可以擬合為過(guò)原點(diǎn)的直線(xiàn),測(cè)試誤差來(lái)自電學(xué)參數(shù)檢測(cè)和隔離電路芯器件的參數(shù),擬合的決定系數(shù)為0.999 8,擬合的線(xiàn)性公式為:
為減少工作量,對(duì)于同一批次的元器件,測(cè)試1次擬合直線(xiàn)的斜率即可用于推算實(shí)際功率。
圖10 功率標(biāo)定測(cè)試結(jié)果Fig. 10 Power calibration test result
通過(guò)功率計(jì)量芯片對(duì)輸出功率進(jìn)行監(jiān)控,當(dāng)功率變動(dòng)幅度超過(guò)閾值時(shí),終端及時(shí)自動(dòng)上報(bào)狀態(tài)。典型應(yīng)用是果園灌溉系統(tǒng),果農(nóng)遠(yuǎn)程發(fā)送或預(yù)先設(shè)置了電機(jī)啟動(dòng),配合濕度傳感器上傳的信息,果農(nóng)可以確定正在作業(yè)的水泵有沒(méi)有啟動(dòng)、功率是否在正常范圍內(nèi)、灌溉是否成功等。
周期性上報(bào)數(shù)據(jù)能夠觀(guān)察到長(zhǎng)時(shí)間跨度的狀態(tài)變化,但設(shè)備啟動(dòng)/停止或突然發(fā)生故障時(shí)需要即時(shí)上報(bào),以便云平臺(tái)即時(shí)做出響應(yīng)。加權(quán)遞推平均濾波法為經(jīng)典的軟件濾波算法,可以有效地消除異常的瞬時(shí)值對(duì)信號(hào)計(jì)算帶來(lái)的影響。采用中值濾波法去除噪聲,并在規(guī)定時(shí)間內(nèi)不重復(fù)上報(bào)同類(lèi)型功率突變狀態(tài),通過(guò)這種方法,可以在有限的上傳次數(shù)內(nèi),及時(shí)上報(bào)數(shù)據(jù)。
本研究基于加權(quán)遞推平均濾波法設(shè)計(jì)了濾波分析公式,即是否上報(bào)的計(jì)算公式:
式中,Xn為電學(xué)參數(shù)檢測(cè)電路在前n個(gè)時(shí)刻檢測(cè)得到的值,Xn={x[-n+1],…,x[-1],x[0]};Xm為在前m個(gè)時(shí)刻檢測(cè)得到的值,Xm={x[-m-k+1],…,x[-1-k+1],x[-k]};Xc為集合Xn去掉其中的最大值[即max(Xn)]和最小值[即min(Xn)]2個(gè)元素而形成的集合,故Xc為n-2維;Xo為集合Xm去掉其中的最大值[即max(Xm)]和最小值[即min(Xm)]2個(gè)元素而形成的集合,故Xo為m-2維;Wc為n-2維行向量,n>2;T是閾值;Wo為m-2維行向量,m>2;k為歷史數(shù)據(jù)序列偏移量;當(dāng)Y=1時(shí),判定為異常狀態(tài);當(dāng)Y=0時(shí),判定為正常狀態(tài)。相關(guān)參數(shù)可遠(yuǎn)程設(shè)置,以增加濾波算法的通用性。
果園現(xiàn)場(chǎng)設(shè)備受干擾的隨機(jī)性強(qiáng)、時(shí)間跨度大,且受上報(bào)次數(shù)的限制,因此,以果園設(shè)備直接測(cè)試對(duì)功率變動(dòng)的響應(yīng)速度不現(xiàn)實(shí)。為測(cè)試功率變動(dòng)的有效性,本研究測(cè)試了1個(gè)標(biāo)稱(chēng)功率為13 W的負(fù)載和1個(gè)有多檔(200、600和1 200 W)的負(fù)載。為方便測(cè)試,式(4)取n=6,m=4,忽略功率不變的時(shí)間段,得到2種功率曲線(xiàn)(圖11)。
不同負(fù)載對(duì)應(yīng)不同閾值,圖11a、11b分別選取5和50 W時(shí),可以在150 ms內(nèi)檢測(cè)出異常,而分別取10和150 W時(shí),可以在100 ms內(nèi)檢測(cè)出異常,即在時(shí)間段內(nèi)實(shí)現(xiàn)即時(shí)上報(bào)。果園現(xiàn)場(chǎng)測(cè)試發(fā)現(xiàn),由于山地果園電網(wǎng)的不穩(wěn)定以及其他干擾的存在,平臺(tái)監(jiān)測(cè)到的上報(bào)次數(shù)較多,而短時(shí)間內(nèi)同性質(zhì)故障信息重復(fù)上報(bào)無(wú)意義,所以需要限制短時(shí)間內(nèi)同類(lèi)故障上報(bào)。本研究中采用的上報(bào)數(shù)據(jù)的方案為:1)周期性上報(bào):忙時(shí)間隔15 min/次,閑時(shí)間隔60 min/次;2)設(shè)備啟動(dòng)與停止時(shí)各上報(bào)一次;3)功率變動(dòng)異常時(shí)上報(bào)一次,同類(lèi)型異常在規(guī)定時(shí)間段內(nèi)不重復(fù)上報(bào)。
終端設(shè)備可以檢測(cè)出異常的狀態(tài),云端也可檢測(cè)異常數(shù)據(jù)。由于周期性上報(bào)數(shù)據(jù)時(shí)將常用的狀態(tài)上傳到云端,云端將當(dāng)前狀態(tài)與數(shù)據(jù)庫(kù)內(nèi)的歷史數(shù)據(jù)對(duì)比,可檢測(cè)到異常,并做出響應(yīng)。通過(guò)試驗(yàn)選定相關(guān)參數(shù),有效的減少連接次數(shù)、節(jié)約資費(fèi)。
圖11 不同負(fù)載下的功率曲線(xiàn)Fig. 11 Test curve of power under different loads
試驗(yàn)測(cè)試時(shí),將終端供電、充電和LDO電路的鋰電池接口串聯(lián)萬(wàn)用表的電流測(cè)試端口進(jìn)行電流測(cè)試。
試驗(yàn)測(cè)試結(jié)果(表1)表明,終端功耗主要由控制板待機(jī)功耗和NB-IoT模組喚醒后的功耗組成。根據(jù)STM芯片文檔,降低微處理器主頻可降低功耗,在滿(mǎn)足所有日常計(jì)算的情況下,主頻降至1~2 MHz可以滿(mǎn)足正常計(jì)算和控制操作。考慮到處理能力的冗余,設(shè)定微處理器最低主頻為2 MHz。
每次收發(fā)數(shù)據(jù)的狀態(tài)持續(xù)20 s。出于安全考慮,泵房需要抽水時(shí)才供電。抽水泵通電時(shí),充電電路給鋰電池充電。在不充電情況下,按上報(bào)頻率200 mA·H鋰電池,實(shí)際工作時(shí)長(zhǎng)為24 h,考慮到工程冗余,300~400 mA·H鋰電池可以滿(mǎn)足正常工作需求。
表1 功耗測(cè)試Table 1 Power consumption test
換用STM32L151的微處理器,200 mA·H電池實(shí)際工作時(shí)長(zhǎng)為4 d,是STM32F103的4倍。
本研究整合NB-IoT和LoRa技術(shù),設(shè)計(jì)了山地果園現(xiàn)場(chǎng)監(jiān)控終端和遠(yuǎn)程云平臺(tái),是農(nóng)業(yè)大數(shù)據(jù)建立數(shù)據(jù)采集和遠(yuǎn)程傳輸?shù)幕A(chǔ),簡(jiǎn)化了系統(tǒng)部署,解決了NB-IoT覆蓋盲區(qū)的問(wèn)題。
電學(xué)參數(shù)檢測(cè)電路結(jié)合參數(shù)異常檢測(cè)算法,實(shí)現(xiàn)即時(shí)異常狀態(tài)上報(bào),并將上報(bào)次數(shù)限制在每年2萬(wàn)次,可在150 ms內(nèi)檢測(cè)出異常狀態(tài)。將JSON數(shù)據(jù)解釋和生成分開(kāi)實(shí)現(xiàn),在內(nèi)存受限的微處理器中實(shí)現(xiàn)JSON數(shù)據(jù)生成和解釋20萬(wàn)次以上。對(duì)檢測(cè)功率進(jìn)行標(biāo)定,其中功率的線(xiàn)性回歸預(yù)測(cè)決定系數(shù)(R2)為0.999 8。通過(guò)電路低功耗設(shè)計(jì)和降低微處理器主頻等,終端配200 mA·H鋰電池可滿(mǎn)足常規(guī)工作需求,采用低功耗微處理器可以進(jìn)一步延長(zhǎng)工作時(shí)間。在滿(mǎn)足計(jì)算和控制需求的前提下,2 MHz的微處理器主頻和200 mA·H鋰電池可以滿(mǎn)足果園灌溉系統(tǒng)計(jì)算和持續(xù)工作的要求。
本研究采用的物聯(lián)網(wǎng)新技術(shù)、電學(xué)參數(shù)檢測(cè)電路、終端JSON數(shù)據(jù)格式和濾波算法,解決了在有限連接次數(shù)下的即時(shí)上報(bào)問(wèn)題,并延伸了物聯(lián)網(wǎng)的覆蓋范圍。這些技術(shù)的有機(jī)整合具有較強(qiáng)的創(chuàng)新性、擴(kuò)展性和兼容性,可以延伸較多的綜合應(yīng)用。
華南農(nóng)業(yè)大學(xué)學(xué)報(bào)2020年6期