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