• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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
Спасибо, помогло.
 
Сверху Снизу