W5500 如何通过 MQTT 协议连接阿里云
一、 简介:
1、 开发环境与连接平台:
本文主要介绍 W5500 如何通过 MQTT 协议将设备连接到阿里云 IoT,并通过 MQTT 协议实
现通信。MQTT 协议是基于 TCP 的协议,所以我们只需要在单片机端实现 TCP 客户端代码之
后就很容易移植 MQTT 了, +W5500 实现 TCP 客户端的代码我们以前已经实现过,程序下载
地址为(http://www.w5500.com/)
软件环境:Windows
硬件环境:STM32F103+W5500
开发工具:Keil uVision5
调试工具:Wireshark、串口调试助手
连接平台:阿里云-华东 2 节点(https://www.aliyun.com)
2、 MQTT 简介:
MQTT 官网地址:(http://mqtt.org/)
1) MQTT 协议特点
MQTT 是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT 协议是轻量、简单、
开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,
如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号
的医疗设备、智能家居、及一些小型化设备中已广泛使用。
MQTT 协议当前版本为,2014 年发布的 MQTT v3.1.1。除标准版外,还有一个简化版 MQTT-
SN,该协议主要针对嵌入式设备,这些设备一般工作于百 TCP/IP 网络,如:ZigBee。
MQTT 协议运行在 TCP/IP 或其他网络协议,提供有序、无损、双向连接。其特点包括:
使用的发布/订阅消息模式,它提供了一对多消息分发,以实现与应用程序的解耦。
对负载内容屏蔽的消息传输机制。
对传输消息有三种服务质量(QoS):
最多一次,这一级别会发生消息丢失或重复,消息发布依赖于底层 TCP/IP 网络。
即:<=1
至多一次,这一级别会确保消息到达,但消息可能会重复。即:>=1
只有一次,确保消息只有一次到达。即:=1。在一些要求比较严格的计费系统中,
可以使用此级别
数据传输和协议交换的最小化(协议头部只有 2 字节),以减少网络流量
通知机制,异常中断时通知传输双方
2) MQTT 协议原理及实现方式
实现 MQTT 协议需要:客户端和服务器端
MQTT 协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者
(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者
可以同时是订阅者。
MQTT 传输的消息分为:主题(Topic)和消息的内容(payload)两部分
Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息
内容(payload)
payload,可以理解为消息的内容,是指订阅者具体要使用的内容