溫室環(huán)境監(jiān)控系統(tǒng)網(wǎng)關(guān)多進程調(diào)度方法.pdf
溫室環(huán)境監(jiān)控系統(tǒng)網(wǎng)關(guān)多進程調(diào)度方法 侯 琛1,2,王海波2,劉鳳之2,史祥賓2,趙千川1( 1 清華大學自動化系,北京, 100084; 2中國農(nóng)業(yè)科學院果樹研究所,興城, 125100; ) 摘 要:作為應(yīng)用層與感知層的橋梁,網(wǎng)關(guān)通常具有多個進程。各個進程間的調(diào)度是否合理直接影響到網(wǎng)關(guān)甚至溫室環(huán)境監(jiān)控系統(tǒng)的性能。本文針對網(wǎng)關(guān)的多進程調(diào)度問題,研究并設(shè)計了一種網(wǎng)關(guān)的多進程調(diào)度算法( multiple thread schedule algorithm, MTSA)。該算法先通過網(wǎng)關(guān)向服務(wù)器推送數(shù)據(jù)的時間間隔、進程數(shù)目、最大功率與有效功率的關(guān)系來確定每個進程被掛起的時間片,然后通過合理地控制每一個進程的執(zhí)行順序及執(zhí)行時間片來有效地降低數(shù)據(jù)阻塞度。在實驗中,本文方法的數(shù)據(jù)丟失率為 5.2%, 而啟發(fā)式方法的數(shù)據(jù)丟失率為 56%,表明 本文方法優(yōu)于啟發(fā)式方法。 關(guān)鍵字:溫室環(huán)境;監(jiān)控系統(tǒng);網(wǎng)關(guān);多進程;調(diào)度 中圖分類號: TP274.2 文獻標識碼: A Schedule algorithm of multiple threads of gateway of environmental monitoring system in the greenhouse HOU Chen1,2,WANG Haibo2,LIU Fengzhi2,SHI Xiangbin2,ZHAO Qianchuan1*( 1 Department of Automation, Tsinghua University, 100084,Beijing,China; 2Fruit Research Institute, Chinese Academy of Agricultural Sciences, 125100, Xingcheng,China; ) Abstract: As Internet of Things (IoT) has stepped out of the infancy and is gaining more and more popularity around the world, the gateway of environmental monitoring system has also always been attracting peoples eyes. With the capability to bridge application layer with sensing layer, gateway usually possesses multiple threads. Reasonably scheduling these threads matters most to the performance of gateway even the environmental monitoring system. Targeting at reasonable schedule, this paper researches and develops a kind of multiple threads schedule algorithm (MTSA) to weaken data jam by suitable duration of pending each thread and reasonable control for the execution sequence of thread. This duration is subject to the interval between two operations of pushing data from gateway to Web Server, the number of threads, and the relationship between maximal and effective power consumption. In order to overcome the difficulty in deciding the duration of pending each thread just by experience, this paper first displays the multiple threads integrated into the gateway of the environmental monitoring system, and then presents the specific steps of MTSA. In addition, this papershows us how to determine the duration of pending each thread in MTSA by taking the relationship between the maximal and effective power consumption into consideration, and also analyzes the impact of MTSA on weakening data jam. With the purpose of demonstrating the performance of MTSA, a field experiment in the grape greenhouse was carried out.In this experiment, the comparison between MTSA and a popular algorithm Heuristic Method (HM) was done in terms of decreasing the data loss to check the higher efficiency of MTSA than HM in guaranteeing that Web is capable of receiving the environment data, including temperature, relative humidity and illumine.As for the experiment results, data loss by NTSA is only 5.2%, much more less than that 56% by HM, which verifies the use of MSTA. Key words: Environment in the greenhouse; monitoring system; gateway; multiple threads; schedule. 收稿日期:2016-08-31修回日期:2016-09-29 基金項目:中國農(nóng)業(yè)科學院創(chuàng)新工程 (CAAS-ASTIP-2015-RIP-04)、 國家自然科學基金項目 (61425027 和 61425024)、 國家重點研發(fā)計劃項目 (2016YFB0901901)和 信息物理融合系統(tǒng)創(chuàng)新聯(lián)合研究中心項目 作者簡介:侯?。?1989-),男,博士生,主要從事資源約束條件下的物聯(lián)網(wǎng)運行控制研究, E-mail: houc15mails.tsinghua.edu.cn 通信作者:趙千川( 1969-),男,教授,博士生導師,主要從事復雜網(wǎng)絡(luò)研究 , E-mail: zhaoqctsinghua.edu.cn 網(wǎng)絡(luò)出版時間:2017-02-26 09:16:46網(wǎng)絡(luò)出版地址:http:/kns.cnki.net/kcms/detail/11.1964.s.20170226.0916.004.html引言 農(nóng)業(yè)物聯(lián)網(wǎng)致力于農(nóng)業(yè)的智能化與信息化,以軟件和信息為中心,通過農(nóng)業(yè)現(xiàn)場的大量傳感器節(jié)點、自動化設(shè)備、網(wǎng)絡(luò)設(shè)備和遠程監(jiān)控設(shè)備改變了農(nóng)業(yè)生產(chǎn)方式,提高了土地利用率,降低了農(nóng)業(yè)污染,解放了農(nóng)業(yè)生產(chǎn)力1-5。 在物聯(lián)網(wǎng)的推動下,人類已經(jīng)在溫室環(huán)境監(jiān)控領(lǐng)域取得了一系列先進的成果。例如,張猛等6研究并實現(xiàn)了一種基于 Zigbee 與 Internet 的溫室群環(huán)境遠程監(jiān)控系統(tǒng)。王浩云等7在有限狀態(tài)機和事件晶格的基礎(chǔ)上搭建了時空溫室環(huán)境監(jiān)控系統(tǒng)。楊瑋等8研究并實現(xiàn)了以Zigbee 為無線通信模塊的溫室智能終端。 PARK 等9提出了一種基于無線傳感網(wǎng)絡(luò)的溫室環(huán)境監(jiān)控系統(tǒng)。HWANG 等10提出了一種溫室環(huán)境監(jiān)控服務(wù)器系統(tǒng)。 溫室環(huán)境監(jiān)控系統(tǒng)涉及多個處理器:嵌入式微處理器、嵌入式微控制器、嵌入式數(shù)字信號處理器、嵌入式片上處理器和通用計算機處理器11。不同處理器可能處于不同的狀態(tài), 例如休眠狀態(tài)、 工作狀態(tài)和認證狀態(tài)12。一個處理器代表著一個進程,各處理器間的高效通信依附于網(wǎng)關(guān)13。為了滿足這種高效通信,一個網(wǎng)關(guān)往往具備并需要調(diào)度多個進程,以降低數(shù)據(jù)阻塞。 針對網(wǎng)關(guān)的多進程調(diào)度問題, CHEN 等14提出了一種基于動態(tài)中央處理單元的頻率水準測量法來減少多處理器中的數(shù)據(jù)阻塞。姚偉等15在上位機檢測軟件與下位機可編程邏輯控制器合理交互的基礎(chǔ)上搭建了溫室大棚智能環(huán)境檢測與調(diào)節(jié)系統(tǒng)。 GIL 等16提出了一種多線程標色方案用于管理處理器的資源信息。LOOMANS17提出了一系列多線程管理技術(shù)以降低異步環(huán)境下的不同線程間的沖突。 RODGERS 等18提出了一種多線程身份標注方法用于檢測多線程的變動情況。JIANG 等19提出了一種多進程間的通信方法。OTTONI20采用軟件解耦流水線法完成了多線程的提取。 但已有工作所采用的多進程調(diào)度方法的進程掛起時間片大多根據(jù)經(jīng)驗設(shè)置。進程掛起時間片的確定沒有考慮系統(tǒng)的具體工作情況。本文研究并設(shè)計一種網(wǎng)關(guān)的多進程調(diào)度算法( multiple thread schedule algorithm, MTSA)。 該算法先通過網(wǎng)關(guān)向服務(wù)器推送數(shù)據(jù)的時間間隔、最大功率與有效功率的關(guān)系來確定每個進程被掛起的時間,然后通過合理地控制每一個進程的執(zhí)行順序及執(zhí)行時間片來有效地降低數(shù)據(jù)阻塞度。 1 網(wǎng)關(guān)載體溫室環(huán)境監(jiān)控系統(tǒng)的架構(gòu) 網(wǎng)關(guān)是溫室環(huán)境監(jiān)控系統(tǒng)的重要組成部分。本文的溫室環(huán)境監(jiān)控系統(tǒng)先采集溫室內(nèi)的溫度、濕度和光照,然后將其上傳至 Web 服務(wù)器。 系統(tǒng)的硬件架構(gòu)如圖 1(a)所示10,數(shù)據(jù)流如圖 1(b)所示。網(wǎng)關(guān)具備 6 個進程,是應(yīng)用層與感知層間的橋梁。圖 2 列出了網(wǎng)關(guān)的 6 個進程(服務(wù)器含有卷膜/簾機的控制命令) 。 環(huán)境傳感器模塊網(wǎng)關(guān)互聯(lián)網(wǎng)Web Service服務(wù)器 數(shù)據(jù)庫 Web Service服務(wù)器網(wǎng)關(guān)傳感器 執(zhí)行器(a) 系統(tǒng)的硬件架構(gòu)(b) 系統(tǒng)的數(shù)據(jù)流卷膜/簾機總線圖 1 系統(tǒng)硬件架構(gòu)與數(shù)據(jù)流 Fig 1 Hardware structure and data stream of this system 給傳感器發(fā)送讀取數(shù)據(jù)請求的進程給底層卷膜/簾機發(fā)送讀取狀態(tài)請求并獲取該狀態(tài)的進程從底層傳感器獲取環(huán)境參數(shù)采樣的進程向服務(wù)器推送數(shù)據(jù)的進程網(wǎng)關(guān)中的進程從服務(wù)器獲取控制命令的進程給卷膜/簾機發(fā)送控制命令的進程圖 2網(wǎng)關(guān)中的進程 Fig 2 Multiple threads in the gateway 2 網(wǎng)關(guān)多進程調(diào)度算法 MTSA 2.1MTSA 算法的具體步驟 在一個周期內(nèi)(雖然干擾與延遲的存在使得此處的周期并不固定,但是根據(jù)大數(shù)定律,可以認為此處的周期服從正態(tài)分布) ,網(wǎng)關(guān)按照如下步驟調(diào)度各個進程: 步驟 1 :網(wǎng)關(guān)開啟“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的進程,將讀取數(shù)據(jù)的請求發(fā)送至底層傳感器(讀取數(shù)據(jù)的請求幀攜帶有對象傳感器的標識信息) 。 步驟 2 :根據(jù)是否成功接收到傳感器的確認信息判斷接下來的動作。 步驟 2.1 :當網(wǎng)關(guān)確認 步驟 1 的請求發(fā)送完畢且傳感器成功收到該請求后(傳感器成功收到該請求后會向網(wǎng)關(guān)發(fā)送確認信息幀) ,掛起“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的進程 2s,并開啟“從底層傳感器獲取環(huán)境參數(shù)采樣”的進程。 步驟2.2 : 如果網(wǎng)關(guān)沒有接收到傳感器的確認信息,那么循環(huán)執(zhí)行“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的操作。網(wǎng)關(guān)如果在 10s內(nèi)仍然沒有收到該傳感器的確認信息,那么認為該傳感器已經(jīng)卸載或發(fā)生了故障,并記錄下該傳感器的標識信息,隨后掛起“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的進程 2s。 步驟 3 :如果 步驟 2.1 執(zhí)行順利,即網(wǎng)關(guān)能夠收到傳感器的確認信息,那么網(wǎng)關(guān)接收并暫時存儲該傳感器的采樣,然后掛起“從底層傳感器獲取環(huán)境參數(shù)采樣”的進程 2s;如果 步驟2.2 執(zhí)行順利,即網(wǎng)關(guān)發(fā)現(xiàn)了卸載或故障的傳感器,那么在下一個周期中,網(wǎng)關(guān)停止讀取該傳感器的數(shù)據(jù)。 步驟4 : 網(wǎng)關(guān)開啟“給底層卷膜/簾機發(fā)送讀取狀態(tài)請求并獲取該狀態(tài)”的進程,將讀取卷膜/簾機狀態(tài)的請求發(fā)送至底層卷膜/簾機模塊(讀取狀態(tài)的請求幀攜帶有對象卷膜/簾機的標識信息) 。 步驟5 : 根據(jù)是否成功接收到卷膜/簾機模塊的確認信息判斷接下來的動作。 步驟 5.1 :當網(wǎng)關(guān)確認 步驟 4 的請求發(fā)送完畢且接收到卷膜/簾機的狀態(tài)后,掛起“給底層卷膜/簾機發(fā)送讀取狀態(tài)請求并獲取該狀態(tài)”的進程 2 s。 步驟5.2 :如果網(wǎng)關(guān)沒有接收到卷膜/簾機的狀態(tài),那么循環(huán)執(zhí)行“給底層卷膜/簾機發(fā)送讀取狀態(tài)請求并獲取該狀態(tài)”的操作。網(wǎng)關(guān)如果在 10s 內(nèi)仍然沒有收到該卷膜/簾機的狀態(tài),那么認為該卷膜/簾機已經(jīng)卸載或發(fā)生了故障,并記錄下該卷膜/簾機的標識信息,隨后掛起“給底層卷膜/簾機發(fā)送讀取狀態(tài)并獲取該狀態(tài)”的進程 2 s。 步驟 6 :如果 步驟 5.1 執(zhí)行順利,即網(wǎng)關(guān)能夠收到卷膜/簾機的狀態(tài),那么網(wǎng)關(guān)暫時存儲該卷膜/簾機的狀態(tài);如果 步驟 5.2 執(zhí)行順利,即網(wǎng)關(guān)發(fā)現(xiàn)了卸載或故障的卷膜/簾機,那么在下一個周期中,網(wǎng)關(guān)停止讀取該卷膜/簾機的狀態(tài)。 步驟7 : 判斷本周期的卷膜/簾機的狀態(tài)是否與上一個周期的相同,如果相同,那么接下來的 步驟8 無需將卷膜/簾機狀態(tài)推送至 Web 服務(wù)器,否則需要推送(卷膜/簾機狀態(tài)的變化頻率遠低于環(huán)境參數(shù)的變化頻率,當卷膜/簾機狀態(tài)與上一個周期的狀態(tài)不相同時,網(wǎng)關(guān)才會將該狀態(tài)推送至服務(wù)器,否則,無需推送,同時,服務(wù)器將卷膜/簾機在此周期的狀態(tài)取為上一個周期內(nèi)的狀態(tài)) 。 步驟 8:網(wǎng)關(guān)開啟“向服務(wù)器推送數(shù)據(jù)”的進程, 將獲取到的與傳感器有關(guān)的信息(如果數(shù)據(jù)讀取正常,那么該信息就是網(wǎng)關(guān)自身的標識信息和傳感器的環(huán)境參數(shù)采樣;如果不正常,那么該信息就是網(wǎng)關(guān)自身的標識信息和卸載或故障傳感器的標識信息)以及與卷膜/簾機有關(guān)的信息(如果狀態(tài)讀取正常且在相鄰兩個周期內(nèi)讀取到的狀態(tài)不相同,那么該信息就是網(wǎng)關(guān)自身的標識信息和卷膜/簾機的實際狀態(tài);如果不正常,那么該信息就是網(wǎng)關(guān)自身的標識信息和卸載或故障卷膜/簾機的標識信息)推送至 Web 服務(wù)器。 步驟9 : 根據(jù)是否成功推送數(shù)據(jù)判斷接下來的動作。 步驟 9.1 :當網(wǎng)關(guān)確認 步驟 8 的信息推送完畢且收到了來自 Web 服務(wù)器的確認信息后, 就掛起“向服務(wù)器推送數(shù)據(jù)”的進程 2 s, 隨后開啟“從服務(wù)器獲取控制命令”的進程。 步驟9.2 :如果網(wǎng)關(guān)沒有接收到 Web 服務(wù)器的確認信息,那么循環(huán)執(zhí)行“向服務(wù)器推送數(shù)據(jù)”的操作。網(wǎng)關(guān)如果在 10s 內(nèi)仍然沒有收到該 Web 服務(wù)器的確認信息,那么認為此刻的網(wǎng)絡(luò)不利于數(shù)據(jù)的推送,于是,暫時存儲該信息,并掛起“向服務(wù)器推送數(shù)據(jù)”的進程。 步驟10 :如果 步驟9.1 執(zhí)行順利,即網(wǎng)關(guān)能夠收到Web 服務(wù)器的確認信息,那么網(wǎng)關(guān)掛起“從服務(wù)器獲取控制命令”的進程 2s,并暫時存儲該控制命令;如果上述 步驟9.2 能夠被順利執(zhí)行,即認為此刻的網(wǎng)絡(luò)不利于數(shù)據(jù)的推送,那么網(wǎng)關(guān)在下一個周期內(nèi)除了要向服務(wù)器推送該周期內(nèi)需要推送的信息,還需要繼續(xù)向服務(wù)器推送 步驟9.2 需要推送的信息,如果在連續(xù) 3 個周期內(nèi),步驟9.2 需要推送的信息都無法被推送到服務(wù)器,那么丟棄該信息。 步驟 11 :判斷 步驟 10 接收到的控制命令是否與被控對象矛盾,即判斷對象卷膜/簾機是否卸載或故障,如果是,那么跳過“給卷膜/簾機發(fā)送控制命令”的進程,并報警提示;如果不是,那么開啟“給卷膜/簾機發(fā)送控制命令”的進程。如果在 10s 之內(nèi),網(wǎng)關(guān)檢測不到卷膜/簾機的正確動作,那么認為該命令不正確,并再次向服務(wù)器獲取控制命令。如果在本周期內(nèi),命令不正確的現(xiàn)象出現(xiàn) 3 次,那么停止向卷膜機/簾機發(fā)送控制命令。 步驟12 :關(guān)閉所有進程,然后再開啟,跳回 步驟 1 。 2.2 MTSA 算法進程掛起時間片的確定 在本文的調(diào)度方法中,每個進程被單獨掛起到下一個進程被單獨開啟的時間間隔是 2s。其確認方法如下:根據(jù)大數(shù)定律,可以認為 MTSA 的周期服從正態(tài)分布。因為網(wǎng)關(guān)需要每隔 2min,即 120s,向服務(wù)器推送一次數(shù)據(jù),所以認為 MTSA 的周期服從均值為 120s、方差未知的正態(tài)分布,即,如果用 T、 和 2分別表示周期、均值和方差,那么得到 TN(, 2)(1) 其中 120, 2未知??紤]到系統(tǒng)的有效功率與最大功率的關(guān)系(整個系統(tǒng)采用交流電供電,系統(tǒng)的直流設(shè)備采用交流轉(zhuǎn)直流的適配器供電。交流電的最大功率是有效功率的 倍),我們希望周期 T 落在區(qū)間(- ,+ )內(nèi)。由正態(tài)分布的概率密度可得 (2) 因為在 MTSA 中,當需要循環(huán)執(zhí)行某個進程時,循環(huán)的總時間為 10s,所以每一個進程被單獨掛起到下一個進程被單獨開啟的時間間隔為 =2s(3) 其中等式左端的向下取整符號表示保留運算結(jié)果的整數(shù)部分。 2.3 MTSA 算法對數(shù)據(jù)阻塞的影響 一方面, MTSA 的時間間隔為進程的切換提供了緩沖空間,這能避免多進程擁塞所帶來的數(shù)據(jù)阻塞;另一方面, MTSA 通過如下措施排除無需發(fā)送的信息或冗余的信息來降低數(shù)據(jù)阻塞: (1)MTSA的 步驟2.2 能夠?qū)⑿遁d或故障的傳感器從系統(tǒng)剔除,所以,在下一個周期內(nèi),網(wǎng)關(guān)無需占用總線資源向該傳感器發(fā)送讀取數(shù)據(jù)的請求,這有利于降低總線上的數(shù)據(jù)阻塞。 (2)MTSA 的 步驟 5.2 能夠?qū)⑿遁d或故障的卷膜/簾機從系統(tǒng)剔除,所以,在下一個周期內(nèi),網(wǎng)關(guān)無需占用總線資源向該卷膜/簾機發(fā)送讀取狀態(tài)的請求,這也有利于降低總線上的數(shù)據(jù)阻塞。 (3) MTSA的 步驟7 先判斷本周期的卷膜/簾機的狀態(tài)是否與上一個周期的相同,如果相同,那么 步驟8 無需將本周期的卷膜/簾機的狀態(tài)推送至 Web 服務(wù)器,所以,網(wǎng)關(guān)無需占用網(wǎng)絡(luò)資源將重復的卷膜/簾機的狀態(tài)推送至 Web 服務(wù)器,這有利于降低 Web 通信的數(shù)據(jù)阻塞。 (4) MTSA 的 步驟 9.2 在認為網(wǎng)絡(luò)不利于數(shù)據(jù)的推送時,暫時停止向服務(wù)器推送數(shù)據(jù),這也有利于降低Web 通信的數(shù)據(jù)阻塞,同時能夠減小數(shù)據(jù)的丟失。 (5) 在 MTSA 的 步驟 10 中,如果在連續(xù) 3 個周期內(nèi), 步驟9.2 需要推送的信息都無法被推送到服務(wù)器,則丟棄該信息,所以,網(wǎng)關(guān)無需再占用網(wǎng)絡(luò)資源將此貶值的信息推送至 Web 服務(wù)器,這有利于降低 Web 通信的數(shù)據(jù)阻塞。 (6) MTSA 的 步驟11 先判斷收到的控制命令是否與被控對象矛盾,即判斷被控的卷膜/簾機是否已經(jīng)卸載或故障,如果是,那么網(wǎng)關(guān)無需將控制命令發(fā)送至該卷膜/簾機,所以,網(wǎng)關(guān)無需占用總線資源向該卷膜/簾機發(fā)送控制命令,這有利于降低總線上的數(shù)據(jù)阻塞。 3 實驗驗證 3.1 環(huán)境監(jiān)控系統(tǒng) 在清華大學信息科學與技術(shù)國家實驗室和遼寧省興城市中國農(nóng)業(yè)科學院果樹研究所的葡萄栽培試驗基地對本文的多進程調(diào)度算法( MTSA)進行了實驗驗證。搭建溫室環(huán)境監(jiān)控系統(tǒng),如圖 3 所示。 Web 服務(wù)器及其數(shù)據(jù)庫被安裝在清華大學信息科學與技術(shù)國家實驗室的 3 區(qū) 624 房間內(nèi),將系統(tǒng)的其余部分,包括網(wǎng)關(guān),安放在遼寧省興城市中國農(nóng)業(yè)科學院果樹研究所葡萄溫室內(nèi)。 嵌入式物聯(lián)網(wǎng)網(wǎng)關(guān)網(wǎng)關(guān) 傳感器圖 3 環(huán)境監(jiān)控系統(tǒng)及其工作環(huán)境 Fig 3 Environment-monitoring system and its working environment 在環(huán)境監(jiān)控系統(tǒng)的基礎(chǔ)上, 通過比較 MTSA 與啟發(fā)式方法 (heuristic method, HM)21-28來驗證 MTSA 的性能。具體操作如下:使 MTSA 和 HM 交替地工作在同一個網(wǎng)關(guān)上(采用同一個網(wǎng)關(guān)能避免不同網(wǎng)關(guān)之間的差異所帶來的影響。交替工作意味著 MTSA 工作時, HM 休息, HM 與 MTSA 不能同時工作。表 1 列出了 HM 與 MTSA 各自工作的時間段。這些時間段是隨機選擇的,所以其長度并不相等) ,并觀察環(huán)境監(jiān)控系統(tǒng)在 “ MTSA 正常工作”與“ HM 正常工作”期間的溫度、濕度和光照采樣是否符合正常采樣。如果某一時間段內(nèi)的采樣接近正常采樣,那么說明這一時間段內(nèi)的數(shù)據(jù)阻塞小,反之,數(shù)據(jù)阻塞嚴重。一組采樣包括一個溫度采樣、一個相對濕度采樣和一個光照采樣。網(wǎng)關(guān)每隔 63s向 Web 服務(wù)器推送一組采樣,在沒有數(shù)據(jù)丟失的情況下, Web 服務(wù)器應(yīng)該從網(wǎng)關(guān)獲取 400 組傳感器采樣。 表 1 交替工作時 HM 與 MTSA 各自工作的時間段 Tab1 Running time of HM and of MTSA when they work alternatively 算法 交替工作的時間段 MTSA 10:00-10:40 11:50-14:30 15:50-17:00 HM 10:40-11:50 14:30-15:50 3.2 HM 方法的具體實現(xiàn) 在解決具體問題時, HM 方法是一種根據(jù)經(jīng)驗規(guī)則進行發(fā)現(xiàn)的方法。實踐活動經(jīng)常采用“請求數(shù)據(jù) 獲取數(shù)據(jù) 傳輸處理數(shù)據(jù) 根據(jù)數(shù)據(jù)傳達命令”的經(jīng)驗規(guī)則或框架。 本文的 HM 方法符合文獻 21-28HM方法所采用的經(jīng)驗規(guī)則或框架。所以, HM 方法在本文通訊應(yīng)用的具體實現(xiàn)步驟如下: (1)網(wǎng)關(guān)開啟“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的進程,將讀取數(shù)據(jù)的請求發(fā)送至底層傳感器。 (2)當確認 (1)的命令被發(fā)送完畢且傳感器接收到該請求后,掛起“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的進程,并開啟“從底層傳感器獲取采樣”的進程;否則,循環(huán)執(zhí)行“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的進程,直到底層傳感器接收到該請求。 (3)掛起“從底層傳感器獲取采樣”的進程, 然后開啟“給底層卷膜/簾機發(fā)送讀取狀態(tài)請求并獲取該狀態(tài)”的進程,直到網(wǎng)關(guān)獲取到膜/簾機的狀態(tài)。 (4)掛起“給底層卷膜/簾機發(fā)送讀取狀態(tài)請求并獲取該狀態(tài)”的進程,然后開啟“向服務(wù)器推送數(shù)據(jù)”的進程將傳感器的采樣與膜/簾機的狀態(tài)推送至服務(wù)器,直到數(shù)據(jù)推送成功。 (5)掛起“向服務(wù)器推送數(shù)據(jù)”的進程,然后開啟“從服務(wù)器獲取控制命令”的進程,直到網(wǎng)關(guān)獲取到該控制命令。 (6)掛起“從服務(wù)器獲取控制命令”的進程, 并開啟“給卷膜/簾機發(fā)送控制命令”的進程,直到膜/簾機獲取到該命令,隨后跳轉(zhuǎn)到(1) 。 3.3 實驗中數(shù)據(jù)傳輸?shù)牧炕瘻y量 實驗中的數(shù)據(jù)分為Web服務(wù)器接收到的數(shù)據(jù)與丟失的數(shù)據(jù),實驗按照如下步驟進行數(shù)據(jù)傳輸?shù)牧炕瘻y量: (1) 設(shè)置傳感器采樣在 Web 服務(wù)器端的記錄形式。在某一時刻,如果發(fā)生了數(shù)據(jù)阻塞,那么網(wǎng)關(guān)無法正常地將此刻的傳感器采樣推送至 Web 服務(wù)器, 此刻的傳感器采樣在 Web 服務(wù)器端被記為 0。如果數(shù)據(jù)傳輸正常,那么此刻的傳感器采樣能夠正常地傳送至 Web 服務(wù)器并被 Web 服務(wù)器存儲。 (2)設(shè)置實驗時間。實驗時間是 10:00-17:00。網(wǎng)關(guān)每隔 63 s 向 Web 服務(wù)器推送一組傳感器采樣(一組傳感器采樣包含這一時刻的溫度、相對濕度和光照) ,在現(xiàn)有實驗條件和沒有數(shù)據(jù)丟失的情況下, Web 服務(wù)器應(yīng)該從網(wǎng)關(guān)獲取 400 組非零的傳感器采樣。 (3)設(shè)置 MTSA 和 HM 的工作時間段。如前所述,為了避免不同網(wǎng)關(guān)之間的差異所帶來的影響,讓 MTSA和 HM 交替工作在同一個網(wǎng)關(guān)上。 3.1 節(jié)的表 1 顯示MTSA 的工作時間段是 10:00-10:40、 11:50-14:30 和15:50-17:00,而 HM 的工作時間段是 10:40-11:50 和14:30-15:50。所以,在現(xiàn)有實驗條件和沒有數(shù)據(jù)丟失的情況下, MTSA 應(yīng)該讓 Web 服務(wù)器接收到 293 組非零的傳感器采樣,而 HM 應(yīng)該讓 Web 服務(wù)器接收到 107 組非零的傳感器采樣。 (4)記錄使用 HM 與 MTSA 的情況下 Web 服務(wù)器收集到的和丟失的傳感器采樣組數(shù) (Web 服務(wù)器端傳感器采樣值被記錄為 0 的組數(shù) )。 丟失率為丟失的傳感器采樣組數(shù)比上接收到的傳感器采樣組數(shù)與丟失的傳感器采樣組數(shù)的和,由此計算 HM 和 MTSA 的丟失率。 3.4 溫度、相對濕度和光照的正常采樣 為了得到更加鮮明的對比,在傳感器校準的情況下,圖 4 分別給出了 2015 年 9 月 20 日 10:00-17:00 的溫度、濕度和光照的正常采樣。 在圖 4 (c)的 11:00 時左右,光照大幅度下降,這是因為,在 11:00 時左右,溫室管理人員減小了溫室薄膜的開合度以避免溫室內(nèi)葡萄接觸強光。 在 14:40 與 15:50之間,溫度下降,濕度升高,光照再一次下降,這是因為,在這段時間內(nèi),溫室管理人員在溫室內(nèi)以灑水的方式降低溫度,提升濕度,并再次以減小溫室薄膜開合度的方式避免葡萄接觸強光。 3.5MTSA 與 HM 的實驗結(jié)果對比 在傳感器校準的情況下, MTSA 和 HM 交替工作在同一個網(wǎng)關(guān)上的實驗結(jié)果如圖 5 所示。圖 5 與圖 4 同時說明: (1)在 MTSA 正常工作而 HM 休息的時間段內(nèi),溫室內(nèi)的溫度、濕度和光照采樣接近正常采樣。 (2)在 HM 正常工作而 MTSA 休息的時間段內(nèi),溫 0 50 100 150 200 250 3002324252627282930310 50 100 150 200 250 3002530354045500 50 100 150 200 250 3000100200300400500600700800900100010:00 11:10 12:20 13:30 14:40 15:50 17:00采樣時刻溫度(C)(a) 溫度采樣采樣時刻(b) 相對濕度采樣相對濕度的真實值(%)10:00 11:10 12:20 13:30 14:40 15:50 17:00采樣時刻(c) 光照采樣10:00 11:10 12:20 13:30 14:40 15:50 17:00光照(Lx)圖 4 10:00-17:00 的溫度、相對濕度和光照的正常采樣 Fig 4 Normal samples of temperature, of relative humidity and of illuminance from 10:00 to 17:00 10:00 11:10 12:20 13:30 14:40 15:50 17:00 10:00 11:10 12:20 13:30 14:40 15:50 17:00 10:00 11:10 12:20 13:30 14:40 15:50 17:00采樣時刻(a) 溫度采樣采樣時刻(b) 相對濕度采樣采樣時刻(c) 光照采樣溫度(C)相對濕度的真實值(%)光照(Lx)圖 5 MTSA 與 HM 交替工作時, 10:00-17:00 的溫度、濕度和光照采樣 Fig5 Samples of temperature, of relative humidity and of illuminance when MTSA and HM work alternativelyfrom 10:00 to 17:00室內(nèi)的溫度、濕度和光照采樣為 0,不正常。 (3) 采樣的大量丟失正好發(fā)生在環(huán)境參數(shù)變化比較明顯的時間段內(nèi),這說明使用 HM 方法獲取到的采樣不能夠有效地反映溫室內(nèi)環(huán)境參數(shù)的變化情況。 HM 的數(shù)據(jù)丟失率是 56%, MTSA 的數(shù)據(jù)丟失率是5.2%,遠低于 HM 的數(shù)據(jù)丟失率。具體如表 2 所示。 如前所述,一組采樣包括一個溫度采樣、一個相對濕度采樣、一個光照采樣。此實驗結(jié)果驗證了 MTSA 的性能,即能夠合理地調(diào)度多進程從而降低數(shù)據(jù)阻塞。 表 2 HM 和 MTSA 的數(shù)據(jù)丟失率 Tab 2 Data loss rate of HM and of MTSA 算法 總時長/min 收集到的采樣/組 丟失的采樣/組 丟失率/% HM 150 47 60 56 MTSA 270 283 10 5.2 3.6 HM 導致數(shù)據(jù)阻塞的原因分析 (1)與 MTSA 不同, HM 不具備為進程間的切換提供緩沖空間的進程掛起時間片,從而導致多進程擁塞,進而帶來數(shù)據(jù)阻塞。 (2)與 MTSA 不同, HM 沒有將卸載或故障的傳感器、卷膜/簾機從系統(tǒng)剔除,使得這些故障設(shè)備仍占用一定的總線資源,從而加大數(shù)據(jù)阻塞。 (3)與 MTSA 不同, HM 沒有對命令進行分析,使得沒有更新的或者與被控對象矛盾的命令仍占用 Web 通信資源,從而加大數(shù)據(jù)阻塞。 (4)與 MTSA 不同, HM 沒有對 Web 通信環(huán)境進行判斷,使得“網(wǎng)關(guān)向 Web 服務(wù)器推送數(shù)據(jù)”的操作在通信環(huán)境不利的情況下仍被執(zhí)行,從而加大數(shù)據(jù)阻塞。 (5)與 MTSA 不同, HM 沒有丟棄掉貶值的信息,使得該信息仍占用通信資源,從而加大數(shù)據(jù)阻塞。 4 結(jié)語 針對網(wǎng)絡(luò)通信的數(shù)據(jù)阻塞問題,提出了一種溫室環(huán)境監(jiān)控系統(tǒng)的網(wǎng)關(guān)的多進程調(diào)度算法( MTSA) ,給出了相應(yīng)的理論依據(jù),分析了該調(diào)度算法對數(shù)據(jù)阻塞的影響。在正常采樣的參照下, MTSA 方法與 HM 方法的對比驗證了 MTSA 的性能( MTSA 方法的數(shù)據(jù)丟失率為5.2%,遠低于 HM 方法的丟失率 56%) 。 參考文獻 1 葛文杰, 趙春江. 農(nóng)業(yè)物聯(lián)網(wǎng)研究與應(yīng)用現(xiàn)狀及發(fā)展對策研究 J.農(nóng)業(yè)機械學報, 2014, 45(7): 222-230. http:/www.j-csam.org/ch/reader/create_pdf.aspx?file_no=20140735&flag=1&journal_id=jcsam. DOI:10.6041/j.issn.1000-1298.2014.07.03. GE Wenjie, ZHAO Chunjiang. State-of-the-art and developing strategies of agricultural internet of thingsJ. Transactions of the Chinese Society for Agricultural Machinery, 2014, 45(7): 222-230.( in Chinese) 2 何勇,聶鵬程,劉飛.農(nóng)業(yè)物聯(lián)網(wǎng)與傳感儀器研究進展 J.農(nóng)業(yè)機械學報, 2013, 44(10): 216-226.http:/www.j-csam.org/jcsam/ch/reader/create_pdf.aspx?file_no=20131035&year_id=2013&quarter_id=10&falg=1. DOI:10.6041/j.issn.1000-1298.2013.10.035. HE Yong, NIE Pengcheng, LIU Fei. Advancement and trend of internet of things in agricultureand sensing instrument J. Transactions of the Chinese Society for Agricultural Machinery, 2013, 44(10): 216-226.( in Chinese) 3 顏波,石平.基于物聯(lián)網(wǎng)的水產(chǎn)養(yǎng)殖智能化監(jiān)控系統(tǒng) J. 農(nóng)業(yè)機械學報, 2014, 45(1): 259-265.http:/www.j-csam.org/jcsam/ch/reader/create_pdf.aspx?file_no=20140140&year_id=2014&quarter_id=1&falg=1. DOI:10.6041/j.issn.1000-1298.2014.01.040. YAN Bo, SHI Ping.Intelligent monitoring system for aquiculture based on internet of things J. Transactions of the Chinese Society for Agricultural Machinery,2014, 45(1): 259-265.( in Chinese) 4 HOU Chen, ZHAOQianchuan. Bayesian prediction-based energy-saving algorithm for embedded intelligent terminal J. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2015,23(12):2902-2912. 5 HOU Chen, ZHAOQianchuan. A new optimal algorithm for energy saving in embedded system with multiple sleep modes J. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2016, 24(2): 706-719. 6 張猛, 房俊龍, 韓雨. 基于 ZigBee 和 Internet 的溫室群環(huán)境遠程監(jiān)控系統(tǒng)設(shè)計 J. 農(nóng)業(yè)工程學報, 2013, 29(25): 171-176. ZHANG Meng, FANG Junlong, HAN Yu. Design on remote monitoring and control system for greenhouse group based on ZigBee and internet J. Transactions of the Chinese Society of Agricultural Machinery, 2013, 29(25): 171-176.( in Chinese) 7 王浩云,劉佼佼,侯思宇,等.信息物理系統(tǒng) ( cyber-physical system) 時空建模方法及在溫室控制中的應(yīng)用 J.農(nóng)業(yè)工程學報, 2015,31(15): 183-190. WANG Haoyun, LIU Jiaojiao, HOU Siyu, et al. Cyber physical system spatio-temporal modeling method and its application in greenhouse controlJ. Transactions of the Chinese Society of Agricultu