00 重卷的意義
smartConfig配網(wǎng)后,進入用戶任務,實用組合。
用戶任務啟動MQTT
MQTT服務器47.97.73.81:1883
01 MQTT服務器搭建
【使用的是Mosquitto搭建MQTT服務器】,具體詳細過程請自行百度,此處簡單介紹下。
一、配置端口:找到mosquitto.conf文件,搜索listener
listener 1883
二、設置賬號密碼:找到mosquitto.conf文件,搜索password_file
password_file pwfile.example
設置賬號密碼,保存于pwfile.example文件內(nèi)
//命令 是否覆蓋 保存文件 用戶名 mosquitto_passwd -c pwfile.example username
三、打開服務器1883端口

四、啟動mqtt服務器
mosquitto.exe-cmosquitto.conf

02 MQTT測試
【手機和電腦互測】
PC端使用通信貓測試

手機端使用MQTT調試器app

03 軟件流程
【先smartConfig配網(wǎng),然后連MQTT服務器,訂閱和發(fā)布】

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事件回調函數(shù):連上、斷開、訂閱、發(fā)布、取消、收到數(shù)據(jù)等
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: //已發(fā)布事件 break; caseMQTT_EVENT_DATA: //接收到訂閱主題的消息事件 break; caseMQTT_EVENT_ERROR: //錯誤 break; default: break; } return ESP_OK; }
MQTT發(fā)布主題"/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://接收到已定閱主題數(shù)據(jù)
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配網(wǎng);

連上MQTT;

電腦/手機控制開關燈(發(fā)布主題消息);


ESP32收到MQTT消息。

審核編輯:湯梓紅
-
服務器
+關注
關注
13文章
10077瀏覽量
90825 -
mosquitto
+關注
關注
0文章
5瀏覽量
3052 -
MQTT
+關注
關注
5文章
717瀏覽量
24757
原文標題:ESP32配網(wǎng)(smartConfig)后手機MQTT控制ESP32指示燈
文章出處:【微信號:嵌入式技術開發(fā),微信公眾號:嵌入式技術開發(fā)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
使用windows版mosquitto軟件自建一個服務器
在英特爾Edison開發(fā)平臺上運行Mosquitto MQTT
NetRouter開發(fā)板之物聯(lián)網(wǎng)篇 MQTT、Websocket
在linux上搭建mqtt服務器
如何用數(shù)據(jù)采集網(wǎng)關快速采集工業(yè)現(xiàn)場數(shù)據(jù),怎么搭建MQTT服務器?
kawayi mqtt連接mosquitto失敗怎樣解決該問題?
通過Mosquitto發(fā)布到代理到服務器后如何斷開MQTT?
怎么搭建MQTT服務器
如何搭建Linux服務器的詳細資料說明
Node搭建本地MQTT服務器
使用mosquitto搭建mqtt broker

使用Mosquitto搭建MQTT服務器的詳細過程
評論