0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Mosquitto搭建MQTT服务器的详细过程

嵌入式技术开发 来源:嘉友创信息科技 作者:jiauc 2022-10-20 09:03 次阅读

00 重卷的意义

smartConfig配网后,进入用户任务,实用组合。

用户任务启动MQTT

MQTT服务器47.97.73.81:1883

实现电脑手机控制ESP32

01 MQTT服务器搭建

【使用的是Mosquitto搭建MQTT服务器】,具体详细过程请自行百度,此处简单介绍下

一、配置端口:找到mosquitto.conf文件,搜索listener

listener 1883

二、设置账号密码:找到mosquitto.conf文件,搜索password_file

password_file pwfile.example

设置账号密码,保存于pwfile.example文件内

//命令          是否覆盖   保存文件     用户名
mosquitto_passwd -c  pwfile.example username

三、打开服务器1883端口

c863e6bc-500f-11ed-a3b6-dac502259ad0.png

四、启动mqtt服务器

mosquitto.exe-cmosquitto.conf

c87e5484-500f-11ed-a3b6-dac502259ad0.png

02 MQTT测试

【手机和电脑互测

PC端使用通信猫测试

c88f456e-500f-11ed-a3b6-dac502259ad0.png

手机端使用MQTT调试器app

c8e8c5f8-500f-11ed-a3b6-dac502259ad0.png

03 软件流程

【先smartConfig配网,然后连MQTT服务器,订阅和发布

c90f2158-500f-11ed-a3b6-dac502259ad0.png

04 关键代码

MQTT初始化:域名、端口、账号、密码

staticvoidmqtt_app_start(void)
{
    esp_mqtt_client_config_t mqtt_cfg = {
        .host = "www.jiauc.com",
        .port = 1883,
        .username = "admin",
        .password = "123456",
};
    esp_mqtt_client_handle_t client = esp_mqtt_client_init(&mqtt_cfg);
    esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, client);
    esp_mqtt_client_start(client);
}

MQTT事件回调函数:连上、断开、订阅、发布、取消、收到数据等

staticesp_err_tmqtt_event_handler_cb(esp_mqtt_event_handle_tevent)
{
    esp_mqtt_client_handle_t client = event->client;
intmsg_id;
    switch (event->event_id) {
        case MQTT_EVENT_CONNECTED:
        //连上mqtt事件
            break;
caseMQTT_EVENT_DISCONNECTED:
//断开mqtt事件
break;
        case MQTT_EVENT_SUBSCRIBED:
        //已订阅事件
            break;
        case MQTT_EVENT_UNSUBSCRIBED:
        //取消订阅事件
            break;
        case MQTT_EVENT_PUBLISHED:
        //已发布事件
            break;
caseMQTT_EVENT_DATA:
//接收到订阅主题的消息事件
            break;
caseMQTT_EVENT_ERROR:
//错误
            break;
        default:
            break;
    }
    return ESP_OK;
}

MQTT发布主题"/topic/qos0"消息"data"

msg_id = esp_mqtt_client_publish(client, "/topic/qos0", "data", 0, 0, 0);

MQTT订阅主题"/topic/qos0"

msg_id = esp_mqtt_client_subscribe(client, "/topic/qos0", 0);

电脑控制ESP32点灯

case MQTT_EVENT_DATA://接收到已定阅主题数据
  ESP_LOGI(TAG, "MQTT_EVENT_DATA");
  printf("TOPIC=%.*s
", event->topic_len, event->topic);
  printf("DATA=%.*s
", event->data_len, event->data);
  //控制LED
  if(memcmp(event->data,"On",event->data_len)==0)
  {
      led_on();
  }else if(memcmp(event->data,"Off",event->data_len)==0)
  {
      led_off();
  }
break;

工程目录结构

c91d151a-500f-11ed-a3b6-dac502259ad0.png

05 验证

首次使用,等待smartConfig配网;

c937a506-500f-11ed-a3b6-dac502259ad0.png

连上MQTT;

c93d9c7c-500f-11ed-a3b6-dac502259ad0.png

电脑/手机控制开关灯(发布主题消息);

c957554a-500f-11ed-a3b6-dac502259ad0.png

c95fb3ca-500f-11ed-a3b6-dac502259ad0.png

ESP32收到MQTT消息。

c98011c4-500f-11ed-a3b6-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8129

    浏览量

    82570
  • mosquitto
    +关注

    关注

    0

    文章

    4

    浏览量

    2912
  • MQTT
    +关注

    关注

    5

    文章

    540

    浏览量

    21981

原文标题:ESP32配网(smartConfig)后手机MQTT控制ESP32指示灯

文章出处:【微信号:嵌入式技术开发,微信公众号:嵌入式技术开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    在英特尔Edison开发平台上运行Mosquitto MQTT

    。测试 mosquitto 客户端和服务器Edison 操作系统配置为自动启动 rsmb 代理。 rsmb 已经设置为使用默认 TCP 端口 1883。 我们将使用默认 MQTT 端口在 rsmb 代理
    发表于 06-15 14:10

    NetRouter开发板之物联网篇 MQTT、Websocket

    开发板终于有新动作。将根据物联网添加以下章节:玩转MQTT他山之石----使用ESP8266订阅和推送消息Mosquitto编译方法使用开源服务器测试PC使用嵌入式版本体验交叉编译PC链接开源云平台
    发表于 07-13 22:23

    怎么搭建MQTT服务器

    怎么搭建MQTT服务器
    发表于 06-01 15:04

    在linux上搭建mqtt服务器

    在linux上搭建mqtt服务器并不难,主要就是用到了mosquitto这款消息代理服务软件其采用发布/订阅模式传输机制,轻量、简单、开放并
    发表于 07-04 08:08

    mosquitto的使用方法

      1、mosquitto简介  mosquitto是一款开源的MQTT消息代理(服务器)软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,
    发表于 01-19 15:58

    kawayi mqtt连接mosquitto始终连接不上怎么解决?

    各位大咖好,遇到难点了,求助!之前用lwip+phy调试和pc互ping没问题,现在在此基础上增加了kawayi mqtt软件包,尝试连接创建的mosquitto服务器(ip
    发表于 05-06 09:50

    基于OpenHarmony的本地MQTT服务实现

    mosquitto.conf文件,如图5所示。图5 mosquitto配置文件在mosquitto.conf文件末尾增加如下配置,其中,192.168.1.164为PC端IP地址,1883为
    发表于 05-26 17:46

    如何用数据采集网关快速采集工业现场数据,怎么搭建MQTT服务器

    服务器端建议采用Mosquitto 1.14 Broker ( mqtt v3.1),它是一个开源的MQTT 代理Eclipse Mosquitto
    发表于 08-30 19:46

    kawayi mqtt连接mosquitto失败怎样解决该问题?

    各位大咖好,遇到难点了,求助!之前用lwip+phy调试和pc互ping没问题,现在在此基础上增加了kawayi mqtt软件包,尝试连接创建的mosquitto服务器(ip
    发表于 02-08 11:44

    通过Mosquitto发布到代理到服务器后如何断开MQTT

    我正在处理 MQTT 代码 (tuanpmt),我想在数据通过 Mosquitto 发布到代理到服务器后断开 MQTTMQTT:发送,类
    发表于 06-12 07:44

    搭建MQTT服务器步骤操作经验分享

    怎么搭建MQTT服务器
    发表于 05-23 11:01 22次下载

    怎么搭建MQTT服务器

          服务器端建议采用Mosquitto 1.14 Broker ( mqtt v3.1),它是一个开源的MQTT 代理      Eclipse
    发表于 06-11 15:39 480次阅读
    怎么<b class='flag-5'>搭建</b><b class='flag-5'>MQTT</b><b class='flag-5'>服务器</b>

    如何搭建一个MQTT服务器

    、小型设备、移动应用等方面有较广泛的应用。  MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻
    的头像 发表于 05-10 14:31 7647次阅读
    如何<b class='flag-5'>搭建</b>一个<b class='flag-5'>MQTT</b><b class='flag-5'>服务器</b>?

    Node搭建本地MQTT服务器

    Tips:点击上方“在线学习”按钮即可在线观看精品IT课程大家好,我是牛牛。今天给分享一下使用Node搭建MQTT服务端的流程,主要包含以下几部分内容:MQTT介绍
    的头像 发表于 05-26 14:11 966次阅读
    Node<b class='flag-5'>搭建</b>本地<b class='flag-5'>MQTT</b><b class='flag-5'>服务器</b>

    使用mosquitto搭建mqtt broker

    Eclipse Mosquitto是一个开源(EPL/EDL许可)消息代理(broker),它实现了MQTT协议版本5.0、3.1.1和3.1。Mosquito重量轻,适用于从低功耗单板计算机到完整服务器的所有设备。
    的头像 发表于 09-28 15:37 1426次阅读
    使用<b class='flag-5'>mosquitto</b><b class='flag-5'>搭建</b><b class='flag-5'>mqtt</b> broker