CR1000X MQTT通訊參數(shù)設(shè)置
首先需要在DevConfig軟件中中設(shè)置MQTT Broker的參數(shù),轉(zhuǎn)到Setting Editor->MQTT選項卡。
點擊圖片查看大圖~
MQTT Enable
“MQTT Enable“參數(shù):用于使能MQTT功能,并且可使用TLS加密傳輸。
Campbell CLOUD Enabled
“Campbell CLOUD Enabled"參數(shù):用于使能Campbell Cloud功能。
MQTT Broker URL
“MQTT Broker URL"參數(shù)用于輸入MQTT Broker的地址。這里我們使用Mosquitto提供的免費用于測試的服務(wù)器地址,在輸入框中輸入“test.mosquitto.org"。相應(yīng)的在“Port No"對話框中輸入端口號1883。點擊“Apply"應(yīng)用配置更改,可以看到“MQTT State"狀態(tài)變?yōu)椤癕QTT session established",CR1000X作為客戶端已成功與MQTT Broker創(chuàng)建了連接。
MQTT Base Topic
“MQTT Base Topic"對話框用于設(shè)置CR1000X發(fā)布消息的主題,可用“/“來劃分不同的主題級別。這里我們設(shè)置為"cs/v1/“。
至此關(guān)于MQTT參數(shù)設(shè)置完成
對于需要發(fā)送的數(shù)據(jù)
需要通過CRBasic編程實現(xiàn)
CRBasic程序提供了多種用于發(fā)送數(shù)據(jù)指令,包括:
MQTTPublish()
MQTTPublishConstTable
MQTTPublishTable()
下面是一段簡單的代碼,用于展示如何將DataTable中的數(shù)據(jù)發(fā)送到MQTT服務(wù)器:
點擊圖片查看大圖~
程序上傳到CR1000X后,通過DevConfig軟件查看可以看到“MQTT State"對話框變?yōu)椤癙ublishing",表明CR1000X數(shù)采已經(jīng)開始向MQTT服務(wù)器發(fā)布消息。
如何查看CR1000X發(fā)送到
MQTT的數(shù)據(jù)?
可以通過第三方的MQTT客戶端軟件訂閱CR1000X發(fā)布的消息。下面我們使用MQTT-Explorer軟件來查看數(shù)據(jù)。
創(chuàng)建與MQTT服務(wù)器的連接,輸入MQTT服務(wù)器的URL和端口號,點擊“CONNECT"進(jìn)行連接。
點擊圖片查看大圖~
可在搜索框中搜索CR1000X發(fā)布的主題,快速查找CR1000X發(fā)布的數(shù)據(jù)。
這里我們在搜索框中輸入DevConfig軟件中設(shè)置的“MQTT Base Topic"參數(shù)"cs/v1/“,可快速找到CR1000X發(fā)布的消息。
點擊圖片查看大圖~
CR1000X發(fā)布的消息支持CSIJSON和GeoJSON兩種格式,下面是測試過程中的消息范本:
點擊圖片查看大圖~
MQTT優(yōu)點在于,可以以極少的代碼和有限的帶寬,為遠(yuǎn)程連接設(shè)備提供可靠的消息服務(wù),作為一種低開銷、低帶寬占用的及時通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動應(yīng)用等方面有較廣泛的應(yīng)用。
MQTT是一種基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。
MQTT協(xié)議是輕量、簡單、開放和易于實現(xiàn)的。遵循發(fā)布/訂閱的模式,方便消息在設(shè)備之間傳遞,但消息不是直接從發(fā)送端送到接收端(即點對點),而是由MQTT Broker(或者叫MQTT服務(wù)器)分發(fā)的。
MQTT允許用戶動態(tài)創(chuàng)建主題(不需要預(yù)先創(chuàng)建主題),運維成本低;MQTT協(xié)議可以把傳輸量降低以提高傳輸效率;提供服務(wù)質(zhì)量(quality of service level:QoS)管理;不強制傳輸數(shù)據(jù)的類型和格式,保持很高的靈活性。