物联网开发之MQTT通讯

MQTT协议-MQTT协议简介

  MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一个客户端服务端架构的发布/订阅模式的“轻量级”消息传输协议。MQTT控制报文由三部分组成,依次为:固定报头(Fixed header)、可变报头(Variable header)、有效载荷(Payload)。

 

1、MQTT协议的特点

  客户端Client 使用MQTT的程序或设备,客户端总是通过网络连接到服务端。它可以

        (1)发布应用消息给其它相关的客户端。

        (2)订阅以请求接受相关的应用消息,

        (3)取消订阅以移除接受应用消息的请求。

        (4)从服务端断开连接。

  服务端Server  一个程序或设备,作为发送消息的客户端和请求订阅的客户端之间的中介。服务端

        (1)接受来自客户端的网络连接。

        (2)接受客户端发送的应用消息。

        (3)处理客户端的订阅和取消订阅请求。

        (4)转发应用消息给符合条件的已订阅客户端。

                             

2、MQTT协议的格式

  (1)固定报头,每个MQTT控制报文都包含,用来描述数据报文类型以及指定控制报文类型的标志位。

 Byte 7 6 5 4 3 2 1 0
 byte 1 MQTT控制报文类型 指定控制报文类型的标志位
 byte 2 数据包剩余长度

     控制报文的类型:

名字报文流动方向描述
Reserved0禁止保留
CONNECT1客户端到服务端客户端请求连接服务端
CONNACK2服务端到客户端连接报文确认
PUBLISH 两个方向都允许 发布消息
SUBSCRIBE8客户端到服务端客户端订阅请求

 

第二部分

四、关于AT模块通讯问题有以下注意点

问题描述:模块无法连接上MQTT,分析发送的连接数据也对。对应第5条,少做一步。                                                              (1)拿到模块之后网上找点相关AT指令例程,主要是查看AT指令格式。                                                                                        (2)电脑端通过网络调试助手开通一个服务端,可以使用花生壳进行IP映射。                                                                                (3)串口小板直接连接模块,通过串口发送AT指令(一般命令后面有\r\n),观察模块返回数据信息以及是否可以连接上网络调试助手的服务端。                                                                                                                                                                            (4)连接成功之后,并且可以发送数据,网络调试助手能收到模块发送的数据,表明模块通过串口已经走通了。                          (5)透传,根据上面AT指令的流程在单片机中编写程序,通过两个串口小板读取模块接收和发送的数据。先用单片机通过模块给电脑端的网络调试助手发送数据,电脑端的服务端连接上模块并且可以接收模块数据,这样才能表明数据AT指令没有问题(这里是一个坑,今天踩进去了)。                                                                                                                                                  (6)用单片机通过模块连接MQTT服务器,并观察MQTT连接情况。

遇到问题多想,多思考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值