乐鑫技术交流
直播中

廖阿朋

7年用户 1246经验值
私信 关注
[问答]

使用esp-adf下面的smart config模式使用EspTouch配网一点反应都没有,为什么?

#include
#include
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "esp_system.h"
#include "esp_event.h"

#include "esp_log.h"
#include "lwip/err.h"
#include "lwip/sys.h"
#include "zmgccs_main.h"
#include "esp_netif.h"
#include "wifi_service.h"
#include "smart_config.h"
#include "tcpip_adapter.h"
#include "tcpip_adapter_types.h"
#include "doMP3.h"

char *TAG_WIFI = "zmg-WIFI";
static int s_retry_num = 0;
static periph_service_handle_t wifi_serv;
static bool is_smart_config = false;
static wifi_service_event_t wifi_serv_stat= WIFI_SERV_EVENT_UNKNOWN;
//主任务会间隔5秒调用一次WiFi连接函数
esp_err_t wifi_connecting(bool reconnect)
{   
    wifi_config_t wifi_config;

   
    if (wifi_serv_stat != WIFI_SERV_EVENT_CONNECTED && reconnect)
    { //还未连接重新连接
      if (is_smart_config)
      {
          wifi_service_setting_stop(wifi_serv,0);
          is_smart_config = false;

      } else {
          wifi_service_disconnect(wifi_serv);
      }
        memset(wifi_config.sta.ssid,0,sizeof(wifi_config.sta.ssid));
        memcpy(wifi_config.sta.ssid ,hd_param.WIFI_SSID,sizeof(hd_param.WIFI_SSID));
        memset(wifi_config.sta.password,0,sizeof(wifi_config.sta.password));
        memcpy(wifi_config.sta.password ,hd_param.WIFI_PASSWORD,sizeof(hd_param.WIFI_PASSWORD));
        ESP_ERROR_CHECK_WITHOUT_ABORT(wifi_service_set_sta_info(wifi_serv, &wifi_config));
      
        esp_restart();
        return ESP_OK;

    }
    if (wifi_serv_stat == WIFI_SERV_EVENT_CONNECTED && reconnect == false)
      return ESP_OK;
    if ((wifi_serv_stat == WIFI_SERV_EVENT_CONNECTED && reconnect ))
    {
         memset(wifi_config.sta.ssid,0,sizeof(wifi_config.sta.ssid));
         memcpy(wifi_config.sta.ssid ,hd_param.WIFI_SSID,sizeof(hd_param.WIFI_SSID));
         memset(wifi_config.sta.password,0,sizeof(wifi_config.sta.password));
         memcpy(wifi_config.sta.password ,hd_param.WIFI_PASSWORD,sizeof(hd_param.WIFI_PASSWORD));

         ESP_ERROR_CHECK_WITHOUT_ABORT(wifi_service_disconnect(wifi_serv));   
         //ESP_ERROR_CHECK_WITHOUT_ABORT(wifi_service_erase_ssid_manager_info(wifi_serv));   
         ESP_ERROR_CHECK_WITHOUT_ABORT(wifi_service_set_sta_info(wifi_serv, &wifi_config));
         
         vTaskDelay(200/portTICK_PERIOD_MS);
         esp_restart();
         //ESP_ERROR_CHECK_WITHOUT_ABORT(wifi_service_connect(wifi_serv));
         return ESP_OK;
    }

    if (is_smart_config) //处于EspTotch配网中不能再自动连接了
    {
        return ESP_OK;
    }
    if (s_retry_num < 3) { //尝试3次连接
        if (wifi_serv_stat == WIFI_SERV_EVENT_UNKNOWN || wifi_serv_stat == WIFI_SERV_EVENT_DISCONNECTED || reconnect)
        {
            wifi_service_get_last_ssid_cfg(wifi_serv,&wifi_config);
            ESP_LOGI(TAG_WIFI, "old wifi SSID:%s, password:%s",wifi_config.sta.ssid, wifi_config.sta.password);
            ESP_LOGI(TAG_WIFI, "retry %d to connect to the AP SSID:%s, password:%s",s_retry_num,hd_param.WIFI_SSID, hd_param.WIFI_PASSWORD);

             memset(wifi_config.sta.ssid,0,sizeof(wifi_config.sta.ssid));
             memcpy(wifi_config.sta.ssid ,hd_param.WIFI_SSID,sizeof(hd_param.WIFI_SSID));
             memset(wifi_config.sta.password,0,sizeof(wifi_config.sta.password));
             memcpy(wifi_config.sta.password ,hd_param.WIFI_PASSWORD,sizeof(hd_param.WIFI_PASSWORD));

            ESP_LOGI(TAG_WIFI, "wifi_config SSID:%s, password:%s",wifi_config.sta.ssid, wifi_config.sta.password);
            //由于手机EspTouch配网一直不成功增加了WIFI_IS_SMART_CONFIG =1配网,2直连 通过串口配置ssid,password
             if (hd_param.WIFI_IS_SMART_CONFIG == 1){
                ESP_ERROR_CHECK_WITHOUT_ABORT(wifi_service_setting_start(wifi_serv,0));
                is_smart_config = true;
             } else{
                ESP_ERROR_CHECK_WITHOUT_ABORT(wifi_service_set_sta_info(wifi_serv, &wifi_config));
                ESP_ERROR_CHECK_WITHOUT_ABORT(wifi_service_connect(wifi_serv));
                is_smart_config = false;
             }
             //语音:30 WiFi连接中           
             player_mp3_play((uint16_t)voice_wifi_connecting);
            s_retry_num++;

            //esp_restart();
        }
    } else { //3次后 就开始配网
        if (!is_smart_config){
          //语音 29 WIFI未连接,请用手机或串口配置
          player_mp3_play((uint16_t)voice_wifi_disconnected);
          wifi_service_setting_start(wifi_serv,0);
          s_retry_num = 0;
          is_smart_config = true;
        }

    }

    return ESP_OK;
}
static esp_err_t wifi_service_cb(periph_service_handle_t handle, periph_service_event_t *evt, void *ctx)
{
   wifi_config_t wifi_cfg;
           
    if (evt->type == WIFI_SERV_EVENT_CONNECTED) {
        wifi_serv_stat = WIFI_SERV_EVENT_CONNECTED;
        ESP_LOGI(TAG_WIFI, "PERIPH_WIFI_CONNECTED [%d]", __LINE__);
        if (is_smart_config){
           wifi_service_setting_stop(wifi_serv,0);
           is_smart_config = false;
        }
        if( wifi_service_get_last_ssid_cfg(wifi_serv,&wifi_cfg) == ESP_OK )
        {
          if (memcmp(hd_param.WIFI_SSID,wifi_cfg.sta.ssid,32) != 0 || memcmp(hd_param.WIFI_PASSWORD,wifi_cfg.sta.password,64) != 0)
          {
            bzero(hd_param.WIFI_SSID,sizeof(hd_param.WIFI_SSID));
            bzero(hd_param.WIFI_PASSWORD,sizeof(hd_param.WIFI_PASSWORD));
            strcpy((char *)hd_param.WIFI_SSID,(char *)wifi_cfg.sta.ssid);
            strcpy((char *)hd_param.WIFI_PASSWORD,(char *)wifi_cfg.sta.password);
            save_param();

          }
          hd_param.WIFI_IS_SMART_CONFIG = 2;
          tcpip_adapter_ip_info_t ip;
          tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_STA, &ip);
         
          memcpy(hd_param.WIFI_IP,((uint8_t*)(&ip.ip.addr)),4);
          memcpy(hd_param.WIFI_GW,((uint8_t*)(&ip.gw.addr)),4);
          memcpy(hd_param.WIFI_MASK,((uint8_t*)(&ip.netmask.addr)),4);
          //语音:当前ip是
          player_mp3_play((uint16_t)voice_current_ip);
          vTaskDelay(200);
          char ipstr[20];
          sprintf(ipstr,"%d.%d.%d.%d",hd_param.WIFI_IP[0],hd_param.WIFI_IP[1],hd_param.WIFI_IP[2],hd_param.WIFI_IP[3]);
          int j= strlen((char *)ipstr);
          ESP_LOGI(TAG_WIFI, "WIFI_CONNECTED [%d],ip:%s,strlen:%d", __LINE__,ipstr,j);
          for (int i=0;i< j;i++){
             switch (ipstr[i])
             {
             case 46:
                 player_mp3_play((uint16_t)voice_point);
                 break;
             case 48:
                 player_mp3_play((uint16_t)voice_zero);
                 break;
             case 49:
                 player_mp3_play((uint16_t)voice_one);
                 break;
             case 50:
                 player_mp3_play((uint16_t)voice_two);
                 break;
             case 51:
                 player_mp3_play((uint16_t)voice_three);
                 break;
             case 52:
                 player_mp3_play((uint16_t)voice_four);
                 break;
             case 53:
                 player_mp3_play((uint16_t)voice_five);
                 break;
             case 54:
                 player_mp3_play((uint16_t)voice_six);
                 break;
             case 55:
                 player_mp3_play((uint16_t)voice_seven);
                 break;
             case 56:
                 player_mp3_play((uint16_t)voice_eight);
                 break;
             case 57:
                 player_mp3_play((uint16_t)voice_nine);
                 break;
            
             default:
                 break;
             }
             vTaskDelay(60);
          }
          hd_param.WIFI_CONNECTED = true;
        }

    } else if (evt->type == WIFI_SERV_EVENT_DISCONNECTED) {

        wifi_serv_stat = WIFI_SERV_EVENT_DISCONNECTED;
        player_mp3_play((uint16_t)voice_wifi_disconnected);
      
        ESP_LOGI(TAG_WIFI, "PERIPH_WIFI_DISCONNECTED [%d]", __LINE__);
        hd_param.WIFI_CONNECTED = false;
        wifi_service_disconnect_reason_t wifi_rs = wifi_service_disconnect_reason_get(wifi_serv);
            
        if ((wifi_rs == WIFI_SERV_STA_AUTH_ERROR || wifi_rs == WIFI_SERV_STA_AP_NOT_FOUND) )
        {
          //语音 29 WIFI未连接,请用手机或串口配置
          player_mp3_play((uint16_t)voice_wifi_disconnected);
        }   
        
        
    } else if (evt->type == WIFI_SERV_EVENT_SETTING_TIMEOUT) {
        wifi_serv_stat = WIFI_SERV_EVENT_SETTING_TIMEOUT;
        ESP_LOGW(TAG_WIFI, "WIFI_SERV_EVENT_SETTING_TIMEOUT [%d]", __LINE__);      
        //语音 29 WIFI未连接,请用手机或串口配置
        
        if (is_smart_config) //继续
        {
         // wifi_service_disconnect(wifi_serv);  
         // wifi_service_erase_ssid_manager_info(wifi_serv);
          wifi_service_setting_start(wifi_serv,0);
          s_retry_num = 0;
          is_smart_config = true;
        }
        
    } else if (evt->type == WIFI_SERV_EVENT_SETTING_FINISHED){
        ESP_LOGW(TAG_WIFI, "WIFI_SERV_EVENT_SETTING_FINISHED [%d]", __LINE__);  
        
       // is_smart_config = false;     
    } else if (evt->type == WIFI_SERV_EVENT_SETTING_FAILED ){
        ESP_LOGW(TAG_WIFI, "WIFI_SERV_EVENT_SETTING_FAILED [%d]", __LINE__);      

    } else if (evt->type == WIFI_SERV_EVENT_CONNECTING){
       ESP_LOGW(TAG_WIFI, "WIFI_SERV_EVENT_CONNECTING [%d]", __LINE__);           
    }
   
    return ESP_OK;
}



void initialise_wifi_sta(void)
{

   
    int reg_idx = 0;


    wifi_service_config_t cfg = WIFI_SERVICE_DEFAULT_CONFIG();
    cfg.evt_cb = wifi_service_cb;
    cfg.setting_timeout_s = 300;
    cfg.max_retry_time = 2;
    wifi_serv = wifi_service_create(&cfg);
   
    smart_config_info_t info = SMART_CONFIG_INFO_DEFAULT();
    esp_wifi_setting_handle_t h = smart_config_create(&info);
    esp_wifi_setting_regitster_notify_handle(h, (void *)wifi_serv);
    wifi_service_register_setting_handle(wifi_serv, h, ®_idx);
    ESP_ERROR_CHECK(wifi_connecting(false));

     
}
void monitor_even_task(void *pvParameters)
{
   int wifi_reconnect_count =0;
   int mqtt_heart_count =0; //60*15
   uint8_t input[6]={0,0,0,0,0,0};
   int initial_delay_count =0;
   bool mqtt_initial = false;
   while (1)
   {
     if (hd_param.WIFI_CONNECTED )
     {  
        //开始其它网络连接成功后的任务
      } else{
        //
        //语音提示wifi连接失败
         
        //连接wifi
        wifi_reconnect_count ++;
        if (wifi_reconnect_count>10*5){ //5秒
              wifi_connecting(false);
             wifi_reconnect_count = 0;
        }
      }
      vTaskDelay(200/portTICK_PERIOD_MS);//延时200ms
   }
   vTaskDelete(NULL);
}

void app_main(void)
{
        // Initialize NVS
    esp_log_level_set("*", ESP_LOG_INFO);
    media_lib_add_default_adapter();
    esp_err_t err = nvs_flash_init();
    if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
        // NVS partition was truncated and needs to be erased
        // Retry nvs_flash_init
        ESP_ERROR_CHECK(nvs_flash_erase());
        err = nvs_flash_init();
    }
    ESP_ERROR_CHECK( err );
    ESP_ERROR_CHECK(esp_netif_init());

    if (read_param() == ESP_ERR_NVS_NOT_FOUND)
       set_param_default();
   
    ESP_LOGI(TAG, "[1.11] Start codec chip");

    board_handle = audio_board_init();
    //es8388_config_adc_input(AUDIO_HAL_ADC_INPUT_LINE2);
    audio_hal_ctrl_codec(board_handle->audio_hal, AUDIO_HAL_CODEC_MODE_BOTH, AUDIO_HAL_CTRL_START);
    audio_hal_set_volume(board_handle->audio_hal,65);

    initialise_uart();

    initialise_mp3();// 提示语音
   
    initialise_wifi_sta();
   
   
    xTaskCreate(monitor_even_task,"monitor_even_task",1024*3,NULL, Priority_monitor, NULL);

     
}

输出日志
I (417) psram: This chip is ESP32-D0WD
I (419) spiram: Found 64MBit SPI RAM device
I (419) spiram: SPI RAM mode: flash 40m sram 40m
I (421) spiram: PSRAM initialized, cache is in low/high (2-core) mode.
I (428) cpu_start: Pro cpu up.
I (432) cpu_start: Starting app cpu, entry point is 0x40081668
0x40081668: call_start_cpu1 at C:/Espressif/frameworks/esp-idf-v4.4/components/esp_system/port/cpu_start.c:156

I (0) cpu_start: App cpu up.
I (1325) spiram: SPI SRAM memory test OK
I (1333) cpu_start: Pro cpu start user code
I (1333) cpu_start: cpu freq: 160000000
I (1334) cpu_start: Application information:
I (1337) cpu_start: Project name:     zmgccs
I (1341) cpu_start: App version:      1
I (1346) cpu_start: Compile time:     May 17 2022 09:57:15
I (1352) cpu_start: ELF file SHA256:  96a75952a694d25f...
I (1358) cpu_start: ESP-IDF:          v4.4-dirty
I (1364) heap_init: Initializing. RAM available for dynamic allocation:
I (1371) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (1377) heap_init: At 3FFB5390 len 0002AC70 (171 KiB): DRAM
I (1383) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (1390) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (1396) heap_init: At 4009BE6C len 00004194 (16 KiB): IRAM
I (1403) spiram: Adding pool of 4084K of external SPI memory to heap allocator
I (1411) spi_flash: detected chip: generic
I (1415) spi_flash: flash io: qio
I (1421) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (1430) spiram: Reserving pool of 18K of internal memory for DMA/internal allocations
I (1500) zmgccs: [1.11] Start codec chip
I (1500) MY_BOARD_V1_0: i2c port sda_io:GPIO18 ,scl_io:GPIO23
W (1510) MYES8388_DRIVER: Warning: volume < -96! or > 0!

I (1510) MYES8388_DRIVER: init,out:00, in:00
I (1520) AUDIO_HAL: Codec moI (1530) gpio: GPIO[4]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 1| Intr:0
I (1530) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 1| Intr:0
I (1530) gpio: GPIO[14]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 1| Intr:0
I (1540) gpio: GPIO[15]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 1| Intr:0
I (1550) gpio: GPIO[19]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 1| Intr:0
I (1560) gpio: GPIO[21]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1570) gpio: GPIO[22]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1580) gpio: GPIO[27]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1590) gpio: GPIO[32]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1600) gpio: GPIO[33]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1610) gpio: GPIO[34]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1620) ZMG-MP3: [1.10] audio pipeline set init set
I (1620) ZMG-MP3: [1.11] mount spiffs
I (1750) PERIPH_SPIFFS: Partition size: total: 956561, used: 250749
I (1750) ZMG-MP3: [1.0] Create pipeline_save
I (1750) ZMG-MP3: [1.1] Create http stream to read data
I (1750) ZMG-MP3: [1.2] Create fatfs stream to save  file
I (1760) ZMG-MP3: [1.4] Register all elements to pipeline_save
I (1770) ZMG-MP3: [1.5] Link elements together http_stream-->fatfs_stream
I (1780) AUDIO_PIPELINE: link el->rb, el:0x3f803920, tag:http, rb:0x3f803bb8
I (1780) ZMG-MP3: [1.3] Create fatfs stream to read  file
I (1790) ZMG-MP3: [1.6] Create i2s stream to write data to codec chip
I (1800) I2S: APLL expected frequency is 8192000 Hz, real frequency is 8191999 Hz
I (1800) I2S: DMA Malloc info, datalen=blocksize=1200, dma_buf_count=3
I (1810) I2S: DMA Malloc info, datalen=blocksize=1200, dma_buf_count=3
I (1820) I2S: I2S0, MCLK output by GPIO0
I (1820) ZMG-MP3: [1.7] Create mp3 decoder to decode mp3 file
I (1830) MP3_DECODER: MP3 init
I (1830) ZMG-MP3: [1.8] Register all elements to audio pipeline
I (1840) ZMG-MP3: [1.9] Link elements together flash-->spiffs-->mp3_decoder-->i2s_stream-->[codec_chip]
I (1850) AUDIO_PIPELINE: link el->rb, el:0x3f808c24, tag:spiffs, rb:0x3f8090a4
I (1860) AUDIO_PIPELINE: link el->rb, el:0x3f808f34, tag:mp3, rb:0x3f80b0e4
I (1860) ZMG-MP3: [ 4 ] Set up  event listener
I (1870) ZMG-MP3: [4.1] Listening event from all elements of pipeline
I (1880) ZMG-MP3: [4.2] Listening event from peripherals
E (1880) DISPATCHER: exe first list: 0x0
I (1890) DISPATCHER: dispatcher_event_task is running...
I (1910) AUDIO_THREAD: The wifi_serv task allocate stack on external memory
I (1920) wifi:wifi driver task: 3ffcb080, prio:23, stack:3584, core=1
I (1920) system_api: Base MAC address is not set
I (1920) system_api: read default base MAC address from EFUSE
I (1930) wifi:wifi firmware version: 7679c42
I (1930) wifi:wifi certification version: v7.0
I (1930) wifi:config NVS flash: enabled
I (1940) wifi:config nano formating: disabled
I (1940) wifi:Init data frame dynamic rx buffer num: 32
I (1950) wifi:Init management frame dynamic rx buffer num: 32
I (1950) wifi:Init management short buffer num: 32
I (1960) wifi:Init static tx buffer num: 16
I (1960) wifi:Init tx cache buffer num: 32
I (1960) wifi:Init static rx buffer size: 1600
I (1970) wifi:Init static rx buffer num: 10
I (1970) wifi:Init dynamic rx buffer num: 32
I (1980) wifi_init: rx ba win: 6
I (1980) wifi_init: tcpip mbox: 32
I (1980) wifi_init: udp mbox: 64
I (1990) wifi_init: tcp mbox: 6
I (1990) wifi_init: tcp tx win: 5744
I (1990) wifi_init: tcp rx win: 5744
I (2000) wifi_init: tcp mss: 1440
I (2000) wifi_init: WiFi/LWIP prefer SPIRAM
I (2010) wifi_init: WiFi IRAM OP enabled
I (2010) wifi_init: WiFi RX IRAM OP enabled
I (2020) phy_init: phy_version 4670,719f9f6,Feb 18 2021,17:07:07
I (2120) wifi:mode : sta (c0:49:ef:31:50:b8)
I (2130) wifi:enable tsf
I (2140) zmg-WIFI: old wifi SSID:WIFI_, password:zmg8
I (2140) zmg-WIFI: retry 0 to connect to the AP SSID:WIFI_, password:zmg8
I (2140) zmg-WIFI: wifi_config SSID:WIFI_, password:zmg8
I (2150) WIFI_SERV: WIFI_SERV_CMD_SETTING_START,index:0
I (2150) ZMG-MP3: [mp3.0] mp3_filename: /spiffs/00030.mp3
I (2160) AUDIO_ELEMENT: [spiffs-0x3f808c24] Element task created
I (2170) AUDIO_THREAD: The mp3 task allocate stack on external memory
I (2170) AUDIO_ELEMENT: [mp3-0x3f808f34] Element task created
I (2180) AUDIO_ELEMENT: [i2s-0x3f808dbc] Element task created
I (2190) AUDIO_PIPELINE: Func:audio_pipeline_run, Line:359, MEM Total:4235183 Bytes, Inter:182407 Bytes, Dram:167771 Bytes

I (2200) AUDIO_ELEMENT: [spiffs] AEL_MSG_CMD_RESUME,state:1
I (2210) smartconfig: SC version: V3.0.1
I (2220) SPIFFS_STREAM: File size is 2664 byte, pos:0
W (2240) SPIFFS_STREAM: No more data, ret:0
I (2240) AUDIO_ELEMENT: IN-[spiffs] AEL_IO_DONE,0
I (2240) AUDIO_ELEMENT: [mp3] AEL_MSG_CMD_RESUME,state:1
I (2240) MP3_DECODER: MP3 opened
I (2260) I2S: APLL expected frequency is 8192000 Hz, real frequency is 8191999 Hz
I (2260) I2S: DMA Malloc info, datalen=blocksize=600, dma_buf_count=3
I (2260) I2S: DMA Malloc info, datalen=blocksize=600, dma_buf_count=3
I (2270) ZMG-MP3: [ * ] set i2s  rates=16000, bits=16, ch=1  ok
I (2280) AUDIO_ELEMENT: [i2s] AEL_MSG_CMD_RESUME,state:1
I (2280) I2S_STREAM: AUDIO_STREAM_WRITER
I (2290) AUDIO_PIPELINE: Pipeline started
I (2290) zmg-MQTT: MQTT line:364,Task = 1612
I (2400) AUDIO_ELEMENT: IN-[mp3] AEL_IO_DONE,-2
I (3490) MP3_DECODER: Closed
I (3620) AUDIO_ELEMENT: IN-[i2s] AEL_IO_DONE,-2
W (3840) ZMG-MP3: [ * ] music play Stop
I (6310) wifi:ic_enable_sniffer
I (6310) smartconfig: Start to find channel...
I (6310) SMART_CONFIG: SC_EVENT_SCAN_DONE
W (302210) WIFI_SERV: STATE type:4, pdata:0x0, len:0
I (302210) WIFI_SERV: WIFI_SERV_EVENT_SETTING_TIMEOUT
I (302210) wifi:ic_disable_sniffer
W (302220) zmg-WIFI: WIFI_SERV_EVENT_SETTING_TIMEOUT [246]
I (302230) WIFI_SERV: Connect to wifi ssid: WIFI_, pwd: zmg8  此处故意设置了错误的ssid和错误的密码然后进入配网状态
I (302230) WIFI_SERV: WIFI_SERV_CMD_SETTING_START,index:0
I (302290) smartconfig: SC version: V3.0.1
I (306390) wifi:ic_enable_sniffer
I (306390) smartconfig: Start to find channel...         此后无法发现手机的配网信息
I (306390) SMART_CONFIG: SC_EVENT_SCAN_DONE
I (306390) SMART_CONFIG: SC_EVENT_SCAN_DONE
W (602290) WIFI_SERV: STATE type:4, pdata:0x0, len:0
I (602290) WIFI_SERV: WIFI_SERV_EVENT_SETTING_TIMEOUT
I (602290) wifi:ic_disable_sniffer
W (602300) zmg-WIFI: WIFI_SERV_EVENT_SETTING_TIMEOUT [246]
I (602300) WIFI_SERV: Connect to wifi ssid: WIFI_, pwd: zmg8
I (602310) WIFI_SERV: WIFI_SERV_CMD_SETTING_START,index:0
I (602360) smartconfig: SC version: V3.0.1
I (606460) wifi:ic_enable_sniffer
I (606460) smartconfig: Start to find channel...
I (606460) SMART_CONFIG: SC_EVENT_SCAN_DONE
I (606460) SMART_CONFIG: SC_EVENT_SCAN_DONE
I (606460) SMART_CONFIG: SC_EVENT_SCAN_DONE
                                            

回帖(1)

陈杰

2024-6-28 16:58:21
可能有以下几个原因:

1. 检查硬件连接:确保ESP32模块与天线、电源等硬件连接正确。

2. 检查代码:确保你的代码中包含了所有必要的头文件和库文件。从你提供的代码片段来看,似乎缺少了`#include "esp_wifi.h"`和`#include "esp_smartconfig.h"`。请确保添加这些头文件。

3. 初始化WiFi和SmartConfig:在代码中,确保你已经初始化了WiFi和SmartConfig。以下是一个示例:

```c
#include "esp_wifi.h"
#include "esp_smartconfig.h"

void app_main()
{
    // 初始化WiFi
    ESP_ERROR_CHECK(esp_netif_init());
    esp_event_loop_create_default();
    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
    ESP_ERROR_CHECK(esp_wifi_init(&cfg));
    ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM));

    // 设置WiFi模式
    ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));

    // 初始化SmartConfig
    ESP_ERROR_CHECK(esp_smartconfig_set_type(SC_TYPE_ESPTOUCH));
    ESP_ERROR_CHECK(esp_smartconfig_start());

    // 等待SmartConfig完成
    while (1) {
        vTaskDelay(1000 / portTICK_PERIOD_MS);
        if (esp_smartconfig_stop() == ESP_OK) {
            break;
        }
    }

    // 连接到WiFi网络
    ESP_ERROR_CHECK(esp_wifi_start());
}
```

4. 检查ESP-ADF版本:确保你使用的ESP-ADF版本与你的ESP32模块兼容。

5. 检查ESPTouch应用程序:确保你的手机已经安装了ESPTouch应用程序,并且正在尝试连接到正确的设备。

6. 检查ESP32模块的固件:确保你的ESP32模块上运行的固件是最新的,并且支持SmartConfig。

7. 检查日志输出:在代码中添加日志输出,以便在出现问题时更容易地找到问题所在。

8. 检查电源:确保ESP32模块的电源稳定,因为不稳定的电源可能会影响模块的正常工作。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分