朱霏雨,劉木華,袁海超,趙進輝,俞豪駿
(1. 江西農(nóng)業(yè)大學工學院,南昌市,330045; 2. 江西省現(xiàn)代農(nóng)業(yè)裝備重點實驗室,南昌市,330045)
中國早在20世紀90年代就開始了精準農(nóng)業(yè)的初步探索[1],在農(nóng)業(yè)規(guī)?;?、集約化的過程中,精準農(nóng)業(yè)成為當今農(nóng)業(yè)發(fā)展的新潮流。當前我國的蔬菜種植規(guī)模有限,絕大多數(shù)地區(qū)仍依賴于傳統(tǒng)的人工耕作和人為經(jīng)驗進行管理[2],浪費了大量的人力物力,且普遍存在成本高、效率低等問題[3],已不適用于當前蔬菜種植發(fā)展的迫切需求。與此同時,傳感器及物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展[4-5],給蔬菜種植行業(yè)帶來了新的發(fā)展機遇。應用物聯(lián)網(wǎng)技術(shù)到蔬菜生產(chǎn)實踐中,實現(xiàn)生產(chǎn)信息的及時獲取,對改變蔬菜種植模式,保證作物高產(chǎn)、綠色健康具有重要意義[6-8]。
目前許多研究人員開發(fā)了多種農(nóng)業(yè)信息化系統(tǒng)[9-10]以滿足不同領(lǐng)域的發(fā)展需要。孫彥景等[11]闡述了農(nóng)業(yè)信息化系統(tǒng)實施的整體框架。楊旭輝等[12]開發(fā)的節(jié)能型水產(chǎn)養(yǎng)殖環(huán)境監(jiān)測系統(tǒng),可實時監(jiān)測水中溫度、pH值、溶解氧濃度、濁度等參數(shù)。楊衛(wèi)中等[13]開發(fā)的基于窄帶物聯(lián)網(wǎng)的土壤墑情監(jiān)測系統(tǒng),實現(xiàn)了對土壤墑情信息的實時監(jiān)測?;戮甑萚14]研制了基于窄帶物聯(lián)網(wǎng)的養(yǎng)殖塘水質(zhì)監(jiān)測系統(tǒng),利用云平臺進行數(shù)據(jù)監(jiān)測。徐識溥等[15]開發(fā)的農(nóng)田土壤環(huán)境監(jiān)測系統(tǒng)實現(xiàn)了土壤環(huán)境信息的自動化采集與存儲。
上述系統(tǒng)雖然實現(xiàn)了信息的采集處理[16-22],但是未利用物聯(lián)網(wǎng)接口技術(shù)獲取更多有效信息;缺少統(tǒng)一管理和自主研發(fā)的配套可視化平臺,普遍存在后期系統(tǒng)設(shè)備維護困難等問題。在無線通訊方面本系統(tǒng)選用的LoRa通訊方式更加符合中短距離、小數(shù)據(jù)包、低功耗、時延不敏感等特性[23]。
基于上述問題,本文采用物聯(lián)網(wǎng)技術(shù),自行開發(fā)了一套可用于菜田的土壤溫濕度在線監(jiān)測系統(tǒng),將通信模塊與嵌入式單片機相結(jié)合,采用LoRa組網(wǎng)+4G轉(zhuǎn)發(fā)的方式,可實現(xiàn)對傳感器的遠程溫濕度數(shù)據(jù)監(jiān)測與參數(shù)配置。此外,系統(tǒng)后臺服務器通過對數(shù)據(jù)進行定時、定量、定位的計算處理,可向農(nóng)業(yè)用戶提供監(jiān)測信息查詢、遠程控制等功能服務。
按照經(jīng)典的物聯(lián)網(wǎng)三層架構(gòu)模型[24]搭建基于物聯(lián)網(wǎng)的菜田土壤溫濕度實時在線監(jiān)測系統(tǒng)整體框架(圖1),其分為設(shè)備感知層、網(wǎng)絡傳輸層和處理應用層。
設(shè)備感知層作為本系統(tǒng)的核心,包括各個工作于菜田間的土壤溫濕度無線傳感器,其可自動完成數(shù)據(jù)采集、協(xié)作通信和信息處理,運用LoRa技術(shù)[25]自動建立傳輸網(wǎng)絡并將數(shù)據(jù)實時發(fā)送至LoRa協(xié)調(diào)器主匯聚節(jié)點。此外,感知層傳感器設(shè)備均配有唯一的設(shè)備二維碼,用戶可掃描登陸后對該設(shè)備的運行狀況、監(jiān)測數(shù)據(jù)等信息進行實地查看。
圖1 菜田中土壤溫濕度實時在線監(jiān)測系統(tǒng)整體框架圖
網(wǎng)絡傳輸層包括通訊定位衛(wèi)星、LoRa協(xié)調(diào)器、4G LTE Cat.1模塊和通信基站。LoRa協(xié)調(diào)器搭載有嵌入式Linux系統(tǒng)?;赒t開發(fā)的嵌入式應用程序上還能顯示及控制當前感知層的設(shè)備節(jié)點。所有感知層傳感器的數(shù)據(jù)匯集于所在片區(qū)內(nèi)的LoRa協(xié)調(diào)器,繼而以4G方式將數(shù)據(jù)發(fā)送至基站,完成與服務器的交互。
處理應用層主要包括Socket網(wǎng)絡端口監(jiān)聽工具、Web物聯(lián)網(wǎng)開發(fā)平臺和數(shù)據(jù)庫。Socket網(wǎng)絡端口監(jiān)聽工具負責接收及存儲數(shù)據(jù),Web物聯(lián)網(wǎng)開發(fā)平臺查詢數(shù)據(jù)庫獲取監(jiān)測信息,繪制動態(tài)圖表展示給用戶。
感知層作為系統(tǒng)的最底層,主要由各片區(qū)內(nèi)的土壤溫濕度傳感器設(shè)備組成,是獲取菜田溫濕度信息的關(guān)鍵部分。目前市面上的溫濕度傳感器普遍存在功耗大、成本高、自動化程度低等問題,在農(nóng)田監(jiān)測領(lǐng)域的實際應用效果還有待提高。基于此,本研究設(shè)計的土壤溫濕度無線傳感器(wireless soil temperature and moisture sensor,WSTMS)[26],具有功耗低、使用壽命長、運行穩(wěn)定、數(shù)據(jù)傳輸實時準確等優(yōu)點,能夠?qū)崿F(xiàn)較長時間土壤溫濕度的在線監(jiān)測。傳感器基本特性參數(shù)如表1所示。
表1 WSTMS基本特性Tab. 1 Basic characteristics of WSTMS
本文設(shè)計的土壤溫濕度無線傳感器電路部分由3個基本單元組成:信號采集模塊、LoRa通信模塊和供電模塊,其基本結(jié)構(gòu)原理如圖2所示。
圖2 WSTMS結(jié)構(gòu)原理圖
2.1.1 信號采集模塊
該模塊由濕度采集與溫度采集兩部分組成。濕度采集部分由濕度探針、分壓偏置電路和運算放大器自下而上依次連接。濕度探針使用特殊的金屬合金制成,耐酸堿,以模擬電阻的形式得出不同土壤濕度下的電阻率。該探針兩極串聯(lián)210 kΩ電阻后,將分壓信號,經(jīng)運放放大后輸出至ADC通道。
溫度采集部分電路結(jié)構(gòu)如圖3所示。CN1為Pt100鉑熱電阻插腳,支持三線和四線連接方式,本研究中的鉑熱電阻Pt100采用恒流源四線制接法。Q1、Q2和Q3組成雙路鏡像恒流源。R5為精度1‰的低溫漂溫度補償電阻。當R5=91 Ω時支持測量-23 ℃~+50 ℃,能完全覆蓋菜田溫度變化范圍。鉑熱電阻與R5兩路恒流源降壓信號經(jīng)OPA2379組成的電壓跟隨器差分輸入至AD620。根據(jù)增益公式計算AD620差分輸入信號的放大倍數(shù)
(1)
當R1=510 Ω時,增益G≈97.86。此時將放大后的信號OUT1傳入主控ADC通道。圖3中R6為電位器,用于溫度的初值校準。
圖3 溫度采集部分原理圖
2.1.2 主控與通信模塊
主控MCU選用型號為STM8L051F3P6,Halt模式下功耗低至350 nA,特別適合電池應用場合。
通信模塊采用低功耗、遠距離的E22-400T22S,基于SX1268設(shè)計。將該模塊運行于透傳模式下,與當前片區(qū)內(nèi)的LoRa協(xié)調(diào)器進行雙向數(shù)據(jù)及指令傳輸,當數(shù)據(jù)發(fā)送完畢后立即進入休眠,等待主控喚醒。
2.1.3 供電模塊
供電電源采用3.7 V雙節(jié)鋰電池。電源管理芯片為LTC2941,用于指示電池充放電量。充電管理芯片采用TP4056。穩(wěn)壓電路均使用低功耗LDO。
該傳感器軟件設(shè)計采用前后臺系統(tǒng):前臺程序有RTC定時器中斷來處理數(shù)據(jù)采集與發(fā)送事件,外部中斷喚醒用于在低功耗運行模式下接收參數(shù)配置指令;后臺程序則主要用于判斷喚醒條件,進行嚴格的功耗控制。整體軟件流程圖見圖4。
圖4 WSTMS軟件流程圖
2.2.1 主程序流程
主程序流程圖如圖4(b)所示,接通電池后STM8L051首先進行內(nèi)核和外設(shè)初始化,包括系統(tǒng)時鐘、溫濕度測量電路、LoRa、指示燈、電量計等。繼而從EEPROM中恢復上一次保存的傳感器配置信息,包括:電量值、采樣時間以及工作模式。
初始化步驟完成后,傳感器進入后臺模式,判斷喚醒標志條件、控制是否進入Halt模式以及響應外界指令。
2.2.2 外部中斷服務子程序
當進入Halt模式后MCU停止工作,無法接收外部發(fā)來的串口數(shù)據(jù)指令,且僅允許外部中斷與RTC中斷兩種方式將其喚醒。因此在進入Halt模式前配置與LoRa無線模塊相連的串口PA3引腳為外部中斷下降沿觸發(fā)模式,當LoRa無線模塊接收到數(shù)據(jù)時則會觸發(fā)該引腳的外部中斷便于喚醒MCU,喚醒成功后立即在外部中斷服務程序中恢復該引腳的串口接收功能。通過以上方法可有效解決進入Halt模式下無法響應串口數(shù)據(jù)的問題。外部中斷服務子程序如圖4(a)所示。
2.2.3 RTC定時器中斷服務子程序
RTC定時器中斷子程序如圖4(c)所示。板載32.768 kHz晶振提供精確的RTC時鐘源,每隔既定周期(該參數(shù)可通過指令配置)以RTC定時器中斷喚醒的方式采集溫濕度及電量數(shù)據(jù)并無線發(fā)送,發(fā)送完成后將喚醒標志位清零,回到主程序。在一個喚醒周期內(nèi)完成對溫濕度信號連續(xù)采樣23次,冒泡排序后采用中值平均濾波算法來克服采樣波動與脈沖干擾。當采樣周期小于30 s時,采用中值平均濾波并結(jié)合一階卡爾曼算法濾波。
LoRa協(xié)調(diào)器主匯聚節(jié)點接收到由各個方向發(fā)來的傳感器LoRa數(shù)據(jù)包后,經(jīng)4G模組、移動基站轉(zhuǎn)發(fā)至服務器。
各傳感器終端節(jié)點與協(xié)調(diào)器間的數(shù)據(jù)上報以透傳方式進行。命令下發(fā)則以協(xié)調(diào)器廣播的方式完成,兩者均采用自定義數(shù)據(jù)傳輸協(xié)議。
3.1.1 數(shù)據(jù)上報傳輸協(xié)議
數(shù)據(jù)上報協(xié)議按字節(jié)先后分為:起始標志符、片區(qū)地址、設(shè)備號、數(shù)據(jù)幀、分隔符、結(jié)束標志符,均采用ASCII編碼方式。例如:上述土壤溫濕度無線傳感器上報的數(shù)據(jù)格式為:“########A02TH&ST=26.1&SH=15.6&BL=93@”,則各數(shù)據(jù)字段的含義如下:8位“#”作為起始標志符可有效降低誤碼率;字母“A”代表片區(qū)地址,即協(xié)調(diào)器所在區(qū)域地址,采用1位大寫英文字母A~Z表示,占用1 Byte;“02TH”代表設(shè)備號,即02號溫濕度傳感器,采用2位數(shù)字00~99加2位大寫字母A~Z表示,占用4 Byte;數(shù)據(jù)幀格式靈活且占用字節(jié)大小不定,以“&”開頭,不同數(shù)據(jù)間使用分隔符“&”(ASCII碼0x26)分隔,“ST=26.1”代表當前土壤溫度為26.1 ℃,“SH=15.6”代表當前土壤相對濕度為15.6%RH,“BL=93”表示電池電量剩余93%;單條協(xié)議以“@”符結(jié)束。
3.1.2 命令下發(fā)傳輸協(xié)議
命令下發(fā)由LoRa協(xié)調(diào)器對所在片區(qū)內(nèi)的LoRa終端節(jié)點進行空中配置。傳感器串口接收到LoRa數(shù)據(jù)后喚醒MCU解析命令。指令格式包括起始標志符、片區(qū)地址、設(shè)備號、@指令前綴和參數(shù)。如下達更改采樣周期命令:“########A01WL@S0012”即可完成對協(xié)調(diào)器所在片區(qū)地址“A”內(nèi)的“01WL”號設(shè)備的采樣周期設(shè)置為12 s。當采樣周期參數(shù)設(shè)置為“0000”時立即停止采樣。表2為現(xiàn)所支持的參數(shù)配置指令集。
表2 參數(shù)配置指令集Tab. 2 Instruction set of parameter configuration
LoRa以其低功耗、遠距離等特點,被廣泛應用于傳感器監(jiān)測領(lǐng)域,對于要求成本低、續(xù)航久和通信不頻繁的場景來說LoRa的優(yōu)勢則更為明顯。該協(xié)調(diào)器作為一個片區(qū)內(nèi)的頂級父節(jié)點,負責其下LoRa網(wǎng)狀網(wǎng)絡的創(chuàng)建、維護和管理,由LoRa模塊出廠固件自動完成。此外協(xié)調(diào)器還具有數(shù)據(jù)接收、命令廣播、數(shù)據(jù)上報等功能。
本文在ubuntu平臺使用Qt Creator 3.5.1 (opensource)構(gòu)建應用項目。圖5是LoRa協(xié)調(diào)器和Qt應用程序的軟件運行界面。當軟件接收到符合透傳協(xié)議的數(shù)據(jù)時,將自動提交數(shù)據(jù)至服務器上的端口監(jiān)聽軟件[27]。該應用程序還用于應用層命令轉(zhuǎn)發(fā),如Web端發(fā)來“########@SB03TH200”指令,經(jīng)該應用程序解析后由該LoRa協(xié)調(diào)器主匯聚節(jié)點進行廣播。由于每個傳感器設(shè)備在出廠前都會在固件程序中記錄其唯一設(shè)備號,所以當LoRa協(xié)調(diào)器廣播時只有對應片區(qū)號和設(shè)備號的LoRa終端傳感器才會做出響應動作,其他節(jié)點均不受影響。
圖5 LoRa協(xié)調(diào)器及軟件界面圖
傳輸層中LoRa協(xié)調(diào)器接收的數(shù)據(jù)最終經(jīng)4G上傳至遠程服務器控制中心。本文基于多線程技術(shù)和WPF自行開發(fā)了一款Socket網(wǎng)絡端口監(jiān)聽工具。此軟件作為系統(tǒng)服務跟隨服務器啟動,保持24 h運行狀態(tài),其界面如圖6所示。
圖6 Socket網(wǎng)絡端口監(jiān)聽工具界面
該網(wǎng)絡端口監(jiān)聽工具主要用于LoRa協(xié)調(diào)器完成數(shù)據(jù)上傳和指令交互,一方面將接收的傳感器數(shù)據(jù)保存至數(shù)據(jù)庫,另一方面依靠TCP Socket網(wǎng)絡間接與傳感器設(shè)備建立連接,實現(xiàn)傳感器的遠程控制。
OTA(Over-the-air Technology)固件升級工具可遠程升級部署在田間的LoRa無線傳感器及協(xié)調(diào)器設(shè)備。該工具基于C#WPF框架開發(fā),采用高效的YModem協(xié)議傳輸傳感器固件升級包。使用此工具可極大地降低系統(tǒng)后期維護成本,使得傳感器設(shè)備無須返廠即可在線完成升級[28-29]。
服務器為整個物聯(lián)網(wǎng)架構(gòu)提供計算與應用服務,主要完成傳感器數(shù)據(jù)監(jiān)聽、消息轉(zhuǎn)發(fā)、數(shù)據(jù)庫及Web網(wǎng)站部署等工作。數(shù)據(jù)庫內(nèi)建表格包含:文件索引表、用戶信息表、監(jiān)測數(shù)據(jù)表、設(shè)備狀態(tài)表等。
Web物聯(lián)網(wǎng)開發(fā)平臺,采用B/S(Browser/Server)網(wǎng)絡結(jié)構(gòu)模式,基于maven的SSM框架[30],響應式的布局可同時兼容手機、PC等不同設(shè)備。Web物聯(lián)網(wǎng)開發(fā)平臺功能結(jié)構(gòu)如圖7所示。該平臺按照人員組織結(jié)構(gòu)將用戶分為管理員和普通用戶。
圖7 物聯(lián)網(wǎng)開發(fā)平臺功能結(jié)構(gòu)圖
4.4.1 設(shè)備管理
設(shè)備管理頁以LoRa協(xié)調(diào)器所在片區(qū)進行劃分,每個協(xié)調(diào)器下掛載有多個傳感設(shè)備,用戶可自由創(chuàng)建和刪除設(shè)備。
4.4.2 統(tǒng)計報表
統(tǒng)計報表頁可查看傳感器的實時和歷史數(shù)據(jù)走勢圖(圖8),并提供圖表圖片下載打印功能。
圖8 傳感器歷史溫度走勢圖
5.1.1 溫度標定與測試
將傳感器與校準后的水銀溫度計同時置于恒溫水浴箱中進行傳感器溫度標定試驗,設(shè)置采樣間隔為5 s,取5 ℃~50 ℃范圍內(nèi)共21組不同溫度取值作為測量點。通過Web物聯(lián)網(wǎng)開發(fā)平臺監(jiān)測數(shù)據(jù),待傳感器到達穩(wěn)態(tài)后記錄讀數(shù),每組重復測量5次取均值,測量結(jié)果見表3。
表3 傳感器溫度標定值Tab. 3 Temperature calibration value of WSTMS
評估該傳感器的溫度特性曲線,對溫度與輸出電壓值進行線性擬合,得到如圖9(a)所示的溫度標定曲線,其擬合線性方程為
Temp=28.974·Voltage-33.312
(2)
式中:Voltage——輸出電壓,V。
決定系數(shù)RT2為99.54%,說明該傳感器有較好的線性度。該傳感器的溫度測量分辨率較好,可達0.1 ℃。
(a) 標定曲線
(b) 響應曲線
將傳感器在(20±0.5) ℃環(huán)境下靜置5 min后再分別置于溫度為(26±0.5) ℃和(30±0.5) ℃的恒溫水浴箱中,得到的溫度階躍響應曲線如圖9(b)所示。計算由起始溫度變化到最終溫度的63.2%所需的時間常數(shù)τ,該傳感器的溫度響應時間常數(shù)τ小于18 s。
5.1.2 濕度標定與測試
自然環(huán)境中土壤含水量范圍一般保持在5%~20%之間,土壤含水量在8%以下的干土,土色灰白,作物幾乎無法吸收水分,不適宜播種和耕作;含水量在18.5%~20%土壤有效含水量最大,為適耕上限?;诖耍谑覝?2 ℃環(huán)境下進行傳感器濕度標定,取土壤濕度在0~25%范圍內(nèi)共9組不同土壤濕度樣品為測量點,根據(jù)國標NY/T 52—1987《土壤水分測定法》[31]的有關(guān)說明配置不同土壤濕度樣品。測量時將濕度探頭完全插入到土壤中,靜置30 min,通過Web物聯(lián)網(wǎng)開發(fā)平臺監(jiān)測數(shù)據(jù),得到不同土壤濕度下的A/D采樣值,如表4所示。對濕度與輸出電壓值進行線性擬合,得到如圖10(a)所示的濕度標定曲線。
表4 WSTMS濕度測試結(jié)果Tab. 4 Measurement results of WSTMS humidity
(a) 標定曲線
(b) 響應曲線
其擬合線性方程為
Humid=-16.881·Voltage+27.094
(3)
決定系數(shù)RH2=94.59%,由圖10(b)可知該傳感器的濕度響應時間約為20 s。
5.1.3 其他參數(shù)測試
將傳感器采樣時間間隔設(shè)定為15 min,天線增益為3 dBi,用示波器測得該傳感器在待機狀態(tài)下的靜態(tài)電流為3.05 mA,待機功耗小于11.28 mW;發(fā)送數(shù)據(jù)時峰值電流為179 mA,整機發(fā)射功耗小于662 mW。實測該傳感器在上述配置下可連續(xù)工作80天以上。
傳感器測量數(shù)據(jù)由產(chǎn)生到存儲至數(shù)據(jù)庫作為一次完整的通信過程,對系統(tǒng)通訊穩(wěn)定性能進行試驗:設(shè)置傳感器溫濕度及電量數(shù)據(jù)每20 s向LoRa基站匯報一次,由于采用32.768 kHz晶振且程序中時間數(shù)值設(shè)置存在舍入誤差,因此,實際采樣周期T應更正為
(4)
日均上報采樣條數(shù)理論值為4 218.75條。讀取數(shù)據(jù)庫記錄,統(tǒng)計各組傳感器1日內(nèi)的采樣數(shù)據(jù)條數(shù)共5組取平均,分析結(jié)果見表5。
試驗結(jié)果表明,本系統(tǒng)通訊平均丟包率為4.73%,最大丟包率為7.57%。距離較近時可獲得較好的通信質(zhì)量。
表5 數(shù)據(jù)丟包率分布Tab. 5 Distribution of loss rate
移動端APP采用響應式網(wǎng)頁,包括上述Web物聯(lián)網(wǎng)開發(fā)平臺的全部功能。其監(jiān)測界面如圖11所示。
圖11 移動端APP監(jiān)測界面
本研究基于現(xiàn)代無線傳感技術(shù),根據(jù)物聯(lián)網(wǎng)感知層、傳輸層和應用層的三層體系結(jié)構(gòu),自主設(shè)計開發(fā)了一整套基于物聯(lián)網(wǎng)的菜田溫濕度信息監(jiān)測系統(tǒng)。
1) 結(jié)合嵌入式單片機與傳感器技術(shù)自行設(shè)計了一種土壤溫濕度無線傳感器。采用分時節(jié)能算法和嚴格的功耗控制,最大限度地延長節(jié)點生存周期。通過傳感器標定試驗,建立了溫濕度標定曲線,其決定系數(shù)分別為99.54%和94.59%,系統(tǒng)通信平均丟包率為4.73%,在采樣周期為15 min的情況下,預計可續(xù)航80天以上。
2) 傳輸層設(shè)計開發(fā)了LoRa協(xié)調(diào)器主匯聚節(jié)點,通過該節(jié)點進行LoRa無線組網(wǎng),接收傳感器數(shù)據(jù)并通過4G發(fā)送至遠程服務器。
3) 應用層開發(fā)有Socket網(wǎng)絡端口監(jiān)聽工具、OTA固件升級工具、Web物聯(lián)網(wǎng)開發(fā)平臺、手機APP等多款軟件。使系統(tǒng)具備傳感器在線監(jiān)測、報表查詢、空中升級、視頻監(jiān)控、文件存儲等多種功能,其通用性強,設(shè)計合理,運行穩(wěn)定,用戶界面友好,具有較好的應用價值。
4) 由于為了降低傳輸協(xié)議的復雜性,在傳輸層數(shù)據(jù)匯聚過程中存在通訊堵塞的問題。在以后的工作中,我們將研究性能優(yōu)良的動態(tài)數(shù)據(jù)融合算法與校驗協(xié)議,以進一步降低多節(jié)點時的丟包率。
5) 該傳感器試驗結(jié)果表明,整個系統(tǒng)運行穩(wěn)定、自動化程度高,可有效節(jié)約人力物力,既實用又經(jīng)濟。該系統(tǒng)能有效幫助農(nóng)戶統(tǒng)一管理、科學決策,對提高農(nóng)業(yè)生產(chǎn)可視化、平臺化、信息化,推動農(nóng)業(yè)邁向4.0時代具有重要意義。