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

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端口
四、启动mqtt服务器
mosquitto.exe -c mosquitto.conf
02 mqtt测试
【手机和电脑互测】
pc端使用通信猫测试
手机端使用mqtt调试器app
03 软件流程
【先smartconfig配网,然后连mqtt服务器,订阅和发布】
04 关键代码
mqtt初始化:域名、端口、账号、密码
static void mqtt_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事件回调函数:连上、断开、订阅、发布、取消、收到数据等
static esp_err_t mqtt_event_handler_cb(esp_mqtt_event_handle_t event){ esp_mqtt_client_handle_t client = event->client;    int msg_id; switch (event->event_id) { case mqtt_event_connected: //连上mqtt事件 break;        case mqtt_event_disconnected:        //断开mqtt事件            break; case mqtt_event_subscribed: //已订阅事件 break; case mqtt_event_unsubscribed: //取消订阅事件 break; case mqtt_event_published: //已发布事件 break;        case mqtt_event_data:        //接收到订阅主题的消息事件 break;        case mqtt_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;  
工程目录结构
05 验证
首次使用,等待smartconfig配网;
连上mqtt;
电脑/手机控制开关灯(发布主题消息);
esp32收到mqtt消息。


上海率先发布“首发经济”系列团体标准 助力消费转型升级
浅析安森美半导体的智能手机电源管理方案
除了门禁人脸识别功能,宽动态人脸识别门禁还有哪些优势?
华为就采购禁令与日本政府会谈,谋求化解资安疑虑
【IoT开发】基于机智云物联网的智能浇花教程
使用Mosquitto搭建MQTT服务器的详细过程
Intel解释首款7nmEUV产品为什么是GPU而非预期中的CPU
新型MOSFET栅极驱动IC助力移动电子设备小型化
有什么性价比高的半入耳蓝牙耳机?性价比蓝牙耳机推荐
浪潮智能存储助力广汽研究院建立数据容灾系统
物联网技术的市场是巨大的还是渺小的
Onlogic围绕Elkhart Lake打造的全新无风扇设计的10nm处理器
关于功率半导体器件助力华虹宏力的分享和介绍
PS5与Xbox到底谁更好?
ds18b20测温程序,ds18b20温度测量c51单片机程序
红鹏全国经销商新品发布会召开 小金牛正式亮相
芯粤能半导体碳化硅芯片制造项目通过广东省能源局节能审查
如何解决激光电视散热问题
安全开发之应用层Hook技术
霍尔开关的主要分类有哪些