任 斌,鄭國(guó)勛,張哲寧
(長(zhǎng)春工程學(xué)院計(jì)算機(jī)技術(shù)與工程學(xué)院,長(zhǎng)春130012)
我國(guó)北方城市隨著冬季臨近,為了防御嚴(yán)寒,無(wú)論居民家還是企事業(yè)單位都會(huì)開(kāi)始供暖。由于供暖面積廣,許多城市都會(huì)采取集中供暖的方式運(yùn)行。這種供暖方式讓企業(yè)對(duì)于熱用戶的溫度數(shù)據(jù)不能及時(shí)感知,盲目供暖,使得熱用戶室內(nèi)溫度達(dá)不到標(biāo)準(zhǔn)需求,同時(shí)對(duì)于供熱企業(yè)自身而言,由于沒(méi)有參照數(shù)據(jù),不能很好地發(fā)揮能源利用率,降低供暖成本。如采取人工方式,費(fèi)時(shí)、費(fèi)力且不準(zhǔn)確、不及時(shí);因此,開(kāi)發(fā)室內(nèi)供暖溫度無(wú)線采集平臺(tái)對(duì)于企業(yè)來(lái)說(shuō),顯得十分必要。
溫度無(wú)線采集平臺(tái)主要由硬件平臺(tái)、通信協(xié)議、上位機(jī)數(shù)據(jù)采集軟件系統(tǒng)構(gòu)成。本文根據(jù)節(jié)點(diǎn)傳輸數(shù)據(jù)特點(diǎn),定義上位機(jī)采集軟件通過(guò)串口采集數(shù)據(jù)的格式、數(shù)據(jù)校驗(yàn)方法、數(shù)據(jù)驗(yàn)證順序,并由與上位機(jī)軟件系統(tǒng)實(shí)現(xiàn)。
無(wú)線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,簡(jiǎn)稱WSN)[1]是大量的傳感器節(jié)點(diǎn)以自組織和多跳的方式構(gòu)成的無(wú)線網(wǎng)絡(luò)系統(tǒng),該系統(tǒng)能感知、采集、處理和傳輸所監(jiān)測(cè)區(qū)域的相關(guān)信息,具有廣闊的應(yīng)用前景,比如智能農(nóng)業(yè)、智能家居、智能交通與醫(yī)療監(jiān)控等領(lǐng)域。整個(gè)無(wú)線傳感器使用匯聚點(diǎn)收集網(wǎng)絡(luò)中的數(shù)據(jù),形成以匯聚點(diǎn)為根節(jié)點(diǎn)的傳輸樹(shù)。
節(jié)點(diǎn)傳輸數(shù)據(jù)使用Zigbee協(xié)議棧[2],它是Zigbee聯(lián)盟規(guī)定的一種短距離、低功耗的無(wú)線通信技術(shù)。在Zigbee協(xié)議標(biāo)準(zhǔn)中,自身沒(méi)有定義物理層和MAC層,而直接采用IEEE802.15.4的定義,因此,Zigbee聯(lián)盟主要完成網(wǎng)絡(luò)層、應(yīng)用層、網(wǎng)絡(luò)安全的定義。高層協(xié)議發(fā)起請(qǐng)求原語(yǔ),請(qǐng)求底層提供某項(xiàng)服務(wù),與之相對(duì)應(yīng)的是底層對(duì)高層的請(qǐng)求作出確認(rèn);同時(shí),底層協(xié)議可以通過(guò)指示原語(yǔ)指示高層處理事件,對(duì)底層的指示高層作出響應(yīng)。
由于硬件系統(tǒng)采用億道電子設(shè)備,所以數(shù)據(jù)采集格式及流程定義應(yīng)符合底層定義[3]。PC機(jī)與網(wǎng)關(guān)板之間通信采用大端模式,數(shù)據(jù)校驗(yàn)采用累加算法,所傳數(shù)據(jù)均采用十六進(jìn)制格式。具體內(nèi)容如下。
2.1.1 串口數(shù)據(jù)格式定義
圖1 串口數(shù)據(jù)格式定義
數(shù)據(jù)幀格式由10個(gè)字段構(gòu)成,具體內(nèi)容如下:
幀頭(Com_Head):表示該幀屬于控制幀還是數(shù)據(jù)幀,如屬于控制幀,又分為主機(jī)向網(wǎng)關(guān)發(fā)送的應(yīng)答幀和網(wǎng)關(guān)向主機(jī)發(fā)送的應(yīng)答幀,如屬于數(shù)據(jù)楨,則表示傳輸?shù)氖莻鞲衅骶唧w數(shù)據(jù)。
標(biāo)志(IC_Type):用于字段確認(rèn),如有需要可自行修改。
數(shù)據(jù)長(zhǎng)度(Data_Len):表示該幀數(shù)據(jù)區(qū)域的長(zhǎng)度。
傳感器類型(Sensor_Type):表示該數(shù)據(jù)幀產(chǎn)生的傳感器種類,常見(jiàn)的傳感器如溫度、濕度、紅外、血壓、火焰、流量等,本平臺(tái)采集的傳感器種類為溫度傳感器。
網(wǎng)關(guān)設(shè)備地址(Src_Addr):表示傳感器數(shù)據(jù)傳到終端的最后設(shè)備即網(wǎng)關(guān)的地址。
初始節(jié)點(diǎn)地址(Ori_Addr):表示初始產(chǎn)生數(shù)據(jù)幀的節(jié)點(diǎn)地址。
幀序列號(hào)(Seq_No):表示傳感器數(shù)據(jù)幀的序列號(hào)。
跳數(shù)(Hop_Cnt):表示傳感器數(shù)據(jù)到達(dá)終端時(shí)經(jīng)過(guò)的設(shè)備數(shù)。
數(shù)據(jù)區(qū)域(Data_Buf):表示傳感器采集的具體數(shù)據(jù)內(nèi)容。
幀校驗(yàn)(Fcs):用于幀校驗(yàn),檢測(cè)數(shù)據(jù)幀是否有錯(cuò)誤。
2.1.2 數(shù)據(jù)采集流程
數(shù)據(jù)采集流程詳見(jiàn)圖2。
軟件系統(tǒng)功能模塊由5部分構(gòu)成,如圖3所示。
2.2.1 串口功能模塊
對(duì)串口進(jìn)行初始化設(shè)置,包括串口號(hào)碼、波特率、停止位、校驗(yàn)位、數(shù)據(jù)位,以及可以打開(kāi)串口和關(guān)閉串口。
2.2.2 地圖管理功能模塊
點(diǎn)擊加載地圖按鈕可以加載地圖到數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ),并將對(duì)應(yīng)的房間號(hào)碼與傳感器節(jié)點(diǎn)進(jìn)行管理,便于查看。如圖4所示。
2.2.3 傳感器節(jié)點(diǎn)管理與數(shù)據(jù)監(jiān)控功能模塊
傳感器節(jié)點(diǎn)管理模塊主要用于當(dāng)點(diǎn)擊左側(cè)部署地點(diǎn)列表時(shí),右側(cè)顯示出對(duì)應(yīng)的地圖以及地圖上部署的傳感器位置,如圖5所示。
圖5 節(jié)點(diǎn)管理界面
數(shù)據(jù)監(jiān)控功能模塊在監(jiān)控程序開(kāi)始運(yùn)行時(shí),點(diǎn)擊左側(cè)傳感器列表,可以動(dòng)態(tài)地對(duì)數(shù)據(jù)進(jìn)行顯示,并且將數(shù)據(jù)匯總進(jìn)行曲線輸出,下方表單會(huì)顯示所有的數(shù)據(jù)列表。動(dòng)態(tài)曲線每秒鐘刷新1次,可以設(shè)置刷新時(shí)間,刷新時(shí)間要小于傳感器間隔時(shí)間。動(dòng)態(tài)曲線頁(yè)面可以存儲(chǔ)10個(gè)點(diǎn)數(shù)據(jù),超過(guò)10個(gè)數(shù)據(jù)時(shí),圖像向右方移動(dòng)。如圖6所示。
圖6 數(shù)據(jù)監(jiān)控
2.2.4 歷史記錄查詢功能模塊
對(duì)歷史數(shù)據(jù)進(jìn)行查詢,并設(shè)置打印功能。
通過(guò)VC++平臺(tái)實(shí)現(xiàn)相關(guān)功能,主要功能模塊代碼如下[4]。
2.3.1 串口部分
2.3.2 動(dòng)態(tài)曲線繪制部分
2.3.3 地圖顯示部分
2.3.4 繪制圖像
經(jīng)過(guò)實(shí)驗(yàn),數(shù)據(jù)采集系統(tǒng)可以動(dòng)態(tài)、準(zhǔn)確、高效、穩(wěn)定地采集所需溫度數(shù)據(jù);同時(shí),由于無(wú)線傳感節(jié)點(diǎn)成本較低,網(wǎng)絡(luò)搭建方便,具有較強(qiáng)的實(shí)用推廣價(jià)值。
[1]杜曉通.無(wú)線傳感器網(wǎng)絡(luò)技術(shù)與工程應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2010:160-190.
[2]鐘永鋒.ZigBee無(wú)線傳感器網(wǎng)絡(luò)[M].北京:北京郵電大學(xué)出版社,2011:12-13.
[3]億道電子技術(shù)有限公司.物聯(lián)網(wǎng)教學(xué)平臺(tái)實(shí)驗(yàn)手冊(cè)[EB/OL].[2010-05-04].http://www.emdoor.com.cn.
[4]孫鑫.孫鑫作品系列:VC++深入詳解[M].北京:人民郵電出版社,2012:120-190.