雷鋼 李國(guó)選
摘 要:闡述了MQTT物聯(lián)網(wǎng)協(xié)議在大學(xué)生創(chuàng)新實(shí)踐教學(xué)中的應(yīng)用,利用該協(xié)議具有成本低、安全性強(qiáng)、自由定制化、對(duì)網(wǎng)絡(luò)依賴小、可以離線使用、部署方便、能在低可靠的網(wǎng)絡(luò)環(huán)境下運(yùn)行穩(wěn)定等優(yōu)點(diǎn),搭建了MQTT物聯(lián)網(wǎng)協(xié)議的智能家居系統(tǒng),實(shí)現(xiàn)了傳感器的數(shù)據(jù)傳輸、自動(dòng)化處理和終端指令的執(zhí)行的全過程。
關(guān)鍵詞:MQTT;物聯(lián)網(wǎng);創(chuàng)新實(shí)踐
0 引言
伴隨著互聯(lián)網(wǎng)和電子技術(shù)的發(fā)展,人們已經(jīng)不能在滿足傳統(tǒng)的家居服務(wù)方式了,而家具也正向著智能化,網(wǎng)絡(luò)化,人性化的方面發(fā)展。隨著物聯(lián)網(wǎng)的興起,在智慧家庭,智能家具方面各類產(chǎn)品層出不窮。在物聯(lián)網(wǎng)方面,主要有五大協(xié)議MQTT、CoAP 、HTTP、XMPP、SoAP。其中各有個(gè)的優(yōu)點(diǎn),但是對(duì)于智能家具來(lái)說,大多是一些傳感數(shù)據(jù)的采集,動(dòng)作的執(zhí)行,還有一些自動(dòng)化執(zhí)行的判斷。在這其中既要滿足低功耗的判斷,又要滿足工作的可靠性,采用了MQTT協(xié)議。
本系統(tǒng)采用arduino mini做處理平臺(tái),有煤氣傳感器、火焰?zhèn)鞲衅?、電磁閥、繼電器和wifi轉(zhuǎn)串口等模塊組成。其中arduino做信號(hào)處理和指令執(zhí)行,各類傳感器完成環(huán)境檢測(cè)部分,電磁閥做動(dòng)作執(zhí)行部分。系統(tǒng)采用模塊化設(shè)計(jì),由基于wifi傳輸?shù)腗QTT協(xié)議做各部分的通信支撐。
1 系統(tǒng)組成及硬件設(shè)計(jì)
在環(huán)境感知部分,我們以天然氣傳感器和火焰?zhèn)鞲衅鳛閿?shù)據(jù)采集傳感器,以arduino做數(shù)據(jù)處理平臺(tái)。Arduino在采集完數(shù)據(jù)后通過wifi轉(zhuǎn)串口模塊,以MQTT協(xié)議形式在代理服務(wù)器上發(fā)布數(shù)據(jù),在低功耗的場(chǎng)景下做到每秒采集并上傳一次。在動(dòng)作執(zhí)行部分,有電磁閥控制模塊,繼電器控制模塊,均以arduino做處理平臺(tái)。Arduino通過wifi轉(zhuǎn)串口連接到服務(wù)器,訂閱天然氣和煤氣傳感器數(shù)據(jù),訂閱命令主題,同時(shí)發(fā)布目前控制模塊狀態(tài)。當(dāng)處理器感知到傳感器數(shù)據(jù)有異常時(shí),在MQTT代理服務(wù)器中發(fā)布警告信息,請(qǐng)求終端處理,當(dāng)?shù)却K端處理超時(shí)后自動(dòng)執(zhí)行防護(hù)命令,關(guān)掉電磁閥,關(guān)掉繼電器,并等待終端的檢修重啟命令,更進(jìn)一步處理。在通信部分,我們采用的MQTT協(xié)議(Message Queuing Telemetry Transport)是一個(gè)基于TCP的發(fā)布訂閱協(xié)議,設(shè)計(jì)的初始目的是為了極有限的內(nèi)存設(shè)備和網(wǎng)絡(luò)帶寬很低的網(wǎng)絡(luò)不可靠的通信,非常適合物聯(lián)網(wǎng)通信。MQTT通信主要由三部分構(gòu)成,發(fā)布客戶端,代理服務(wù)器,訂閱客戶端。訂閱客戶端通過告知服務(wù)器訂閱自己感興趣的主題,在發(fā)布客戶端發(fā)布相關(guān)主題消息后將消息轉(zhuǎn)發(fā)到訂閱客戶端,以此完成通信。在低功耗和低可靠性的網(wǎng)絡(luò)環(huán)境下仍然能夠很好的工作。整套系統(tǒng)可以自動(dòng)化處理,也可人為干預(yù)。讓使用者可以隨時(shí)了解家庭中的狀態(tài),并遠(yuǎn)程操控。系統(tǒng)組成框圖如圖1所示。其硬件設(shè)計(jì)如下:
(1)環(huán)境感知部分設(shè)計(jì);本套系統(tǒng)是檢測(cè)家庭煤氣泄露和是否產(chǎn)生火災(zāi)的示例系統(tǒng),所需要檢測(cè)的環(huán)境變量主要是天然氣的濃度和是否發(fā)生火焰。主要用到的是天然氣傳感器,和火焰?zhèn)鞲衅?。天然氣傳感器采用的是MQ-4天然氣傳感器。MQ-4傳感器的特點(diǎn)主要有對(duì)甲烷和天然氣有很高的靈敏度、對(duì)乙醇煙霧的靈敏度很低、快速響應(yīng)恢復(fù)特性、長(zhǎng)期使用壽命和可靠的穩(wěn)定性、簡(jiǎn)單的驅(qū)動(dòng)電路。主要應(yīng)用于家庭、工業(yè),甲烷和天然氣的探測(cè)裝置?;鹧?zhèn)鞲衅骼霉饷舭雽?dǎo)體檢測(cè)物質(zhì)燃燒后產(chǎn)生的紅外線輻射波長(zhǎng)在1-2um近紅外波長(zhǎng)的信號(hào)強(qiáng)度輸出對(duì)應(yīng)的模擬值,從而完成對(duì)火焰的探測(cè)。Wifi轉(zhuǎn)串口模塊用的是esp8266模塊,這是物聯(lián)網(wǎng)領(lǐng)域比較廉價(jià)的一款聯(lián)網(wǎng)模塊,模塊穩(wěn)定性高,連接方便,功耗較低,在物聯(lián)網(wǎng)領(lǐng)域有著重要的應(yīng)用。主控單片機(jī)arduino原理圖如圖2所示,它具有平臺(tái)化、統(tǒng)一化、有標(biāo)準(zhǔn)的工業(yè)設(shè)計(jì),方便集成,可替換性高,并有豐富的各類傳感器庫(kù)和豐富的片上外設(shè)資源,開發(fā)周期短,開發(fā)效率高。
(2)動(dòng)作執(zhí)行部分設(shè)計(jì);動(dòng)作部分的設(shè)計(jì)主要是進(jìn)行自動(dòng)化判斷和相關(guān)命令的執(zhí)行,程序?qū)崿F(xiàn)方式也比較簡(jiǎn)單。動(dòng)作部分主要有兩個(gè)動(dòng)作,一個(gè)是繼電器的開啟和關(guān)閉,另一個(gè)是電磁閥的開啟和關(guān)閉。Arduino單片機(jī)通過ESP8266通過wifi連接到MQTT代理服務(wù)器上面,訂閱繼電器和電磁閥命令主題,同時(shí)發(fā)布狀態(tài)主題。
(3)數(shù)據(jù)傳輸;Esp8266模塊集成了透?jìng)鞴δ?,支持微信Airkiss 2.0協(xié)議、標(biāo)準(zhǔn)的 IEEE802.11 b/g/n 協(xié)議、完整的 TCP/IP 協(xié)議棧、STA/AP/STA+AP 工作模式、SmartConfig、串口透?jìng)?、支持串口AT 指令集、服務(wù)器 AT 指令集、IO 口控制等功能即拿即用,簡(jiǎn)單配置后便可以非常便利的實(shí)現(xiàn)網(wǎng)絡(luò)訪問功能,最大限度減少開發(fā)者的工作和項(xiàng)目開發(fā)時(shí)間。MQTT是一個(gè)客戶端服務(wù)端架構(gòu)的發(fā)布/訂閱模式的消息傳輸協(xié)議。它的設(shè)計(jì)思想是輕巧、開放、簡(jiǎn)單、規(guī)范,易于實(shí)現(xiàn)。它有一個(gè)固定報(bào)頭(所有報(bào)文都有)和一個(gè)可變報(bào)頭(部分報(bào)文可有)。協(xié)議報(bào)頭采用數(shù)字代號(hào)和位控制,這種方法可以有效的減少數(shù)據(jù)包體積,能保證通信的快捷性。協(xié)議采用UTF-8的編碼方式,兼容大多數(shù)語(yǔ)言。同時(shí)有嚴(yán)格的主題數(shù)據(jù)格式,既保證數(shù)據(jù)傳輸?shù)某休d能力,又能保證數(shù)據(jù)的主題隔離,減少不同數(shù)據(jù)間的識(shí)別干擾問題。服務(wù)器的登陸驗(yàn)證過程保證了數(shù)據(jù)信息在發(fā)布到代理服務(wù)后不被竊取,從而在一定程度上保證了安全。在信息的質(zhì)量上有三種不同的通信質(zhì)量。不同質(zhì)量的信息保證了不同信息的傳輸要求。
(4)MQTT代理服務(wù)器設(shè)置;采用低功耗家庭小型MQTT服務(wù)器。由于MQTT協(xié)議的簡(jiǎn)潔高效性,還有家庭傳感器數(shù)量較少,利用低功耗設(shè)備建立一個(gè)MQTT服務(wù)器網(wǎng)關(guān)使用,理論上完全可以滿足家庭的需要。優(yōu)點(diǎn)是:成本低、安全性強(qiáng)、自由定制化、使用內(nèi)網(wǎng)、對(duì)網(wǎng)絡(luò)依賴小、可以離線使用、部署方便。在本次系統(tǒng)中采用的是第二種方式,自己搭建的MQTT代理服務(wù)器。主要原因是在服務(wù)器上搭建的有家庭管理平臺(tái),能夠智能化處理家庭傳感器數(shù)據(jù),給用戶提供一個(gè)較好的家庭環(huán)境。
2 系統(tǒng)評(píng)測(cè)結(jié)果
(1)傳感器測(cè)試;完成系統(tǒng)部署后在正常情況下進(jìn)行過7*24小時(shí)的運(yùn)行評(píng)測(cè),期間服務(wù)器運(yùn)行正常,傳感器數(shù)據(jù)正常,執(zhí)行部件狀態(tài)正常,并無(wú)出現(xiàn)異常情況。在調(diào)試狀態(tài)下進(jìn)行評(píng)測(cè)。將傳感器放入人工制造的環(huán)境中,傳感器數(shù)值有上升趨勢(shì)。傳感器主題數(shù)據(jù)傳送正常,傳感器主題訂閱數(shù)據(jù)傳送正常。
(2)執(zhí)行部分測(cè)試;運(yùn)行期間狀態(tài)主題正常,命令調(diào)試執(zhí)行正常。在傳感器數(shù)據(jù)超出正常值后正常發(fā)送出警告信息,設(shè)備重置通過,不重置自動(dòng)化執(zhí)行正常,狀態(tài)反饋正常。
通過評(píng)測(cè),MQTT協(xié)議的通信任務(wù)圓滿完成,系統(tǒng)設(shè)計(jì)完全符合預(yù)期。如系統(tǒng)穩(wěn)定運(yùn)行一周數(shù)據(jù)圖3所示,從圖中可以看出在運(yùn)行期間各項(xiàng)數(shù)值處于穩(wěn)定狀態(tài),在誤差范圍內(nèi)完全可以滿足要求。表明了此協(xié)議在物聯(lián)網(wǎng)傳感系統(tǒng)中能很好的保障數(shù)據(jù)的傳輸,保障系統(tǒng)的穩(wěn)定運(yùn)行。
3 結(jié)語(yǔ)
本設(shè)計(jì)提供了一種基于MQTT物聯(lián)網(wǎng)協(xié)議的通信系統(tǒng)設(shè)計(jì),用MQTT協(xié)議擔(dān)任傳感器數(shù)據(jù)到平臺(tái)再到執(zhí)行端的一個(gè)溝通角色。MQTT協(xié)議的優(yōu)點(diǎn)是對(duì)資源占用小,通信可靠性高,能夠滿足各種類型的消息傳遞,同時(shí)消息的主題特性也能使得它能夠很好的隔離相關(guān)信息,提高消息的抗干擾性。已經(jīng)智能家居系統(tǒng)上得到了驗(yàn)證。通過本次創(chuàng)新實(shí)踐活動(dòng),把涉電專業(yè)的大學(xué)生對(duì)編程語(yǔ)言、軟件、硬件、應(yīng)用平臺(tái)搭建的全過程都有一個(gè)完整的了解和實(shí)踐,對(duì)MQTT協(xié)議有了更深刻的理解,提高了學(xué)生綜合創(chuàng)新能力。
參考文獻(xiàn):
[1]袁志強(qiáng).基于單片機(jī)智能家居設(shè)計(jì)[J].創(chuàng)新設(shè)計(jì),2019年第9期.
[2]孫雪,崔曉梅,馬雪瀅,董玉華.智能家居燈光控制系統(tǒng)設(shè)計(jì)[J].智能計(jì)算機(jī)與應(yīng)用,第九卷第二期.
[3]陳銘乾.基于人工智能的物聯(lián)網(wǎng)平臺(tái)搭建[J].信息科學(xué)探索,1674-6708(2019)229-0116-03.
(項(xiàng)目來(lái)源:鄭州工程技術(shù)學(xué)院 2018 年大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃 項(xiàng)目編號(hào):201811068025,項(xiàng)目名稱:非智能家居的智能化)
作者簡(jiǎn)介:雷鋼(1979-),男,河南鄭州人,碩士,副教授,主要研究方向:電子與通信工程。