请选择 进入手机版 | 继续访问电脑版
查看: 720|回复: 0

[应用笔记] ESP系列基于TCP的MQTT连接

[复制链接]

185

主题

204

帖子

596

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
596
发表于 2024-2-4 10:50:37 | 显示全部楼层 |阅读模式
  引言

  示例介绍了如何基于 TCP 创建 MQTT 连接。首先用户需要创建一个本地 MQTT 代理。这里我们使用emq的开源服务端emqx。

  以下示例同时使用两块 FB82 (esp32系列)模组,其中一块作为 MQTT 发布者(只作为 MQTT 发布者角色),另一块作为 MQTT 订阅者(只作为 MQTT 订阅者角色)。

  1. 创建MQTT代理

  1.1 PC连接路由器

  首先PC连接路由器,假设这里连接的是SSID为“wifi-test”的路由器,那么模组也需要连接此路由器。

  1.2 运行EMQX代理

  下载完解压缩出来,在bin目录下打开cmd命令行,执行指令emqx.cmd start即可运行mqtt服务端,执行后cmd窗口就可以关闭了,服务已经在后台运行。

  emqx.cmd start

  1.3 登录服务端后台

  服务端运行后,可以在浏览器中输入地址http://127.0.0.1:18083 进入后台管理,用户名为admin,密码为public

  1.4 获取PC本地IP

  创建完MQTT代理的PC端IP地址为:192.168.86.6
  端口为固定的端口号:1883

  2. ESP32 MQTT订阅端

  //***********************连接同一个路由器*********************//
  AT+CWMODE=1 //初始化wifi为sta模式
  ok

  AT+CWJAP="wifi-test","12345678MQTT" // 连接AP
  WIFI CONNECTED
  WIFI GOT IP
  OK

  AT+CIPSTA? //查询IP,确认连接且获取IP成功
  +CIPSTA:ip:"192.168.86.138"
  +CIPSTA:gateway:"192.168.86.188"
  +CIPSTA:netmask:"255.255.255.0"
  OK
  //***********************设置MQTT用户属性********************//
  AT+MQTTUSERCFG=0,1,"fb82-S","","",0,0,"" //fb82-S:MQTT客户端 ID,用户自定义
  OK
  //***********************设置MQTT的连接属性******************//
  AT+MQTTCONNCFG=0,0,0,"lwtt1","lwtm1",0,0 //lwtt1:遗嘱topic,用户自定义;lwtm1:遗嘱message,用户自定义
  OK

  //***********************连接MQTT代理***********************//
  AT+MQTTCONN=0,"192.168.86.6",1883,1
  MQTTCONNECTED:0,1,"192.168.86.6","1883","",1
  OK

  //***********************订阅******************************//
  AT+MQTTSUB=0,"topic",1
  OK

  //***********************接收数据打印***********************//
  +MQTTSUBRECV:0,"topic",4,test

  3. ESP32 MQTT发布端:

  //***********************连接同一个路由器*******************//
  AT+CWMODE=1 //初始化wifi为sta模式
  ok

  AT+CWJAP="wifi-test","12345678MQTT" // 连接AP
  WIFI CONNECTED
  WIFI GOT IP
  OK

  AT+CIPSTA? //查询IP,确认连接且获取IP成功
  +CIPSTA:ip:"192.168.86.169"
  +CIPSTA:gateway:"192.168.86.188"
  +CIPSTA:netmask:"255.255.255.0"
  OK

  //***********************设置MQTT用户属性******************//
  AT+MQTTUSERCFG=0,1,"fb82-P","","",0,0,"" //fb82-P:MQTT客户端 ID,用户自定义
  OK

  //***********************设置MQTT的连接属性****************//
  AT+MQTTCONNCFG=0,0,0,"lwtt1","lwtm1",0,0 //lwtt1:遗嘱topic,用户自定义;lwtm1:遗嘱message,用户自定义
  OK

  //***********************连接MQTT代理*********************//
  AT+MQTTCONN=0,"192.168.86.6",1883,1
  MQTTCONNECTED:0,1,"192.168.86.6","1883","",1
  OK

  //***********************发布****************************//
  AT+MQTTPUB=0,"topic","test",1,0
  收←◆
  OK

  4. emqx压缩包
回复

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表