www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 嵌入式IoT

1.本文概述

本文主要介紹MQTT相關(guān)的概念,并且通過搭建MQTT服務(wù)器和客戶端,測試MQTT的通信。本文主要從實(shí)際使用的角度去理解MQTT,并不會講述過于深奧的理論知識??梢酝ㄟ^下面的文章了解MQTT的相關(guān)介紹。

2.MQTT基本介紹

MQTT的全稱為Message Queuing Telemetry Transport,也就是消息隊(duì)列遙測傳輸。1999年,IBM公司的Andy Stanford-Clark 和來自Eurotech公司的Arlen Nipper創(chuàng)造了MQTT協(xié)議。其中“MQTT”中的“MQ”是來自IBM的MQ系列消息隊(duì)列產(chǎn)品線。

MQTT最初的用法是在石油管道控制中,將每一個(gè)節(jié)點(diǎn)的信息通過衛(wèi)星傳到到控制中心去。所以MQTT從創(chuàng)立之初就是為物聯(lián)網(wǎng)創(chuàng)立。

那么什么是MQTT協(xié)議呢?簡單地說,主要有下面三個(gè)特點(diǎn):

(1)協(xié)議本身基于TCP/IP,輕量級的發(fā)布和訂閱

(2)開放的協(xié)議

(3)簡單,容易實(shí)現(xiàn)

所以該協(xié)議可以應(yīng)用于各種環(huán)境中,非常適合需要低功耗而且?guī)捰邢薜腎oT場景中,比如:

  • 遙感數(shù)據(jù)

  • 汽車

  • 智能家居

  • 智慧城市

  • 醫(yī)療醫(yī)護(hù)

運(yùn)用MQTT協(xié)議,設(shè)備可以很方便的接入物聯(lián)網(wǎng)服務(wù),管理并處理數(shù)據(jù),最后應(yīng)用到各種業(yè)務(wù)場景

3.mqtt服務(wù)器的搭建

目前服務(wù)器的搭建環(huán)境是ubuntu16.04

采用的服務(wù)器是mosquitto,官方網(wǎng)站https://mosquitto.org

在控制臺上輸入下面的命令進(jìn)行下載。

		
  1. wget https://mosquitto.org/files/source/mosquitto-1.5.7.tar.gz

下載完成后解壓并進(jìn)入mosquitto-1.5.7目錄

在編譯時(shí),先安裝gcc編譯工具,然后下載依賴的環(huán)境

		
  1. sudo apt-get install openssl

  2. sudo apt-get install libssl-dev

  3. sudo apt-get install uuid-dev

最后執(zhí)行make開始編譯,編譯完成后輸入sudo make install安裝程序。

接著配置服務(wù)器相關(guān)信息

		
  1. sudo cp /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf

  2. sudo vim /etc/mosquitto/mosquitto.conf

添加一個(gè)用戶,如下圖所示

這樣,mqtt服務(wù)器就安裝完成了。

下面啟動服務(wù)器

		
  1. mosquitto -c /etc/mosquitto/mosquitto.conf -v

測試

對于MQTT協(xié)議來說,有一個(gè)非常關(guān)鍵的模式:發(fā)布/訂閱模式。發(fā)布/訂閱模式(pub / sub)是傳統(tǒng)客戶端 - 服務(wù)器模型的替代方案,客戶端直接與端點(diǎn)通信。然而,Pub / Sub將正在接收消息(稱為訂戶)的另一客戶端(或更多客戶端)發(fā)送特定消息(稱為發(fā)布者)的客戶端去耦,這意味著發(fā)布者和訂閱者不了解彼此的存在,有一個(gè)第三個(gè)組件,稱為代理,由它作為中轉(zhuǎn),它將過濾所有傳入的消息并相應(yīng)地分發(fā)給它們,所以我們來詳細(xì)介紹一下剛剛提及的方面。

訂閱者

訂閱者的角色要保持長連接狀態(tài),我們可以另外開一個(gè)控制臺窗口進(jìn)行測試訂閱一個(gè)topic01的主題,去接收這個(gè)主題的消息。

		
  1. mosquitto_sub -v -t topic01

這個(gè)過程可能會遇到如下的錯誤

解決辦法

		
  1. sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1

這樣訂閱者就處于不斷等待消息到來的模式。

發(fā)布者

這時(shí)可以另外再開一個(gè)控制臺,去發(fā)布topic01主題的消息。

		
  1. mosquitto_pub -t topic01 -m "123456"

不難看出,我們的訂閱者已經(jīng)接收到消息了。

4. mqtt客戶端的使用

對于mqtt客戶端的使用,可以測試mqtt,所以我們的環(huán)境選擇Windows平臺??梢允褂肕QTT.fx。

MQTT.fx 是目前主流的mqtt客戶端,可以快速驗(yàn)證是否可以與IoT Hub 服務(wù)交流發(fā)布或訂閱消息。設(shè)備將當(dāng)前所處的狀態(tài)作為MQTT主題發(fā)送給IoT Hub,每個(gè)MQTT主題topic具有不同等級的名稱,如“建筑/樓層/溫度。” MQTT代理服務(wù)器將接收到的主題topic發(fā)送給給所有訂閱的客戶端。

下載地址:http://www.jensd.de/apps/mqttfx

安裝最新的版本就可以了

由于我們前面已經(jīng)在ubuntu上搭建好了MQTT服務(wù)器,所以接下來直接使用

點(diǎn)擊publish即可在我們的訂閱者上監(jiān)聽到消息

同時(shí)MQTT.fx 也可以作為監(jiān)聽者

這樣我們就創(chuàng)建好了一個(gè)mqtt本地的測試環(huán)境。

5. 總結(jié)

本次的實(shí)驗(yàn)?zāi)康氖求w驗(yàn)一下mqtt的數(shù)據(jù)傳輸,同時(shí)學(xué)習(xí)了mqtt的一些基本的使用方法,后面會詳細(xì)介紹物聯(lián)網(wǎng)通信以及云服務(wù)器相關(guān)的知識,本文并沒有詳細(xì)介紹mqtt具體在項(xiàng)目中的使用方法,后面再做完善。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
關(guān)閉