文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.181735
中文引用格式: 趙小強,陳玉兵,高強,等. 基于Modbus協(xié)議的農(nóng)田氣象信息監(jiān)測站設(shè)計[J].電子技術(shù)應用,2018,44(12):55-59,64.
英文引用格式: Zhao Xiaoqiang,Chen Yubing,Gao Qiang,et al. Design of farmland meteorological information monitoring station based on Modbus protocol[J]. Application of Electronic Technique,2018,44(12):55-59,64.
0 引言
隨著“互聯(lián)網(wǎng)+”現(xiàn)代農(nóng)業(yè)高速發(fā)展,如何科學有效地提高農(nóng)田的生產(chǎn)、經(jīng)濟、環(huán)境效益已經(jīng)成為現(xiàn)階段農(nóng)業(yè)亟待解決的重大問題[1-2]。無線傳感器網(wǎng)絡(luò)作為信息感知和無線傳輸?shù)臉蛄?,具有低功耗、易集成、低價格等特點,是農(nóng)田規(guī)?;芗?jié)點部署的首選方案[3-4]。通過各傳感器節(jié)點實時動態(tài)感知作物生長要素與環(huán)境信息,是實現(xiàn)高效農(nóng)業(yè)的基礎(chǔ)[5-6]。美國、日本、荷蘭等發(fā)達國家在農(nóng)田信息感知領(lǐng)域取得了長足發(fā)展,形成了精準農(nóng)業(yè)網(wǎng)絡(luò)體系[7]。
精準農(nóng)業(yè)對于農(nóng)田環(huán)境信息獲取的實時性要求較高,但是一般各傳感器節(jié)點均采用電池供電,為了降低網(wǎng)絡(luò)負載,延長網(wǎng)絡(luò)生存周期,通常數(shù)據(jù)采集的周期過長,實時性較差,不能及時對作物生長環(huán)境信息進行評價與分析,無法保證最佳生長要素補給,是精準農(nóng)業(yè)發(fā)展所面臨的壁壘之一[8-9]??紤]農(nóng)田傳感器節(jié)點實際應用場景通常采用人為預設(shè)的確定性部署方式,本文提出將空氣濕度、光照度等傳感器掛載于串行總線,通過Modbus通信協(xié)議輪詢與各個傳感器進行數(shù)據(jù)交互,整套系統(tǒng)采用太陽能供電,既保障了數(shù)據(jù)采集以及傳輸實時性,也彌補了傳統(tǒng)監(jiān)測方式下,單一節(jié)點測量參數(shù)單一的不足。最終將數(shù)據(jù)傳輸至云平臺進行統(tǒng)計分析與處理,對我國從傳統(tǒng)農(nóng)業(yè)向現(xiàn)代農(nóng)業(yè)的轉(zhuǎn)型升級具有重要的意義。
1 系統(tǒng)原理
農(nóng)田氣象信息監(jiān)測站采用RS485總線訪問控制策略,搭載Modbus RTU通信協(xié)議實現(xiàn)田間作物生長要素信息實時采集。Modbus串行鏈路協(xié)議采用主從(Master/Slave)方式,實現(xiàn)主站Master向從站Slave數(shù)據(jù)請求以及Slave端向Master端的響應請求,實現(xiàn)雙向數(shù)據(jù)交互[10]。通過設(shè)置不同的從站傳感器地址,達到主站輪詢訪問土壤溫度、土壤水分、土壤電導率、空氣溫度、空氣濕度、田間風速、田間風向、光照強度、輻射總量傳感器節(jié)點的目的,通信雙方使用CRC16循環(huán)冗余校驗,實現(xiàn)數(shù)據(jù)傳輸檢錯,保證數(shù)據(jù)傳輸?shù)恼_性和完整性。解析后的傳感器數(shù)據(jù)通過4G全網(wǎng)通模塊SIM7600CE采用EDP通信協(xié)議傳輸至OneNET云平臺,實現(xiàn)數(shù)據(jù)多樣化展示和分析處理。系統(tǒng)結(jié)構(gòu)如圖1所示。
2 硬件設(shè)計
2.1 核心控制器電路
STM32F103RCT6是ST公司ARM 32位Cortex-M3內(nèi)核CPU,最高工作頻率可達72 MHz,芯片內(nèi)部外設(shè)與通信接口豐富。外圍核心電路主要包含RESET按鍵復位電路、8 MHz晶振電路、32.768 kHz RTC時鐘晶振電路、BOOT 啟動模式選擇電路、電源濾波電路,以及維持后備區(qū)域數(shù)據(jù)存儲和RTC運行的VBAT紐扣電池供電電路。核心控制器電路設(shè)計如圖2所示。
2.2 Modbus RS485采集電路
采用8路RS485接口掛載到SP3485的驅(qū)動器同相輸出A端口和反向輸出B端口,并將阻值為120 Ω的終端匹配電阻并聯(lián)至A、B端口,同時,將兩個阻值為360 Ω的偏置電阻分別接入A、B端口線路中,保證電路在空閑狀態(tài)下,485總線維持在邏輯1狀態(tài),避免開始接收時出現(xiàn)亂碼等不可預測情況。接收器輸出使能RE端口與驅(qū)動器輸出使能DE端口連接至核心控制器同一通用IO口,通過邏輯電平0或1的變化即可實現(xiàn)接收與發(fā)送控制。將RO輸出與DI輸入端口連線至STM32的串口2,主控器即可按照Modbus協(xié)議輪詢訪問各個傳感器,各傳感器通過總線上地址信息判斷是否與自身匹配實現(xiàn)對總線信息的響應。電路設(shè)計如圖3所示。
2.3 數(shù)據(jù)采集儀電源電路
電源電路采用TI公司LM2596系列開關(guān)電源調(diào)節(jié)器,支持最大40 V寬電壓輸入,3 A負載電流輸出。VIN輸入端并入680 μF低ESR高速鋁電解電容,抑制輸入端電壓突變,布線時需使用短連接,盡量使電容靠近器件VIN管腳。Out輸出端通過逆向電壓保護二極管SS54,防止逆向電壓對電路造成損毀。其額定工作電流為5 A,1.7倍于負載電流,滿足設(shè)計需求。Out輸出端對33 μH電感持續(xù)充電,通過電感為各負載進行穩(wěn)定放電,保證負載供電穩(wěn)定性與可靠性。再經(jīng)過Feedback與Out端旁路電容濾波作用,即可得到5 V穩(wěn)態(tài)電壓。由于主控器STM32為3.3 V供電,所以選取AMS公司低壓差線性穩(wěn)壓LDO系列AMS117-3.3,通過濾波電容濾除尖峰和毛刺后就可獲得3.3 V平滑穩(wěn)定電壓。電路設(shè)計如圖4所示。
2.4 網(wǎng)關(guān)節(jié)點核心電路
數(shù)據(jù)采集儀獲取各傳感器數(shù)據(jù)后,通過網(wǎng)關(guān)節(jié)點將數(shù)據(jù)傳輸至OneNET云平臺。網(wǎng)關(guān)節(jié)點選取SIM7600CE,低功耗實現(xiàn)SMS和海量數(shù)據(jù)信息高速傳輸。SIM7600CE支持GSM、TD-SCDMA、CDMA、WCDMA、TDD-LTE和FDD-LTE等頻段。設(shè)計實現(xiàn)了外部4G主天線MAIN_ANT、4G輔天線AUX_ANT和GPS天線GNSS_ANT,在模塊和天線之間的走線必須保證50 Ω走線阻抗。模塊通過3.8 V VBAT接口為內(nèi)部射頻和基帶電路供電。為確保耗電流達到2 A時VBAT電壓跌落不低于3.4 V,在VBAT輸入端加入旁路0.1 μF陶瓷電容,以改善射頻性能及系統(tǒng)穩(wěn)定性,并通過NET指示燈顯示網(wǎng)絡(luò)連接狀態(tài)。為避免浪涌和過壓對模塊造成損壞,在VBAT引腳并聯(lián)了100 μF/6 V的電解電容以實現(xiàn)模塊保護。模塊自帶VDD_EXT LDO可調(diào)電壓輸出,最大支持150 mA電流,用于其他電路供電。VDD_1V8為內(nèi)部1.8 V穩(wěn)態(tài)電壓輸出,可為電平轉(zhuǎn)化電路供電。核心電路設(shè)計如圖5所示。
2.5 USIM卡接口電路設(shè)計
為實現(xiàn)USIM卡靜電防護,選取SRV05-4瞬態(tài)抑制TVS陣列,實現(xiàn)對IO、SCK、RST 3條I/O高速數(shù)據(jù)線和VCC的靜電防護處理。其內(nèi)部集成8只控向二極管,構(gòu)成兩個“橋”式整流電路,并通過共用一只“雪崩二極管”構(gòu)成ESD防護電路。該電路可將正ESD經(jīng)導向由雪崩二極管進行箝位,對負ESD由控向二極管箝位,具有良好的ESD防護特性。USIM卡接口靜電防護性能,直接影響網(wǎng)絡(luò)通信的穩(wěn)定性與可靠性,這也是農(nóng)田氣象信息監(jiān)測站設(shè)計時網(wǎng)關(guān)節(jié)點必須具備的特性。電路設(shè)計如圖6所示。
3 軟件設(shè)計
3.1 Modbus協(xié)議03H功能碼
主控板通過Modbus協(xié)議讀取各個傳感器數(shù)據(jù)時,使用功能碼03H,通過STM32串口2進行通信,通信波特率設(shè)置為9 600 b/s,無硬件流控。通過03H功能碼對從機訪問時,數(shù)據(jù)格式為:從機地址+功能碼+寄存器首地址+寄存器數(shù)量+校驗碼。發(fā)送03H指令,查詢1個或多個保持寄存器程序如下:
void MOD_Send03H(u8 addr, u16 reg, u16 num)
{Mod.TxCount = 0;
Mod.TxBuf[Mod.TxCount++] = addr;
Mod.TxBuf[Mod.TxCount++] = 0x03;
Mod.TxBuf[Mod.TxCount++] = reg >> 8;
Mod.TxBuf[Mod.TxCount++] = reg;
Mod.TxBuf[Mod.TxCount++] = num >> 8;
Mod.TxBuf[Mod.TxCount++] = num;
MOD_SendAckWithCRC();}
3.2 串口空閑中斷+DMA接收
針對微處理器串口接收方式的優(yōu)缺點,結(jié)合Modbus通信幀格式,本文提出采用串口空閑中斷+DMA接收方式實現(xiàn)串口數(shù)據(jù)接收。采用此方式時,處理器在接收到一個字節(jié)時,不會產(chǎn)生串口中斷,而是通過DMA在后臺把數(shù)據(jù)搬到指定的緩沖區(qū)里面,當接收空閑時隙超過一字節(jié)時間,默認一幀數(shù)據(jù)接收完成,才產(chǎn)生一次中斷,進而啟動串口狀態(tài)機,計算幀長度,進行相應解析處理。這也滿足Modbus RTU報文幀有著嚴格的幀間t3.5和幀內(nèi)t1.5空閑時隙間隔的要求。該方式也可實現(xiàn)不定長數(shù)據(jù)的接收,極大增加了串口接收程序的通用性以及處理器效率。
3.3 傳感器輪詢采集實現(xiàn)
通過不同的RTU串行總線地址,依次實現(xiàn)對各個傳感器的訪問。程序中利用定時器定時10 min,開啟數(shù)據(jù)采集操作,定時器中斷時間設(shè)置為0.5 s,每進中斷一次,進行一次“喂狗”操作。自定義采集函數(shù)中設(shè)置靜態(tài)變量I,默認取值為0時,發(fā)送采集指令;值為1時,解析串口接收到的傳感器數(shù)據(jù)。在開啟數(shù)據(jù)采集操作后,每次進入定時器中斷,就進行一次I取值判斷。靜態(tài)變量J用來記錄單個傳感器訪問出錯次數(shù),如果連續(xù)3次訪問出現(xiàn)錯誤,則認為傳感器故障,轉(zhuǎn)向下一個傳感器數(shù)據(jù)采集。靜態(tài)變量K表示當前采集的傳感器標號,如果對應傳感器數(shù)據(jù)采集成功,則主動訪問下一個標號傳感器。
3.4 網(wǎng)關(guān)節(jié)點數(shù)據(jù)上傳
網(wǎng)關(guān)節(jié)點SIM7600CE 4G通信模塊主要負責將感知層采集單元處理后的農(nóng)田環(huán)境信息發(fā)送到物聯(lián)網(wǎng)OneNET云平臺以及接收云平臺下發(fā)的控制指令。一般情況下,各種物聯(lián)網(wǎng)設(shè)備接入服務(wù)器采用HTTP協(xié)議實現(xiàn),在接收服務(wù)器下發(fā)的消息時,必須通過主動輪詢訪問服務(wù)器的方式,存在效率低和實時性較差等不足。采用EDP協(xié)議后,網(wǎng)關(guān)節(jié)點通過心跳幀與服務(wù)器建立雙向連接,實現(xiàn)及時的數(shù)據(jù)上傳以及接受平臺下發(fā)的指令。感知層單元與網(wǎng)絡(luò)層云平臺建立通信連接并完成數(shù)據(jù)上傳和云端存儲的流程如下:
(1)與OneNET服務(wù)器建立TCP連接:首先,串口發(fā)送“+++”使模塊退出透傳模式,接下來依次發(fā)送對應AT指令與服務(wù)器建立連接。
(2)發(fā)送設(shè)備連接請求:將設(shè)備編號ID和鑒權(quán)碼APIKey按照EDP請求格式打包為二進制數(shù)據(jù)包,向OneNET發(fā)送數(shù)據(jù),通過設(shè)備鑒權(quán)后才能對平臺中對應設(shè)備下的數(shù)據(jù)流上傳數(shù)據(jù)。
(3)發(fā)送用戶數(shù)據(jù):EDP協(xié)議封裝的數(shù)據(jù)包分為兩部分,一部分為設(shè)備連接請求,另一部分為設(shè)備所發(fā)送的數(shù)據(jù)。將采集到的數(shù)據(jù)按JSON格式放到對應數(shù)據(jù)流,并按照EDP協(xié)議進行封裝打包成相應的二進制數(shù)據(jù)包,再發(fā)送給至OneNET云平臺。
4 數(shù)據(jù)測試及分析
4.1 數(shù)據(jù)采集上傳
選取陜西乾縣羅家?guī)X雙矮蘋果園區(qū)進行設(shè)備實驗測試。設(shè)定10 min進行一次數(shù)據(jù)采集,并將數(shù)據(jù)傳輸至云平臺服務(wù)器對應的土壤溫度、土壤濕度、電導率等數(shù)據(jù)流,通過云平臺的解析,即可得如圖7所示的田間各環(huán)境信息的Web網(wǎng)頁端實時顯示。
4.2 數(shù)據(jù)校準測試
對設(shè)備進行為期一周的實驗數(shù)據(jù)記錄,記錄時刻為:每日5:00~21:00。以光照度傳感器數(shù)據(jù)為例,獲取如表1所示的30組從小到大排序的具有代表性的光照傳感器數(shù)據(jù)(單位:kLx)。
其中,標準值來源于AR823光照儀,對比發(fā)現(xiàn),隨著光照度不斷增強,測量值與標準值的誤差也逐漸增大。采用BP神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)進行校準,由于數(shù)據(jù)量較少,故設(shè)置訓練樣本與測試樣本相同。經(jīng)BP擬合后的曲線圖以及校準值與標準值的誤差曲線分別如圖8(a)、(b)所示。校正后的數(shù)據(jù)誤差穩(wěn)定在-1.5 kLx與1.5 kLx之間,遠小于擬合之前的誤差,擬合優(yōu)度達到0.979 6。
5 結(jié)論
本文針對高效精準農(nóng)業(yè)設(shè)計了農(nóng)田氣象信息監(jiān)測站,實時動態(tài)感知作物生長環(huán)境信息。監(jiān)測站信息采集電路采用Modbus通信協(xié)議與各傳感器進行信息交互,方便了后期系統(tǒng)集成拓展,實現(xiàn)了單一站點的多參數(shù)采集。采集后的數(shù)據(jù)通過4G網(wǎng)關(guān)傳輸至物聯(lián)網(wǎng)云平臺進行統(tǒng)計分析與決策。針對各傳感器采集數(shù)據(jù)存在的誤差,利用BP神經(jīng)網(wǎng)絡(luò)進行數(shù)據(jù)校正,提高了監(jiān)測數(shù)據(jù)的可靠性與精確性。該系統(tǒng)運行穩(wěn)定可靠,魯棒性強,滿足農(nóng)田環(huán)境監(jiān)測的需要,對于提高農(nóng)業(yè)精細管理與生產(chǎn)自動化具有一定的參考意義。
參考文獻
[1] 崔敏.農(nóng)業(yè)物聯(lián)網(wǎng)研究與應用現(xiàn)狀及發(fā)展對策[J].計算機與網(wǎng)絡(luò),2016,42(15):42-42.
[2] 李道亮,楊昊.農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)研究進展與發(fā)展趨勢分析[J].農(nóng)業(yè)機械學報,2018(1):1-20.
[3] 劉媛媛,朱路,黃德昌.基于GPRS與無線傳感器網(wǎng)絡(luò)的農(nóng)田環(huán)境監(jiān)測系統(tǒng)設(shè)計[J].農(nóng)機化研究,2013(7):229-232.
[4] 孫玉文.基于無線傳感器網(wǎng)絡(luò)的農(nóng)田環(huán)境監(jiān)測系統(tǒng)研究與實現(xiàn)[D].南京:南京農(nóng)業(yè)大學,2013.
[5] 王凡,楊亮.基于開源硬件與虛擬儀器的智能農(nóng)業(yè)監(jiān)測系統(tǒng)設(shè)計[J].電子技術(shù)應用,2015,41(4):73-76.
[6] 孫智權(quán),周煒彬,趙不賄.基于云存儲的農(nóng)業(yè)環(huán)境參數(shù)監(jiān)控系統(tǒng)設(shè)計[J].電子技術(shù)應用,2016,42(8):94-97.
[7] 陳曉棟,原向陽,郭平毅,等.農(nóng)業(yè)物聯(lián)網(wǎng)研究進展與前景展望[J].中國農(nóng)業(yè)科技導報,2015,17(2):8-16.
[8] GAO X,YUAN M B,RAO D,et al.Research on the application of the low-power sleeping algorithm for agricultural wireless sensor network[J].Journal of Shandong Agricultural University,2015,73(4):1137-1141.
[9] 王培丞.用于環(huán)境監(jiān)測的低功耗無線傳感器網(wǎng)絡(luò)最優(yōu)化設(shè)計[D].成都:電子科技大學,2016.
[10] 顧海勤,楊奕,全毅,等.基于MODBUS協(xié)議的智能儀表與PC機雙向通訊設(shè)計[J].儀表技術(shù)與傳感器,2013(12):33-35.
作者信息:
趙小強1,2,陳玉兵1,2,高 強1,權(quán) 恒1,韓亞洲1
(1.西安郵電大學 通信與信息工程學院,陜西 西安710121;2.陜西省信息通信網(wǎng)絡(luò)及安全重點實驗室,陜西 西安710121)