一種基于物聯(lián)網(wǎng)協(xié)議的中繼型智能插座軟硬件設(shè)計與實(shí)現(xiàn)
掃描二維碼
隨時隨地手機(jī)看文章
引 言
隨著智能家居概念的興起,市場上出現(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 ~498 MHz 之間,使用時無需像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ì)獗?/a>等設(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ì)獗?/a>,以實(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
消息隊(duì)列遙測傳輸協(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) 通信開銷小 :最小消息為 2 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)用的需求。