基于STM32实现MQTT |
您所在的位置:网站首页 › at指令mqtt通讯 › 基于STM32实现MQTT |
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。 协议详情: MQTT Version 3.1.1(英文版) (中文版) 2、STM32实现的自我理解既然是一个协议,所以有一个基本的物理网络层就可以实现 将就手上的一个ESP8266无线wifi串口模块,一个STM32的板子。也就可以完成MQTT的测试了。 一般来说在协议中扮演的是一个客户端。主要的工作就是连接服务器、订阅消息、发送消息几个功能。最开始我在网上找了MQTT的客户端代码包,打开一看就蒙了。太多、太杂了,完全大于了我们的需求。所以我自己通过抓包对着协议写了一个数据包生成代码。 3、测试前准备MQTT服务器:我用的是Apollo Console(账号默认为:admin 密码默认:password 后面连接时要用) MQTT客户端: 通信猫。 具体怎么用大家百度。。。 4、代码实现 4.1、固定报头 Fixed header类型: 标志位: 根据这个可以写一个生成固定头的函数 #define MQTT_TypeCONNECT 1//请求连接 #define MQTT_TypeCONNACK 2//请求应答 #define MQTT_TypePUBLISH 3//发布消息 #define MQTT_TypePUBACK 4//发布应答 #define MQTT_TypePUBREC 5//发布已接收,保证传递1 #define MQTT_TypePUBREL 6//发布释放,保证传递2 #define MQTT_TypePUBCOMP 7//发布完成,保证传递3 #define MQTT_TypeSUBSCRIBE 8//订阅请求 #define MQTT_TypeSUBACK 9//订阅应答 #define MQTT_TypeUNSUBSCRIBE 10//取消订阅 #define MQTT_TypeUNSUBACK 11//取消订阅应答 #define MQTT_TypePINGREQ 12//ping请求 #define MQTT_TypePINGRESP 13//ping响应 #define MQTT_TypeDISCONNECT 14//断开连接 unsigned char GetDataFixedHead(unsigned char MesType,unsigned char DupFlag,unsigned char QosLevel,unsigned char Retain) { unsigned char dat = 0; dat = (MesType & 0x0f) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |