完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
#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个回答
|
|
|
可能有以下几个原因:
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模块的电源稳定,因为不稳定的电源可能会影响模块的正常工作。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
453 浏览 0 评论
975 浏览 0 评论
1700 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1357 浏览 1 评论
1248 浏览 1 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1272浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
941浏览 3评论
2371浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2556浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1066浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 15:10 , Processed in 0.576932 second(s), Total 43, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
414
