一、MQTT介绍
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种基于发布/订阅模式的轻量级通讯协议,构建于TCP/IP协议之上。它最初由IBM在1999年发布,主要用于在硬件性能受限和网络状况不佳的情况下,为远程设备提供可靠的消息传输服务。MQTT协议简单易用、可靠性高、延迟低,因此广泛应用于物联网(IoT)、机器人、智能城市管理、农业物联网以及能源监测与管理等领域。
MQTT协议由三个主要部分组成:客户端、服务器和主题。客户端是发送和接收消息的应用程序,可以是发布者或订阅者。服务器(也称为代理)负责处理消息,接收来自发布者的消息并将其传递给已订阅该主题的订阅者。主题是消息的路径,用于区分不同类型的消息。发布者将消息发布到特定主题,而订阅者则订阅感兴趣的主题以接收消息。
二、MQTT协议的工作原理如下:
连接建立:客户端(发布者或订阅者)与代理之间建立TCP连接。客户端需要提供客户端ID以及连接到代理的凭据(如用户名和密码)。
主题订阅:订阅者向代理发送订阅请求,以订阅特定的主题。
消息发布:发布者将消息发布到特定的主题。代理接收到消息后,会将其传递给已订阅该主题的订阅者。
消息传递:一旦代理接收到发布者发布的消息,并确认订阅者已订阅该主题,代理就会将消息传递给订阅者。订阅者收到消息后可以进行相应的处理。
断开连接:在通信结束后,客户端可以选择断开与代理的连接。断开连接时,客户端需要发送断开连接请求给代理。
三、MQTT协议的优点包括:
轻量级:MQTT协议规范简单,易于实现,对硬件资源要求低,适用于资源受限的设备。
高可靠性:使用TCP协议进行传输,保证了消息的可靠传递。
低延迟:基于发布/订阅模式,减少了消息传递的延迟,提高了实时性。
灵活性:MQTT协议支持多种消息传递方式,如QoS(服务质量)等级设置,以满足不同应用场景的需求。
MQTT协议在物联网领域的应用尤为广泛,可以帮助设备与云平台或中心服务器进行高效的数据交互。设备通过MQTT协议将采集到的数据发布到指定的主题,云平台或中心服务器订阅相应的主题即可实时获取数据。同时,云平台或中心服务器也可以通过MQTT向设备发送控制指令,实现对设备的远程监控与控制。
四、实验开发板:
开发板支持以太网、ESP32、ESP8266连接IOT。所有代码都是以源码形式运行在STM32上面。很方便使用更换其它模组(比如4g)
开发板购买连接:
https://item.taobao.com/item.htm?ft=t&id=881441702637
五、云平台搭建
浏览器输入网址:https://open.iot.10086.cn/
OneNet平台的搭建参考:物联网 STM32【源代码形式-使用以太网】连接OneNet IOT从云产品开发到底层MQTT实现,APP控制 【保姆级零基础搭建】-CSDN博客
六、底层设备修改
1、【修改三元组】
打开软件->组AIOT_APP->mqtt_aiot.c
2、【修改上报消息】
打开软件->组AIOT_APP->bsp_onenet_push.c
3、【修改路由器账号密码】
4、【编译下载后就看到设备在线了】
5、【进入设备调试->打开二维码】
6、连接APP
【1、首先下载云中移和物APP】
【云平台打开配网二维码】
用APP扫描绑定。
7、【APP端看到设备信息同步了】
8、【云端数据】