鄧維 蔣喆 劉洪林
摘 要:由于RF功率較小,發(fā)射距離較近,因此RF無線智能燃氣表信息采集需要行業(yè)技術人員采用專用抄表或?qū)S迷O備進行,為了適應智慧廚房的需要,文中設計了一款集成了RF和WiFi網(wǎng)絡功能的智能插座。RF用于與RF智能燃氣表進行信息交換與控制,WiFi適用于遠程數(shù)據(jù)傳輸與控制。為了解決智能插座與服務器端的通信問題,并減少帶寬的使用時間,文中特采用MQTT消息隊列遙測傳輸協(xié)議。該協(xié)議是一個基于代理發(fā)布/訂閱消息的輕量級傳輸協(xié)議,同時也是為計算能力有限,且工作在低帶寬、不可靠網(wǎng)絡的遠程傳感器和控制設備通信而設計的協(xié)議。文中就智能插座的硬件設計思路及MQTT協(xié)議的應用方法做了簡單介紹。
關鍵詞:MQTT協(xié)議;智能燃氣表;RF;WiFi;智能插座
中圖分類號:TP39;TN6;TN8 文獻標識碼:A 文章編號:2095-1302(2018)03-00-02
0 引 言
隨著智能家居概念的興起,市場上出現(xiàn)了越來越多的智能電器產(chǎn)品,從智能家電到智能插座,所有這些都使得現(xiàn)代生活耳目一新,并越來越方便人們的日常生活。
近年來,智能手機的普及也使智能家居的管理模式和手段越來越豐富,從固定集中控制延伸到了可移動式管理控制,通過將APP程序安裝到智能手機上,以3G,WiFi或LAN為通信手段實現(xiàn)對智能家居的遠程管理和控制。但上述智能家居應用模式主要以智能家庭的應用為主,該模式采用WiFi或LAN的方式對市電供電的電器設備進行控制,但一些行業(yè)卻無法直接采用上述控制方式,如燃氣行業(yè)的設備以電池供電為主,采用RF遠程控制,而RF頻段屬于ISM,在433~498MHz之間,使用時無需像IP化設備那樣需要一定的時間間隔刷新和維持通信鏈路暢通,而是通過睡眠喚醒的方法進行遠程管理和控制,大大降低了設備的功耗,延長了燃氣表電池供電時間,因此無線智能水表\熱能表\燃氣表的遠程控制多采用RF方式,但該方法只對行業(yè)的集中管理具有重要意義,業(yè)務人員可通過手持式抄表設備遠程讀取相關設備的數(shù)據(jù)。在今天大力推廣智慧家庭、智慧小區(qū)、智慧城市的背景下,用戶對智能燃氣表等設備的管理控制也有強烈需求,將智能燃氣表等設備融入智能家居是目前的發(fā)展趨勢,但因為采集節(jié)點數(shù)量龐大,對互聯(lián)網(wǎng)鏈路的要求較高,因此設計一種可實現(xiàn)物聯(lián)網(wǎng)協(xié)議傳送采集信號的智能插座是本文的重點。
1 中繼型智能插座的設計思路及實現(xiàn)原理
對目前市場上流行的智能插座進行功能分析可以看出,其主要針對智能家庭的相關應用,比如實現(xiàn)電器的遠程開斷電功能,其最大的特點是可移動控制,即下載APP軟件到智能手機上,通過手機實現(xiàn)對插座的遠程監(jiān)控。而中繼型智能插座除了上述功能外,還需將管理平臺的信號通過智能插座轉發(fā)給采用RF頻段的智能燃氣表,以實現(xiàn)數(shù)據(jù)采集及控制,同時該智能插座還能實現(xiàn)管理平臺的動態(tài)注冊,以便平臺了解插座的運行狀態(tài)是否正常。同樣,通過權限設定,用戶也可用手機APP訪問指定的智能插座。智能插座的實現(xiàn)原理如圖1所示。
由圖1可知,該插座采用了RF無線模塊+WiFi模塊的設計方式,通過單獨的MCU處理器進行管理和控制。該方案最大的特點在于采用了成熟的器件及內(nèi)部串口通信方式,可靠性高,開發(fā)周期短,便于進行新功能擴展等,其控制原理如圖2所示。
插座控制原理較為簡單,主要采用成熟的模塊搭建而成,性能可靠,成本較低,對智慧家庭應用而言是理想的輔助設備。針對家庭應用,插座使用量較少,數(shù)據(jù)傳輸?shù)臄?shù)據(jù)量和占用帶寬可忽略不計。但如果行業(yè)應用規(guī)模較大,如燃氣行業(yè),用戶規(guī)??赡苓_到幾萬甚至幾十萬,如果每戶都采用智能插座進行數(shù)據(jù)收集及其他服務,那么會對后臺帶寬造成較大壓力,因此若按照傳統(tǒng)思路設計智能插座軟件部分,在大規(guī)模推廣應用時,會在流量和帶寬的問題上對后臺造成影響,故需采用新模式設計插座的通信協(xié)議部分,由此引入MQTT協(xié)議對插座與后臺的通信模式進行規(guī)劃設計。
2 MQTT協(xié)議的原理及應用
2.1 關于MQTT
消息隊列遙測傳輸協(xié)議(Message Queuing Telemetry Transport,MQTT)是IBM于1999年開發(fā)的一個即時通信協(xié)議,也是一個輕量級的,基于代理的發(fā)布/訂閱消息傳輸協(xié)議。所謂輕量級,是指該協(xié)議設計思想開放、簡單、輕量、易于實現(xiàn),因此它也是為計算能力有限,且工作在低帶寬、不可靠網(wǎng)絡的遠程傳感器和控制設備通信而設計的協(xié)議。
針對物聯(lián)網(wǎng)應用中數(shù)據(jù)采集需要通過不斷輪詢才能得到即時數(shù)據(jù)的缺陷,MQTT協(xié)議擁有信息推送功能,可有效地將物聯(lián)網(wǎng)中的大量傳感器與外部設備進行連接, 并實現(xiàn)最小的網(wǎng)絡開銷。
目前MQTT v 2.1主要包含14類消息類型的指令,如下所示:
(1)CONNECT:將客戶端請求發(fā)送到服務器;
(2)CONNACK:連接確認(服務器端→客戶端);
(3)PUBLISH:發(fā)布消息(雙向);
(4)PUBACK:發(fā)布確認(雙向);
(5)PUBREC:確保發(fā)布被收到(雙向);
(6)PUBREL:確保發(fā)布分發(fā)(雙向);
(7)PUBCOMP:確保發(fā)布完成(雙向);
(8)SUBSCRIBE:客戶端訂閱請求;
(9)SUBACK:訂閱確認(服務器端→客戶端);
(10)UNSUBSCRIBE:客戶端退訂請求;
(11)UNSUBACK:服務器端退訂確認;
(12)PINGREQ:PING請求(客戶端→服務器端);
(13)PINGRESP:PING響應(服務器端→客戶端);
(14)DISCONNECT:斷開連接通知(客戶端→服務器端)。
上述14類消息體都采用了固定頭+可變頭+有效載荷組成方式,其中固定頭是所有消息類型必須包含的部分,其結構見表1所列。
從表1可以看出,MQTT協(xié)議的標準格式由消息類型、重復標識、質(zhì)量等級、保留標識及剩余字長組成,MQTT協(xié)議具有如下特點:
(1)通信開銷?。鹤钚∠? B,降低了網(wǎng)絡負載。
(2)協(xié)議具有簡單和跨平臺的特點:MQTT采用訂閱/發(fā)布模式,提供一到多的分發(fā)方法,使應用耦合度降低,并可在TCP/IP及其他無線協(xié)議中使用RF,ZigBee等。
(3)可訂制合適的服務質(zhì)量:根據(jù)網(wǎng)絡狀態(tài)及服務要求可選擇三種不同的消息質(zhì)量等級。
由此可見,正因為MQTT協(xié)議的開放性與消息短小性,使得它在.NET,WINRT,M2M,PHP等平臺上都有良好的表現(xiàn)。同時對于MQTT協(xié)議的實現(xiàn)多以庫函數(shù)的方式實現(xiàn),包括C語言設計,J2ME,J2EE等,本節(jié)就智能插座如何實現(xiàn)消息的定閱和發(fā)送機制做簡單討論。
2.2 智能插座的軟件設計方案
中繼型智能插座可將WiFi模塊及RF模塊之間的數(shù)據(jù)進行交換、轉發(fā)及控制。智能插座就是MQTT協(xié)議中所描述的終端設備,為了簡化智能插座軟件設計,根據(jù)智能插座的特點,在中繼型插座的通信協(xié)議設計上只選擇了MQTT協(xié)議14種消息類型中的6種,分別為CONNECT,CONNACK,PUBLISH,PINGREQ,PINGRESP,DISCONNECT,這幾類消息主要用于插座與后臺的連接和信息發(fā)布。插座注冊及信息接收過程如圖3所示。
為適應本應用的特點,系統(tǒng)通信連接做了如下設置:
(1)為節(jié)省時間片及帶寬開銷,取消除了CONNACK確認信息外其他指令的確認信息,是一種無可靠質(zhì)量(QoS)連接的傳輸。
(2)隨機給智能插座每天分配多個斷開時間片Tu和連通時間片Tc,且在連通時間片Tc內(nèi),如PUBLISH已完成則立即發(fā)送DISCONNECT,退出連通,即實際連通時間≤Tc,此舉不易造成通信堵塞。智能插座在進入Tc時,發(fā)送CONNECT,如服務器端無CONNACK返回或返回拒絕信息,待這一Tc結束后,在下一Tc再進行連接。
(3)在連通時間片Tc內(nèi),智能插座每隔一定時間便發(fā)出一PINGREQ心跳信號給服務器端,待服務器端收到后返回一PINGRESP給智能插座。這一時間間隔在MQTT中稱為KEEP ALIVE,服務器端在收到DISCONNECT或在1.5倍KEEP ALIVE時間內(nèi)沒有收到智能插座發(fā)送的信息則認為智能插座已斷開連接。
3 結 語
將現(xiàn)有RF及WiFi模塊集成到智能插座中,不僅實現(xiàn)了市場上流行的遠程控制智能插座開斷電功能,還在軟件設計中采用了MQTT協(xié)議,減少了節(jié)點數(shù)據(jù)傳輸在帶寬及時間片上的需要。該方案已成功應用在智慧廚房的整體解決方案中,滿足了燃氣行業(yè)和家庭應用的需求。
參考文獻
[1] IBM developerWorks.MQ遙測傳輸(MQTT)V3.1協(xié)議規(guī)范[Z].2010-12-06.
[2]任亨,馬躍,楊海波,等.基于MQTT協(xié)議的消息推送服務器[J].計算機系統(tǒng)應用,2014, 23(3):77-82.
[3]朱艷.移動應用的消息推送與MQTT協(xié)議[J].無線互聯(lián)科技,2015(8):1-3.
[4]陳旖,許力,張美平.適用于大規(guī)模無線傳感器網(wǎng)的流量優(yōu)化系統(tǒng)設計[J].計算機應用,2015,35(4):905-909.
[5]何為民.低功耗單片微機系統(tǒng)設計[M].北京:北京航空航天大學出版社,1994.
[6]倪紅軍.基于Android平臺的消息推送研究與實現(xiàn)[J].實驗室研究與探索,2014,33(5):96-100.
[7]趙志新,王紹偉,霍志強.MTK手機開發(fā)入門[M].北京:人民郵電出版社,2010.
[8]王成,王躍.基于MOTT協(xié)議與Android技術的跨平臺訪客管理系統(tǒng)[J].物聯(lián)網(wǎng)技術,2017,7(3):50-52.