電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 11|回復: 0
收起左側(cè)

ESP32配網(wǎng)(smartConfig)后手機MQTT控制ESP32指示燈

[復制鏈接]

358

主題

358

帖子

1934

積分

三級會員

Rank: 3Rank: 3

積分
1934
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2022-10-20 08:01:00 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
點擊上方“嘉友創(chuàng)信息科技”,選擇關(guān)注,干貨福利,第一時間奉上。
00重卷的意義

smartConfig配網(wǎng)后,進入用戶任務,實用組合。
用戶任務啟動MQTT
MQTT服務器47.97.73.81:1883
實現(xiàn)電腦手機控制ESP32
01MQTT服務器搭建

【使用的是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 -c mosquitto.conf


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

    手機端使用MQTT調(diào)試器app

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


    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)

    05驗證
    首次使用,等待smartConfig配網(wǎng);

    連上MQTT;

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



    ESP32收到MQTT消息。


    06源碼下載
    公眾號后臺回復關(guān)鍵詞【ESP32】,發(fā)送后收到鏈接即可下載。舉例:關(guān)鍵詞【步進電機】




    推薦閱讀:
    開源自己做的4.3寸觸摸屏,SWM32單片機+LVGL
    STM32使用HAL庫驅(qū)動W5500
    STM32移植MQTT連接阿里云物聯(lián)網(wǎng)平臺
    幾種RS485隔離通訊的方案介紹
    盤點一些國產(chǎn)“有特點”的單片機
       歡迎關(guān)注公眾號"嵌入式技術(shù)開發(fā)",大家可以后臺給我留言溝通交流。如果覺得該公眾號對你有所幫助,也歡迎推薦分享給其他人。
  • 回復

    使用道具 舉報

    發(fā)表回復

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表