孟麗榮,趙海天
(1.沈陽理工大學(xué) 兵器博物館,遼寧 沈陽 110159;2.沈陽和平百嘉麗醫(yī)療美容醫(yī)院有限公司 網(wǎng)絡(luò)部,遼寧 沈陽 110001)
農(nóng)業(yè)環(huán)境是農(nóng)業(yè)生產(chǎn)的物質(zhì)基礎(chǔ),農(nóng)作物對(duì)環(huán)境有很強(qiáng)的依賴性、選擇性和適應(yīng)性,通過對(duì)空氣溫度、光照、空氣濕度、CO2濃度以及土壤墑情等環(huán)境因素的動(dòng)態(tài)監(jiān)測(cè),可以對(duì)環(huán)境因素進(jìn)行實(shí)時(shí)掌控,獲取全面、快速、準(zhǔn)確的信息反饋,并能根據(jù)監(jiān)測(cè)信息做出準(zhǔn)確判斷和提出相應(yīng)的應(yīng)對(duì)措施,實(shí)現(xiàn)農(nóng)業(yè)資源的科學(xué)開發(fā)和合理利用,提高土地產(chǎn)出率.設(shè)施農(nóng)業(yè)是集農(nóng)作物種植、農(nóng)業(yè)裝備等多領(lǐng)域?yàn)橐惑w的系統(tǒng)工程,突破了傳統(tǒng)農(nóng)作物受地域、自然環(huán)境、氣候等諸多因素的限制,主要借助溫室及相關(guān)配套裝置來適時(shí)調(diào)節(jié)和控制作物生產(chǎn)環(huán)境,在人為可控環(huán)境下進(jìn)行高效農(nóng)業(yè)生產(chǎn),對(duì)于農(nóng)業(yè)生產(chǎn)、農(nóng)產(chǎn)品銷售、種植區(qū)域管理、環(huán)境控制具有重大意義.
目前,設(shè)施農(nóng)業(yè)技術(shù)飛速發(fā)展,溫室也趨向大型化發(fā)展,而無線終端節(jié)點(diǎn)傳輸距離有限,無法滿足大型溫室的要求,隨著無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)的不斷發(fā)展及物聯(lián)網(wǎng)(Internet of Things,IOT)技術(shù)在農(nóng)業(yè)領(lǐng)域的應(yīng)用,使得大型溫室的自動(dòng)化、智能化管理成為可能.無線傳感器網(wǎng)絡(luò)一般包括傳感器節(jié)點(diǎn)、匯聚節(jié)點(diǎn)和基站,傳感器節(jié)點(diǎn)由傳感器、微處理器、存儲(chǔ)器和收發(fā)器等部件組成,具有計(jì)算和通信能力,以近距離無線的方式連接,從而形成多跳的無線網(wǎng)絡(luò)[1],被廣泛應(yīng)用在環(huán)境數(shù)據(jù)采集領(lǐng)域.另外,通過利用無線傳感器網(wǎng)絡(luò)可檢測(cè)到農(nóng)作物實(shí)際生長(zhǎng)情況,及時(shí)發(fā)現(xiàn)存在的病蟲害,并對(duì)其進(jìn)行有效防治,使農(nóng)業(yè)生產(chǎn)產(chǎn)量能夠得到保證[2-4].由于農(nóng)業(yè)生產(chǎn)環(huán)境的復(fù)雜性和網(wǎng)絡(luò)的不穩(wěn)定性,以及本地傳感器大量接入的需求,需要一種高質(zhì)量、高可靠、低帶寬占用的數(shù)據(jù)交換協(xié)議.
消息隊(duì)列遙測(cè)傳輸(Message Queuing Telemetry Transport,MQTT)協(xié)議因?yàn)槠湎Ⅲw積較小、基于發(fā)布/訂閱的解耦通信模式、豐富的QoS選項(xiàng)及遺囑(Last Will)機(jī)制,非常適合硬件資源、帶寬受限的應(yīng)用場(chǎng)景.基于MQTT協(xié)議的無線傳感器網(wǎng)絡(luò)監(jiān)測(cè)區(qū)域與遠(yuǎn)程控制數(shù)據(jù)的傳輸使監(jiān)控面積得到延伸,從而實(shí)現(xiàn)溫室大型化、分區(qū)化管理,為實(shí)現(xiàn)農(nóng)業(yè)環(huán)境數(shù)據(jù)的自動(dòng)采集、遠(yuǎn)程無線傳輸、自動(dòng)控制提供了技術(shù)保障.
基于物聯(lián)網(wǎng)技術(shù)的農(nóng)業(yè)環(huán)境數(shù)據(jù)監(jiān)測(cè)系統(tǒng)由MQTT代理服務(wù)器、Wi-Fi中心節(jié)點(diǎn)、變送器、WSN傳感器網(wǎng)絡(luò)及軟件通信系統(tǒng)組成.在溫室中設(shè)立一個(gè)Wi-Fi中心節(jié)點(diǎn)作為整個(gè)數(shù)據(jù)采集的網(wǎng)關(guān),它向上與MQTT代理服務(wù)器(遠(yuǎn)程服務(wù)器)通信,向下連接變送器,每個(gè)變送器連接其所屬管轄監(jiān)測(cè)區(qū)域內(nèi)的采集器,每個(gè)采集器帶有溫度、濕度、光照、CO2等傳感器,不同變送器管轄區(qū)域之間相對(duì)獨(dú)立,共同完成溫室環(huán)境的數(shù)據(jù)采集.變送器將采集的數(shù)據(jù)送入Wi-Fi中心節(jié)點(diǎn)后通過MQTT協(xié)議將數(shù)據(jù)傳輸給MQTT代理服務(wù)器,MQTT代理服務(wù)器通過對(duì)所采集的數(shù)據(jù)進(jìn)行分析和運(yùn)算產(chǎn)生控制命令,再通過MQTT協(xié)議將控制命令傳輸給變送器以實(shí)現(xiàn)溫室的網(wǎng)絡(luò)化控制.系統(tǒng)組網(wǎng)模型如圖1所示.
MQTT協(xié)議是一種即時(shí)通信協(xié)議技術(shù),是較早的物聯(lián)網(wǎng)通信協(xié)議之一,由IBM公司于1999年開發(fā),是一個(gè)為解決在不良網(wǎng)絡(luò)狀況中設(shè)備間通信,基于訂閱/發(fā)布機(jī)制的輕量級(jí)傳輸協(xié)議.在通過MQTT客戶端發(fā)布消息至服務(wù)器的主題下,任何訂閱了該主題的MQTT客戶端均可收到該消息,并且客戶端可以通過訂閱多個(gè)主題接收多個(gè)主題下的消息.MQTT協(xié)議是一個(gè)二進(jìn)制協(xié)議,相比文本協(xié)議而言其消息體編碼更為緊湊,可以傳遞各種類型的數(shù)據(jù)并能夠?qū)?shù)據(jù)內(nèi)容進(jìn)行有效的屏蔽[5].
2.1.1 Wi-Fi中心節(jié)點(diǎn)分類
由于Wi-Fi中心節(jié)點(diǎn)設(shè)備類型較多,需要對(duì)配備不同傳感器的中心節(jié)點(diǎn)設(shè)備進(jìn)行統(tǒng)一分類,確保入網(wǎng)的每一個(gè)傳感器設(shè)備編碼唯一.編碼分類:“1”——2個(gè)溫濕度傳感器+雨量傳感器;“2”——2個(gè)溫濕度傳感器+土壤含水量傳感器;“3”——2個(gè)溫濕度傳感器;“4”——雨量傳感器;“5”——土壤含水量傳感器;“6”——1個(gè)溫濕度傳感器;“8”——1個(gè)溫濕度傳感器+放風(fēng);“9”——2個(gè)溫濕度傳感器+雨量傳感器+土壤含水量傳感器.
2.1.2 Wi-Fi中心節(jié)點(diǎn)組網(wǎng)配置
每一個(gè)Wi-Fi中心節(jié)點(diǎn)設(shè)備安裝前都必須進(jìn)行入網(wǎng)配置,配置操作界面如圖2所示,選擇串口號(hào):COM2.接入中心協(xié)議選擇“TCP”,APN名稱選擇“CMNET”,如圖3所示.
MQTT協(xié)議由軟件來實(shí)現(xiàn),軟件部分采用Java編程語言和mySQL數(shù)據(jù)庫,可部署在Windows、Linux環(huán)境下.
2.2.1 數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)過程
Wi-Fi中心節(jié)點(diǎn)通過MQTT協(xié)議實(shí)現(xiàn)與MQTT代理服務(wù)器的通信,進(jìn)行數(shù)據(jù)傳輸,其傳輸過程如圖4所示.
MQTT代理服務(wù)器向Wi-Fi中心節(jié)點(diǎn)發(fā)送控制命令,Wi-Fi中心節(jié)點(diǎn)收到并且執(zhí)行后,回發(fā)反饋信息,如果反饋超時(shí),MQTT代理服務(wù)器重新發(fā)送,當(dāng)反饋超時(shí)3次后,則認(rèn)定發(fā)送失敗,丟棄該控制命令.
MQTT代理服務(wù)器向Wi-Fi中心節(jié)點(diǎn)發(fā)送狀態(tài)查詢命令,Wi-Fi中心節(jié)點(diǎn)收到后回發(fā)狀態(tài)數(shù)據(jù).
Wi-Fi中心節(jié)點(diǎn)定時(shí)主動(dòng)上報(bào)數(shù)據(jù)給MQTT代理服務(wù)器,MQTT代理服務(wù)器收到后,回發(fā)反饋信息.
2.2.2 MQTT代理服務(wù)器發(fā)送控制指令的實(shí)現(xiàn)
MQTT代理服務(wù)器發(fā)送一個(gè)參數(shù)控制指令:8,2,855,5,30,350,50,950,250,0,30,60,30,(設(shè)備類型8、指令類型2、設(shè)備ID號(hào)855、記錄間隔時(shí)間5 min、上報(bào)間隔時(shí)間30 min、溫度報(bào)警上限35℃、溫度報(bào)警下限5 ℃、濕度報(bào)警上限95%、濕度報(bào)警下限25%、放風(fēng)策略0、遠(yuǎn)程模式繼電器動(dòng)作時(shí)長(zhǎng)30 s、本地模式檢測(cè)時(shí)間間隔60 s、本地模式繼電器動(dòng)作時(shí)長(zhǎng)30 s).其中,溫度上下限設(shè)置參數(shù)為原數(shù)值×10(范圍是-500~1000,對(duì)應(yīng)溫度為-50~100 ℃),濕度上下限設(shè)置參數(shù)為原數(shù)值×10(范圍是0~1000,對(duì)應(yīng)濕度為0%~100%),放風(fēng)策略有4種方式:“0”——僅遠(yuǎn)程指令控制;“1”——只要有一個(gè)傳感器超限即動(dòng)作;“2”——兩個(gè)傳感器同時(shí)超限即動(dòng)作;“3”——取兩個(gè)傳感器的平均值).如果MQTT代理服務(wù)器發(fā)送的參數(shù)設(shè)置指令連續(xù)三次超過30 s,則終止此條指令發(fā)送.
當(dāng)Wi-Fi中心節(jié)點(diǎn)收到MQTT代理服務(wù)器發(fā)送的參數(shù)設(shè)置指令且執(zhí)行成功后,向MQTT代理服務(wù)器上報(bào)執(zhí)行結(jié)果,上傳反饋信息內(nèi)容:8,2,OK,(設(shè)備類型8、指令類型2、狀態(tài)OK).
以上數(shù)據(jù)通信過程通過軟件編程實(shí)現(xiàn),利用多線程技術(shù)同步啟動(dòng)30 s計(jì)時(shí)器,當(dāng)Wi-Fi中心節(jié)點(diǎn)在30 s內(nèi)收到控制指令時(shí)則啟動(dòng)或關(guān)閉繼電器,以達(dá)到對(duì)遠(yuǎn)程電器設(shè)備的控制.
程序設(shè)計(jì)流程如圖5所示.
2.2.3 MQTT代理服務(wù)器發(fā)送狀態(tài)查詢指令的實(shí)現(xiàn)
MQTT代理服務(wù)器向Wi-Fi中心節(jié)點(diǎn)發(fā)送一個(gè)狀態(tài)查詢指令:8,3,(設(shè)備類型8、指令類型3).同步啟動(dòng)30 s計(jì)時(shí)器,當(dāng)反饋連續(xù)三次超時(shí)后,終止發(fā)送此條查詢指令.
Wi-Fi中心節(jié)點(diǎn)收到MQTT服務(wù)器發(fā)送的狀態(tài)查詢指令且執(zhí)行成功后,向MQTT服務(wù)器上傳查詢結(jié)果數(shù)據(jù),其實(shí)現(xiàn)過程通過軟件編程實(shí)現(xiàn),程序流程如圖6所示.
Wi-Fi中心節(jié)點(diǎn)反饋上報(bào)狀態(tài)查詢的結(jié)果為:8,3,855,1,1,5,30,350,50, 1,30,60,30,0,(設(shè)備類型8、指令類型3、設(shè)備ID號(hào)855、程序版本號(hào)1、溫濕度傳感器1狀態(tài)1、記錄間隔時(shí)間5 min、上報(bào)間隔時(shí)間30 min,溫度1報(bào)警上限35 ℃、溫度1報(bào)警下限5 ℃、放風(fēng)策略1、遠(yuǎn)程模式繼電器1動(dòng)作時(shí)長(zhǎng)30 s、本地模式檢測(cè)時(shí)間間隔60 s、本地模式繼電器1動(dòng)作時(shí)長(zhǎng)30 s、控制狀態(tài)0),溫度上下限設(shè)置參數(shù)為原數(shù)值×10(數(shù)值范圍-500~1000,對(duì)應(yīng)溫度為-50~100 ℃)
2.2.4 Wi-Fi中心節(jié)點(diǎn)主動(dòng)上報(bào)數(shù)據(jù)
Wi-Fi中心節(jié)點(diǎn)設(shè)備不需要接收MQTT代理服務(wù)器發(fā)送請(qǐng)求,按照事先設(shè)置好的時(shí)間間隔主動(dòng)上傳采集到的環(huán)境數(shù)據(jù).指令類型規(guī)定為:“1”——數(shù)據(jù)透?jìng)?;?”——參數(shù)設(shè)置執(zhí)行結(jié)果反饋;“3”——參數(shù)狀態(tài)反饋;“4”——雨量清零;“5”——數(shù)據(jù).Wi-Fi中心節(jié)點(diǎn)主動(dòng)上傳數(shù)據(jù)包括設(shè)備類型、指令類型、分包標(biāo)志、電量(電池電量)、時(shí)間間隔、溫度1、濕度1、溫度2、濕度2,其中溫度單位為℃,電量、濕度用百分比表示,所有數(shù)值為整數(shù),電量數(shù)值為原數(shù)值(數(shù)值范圍0~100),溫度數(shù)值為原數(shù)值×10(數(shù)值范圍-500~1000),濕度數(shù)值是原數(shù)值×10(數(shù)值范圍0~1000).
本文結(jié)合農(nóng)業(yè)物聯(lián)網(wǎng)的發(fā)展趨勢(shì),通過MQTT網(wǎng)絡(luò)協(xié)議搭建了基于無線傳感器的遠(yuǎn)程通信系統(tǒng),數(shù)據(jù)傳輸穩(wěn)定、可靠.經(jīng)過測(cè)試,基于MQTT的農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)適合小數(shù)據(jù)分組傳輸、高并發(fā)接入的場(chǎng)景,并在對(duì)通信時(shí)延要求不嚴(yán)格的情況下,對(duì)于較大數(shù)據(jù)分組有較高的通信質(zhì)量,滿足農(nóng)業(yè)環(huán)境監(jiān)測(cè)過程中對(duì)多測(cè)點(diǎn)、多要素、移動(dòng)性、便捷性等方面的要求.實(shí)現(xiàn)農(nóng)業(yè)環(huán)境監(jiān)控網(wǎng)絡(luò)化、智能化,使監(jiān)控系統(tǒng)具有費(fèi)用低、功耗低、使用方便、可靠性高等特點(diǎn),能滿足較大范圍內(nèi)的農(nóng)業(yè)環(huán)境監(jiān)控需求,對(duì)今后的農(nóng)業(yè)環(huán)境監(jiān)控技術(shù)的發(fā)展具有一定的借鑒作用.