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