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

[复制链接]
查看8331 | 回复3 | 2021-4-28 11:13:44 | 显示全部楼层 |阅读模式
本帖最后由 GE-Rita 于 2021-5-3 13:42 编辑

一、介绍
        本文主要介绍EP8266、ESP32以及ESP32S2开发板的基于EMQX服务器实现MQTT通讯的操作过程;                    
  • 注意:
  • 本文中设备端与服务器通信过程在同一局域网中实现,因此,需要连接到同一个wifi
  • 在本操作中,ESP8266、ESP32以及ESP32S2开发板的AT指令一致,无需任何修改

二、硬件与软件准备
        关于硬件与软件准备方面参见之前的一片文档:ESP8266、ESP32以及ESP32-S2的AT指令固件烧录

三、操作步骤
       (1) 下载EMQX软件,软件获取链接:https://www.emqx.cn/downloads#broker

       (2) 这里以Windows版本为例下载EMQX软件
EMQX_windows download.png


        (3)将下载好的EMQX软件压缩包解压到自定义路径中,如本机路径为:D:\EMQX\emqx,打开Windows PowerShell,指定到EMQX软件的路径,输入“./bin/emqx start”命令,若无报错,即服务器开启成功
PowerShell cmd.png

(4) 打开浏览器,输入“本地IP:18083”或者“localhost:18083”域名,点击enter访问,输入账号“admin”,密码“public”,点击login

EMQX_Dashboard operation.png

       (5) 进入Dashboard界面,点击Tools,选择Websocket,点击“Connect”;
EMQX_Dashboard Connect To MQTT server.png

       (6) 在Subscribe对话框中,Topic内容填写“ESP8266/online”,Qos选择0,点击Subscribe;在Message对话框中,Topic内容填写“ESP8266/EMQX”,Message内容填写“abcde”,Qos选择0

Sub&Pub operation.png

       (7) 打开串口,重启单片机,开始发送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值以及消息内容等信息,效果如下:
Serial pub.png


  (8) 在Dashboard界面中将设置好的Message数据send出去之后,串口将显示接收到的数据内容,包括QOS值以及消息内容,效果如下:

Serial sub.png


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









回复

使用道具 举报

san | 2023-12-17 21:58:18 | 显示全部楼层
学习
回复

使用道具 举报

WT_0213 | 2024-2-5 09:49:43 | 显示全部楼层
学习
回复

使用道具 举报

lazy | 2024-2-5 11:44:19 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则