黃 靜, 牛 鴿
(浙江理工大學 信息學院,浙江 杭州 310018)
?
基于心跳機制的農(nóng)業(yè)物聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng)設(shè)計*
黃靜, 牛鴿
(浙江理工大學 信息學院,浙江 杭州 310018)
針對農(nóng)業(yè)物聯(lián)網(wǎng)因地域范圍廣、環(huán)境因素相對變化大,系統(tǒng)易出現(xiàn)網(wǎng)絡(luò)通信故障問題,采用Push模式結(jié)合心跳加速協(xié)議的心跳檢測方法,用以判斷網(wǎng)絡(luò)的連接狀況,減少系統(tǒng)的誤判率;在網(wǎng)絡(luò)異常時,通過連續(xù)請求,實現(xiàn)重連或提示管理者采取相應(yīng)的措施。測試結(jié)果表明:該方法提高了遠程數(shù)據(jù)采集系統(tǒng)網(wǎng)絡(luò)服務(wù)質(zhì)量與通信的可靠性和可用性。
心跳機制; Push模式; ZigBee
農(nóng)業(yè)環(huán)境信息復(fù)雜多樣,分布范圍廣,對農(nóng)業(yè)環(huán)境信息的快速采集和處理是實現(xiàn)智能化重要基礎(chǔ)和前提條件。實際應(yīng)用中,如網(wǎng)絡(luò)中斷、網(wǎng)線斷開、設(shè)備硬件故障等原因可能導(dǎo)致通信模塊故障,造成局域網(wǎng)的實時性和可靠性降低。嚴重影響了遠程數(shù)據(jù)采集的穩(wěn)定性。建立一個實用、可靠、可長期監(jiān)測的農(nóng)業(yè)環(huán)境監(jiān)測系統(tǒng)是必要的。
鄢鋒[1]在遠程監(jiān)控系統(tǒng)中采用心跳環(huán)機制判斷網(wǎng)絡(luò)節(jié)點通信狀態(tài),但當網(wǎng)絡(luò)異常斷開時,無法及時檢測到網(wǎng)絡(luò)斷開的情況。Chen W[2]針對改進的推式(Push)的故障檢測進行了研究,但是在Push方式下被測節(jié)點周期性主動發(fā)送心跳信息,自適應(yīng)能力差,無法調(diào)節(jié)心跳檢測周期,降低了網(wǎng)絡(luò)的性能和效率。
本文在上述研究基礎(chǔ)上,采用Push模式結(jié)合心跳加速協(xié)議的心跳檢測方法,在客戶端與服務(wù)器之間采用不同的心跳檢測機制,用以網(wǎng)絡(luò)通信狀態(tài)檢測和判斷;在網(wǎng)絡(luò)發(fā)生異常時,通過連續(xù)請求連接實現(xiàn)重連或提示管理者采取相應(yīng)的措施,保證網(wǎng)絡(luò)設(shè)備和應(yīng)用程序的正常運行和服務(wù)不中斷。
系統(tǒng)由數(shù)據(jù)采集層、傳輸層和遠程監(jiān)控中心3部分組成。數(shù)據(jù)采集層采用ZigBee無線傳感器網(wǎng)絡(luò)節(jié)點作為農(nóng)田環(huán)境感知終端,完成目標檢測區(qū)域環(huán)境采集的工作;并將采集到的數(shù)據(jù)上傳到嵌入式網(wǎng)關(guān)節(jié)點。嵌入式網(wǎng)關(guān)節(jié)點監(jiān)聽遠程客戶端的訪問請求,根據(jù)需要對遠程控制模塊發(fā)出命令,實現(xiàn)對設(shè)備的控制。遠程控制中心通過網(wǎng)絡(luò)訪問、存儲、分析、展示目標檢測區(qū)域中的數(shù)據(jù)。系統(tǒng)總體結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)設(shè)計
ZigBee是一種低功耗、低速率、延時短的雙向無線通信技術(shù),適合應(yīng)用在不易長距離現(xiàn)場布線、數(shù)據(jù)采集覆蓋面積廣的農(nóng)業(yè)環(huán)境監(jiān)測系統(tǒng)中。ZigBee網(wǎng)絡(luò)通常分為路由節(jié)點、協(xié)調(diào)節(jié)點、終端節(jié)點3個部分。終端節(jié)點通過搭載各類傳感器周期性地采集農(nóng)作物參數(shù)信息;路由節(jié)點起到路由的作用,對采集的數(shù)據(jù)轉(zhuǎn)發(fā)。
傳感器終端節(jié)點是進行數(shù)據(jù)采集的基礎(chǔ)和前提,它的準確性和可靠性對整個檢測系統(tǒng)的性能有重要影響。溫濕度傳感器采用由瑞士Sensirion公司推出的多功能式智能傳感器SHT15,將溫濕度傳感器、A/D轉(zhuǎn)換器、信號放大器、I2C總線接口全部集成到一個芯片內(nèi),具有體積小、響應(yīng)速度快、抗干擾能力強的特點,采集完成后關(guān)閉傳感器電源進一步降低功耗,能滿足對農(nóng)田溫濕度采集的需要[3]。采用ZigBee技術(shù)和SHT15傳感器的結(jié)合完成環(huán)境溫濕度的采集,如圖2所示。

圖2 ZigBee與SHT15連接圖
ZigBee終端節(jié)點還可以搭載其他傳感器(溫度、濕度、光照、CO2)和繼電器等組成無線傳感網(wǎng)絡(luò),通過具有自適應(yīng)切換功能的網(wǎng)關(guān)將ZigBee網(wǎng)絡(luò)接入傳輸網(wǎng)絡(luò),將數(shù)據(jù)傳給服務(wù)器。
心跳檢測是周期性、循環(huán)地發(fā)送心跳信息,用于判斷網(wǎng)絡(luò)節(jié)點連接是否正常。基于TCP/IP協(xié)議的網(wǎng)絡(luò)通信,網(wǎng)絡(luò)出現(xiàn)故障時,往往不能及時有效發(fā)現(xiàn)客戶端與服務(wù)器是否連接正常[4,5]。采用心跳檢測機制,當網(wǎng)絡(luò)異常時,能夠及時通知管理者采取相應(yīng)的措施,保證應(yīng)用程序與網(wǎng)絡(luò)設(shè)備的正常運行和服務(wù)的不中斷的要求。
2.1心檢檢測模式
心跳檢測通常分為Push和Pull兩種模式[6,7],Push模式是被檢測節(jié)點向檢測節(jié)點周期性地發(fā)送Push心跳信息,如果在指定的時間內(nèi)檢測節(jié)點沒有收到心跳信息,則認為被檢測節(jié)點發(fā)生故障,如圖3所示。

圖3 Push模式圖
Pull模式則是由檢測節(jié)點主動向被檢測節(jié)點周期性地發(fā)送心跳查詢信息,若在指定的時間內(nèi)沒有收到被檢測節(jié)點的響應(yīng),則認為被測節(jié)點發(fā)生故障,如圖4所示。

圖4 Pull模式
假設(shè)兩種檢測方式單向通信開銷均相同[8,9],即通信數(shù)據(jù)包占總線通信時間相同,定義為T。當采用Pull模式時,每檢測一次,需要發(fā)送與反饋兩個環(huán)節(jié),通信開銷較大為Fpull=2T,采用Push模式,每檢測一次,只需單向發(fā)送心跳包,通信開銷為Fpush=T。
兩種心跳模式都是按照心跳機制周期性地發(fā)送心跳數(shù)據(jù)包,并通過在指定的時間內(nèi)是否收到響應(yīng)判斷網(wǎng)絡(luò)狀態(tài)。準確性與快速性是故障檢測的兩個關(guān)鍵因素。檢測時間過大,不容易快速檢測出故障,過小則容易產(chǎn)生誤判。
2.2心跳機制的優(yōu)化
在單服務(wù)器多客戶端的系統(tǒng)中,服務(wù)器的持續(xù)可靠運行是保證整個系統(tǒng)運行的關(guān)鍵,為滿足系統(tǒng)的要求,提高判別的準確率,減少系統(tǒng)的開銷,綜合考慮影響心跳檢測性能的因素,通過在兩端設(shè)置不同的心跳模式,以便在網(wǎng)絡(luò)異常時能夠及時提醒用戶。
首先客戶端與服務(wù)器通過Socktet建立連接并啟動心跳包機制,在客戶端設(shè)置Push心跳周期假設(shè)為T1,服務(wù)器端心跳周期為T2,且T2>T1。
1)客戶端每隔一段T1時間向服務(wù)器發(fā)送Push信息,如果在T2時間內(nèi),服務(wù)器收到客戶端的Push心跳信息,則認為網(wǎng)絡(luò)連接正常并進入下一個檢測周期T2;否則,轉(zhuǎn)入步驟(2)。
2)若在T2時間內(nèi),沒有收到某個客戶端的心跳信息,則把服務(wù)器當前周期減半為T2/2。對此客戶端發(fā)送Pull心跳信息,若在T2時間內(nèi),服務(wù)器收到此客戶端的Push心跳信息或Pull響應(yīng)信息,則認為網(wǎng)絡(luò)連接正常,并將服務(wù)器心跳檢測周期T2恢復(fù)到初始值,并轉(zhuǎn)為步驟一;否則,繼續(xù)執(zhí)行步驟(2),一直到心跳周期小于客戶端與服務(wù)器之間的環(huán)回時間T2 分析協(xié)議可知,服務(wù)器節(jié)點判定客戶端異常的檢測延遲最大為 (1) 采用天嵌公司出品的的TQ210開發(fā)板作為服務(wù)器,主要包括兩個線程,心跳檢測線程和普通消息處理線程,主線程將請求連接的客戶端套接字與連接時間加入數(shù)組中,并在一個循環(huán)中接收客戶端的消息請求;而心跳檢測過程包括心跳消息發(fā)送和檢測兩個部分;利用Myeclipse平臺開發(fā)遠程客戶機,模擬不同網(wǎng)絡(luò)條件(網(wǎng)絡(luò)擁塞、網(wǎng)絡(luò)中斷)在只有Push,Pull,Push與心跳加速協(xié)議情況下進行心跳模型的功能測試。 客戶端采用Push模式在間隔T1=20s的時間內(nèi)往服務(wù)器發(fā)送心跳信息,測試結(jié)果如圖5所示。 圖5 Push心跳檢測 服務(wù)器采用Pull模式在間隔T2=30 s的時間內(nèi)往客戶端發(fā)送心跳檢測信息,測試結(jié)果如圖6所示。 圖6 Pull心跳檢測 客戶端采用Push模式每隔T1=20 s的時間內(nèi)往服務(wù)器發(fā)送心跳信息,服務(wù)器每隔T2=30 s的時間檢測是否收到客戶端的心跳信息,測試結(jié)果如圖7所示。 圖7 Push與心跳加速協(xié)議 經(jīng)模擬測試如表1可知,在網(wǎng)絡(luò)連接正常情況下,服務(wù)器與客戶端能夠正常保持通信;當網(wǎng)絡(luò)擁塞時,在Push與Pull模式下,易產(chǎn)生誤判。Push與心跳加速協(xié)議下,當服務(wù)器檢測不到Push心跳信息時,以當前周期的二分之一間隔向客戶端發(fā)送心跳檢測,提高了判斷的準確性。網(wǎng)絡(luò)中斷時,在Push與Pull模式下客戶端不能及時發(fā)現(xiàn)斷網(wǎng)狀態(tài),Push與加速心跳協(xié)議模式下,能夠釋放客戶端資源,及提醒管理者采取相應(yīng)的措施。綜上分析,采用Push與心跳加速協(xié)議心跳檢測機制比只使用Push,Pull模式提高了判斷的準確性;提高了系統(tǒng)網(wǎng)絡(luò)服務(wù)與通信的可靠性和可用性。 在恒定溫度29 ℃的空調(diào)房間內(nèi)每隔5s采集的溫室度 表1 心跳模式的比較 數(shù)據(jù)如表2所示。系統(tǒng)能實時、連續(xù)采集環(huán)境參數(shù),為獲取農(nóng)業(yè)環(huán)境信息,提供了靈活有效的監(jiān)控手段。 表2 遠程監(jiān)測數(shù)據(jù)表 本文針對農(nóng)業(yè)物聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng)易出現(xiàn)的網(wǎng)絡(luò)通信故障問題,設(shè)計了一種基于心跳機制的數(shù)據(jù)采集系統(tǒng);在分析心跳模式的基礎(chǔ)上,提出了一種在客戶端與服務(wù)器之間采用Push結(jié)合加速心跳協(xié)議的檢測方法;測試結(jié)果表明:該方法減少了系統(tǒng)的開銷,提高了檢測的準確性,保證了遠程數(shù)據(jù)采集系統(tǒng)網(wǎng)絡(luò)服務(wù)質(zhì)量與通信的可靠性和可用性。 [1]鄢鋒,桂衛(wèi)華,胡志坤,等.基于Socket的整流裝置遠程監(jiān)控系統(tǒng)[J].計算機工程,2008(5):243-245. [2]Chen W,Sam T,Marcos K A.On the quality of service of failure detectors[J].IEEE Transactions on Computers,2002,51(1):13-32. [3]衣翠平,柏逢明.基于ZigBee技術(shù)的CC2530糧庫溫濕度檢測系統(tǒng)研究[J].長春理工大學學報:自然科學版,2011(4):53-57. [4]周磊.容災(zāi)系統(tǒng)控制平臺與心跳檢測技術(shù)的研究與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學,2006. [5]張丹.基于自適應(yīng)心跳協(xié)議的工業(yè)無線網(wǎng)絡(luò)簇首冗余機制研究[D].重慶:西南大學,2010. [6]王明,張春熹,伊小素.基于自適應(yīng)心跳算法的分布式系統(tǒng)故障檢測器[J].北京航空航天大學學報,2013(7):952-956. [7]張水平,李有峰,童樣,等.云數(shù)據(jù)中心心跳檢測與故障評估[J].計算機工程與設(shè)計,2014(10):3386-3391. [8]謝長生,胡慶平,譚志虎.Heartbeat-Gear:一種新型的實時心跳監(jiān)測技術(shù)[J].計算機工程與科學,2004(5):62-65. [9]鄒見效,張正遷,徐紅兵.三重化冗余多機系統(tǒng)心跳檢測機制研究[J].電子科技大學學報,2010(3):379-383. Design of agricultural IoT data acquisition system based on heartbeat mechanism* HUANG Jing, NIU Ge (College of Information,Zhejiang Sci-Tech University,Hangzhou 310018,China) Aiming at problem of network communication failure appeared in system because of wide geographical range and big relative change of environmental factors,use heartbeat detecting method adopting push mode combined with rapid heartbeat protocol to judge network connection status,and decrease misdiagnosis rate of system;when network is abnormal,through continuous request realize reconnection or prompt managers to take corresponding measures.Test result show that the method improves network service quality and communication reliability and availability of remote data acquisition system. heartbeat mechanism; Push model; ZigBee 10.13873/J.1000—9787(2016)09—0095—03 2015—11—27 浙江省自然科學基金資助項目(LY12F03012) TP 302.1 A 1000—9787(2016)09—0095—03 黃靜(1965-),女,浙江杭州人,博士,教授,主要研究方向為物聯(lián)網(wǎng)技術(shù)及智能控制。
3 系統(tǒng)測試





4 結(jié) 論