目录
本章相关例程链接https://gitee.com/wiznet-hk/example-of-w6100-evb-pico.git
1. 前言
上一章我们用W6100-EVB-PICO开发板进行UDP组播回环测试,本章用我们的开发板作为MQTT客户端连接MQTT服务器进行简单测试。
注意这里我们用的MQTT版本为3.1.1。
2. MQTT
2.1 相关简介
随着物联网技术的快速发展,MQTT(Message Queuing Telemetry Transport)协议已成为一种广泛使用的通讯协议,它适用于设备间低带宽、高延迟、不可靠的网络通信。W6100是一款集成全硬件 TCP/IP 协议栈的嵌入式以太网控制器,同时也是一颗工业级以太网控制芯片。在以太网应用中使用 W6100 + MQTT应用协议让用户可以更加方便地在设备之间实现远程连接和通信。本教程将介绍W6100以太网MQTT应用的基本原理、使用步骤、应用实例以及注意事项,帮助读者更好地掌握这一技术。
2.2 协议特点
MQTT协议具有以下特点:
- 轻量级:MQTT协议设计简单,协议头部开销小,适用于资源受限的设备和网络。
- 低带宽消耗:很小的传输消耗和协议数据交换,最大限度减少网络流量,有效利用网络带宽。
- 异步通信:客户端可以随时发布和订阅消息,无需等待对方的响应。
- 发布-订阅模式:消息发布者将消息发布到特定的主题,而订阅者则订阅感兴趣的主题。这种模式支持松耦合的通信和灵活的消息传递。
2.3 协议原理
在MQTT有三种角色,发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe);其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
套入具体的场景就是设备采集温湿度并发布在对应主题上,服务器会将其发布的消息发送给订阅了该主题的其他客户端(如果发布消息的客户端也订阅了该主题,那它自己也会收到)。采集温度和湿度的设备分别将数据发送到主题“temperature”和“humidity”,订阅了这两个主题的设备便会收到对应主题上的数据,如下图所示:

2.4 交互流程
以一个客户端为例,交互流程是客户端向服务器发送连接请求,服务器回复确认连接后,连接建立;客户端发送订阅主题的请求,服务器回复确认后,订阅主题完成;客户端发布消息后,服务器回复发布确认,则消息发布完成,没有操作后会根据设定的时间,每到一次发送一次心跳请求,服务器返回心跳响应,以维持连接。过程如下图所示(注:图示例子为QOS=1的情况):

值得一提的是,在订阅请求和发布消息中都有服务质量等级,等级有0,、1、2三种,分别代表最多分发一次(QOS=0)、至少分发一次(QOS=1)、仅分发一次(QOS=2);订阅请求中的服务质量等级(服务质量要求)是订阅者与服务器之间的交互规则,发布消息中的服务质量等级是发布者与服务器之间的交互规则。只是指代对象不同,相同等级对应的交互规则是相同的。
下边分别简单说下每个服务质量等级的交互过程:
QOS = 0:发送者最多发送一次,且接受者没有回复。
QOS = 1:发送者最少发送一次,接收者收到后回复确认。
QOS = 2:发送者只发送一次,接受者收到后

本文介绍了如何使用W6100-EVB-PICO开发板作为MQTT客户端连接服务器,涵盖了MQTT协议原理、交互流程、测试准备、代码示例和应用场景,展示了如何在物联网设备间实现远程连接和通信。
最低0.47元/天 解锁文章
70

被折叠的 条评论
为什么被折叠?



