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