三、NT35 MQTT

一、MQTT介绍

       MQTT是一种能实现一对多通信(人们称之为发布或订阅型)的协议。它由3种身份构成,分别是中介代理(broker)、发布者(publisher)和订阅者(subscriber)。消息的发布者和订阅者是客户端中介代理是服务器消息的发布者同时可以是订阅者

MQTT传输消息

       发布者是负责发送消息的客户端,而订阅者是负责接收消息的客户端。MQTT交换的消息都附带"主题"地址。使用"邮箱"形象地比喻一下,订阅"主题"相当于参加了这次会议,会议内容都会发送到你的邮箱,中介相当于邮箱的总服务器。

       我们详细看一下MQTT通信的机制。首先,中介在等待各个客户端对其进行连接。订阅者连接中介,把自己想订阅的主题告诉中介,这就叫作订阅——以后相关会议都要抄送订阅者;然后发布者连接中介,以主题为收信地址发送消息,这就是发布——谁参加了会议就发给谁。

MQTT通信机制

       主题采用的是分层结构。用“#”和“+”这样的符号能指定多个主题。 如下图所示 /Sensor/temperature/# 中使用了“#”符号,这样就能指定所有开头为/Sensor/temperature/ 的主题。/Sensor/+/room1中使用了符号“+”,这样就能指定所有开头是 /Sensor/、结尾是 /room1的主题。

MQTT 的主题名称示例

二、MQTT通信测试

     测试工具:MQTTfx-jfx.jar。可免费使用的MQTT的服务器有很多,这里使用test.mosquitto.org作为中介,MQTTfx-jfx.jar作为客户端。

       如果用户有2个或者多个NT35(CAT1模组),也可以不使用MQTTfx-jfx.jar作为客户端,模组之间相互作为发布者、订阅者。

MQTTfx-jfx.jar作为客户端连接服务器
模组连接服务器

       上面测试工具、NT35分别作为客户端,连接了test.mosquitto.org的服务器。这里注意每个客户端需要独立的Client ID,如果重复则连接断开。服务器连接完成后,先订阅消息,然后其他客户端发布消息,已经订阅消息的客户端可以收到数据了。

上位机订阅消息
模组发布消息,上位机收到消息
上位机发布消息,模组接收消息

       借助于中介的发布/订阅型通信,MQTT就能实现物联网服务与多台设备之间的通信。另外,MQTT 还实现了轻量型协议。因此它还能在网络带宽低、可靠性低的环境下运行;又因为消息小、协议机制简单,所以在硬件资源(设备、CPU和内存等)受限的条件下也能运行,可以说是为物联网量身定做的协议。

参考文档:

《图解物联网》河村雅人,大冢紘史,小山武士等  2017

《Lierda NT90&NT35 MQTT ApplicationNote》 

《Lierda NT90&NT35_Module_AT CommandSet》 

你可能感兴趣的:(三、NT35 MQTT)