三、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》 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 想象一下,我们有几十个不同的设备,它们之间必须交换数据。 这些设备是物联网(IoT)板,上面连接了几十个传感器。我...
    python测试开发阅读 3,532评论 0 5
  • 简介 MQTT全称Message Queuing Telemetry Transport,中文名消息队列遥测传输协...
    赤山红土阅读 1,891评论 0 0
  • 第一种方法 https://blog.csdn.net/github_33304260/article/detai...
    鲸随浪起阅读 12,905评论 0 0
  • 物联网 (IoT) 设备必须连接互联网。通过连接到互联网,设备就能相互协作,以及与后端服务协同工作。互联网的基础网...
    虾米咬小米阅读 3,226评论 0 0
  • 笔者相信大家对HTTP一定不能陌生。"HTTP协议的三次握手四次挥手"相信也略有耳闻。HTTP协议的优势相信大家都...
    Hayasiaomi阅读 3,573评论 1 1