|
點擊上方“嘉友創(chuàng)信息科技”,選擇關(guān)注,干貨福利,第一時間奉上。
00重卷的意義
smartConfig配網(wǎng)后,進(jìn)入用戶任務(wù),實用組合。
用戶任務(wù)啟動MQTT
MQTT服務(wù)器47.97.73.81:1883
實現(xiàn)電腦手機(jī)控制ESP32
01MQTT服務(wù)器搭建
【使用的是Mosquitto搭建MQTT服務(wù)器】,具體詳細(xì)過程請自行百度,此處簡單介紹下。
一、配置端口:找到mosquitto.conf文件,搜索listener
listener 1883二、設(shè)置賬號密碼:找到mosquitto.conf文件,搜索password_file
password_file pwfile.example設(shè)置賬號密碼,保存于pwfile.example文件內(nèi)
//命令 是否覆蓋 保存文件 用戶名mosquitto_passwd -c pwfile.example username三、打開服務(wù)器1883端口
4hdsn2eerfa64014215936.png (20.37 KB, 下載次數(shù): 2)
下載附件
保存到相冊
4hdsn2eerfa64014215936.png
2024-9-18 10:35 上傳
四、啟動mqtt服務(wù)器
mosquitto.exe -c mosquitto.conf
x3ojzj4hubm64014216036.png (14.99 KB, 下載次數(shù): 2)
下載附件
保存到相冊
x3ojzj4hubm64014216036.png
2024-9-18 10:35 上傳
02MQTT測試
【手機(jī)和電腦互測】
PC端使用通信貓測試
k3fitln2vyv64014216137.png (937.43 KB, 下載次數(shù): 1)
下載附件
保存到相冊
k3fitln2vyv64014216137.png
2024-9-18 10:35 上傳
手機(jī)端使用MQTT調(diào)試器app
xptpsqs12v364014216237.png (133.1 KB, 下載次數(shù): 2)
下載附件
保存到相冊
xptpsqs12v364014216237.png
2024-9-18 10:35 上傳
03軟件流程
【先smartConfig配網(wǎng),然后連MQTT服務(wù)器,訂閱和發(fā)布】
dxhfuwwbmce64014216337.png (130.58 KB, 下載次數(shù): 2)
下載附件
保存到相冊
dxhfuwwbmce64014216337.png
2024-9-18 10:35 上傳
04關(guān)鍵代碼
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事件回調(diào)函數(shù):連上、斷開、訂閱、發(fā)布、取消、收到數(shù)據(jù)等
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: //已發(fā)布事件 break; case MQTT_EVENT_DATA: //接收到訂閱主題的消息事件 break; case MQTT_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\r
", event->topic_len, event->topic); printf("DATA=%.*s\r
", 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)
zdvhxvwqham64014216437.png (45.48 KB, 下載次數(shù): 1)
下載附件
保存到相冊
zdvhxvwqham64014216437.png
2024-9-18 10:35 上傳
05驗證
首次使用,等待smartConfig配網(wǎng);
zitnj4n5vh564014216537.png (53.85 KB, 下載次數(shù): 2)
下載附件
保存到相冊
zitnj4n5vh564014216537.png
2024-9-18 10:35 上傳
連上MQTT;
d05xzgw3otx64014216637.png (64.33 KB, 下載次數(shù): 2)
下載附件
保存到相冊
d05xzgw3otx64014216637.png
2024-9-18 10:35 上傳
電腦/手機(jī)控制開關(guān)燈(發(fā)布主題消息);
zzeyee4iwcg64014216737.png (56.41 KB, 下載次數(shù): 2)
下載附件
保存到相冊
zzeyee4iwcg64014216737.png
2024-9-18 10:35 上傳
0fk4vushqno64014216837.png (71 KB, 下載次數(shù): 1)
下載附件
保存到相冊
0fk4vushqno64014216837.png
2024-9-18 10:35 上傳
ESP32收到MQTT消息。
xxd5pb01ppr64014216938.png (44.78 KB, 下載次數(shù): 1)
下載附件
保存到相冊
xxd5pb01ppr64014216938.png
2024-9-18 10:35 上傳
06源碼下載
公眾號后臺回復(fù)關(guān)鍵詞【ESP32】,發(fā)送后收到鏈接即可下載。舉例:關(guān)鍵詞【步進(jìn)電機(jī)】
veafdsd05s164014217038.png (106.96 KB, 下載次數(shù): 1)
下載附件
保存到相冊
veafdsd05s164014217038.png
2024-9-18 10:35 上傳
推薦閱讀:
開源自己做的4.3寸觸摸屏,SWM32單片機(jī)+LVGL
STM32使用HAL庫驅(qū)動W5500
STM32移植MQTT連接阿里云物聯(lián)網(wǎng)平臺
幾種RS485隔離通訊的方案介紹
盤點一些國產(chǎn)“有特點”的單片機(jī)
歡迎關(guān)注公眾號"嵌入式技術(shù)開發(fā)",大家可以后臺給我留言溝通交流。如果覺得該公眾號對你有所幫助,也歡迎推薦分享給其他人。 |
|