• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Как отключить точку доступа при старте?

r44083

Member
Использую noRTOS_SDK v2.0.0. На esp8266 запущена простая программа которая не использует Wi-Fi функционал. Во время работы, экран модуля esp8266 довольно сильно греется, а в списке доступных точек доступа (сканировал с ноутбука) появляется открытая точка доступа "AI-THINKER_C41B9E".
В мануале к SDK ничего на эту тему не нашел.

Вопрос: почему esp8266 поднимает свою точку доступа при старте и как её правильно отключить?
Код:
#include "hal/hal_gpio.h"
#include "hal/hal_tim.h"

#include "hal/ESP8266_SDK/include/ets_sys.h"
#include "hal/ESP8266_SDK/include/osapi.h"
#include "hal/ESP8266_SDK/include/os_type.h"

#include "hal/ESP8266_SDK/include/user_interface.h"
#include "hal/ESP8266_SDK/include/espmissingincludes.h"
#include "hal/ESP8266_SDK/include/mem.h"

static os_event_t *loop_task_queue;

static hal_gpio_t blue_led;
static hal_tim_t heartbit_tim;

static void ICACHE_FLASH_ATTR system_ready_clbk(void);
static void ICACHE_FLASH_ATTR loop_task(os_event_t *events);
static void ICACHE_FLASH_ATTR heartbit_clbk(void);

// Refer to the non-os sdk api reference about that
// "The user_rf_cal_sector_set has to be added in application, but need NOT
// to be called. It will be called inside the SDK."
uint32 ICACHE_FLASH_ATTR user_rf_cal_sector_set(void)
{
    enum flash_size_map size_map;// = system_get_flash_size_map();
    uint32 rf_cal_sec = 0;
    switch (size_map)
    {
        case FLASH_SIZE_4M_MAP_256_256:
            rf_cal_sec = 128 - 5;
            break;
      
        case FLASH_SIZE_8M_MAP_512_512:
            rf_cal_sec = 256 - 5;
            break;
      
        case FLASH_SIZE_16M_MAP_512_512:
        case FLASH_SIZE_16M_MAP_1024_1024:
            rf_cal_sec = 512 - 5;
            break;
      
        case FLASH_SIZE_32M_MAP_512_512:
        case FLASH_SIZE_32M_MAP_1024_1024:
            rf_cal_sec = 512 - 5;
            break;
      
        default:
            rf_cal_sec = 0;
            break;
    }
    return rf_cal_sec;
}

void ICACHE_FLASH_ATTR user_rf_pre_init(void)
{
  
}

void ICACHE_FLASH_ATTR user_init(void)
{
    ets_wdt_disable();
  
    hal_gpio_init(&blue_led, HAL_GPIO_PORT_0, HAL_GPIO_PIN_2, HAL_GPIO_MODE_DO, 0);
  
    hal_tim_init(&heartbit_tim, HAL_TIM_SW);
    hal_tim_set_clbk(&heartbit_tim, heartbit_clbk);
    hal_tim_set_us(&heartbit_tim, 500);
    hal_tim_start_cyclic(&heartbit_tim);
  
    system_init_done_cb(system_ready_clbk);
  
    //ets_wdt_enable();
}

static void ICACHE_FLASH_ATTR system_ready_clbk(void)
{
    loop_task_queue = (os_event_t *)os_malloc(sizeof(os_event_t) * 1);
  
    system_os_task(loop_task, 2, loop_task_queue, 1);
    system_os_post(2, 0, 0);
}

static void ICACHE_FLASH_ATTR loop_task(os_event_t *events)
{
  
  
    os_delay_us(1000);
    system_os_post(2, 0, 0);
}

static void ICACHE_FLASH_ATTR heartbit_clbk(void)
{
    hal_gpio_toggle(&blue_led);
}
 

r44083

Member
Апдейт:
я выяснил что SSID точки доступа, поднимаемой по умолчанию, зависит от того какой бинарь загружен по адресу 0x7C000 (размер 8 кБ). Там должен распологаться бинарь с настройками Wi-Fi по умолчанию "esp_init_data_default.bin". Когда я записываю туда бинари от разных версий SDK, то соответствующим образом меняется SSID точки поднимаемой по умолчанию.

Сталкивался ли кто-то с подобной ситуацией и есть ли бинарь с такими дефолтными настройками что бы нчего лишнего вроде поднятия точки доступа ESP8266 не делала?
 

Victor

Administrator
Команда форума
Сталкивался ли кто-то с подобной ситуацией и есть ли бинарь с такими дефолтными настройками что бы нчего лишнего вроде поднятия точки доступа ESP8266 не делала?
Проще [inline]wifi_set_opmode[/inline] (не перепутайте с [inline]wifi_set_opmode_current[/inline])
Function: Sets WiFi working mode as station, soft-AP or station+soft-AP, and save it to flash.
Default is softAP mode.
Note: Versions before ESP8266_NONOS_SDK_V0.9.2, need to call system_restart() after this api; after ESP8266_NONOS_SDK_V0.9.2, need not to restart.
This configuration will be saved in flash system parameter area if changed.
Prototype: bool wifi_set_opmode (uint8 opmode)
Parameters: uint8 opmode: WiFi operating modes:
0x01: station mode
0x02: soft-AP mode
0x03: station+soft-AP
ESP8266 Non-OS SDK API Reference
 

r44083

Member
Проще [inline]wifi_set_opmode[/inline] (не перепутайте с [inline]wifi_set_opmode_current[/inline])
Function: Sets WiFi working mode as station, soft-AP or station+soft-AP, and save it to flash.
Default is softAP mode.
Note: Versions before ESP8266_NONOS_SDK_V0.9.2, need to call system_restart() after this api; after ESP8266_NONOS_SDK_V0.9.2, need not to restart.
This configuration will be saved in flash system parameter area if changed.
Prototype: bool wifi_set_opmode (uint8 opmode)
Parameters: uint8 opmode: WiFi operating modes:
0x01: station mode
0x02: soft-AP mode
0x03: station+soft-AP
ESP8266 Non-OS SDK API Reference
Спасибо, помогло.
 
Сверху Снизу