MQTT应用——EMQ服务器(AT指令)

前言

本文主要介绍EP8266、ESP32以及ESP32S2开发板,借助EMQ服务器实现MQTT通讯的操作过程

  • 注意:
  1. 本文中客户端与服务器在同一局域网中实现透传功能,因此,需要连接到同一个wifi上
  2. ESP8266、ESP32以及ESP32S2开发板的AT指令一致,无需任何修改

固件烧录的硬件与软件准备

固件烧录部分参考ESP-Touch配网的实现固件烧录章节,这里不再赘述

操作步骤

  1. 下载EMQX软件
    软件获取链接:https://www.emqx.cn/downloads#broker,这里以windows版本为例
    在这里插入图片描述

  2. 将下载好的EMQX软件压缩包解压到自定义路径中,如本机路径为:D:\EMQX\emqx,打开Windows PowerShell,指定到EMQX软件的路径,输入“./bin/emqx start”命令,若无报错,即服务器开启成功
    在这里插入图片描述

  3. 打开浏览器,输入“本地IP:18083”,如本机的IP地址为192.168.2.158,或者输入“localhost:18083”域名,点击enter访问,输入账号“admin”,密码“public”,点击login
    在这里插入图片描述

  4. 进入Dashboard界面,点击Tools,选择Websocket,点击“Connect”;
    在这里插入图片描述

  5. MQTT连接成功之后,在Subscribe对话框中,Topic内容填写“ESP8266/online”,Qos选择0,点击Subscribe;在Message对话框中,Topic内容填写“ESP8266/EMQX”,Message内容填写“abcde”,Qos选择0
    在这里插入图片描述

  6. 打开串口,重启单片机(按下单片机复位键),开始发送AT指
    依次发送AT指令

	AT                                                  #测试AT功能
	AT+CWMODE=1                                         #设置模组进入STA模式
	AT+CWJAP="ssid","password"                          #连接wifi
	AT+MQTTUSERCFG=0,1,"用户ID","登陆账号","密码",0,0,""         
	                                                    #设置MQTT连接所需要的的参数,
	                                                    #包括用户ID(随机取,不为空)、 账号(admin)以及密码(public)
	AT+MQTTCONN=0,"本地IP",1883,0
	AT+MQTTPUB=0,"ESP8266/online","1",0,0                                                
	                                                    #发布一条topic为“ESP8266/online”,message为“1”的数据,
	                                                    #QOS设置为0
	AT+MQTTSUB=0,"ESP8266/EMQX",0                       #订阅一条topic为“ESP8266/EMQX”,QOS为0的数据

操作结束之后,DashBoard中Messages received显示sub到这条数据的时间、QOS值以及消息内容等信息,效果如下:
在这里插入图片描述

  1. 在Dashboard界面中将设置好的Message数据send出去之后,串口将显示接收到的数据内容,包括QOS值以及消息内容,效果如下:
    在这里插入图片描述

  2. 关闭MQTT连接,在串口中输入AT指令:AT+MQTTCLEAN=0

总结

MQTT协议是基于TCP协议的应用层协议,其主要特点是MQTT是基于客户端-服务器的消息发布与订阅协议。
提供了一对多消息分发,以实现与应用程序的解耦。
对负载内容屏蔽的消息传输机制。
对传输消息有三种服务质量(QoS)可选。
数据传输和协议交换的最小化(协议头部只有2字节),以减少网络流量。
通知机制,异常中断时通知传输双方。
更多MQTT协议的工作详情参考文章——MQTT协议详解

联系我们

以上就是本期分享的内容,目的在于让大家快速适应新品方案的开发,以上提供的驱动源码联系我们可以免费提供

官方官网:https://www.ai-thinker.com
开发资料:https://docs.ai-thinker.com/
官方论坛:http://bbs.ai-thinker.com
商务合作:sales@aithinker.com
技术支持:support@aithinker.com
公司地址: 深圳市宝安区西乡固戍华丰智慧创新港C栋410
联系电话:0755-29162996

相关推荐