00 重卷的意義
smartConfig配網(wǎng)后,進(jìn)入用戶任務(wù),實(shí)用組合。
用戶任務(wù)啟動(dòng)MQTT
MQTT服務(wù)器47.97.73.81:1883
01 MQTT服務(wù)器搭建
【使用的是Mosquitto搭建MQTT服務(wù)器】,具體詳細(xì)過(guò)程請(qǐng)自行百度,此處簡(jiǎn)單介紹下。
一、配置端口:找到mosquitto.conf文件,搜索listener
listener 1883
二、設(shè)置賬號(hào)密碼:找到mosquitto.conf文件,搜索password_file
password_file pwfile.example
設(shè)置賬號(hào)密碼,保存于pwfile.example文件內(nèi)
//命令 是否覆蓋 保存文件 用戶名 mosquitto_passwd -c pwfile.example username
三、打開服務(wù)器1883端口
四、啟動(dòng)mqtt服務(wù)器
mosquitto.exe-cmosquitto.conf
02 MQTT測(cè)試
【手機(jī)和電腦互測(cè)】
PC端使用通信貓測(cè)試
手機(jī)端使用MQTT調(diào)試器app
03 軟件流程
【先smartConfig配網(wǎng),然后連MQTT服務(wù)器,訂閱和發(fā)布】
04 關(guān)鍵代碼
MQTT初始化:域名、端口、賬號(hào)、密碼
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事件回調(diào)函數(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: //錯(cuò)誤 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點(diǎn)燈
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;
工程目錄結(jié)構(gòu)
05 驗(yàn)證
首次使用,等待smartConfig配網(wǎng);
連上MQTT;
電腦/手機(jī)控制開關(guān)燈(發(fā)布主題消息);
ESP32收到MQTT消息。
審核編輯:湯梓紅
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9160瀏覽量
85416 -
mosquitto
+關(guān)注
關(guān)注
0文章
5瀏覽量
2933 -
MQTT
+關(guān)注
關(guān)注
5文章
651瀏覽量
22504
原文標(biāo)題:ESP32配網(wǎng)(smartConfig)后手機(jī)MQTT控制ESP32指示燈
文章出處:【微信號(hào):嵌入式技術(shù)開發(fā),微信公眾號(hào):嵌入式技術(shù)開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論