王曉勤
(重慶資源與環(huán)境保護(hù)職業(yè)學(xué)院,重慶 402360)
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,各企事業(yè)單位都有自建的機(jī)房。機(jī)房里的服務(wù)器運(yùn)行對(duì)企業(yè)單位非常關(guān)鍵,機(jī)房溫度和濕度以及防靜電措施都有嚴(yán)格的規(guī)定,如果沒有了機(jī)房濕度控制,互聯(lián)網(wǎng)信息會(huì)受到極大沖擊。因此,每個(gè)機(jī)房都要有專業(yè)技術(shù)人員值守,保證服務(wù)器正常運(yùn)行[1]。而傳統(tǒng)機(jī)房濕度管理系統(tǒng)的精確度較差,且存在很大的滯后性。在機(jī)房大量散熱情況下,房間濕度太低,極有可能導(dǎo)致靜電放電問題,破壞交換機(jī)元器件。本文通過引入ZigBee和互聯(lián)網(wǎng)相關(guān)技術(shù),解決機(jī)房工作過程中對(duì)濕度數(shù)據(jù)信息采集的遠(yuǎn)程性、實(shí)時(shí)性不足的問題,提高對(duì)濕度數(shù)據(jù)的可檢測性和可調(diào)控性,同時(shí)實(shí)現(xiàn)方便快捷的管控功能[2]。
機(jī)房濕度檢測系統(tǒng)共有兩大部分,前端部分由機(jī)房濕度傳感器和ZigBee節(jié)點(diǎn)組成,后臺(tái)部分由WiFi無線模塊和手機(jī)App組成[3]。采用YL-69機(jī)房濕度傳感器來進(jìn)行濕度檢測,利用ZigBee節(jié)點(diǎn)進(jìn)行短距離無線傳輸,將采集到的機(jī)房濕度數(shù)據(jù)上傳至手機(jī)App[4,5]。在超距離數(shù)據(jù)傳輸技術(shù)上,采取ZigBee與WiFi連接解決了基于無線傳感器網(wǎng)絡(luò)的超距離傳輸問題,方案框架如圖1所示。
圖1 系統(tǒng)方案框架
關(guān)于數(shù)據(jù)處理模塊,在現(xiàn)有的一些系統(tǒng)中大多直接用單片機(jī)對(duì)傳感器的數(shù)據(jù)進(jìn)行處理,而本系統(tǒng)利用ZigBee節(jié)點(diǎn)進(jìn)行數(shù)據(jù)處理,可以減少數(shù)據(jù)干擾的可能性,并且可以在一定程度上增加無線傳輸?shù)木嚯x。
關(guān)于傳輸系統(tǒng),現(xiàn)有的系統(tǒng)中有的采用藍(lán)牙模塊實(shí)現(xiàn)遠(yuǎn)距離傳輸,有的利用STM32對(duì)數(shù)據(jù)做出相應(yīng)處理之后將數(shù)據(jù)發(fā)送到云平臺(tái),再利用WiFi模塊實(shí)現(xiàn)遠(yuǎn)距離傳輸。但是為了能夠達(dá)到遠(yuǎn)距離傳輸?shù)囊?,這類型的藍(lán)牙產(chǎn)品成本較高且功耗也較大,而直接采用帶微控制單元(Microcontroller Unit,MCU)的WiFi模塊代替STM32和普通WiFi模塊,同樣也可以改良系統(tǒng)的結(jié)構(gòu)和性能。
本設(shè)計(jì)中,采用YL-69濕度傳感器來檢測濕度。在選擇機(jī)房濕度傳感器時(shí),需要滿足測量精度高、可靠性高、穩(wěn)定性高、安裝簡單以及操作簡單等條件。機(jī)房濕度傳感器模塊功能如圖2所示。
圖2 機(jī)房濕度模塊原理電路
將兩個(gè)插片插進(jìn)機(jī)房里面,然后在AC口處采集電壓值。當(dāng)檢測到機(jī)房濕度較小時(shí),兩個(gè)插片之間的電阻趨向于無窮大,此時(shí)AC值近似等于VCC值。當(dāng)檢測到機(jī)房濕度較大時(shí),兩個(gè)插片之間的電阻會(huì)減小,根據(jù)機(jī)房濕度的不同,電阻值會(huì)減小到幾千甚至幾百歐,此時(shí)AC值會(huì)產(chǎn)生相應(yīng)的變化。
當(dāng)傳感器檢測濕度增大時(shí),AC值較小,OUT為低電平;反之當(dāng)檢測到濕度較小時(shí),AC值較大,OUT為高電平??梢灾苯佑肙UT輸出的高低電平信號(hào)來估算濕度的大小,但是為了獲得更準(zhǔn)確的濕度值,要對(duì)AC的值進(jìn)行模數(shù)轉(zhuǎn)換,將其轉(zhuǎn)換成數(shù)字量后再讀取。從功能模塊圖可知,電路接通時(shí)D1亮,反之D1滅。當(dāng)檢測濕度減小時(shí),AC值大,同時(shí)D2熄滅;當(dāng)濕度大時(shí)AC值小,同時(shí)D2點(diǎn)亮。
因?yàn)楸驹O(shè)計(jì)中節(jié)點(diǎn)較少并且測試地點(diǎn)較為集中,由多個(gè)終端設(shè)備和一個(gè)協(xié)調(diào)器組成,所以本系統(tǒng)采用星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)更為合適。在實(shí)際環(huán)境中,在一定區(qū)域采用4點(diǎn)取樣法進(jìn)行數(shù)據(jù)采集,各節(jié)點(diǎn)分布見圖3。
圖3 各節(jié)點(diǎn)分布
本設(shè)計(jì)中,使用的軟件開發(fā)環(huán)境是IAR軟件系統(tǒng)。通過IAR軟件可以電腦上編寫和調(diào)試程序,然后將所寫的程序下載到ZigBee硬件,從而實(shí)現(xiàn)相應(yīng)的功能應(yīng)用。由于ZigBee協(xié)議棧已經(jīng)實(shí)現(xiàn)了ZigBee協(xié)議,因此可以直接調(diào)用協(xié)議棧提供的應(yīng)用程序接口進(jìn)行程序開發(fā)。實(shí)現(xiàn)ZigBee數(shù)據(jù)通信時(shí),首先是網(wǎng)絡(luò)建立,由于協(xié)議棧里面包含了組網(wǎng)函數(shù),因此只需要節(jié)點(diǎn)加入函數(shù)即可完成;其次是實(shí)現(xiàn)網(wǎng)絡(luò)調(diào)用,數(shù)據(jù)同步發(fā)送、接收,實(shí)現(xiàn)協(xié)議棧的數(shù)據(jù)發(fā)送和接收。
在ZigBee網(wǎng)絡(luò)中,只有協(xié)調(diào)器和還沒有參與網(wǎng)絡(luò)的全功能設(shè)備可以在信道上建立自己的ZigBee網(wǎng)絡(luò)。協(xié)調(diào)器通過發(fā)送不同的原語來實(shí)現(xiàn)建立新ZigBee網(wǎng)絡(luò)的過程,協(xié)調(diào)器功能用IAR軟件編程實(shí)現(xiàn)。在啟動(dòng)協(xié)調(diào)器節(jié)點(diǎn)之后,先對(duì)協(xié)議進(jìn)行初始化,然后開始建立網(wǎng)絡(luò)[6]。在實(shí)驗(yàn)中,若網(wǎng)絡(luò)被成功建立,則進(jìn)入終端節(jié)點(diǎn)排隊(duì)加入該網(wǎng)絡(luò)。如果建立失敗,則需重新排隊(duì)等待。網(wǎng)絡(luò)一旦建立成功,協(xié)調(diào)器就會(huì)給第一次加入新建立的網(wǎng)絡(luò)的終端節(jié)點(diǎn)分配16位的短地址,即網(wǎng)絡(luò)地址[7]。隨后協(xié)調(diào)器節(jié)點(diǎn)開始等待終端節(jié)點(diǎn)上報(bào)數(shù)據(jù),一旦有數(shù)據(jù)上報(bào),協(xié)調(diào)器收到數(shù)據(jù)之后,將收到的數(shù)據(jù)信息送給WiFi模塊。到此,ZigBee協(xié)調(diào)器一次完整的數(shù)據(jù)傳輸工作執(zhí)行完畢。其后便是按此過程中終端節(jié)點(diǎn)上報(bào)數(shù)據(jù)、協(xié)調(diào)器接收并轉(zhuǎn)發(fā)過程的不斷循環(huán)。執(zhí)行協(xié)調(diào)器流程如圖4所示。
圖4 協(xié)調(diào)器執(zhí)行流程
在ZigBee網(wǎng)絡(luò)中,本文采用EndDeviceED選項(xiàng)卡來滿足終端節(jié)點(diǎn)的功能需求。終端節(jié)點(diǎn)可以在信道中選擇相對(duì)最佳的網(wǎng)絡(luò)加入進(jìn)去。由于終端節(jié)點(diǎn)不允許其他節(jié)點(diǎn)加入網(wǎng)絡(luò),因此終端節(jié)點(diǎn)不能作為父節(jié)點(diǎn),并且不具有數(shù)據(jù)轉(zhuǎn)換的功能。
啟動(dòng)終端節(jié)點(diǎn)操作步驟:首先進(jìn)行初始化,隨之開始嘗試加入由協(xié)調(diào)器建立的網(wǎng)絡(luò),一旦終端節(jié)點(diǎn)成功加入網(wǎng)絡(luò),就開始每隔1 s發(fā)送一個(gè)任務(wù)消息;其次通過機(jī)房濕度傳感器進(jìn)行數(shù)據(jù)采集,通過調(diào)用Get_ADC0_Value()函數(shù)用軟件進(jìn)行AD轉(zhuǎn)換;最后將帶有網(wǎng)絡(luò)地址的數(shù)據(jù)包發(fā)送給相應(yīng)的協(xié)調(diào)器。網(wǎng)絡(luò)程序中將{“sdx”:xxx}格式設(shè)置為Get_ADC0_Value()函數(shù)。到此ZigBee終端節(jié)點(diǎn)一次完整的數(shù)據(jù)采集和傳輸工作執(zhí)行完畢,其后便按此過程不斷進(jìn)行循環(huán)[8]。終端節(jié)點(diǎn)執(zhí)行的流程如圖5所示。
圖5 終端節(jié)點(diǎn)執(zhí)行流程圖
WiFi模塊在物聯(lián)網(wǎng)中屬于傳輸層,是一個(gè)智能硬件開發(fā)組合,能夠提供云端設(shè)計(jì)。WiFi模塊可以實(shí)現(xiàn)用戶串口、無線網(wǎng)(WiFi)、以太網(wǎng)之間任意的透明轉(zhuǎn)換,可以讓傳統(tǒng)的串口設(shè)備更加快捷地加入到無線網(wǎng)絡(luò)中。通過WiFi模塊,在不改變?nèi)魏沃芭渲玫那闆r下,傳統(tǒng)的串口設(shè)備就可以直接通過Internet網(wǎng)絡(luò)對(duì)數(shù)據(jù)進(jìn)行傳輸[9]。
WiFi模塊采用ESP8266完成相應(yīng)的數(shù)據(jù)傳輸。該模塊采用串口(LVTTL)與MCU(或其他串口設(shè)備)通信方式,內(nèi)置TCP/IP協(xié)議棧,能夠?qū)崿F(xiàn)串口與WiFi之間的轉(zhuǎn)換[10]。在性能方面,ESP8266具有低功耗、作用面積廣、傳輸數(shù)據(jù)穩(wěn)定的優(yōu)點(diǎn),在性能方面可以達(dá)到本系統(tǒng)設(shè)計(jì)的要求。WiFi模塊電路圖如圖6所示。
圖6 WiFi模塊電路圖
TCP/IP完整協(xié)議棧和IEEE 802.11b.g.n均適合該WiFi模塊,用戶可以根據(jù)相應(yīng)的規(guī)則自行設(shè)計(jì)使用該模塊。通過對(duì)整體的硬件分析,有利于整個(gè)機(jī)房濕度無線檢測系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。WiFi模塊工作流程如圖7所示。
圖7 WiFi模塊工作流程圖
本系統(tǒng)采用Android Studio編程來實(shí)現(xiàn)手機(jī)客戶端的設(shè)計(jì)要求。Android Studio是谷歌軟件推出的一個(gè)安卓系統(tǒng)開發(fā)及調(diào)試工具,具有運(yùn)行速度快且穩(wěn)定、強(qiáng)大的UI編輯器等優(yōu)點(diǎn)。
手機(jī)應(yīng)用程序主要為了實(shí)現(xiàn)對(duì)機(jī)房濕度傳感器采集到的數(shù)據(jù)進(jìn)行顯示、報(bào)警提醒及文字提示的功能。聯(lián)系本設(shè)計(jì)的實(shí)際情況,了解App要實(shí)現(xiàn)的需求。用戶可以注冊(cè)并登錄系統(tǒng),可以設(shè)置正常濕度范圍的上下限。當(dāng)超出或者低于預(yù)設(shè)范圍時(shí)發(fā)出聲音報(bào)警,并且有文字顯示過高和過低;當(dāng)濕度檢測值在預(yù)設(shè)范圍內(nèi)時(shí),不啟動(dòng)聲音報(bào)警,文字顯示正常。此外,支持手動(dòng)選擇開始檢測和結(jié)束檢測。App具體執(zhí)行流程如圖8所示。
圖8 App具體執(zhí)行流程
本系統(tǒng)通過手機(jī)App客戶端,設(shè)計(jì)登錄界面和一個(gè)檢測控制臺(tái)界面。用戶打開本安卓系統(tǒng)客戶端后,首先進(jìn)入登錄界面,第一次使用該軟件的用戶注冊(cè)后才可登錄,之后可直接輸入正確的賬號(hào)以及密碼進(jìn)入監(jiān)測控制臺(tái)界面。需要監(jiān)測時(shí),點(diǎn)擊開始檢測即可看到當(dāng)前檢測區(qū)域的濕度狀況。若要滿足不同機(jī)房交換機(jī)對(duì)濕度的要求,則可以通過調(diào)節(jié)濕度上下限來實(shí)現(xiàn)。
首先搭建好軟件實(shí)驗(yàn)平臺(tái),通過仿真器將IAR中的程序下載到協(xié)調(diào)器和兩個(gè)終端節(jié)點(diǎn)中。組網(wǎng)成功之后,連接有機(jī)房濕度傳感器的終端節(jié)點(diǎn)將采集到的數(shù)據(jù)傳送給協(xié)調(diào)器匯總,然后由協(xié)調(diào)器傳送給WiFi模塊。手機(jī)App通過連接WiFi模塊,接收數(shù)據(jù)并進(jìn)行顯示。
將無線傳感器網(wǎng)絡(luò)與WiFi相結(jié)合,實(shí)現(xiàn)了濕度信息的遠(yuǎn)距離檢測。用于機(jī)房濕度信息采集系統(tǒng),實(shí)現(xiàn)遠(yuǎn)距離準(zhǔn)確傳輸,也可用于大型機(jī)房及其他大區(qū)域中。通過分析檢測到的機(jī)房濕度的數(shù)據(jù),可以及時(shí)通過控制機(jī)房空調(diào)等設(shè)施來提高或者降低機(jī)房濕度,以達(dá)到調(diào)節(jié)機(jī)房濕度環(huán)境的目的。同時(shí),有利于精準(zhǔn)管理,在減少傳統(tǒng)的測試方法由于人為等因素造成數(shù)據(jù)不準(zhǔn)確以及降低相關(guān)人員工作量等方面有一定的幫助。