文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.181735
中文引用格式: 趙小強,陳玉兵,,高強,,等. 基于Modbus協(xié)議的農(nóng)田氣象信息監(jiān)測站設(shè)計[J].電子技術(shù)應(yīng)用,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ā)展,如何科學(xué)有效地提高農(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é)點實際應(yīng)用場景通常采用人為預(yù)設(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端的響應(yīng)請求,,實現(xiàn)雙向數(shù)據(jù)交互[10]。通過設(shè)置不同的從站傳感器地址,,達到主站輪詢訪問土壤溫度,、土壤水分、土壤電導(dǎo)率,、空氣溫度,、空氣濕度、田間風(fēng)速,、田間風(fēng)向,、光照強度、輻射總量傳感器節(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按鍵復(fù)位電路,、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)亂碼等不可預(yù)測情況,。接收器輸出使能RE端口與驅(qū)動器輸出使能DE端口連接至核心控制器同一通用IO口,通過邏輯電平0或1的變化即可實現(xiàn)接收與發(fā)送控制,。將RO輸出與DI輸入端口連線至STM32的串口2,,主控器即可按照Modbus協(xié)議輪詢訪問各個傳感器,各傳感器通過總線上地址信息判斷是否與自身匹配實現(xiàn)對總線信息的響應(yīng),。電路設(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)導(dǎo)向由雪崩二極管進行箝位,,對負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)機,計算幀長度,,進行相應(yīng)解析處理,。這也滿足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表示當前采集的傳感器標號,如果對應(yīng)傳感器數(shù)據(jù)采集成功,,則主動訪問下一個標號傳感器,。
3.4 網(wǎng)關(guān)節(jié)點數(shù)據(jù)上傳
網(wǎng)關(guān)節(jié)點SIM7600CE 4G通信模塊主要負責(zé)將感知層采集單元處理后的農(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ā)送對應(yīng)AT指令與服務(wù)器建立連接,。
(2)發(fā)送設(shè)備連接請求:將設(shè)備編號ID和鑒權(quán)碼APIKey按照EDP請求格式打包為二進制數(shù)據(jù)包,向OneNET發(fā)送數(shù)據(jù),,通過設(shè)備鑒權(quán)后才能對平臺中對應(yīng)設(shè)備下的數(shù)據(jù)流上傳數(shù)據(jù),。
(3)發(fā)送用戶數(shù)據(jù):EDP協(xié)議封裝的數(shù)據(jù)包分為兩部分,一部分為設(shè)備連接請求,,另一部分為設(shè)備所發(fā)送的數(shù)據(jù),。將采集到的數(shù)據(jù)按JSON格式放到對應(yīng)數(shù)據(jù)流,并按照EDP協(xié)議進行封裝打包成相應(yīng)的二進制數(shù)據(jù)包,,再發(fā)送給至OneNET云平臺,。
4 數(shù)據(jù)測試及分析
4.1 數(shù)據(jù)采集上傳
選取陜西乾縣羅家?guī)X雙矮蘋果園區(qū)進行設(shè)備實驗測試。設(shè)定10 min進行一次數(shù)據(jù)采集,,并將數(shù)據(jù)傳輸至云平臺服務(wù)器對應(yīng)的土壤溫度,、土壤濕度、電導(dǎo)率等數(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è)置訓(xùn)練樣本與測試樣本相同。經(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)研究與應(yī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è)機械學(xué)報,,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è)大學(xué),,2013.
[5] 王凡,楊亮.基于開源硬件與虛擬儀器的智能農(nóng)業(yè)監(jiān)測系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2015,,41(4):73-76.
[6] 孫智權(quán),,周煒彬,趙不賄.基于云存儲的農(nóng)業(yè)環(huán)境參數(shù)監(jiān)控系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,,2016,,42(8):94-97.
[7] 陳曉棟,原向陽,,郭平毅,,等.農(nóng)業(yè)物聯(lián)網(wǎng)研究進展與前景展望[J].中國農(nóng)業(yè)科技導(dǎo)報,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].成都:電子科技大學(xué),,2016.
[10] 顧海勤,,楊奕,全毅,,等.基于MODBUS協(xié)議的智能儀表與PC機雙向通訊設(shè)計[J].儀表技術(shù)與傳感器,,2013(12):33-35.
作者信息:
趙小強1,2,,陳玉兵1,,2,高 強1,,權(quán) 恒1,,韓亞洲1
(1.西安郵電大學(xué) 通信與信息工程學(xué)院,陜西 西安710121,;2.陜西省信息通信網(wǎng)絡(luò)及安全重點實驗室,,陜西 西安710121)