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

Нужна помощь WPS (Wi-Fi Protected Setup) на SDK

russus_16

New member
на запрос "WPS" поиск на этом форуме выдает, что ничего не найдено. Создаю новую тему!

Необходимо подключить esp8266 к роутеру, используя WPS на основе push button. С SDK идет пример кода (...ESP8266_NONOS_SDK_V1.5.4_16_05_20/examples/wps), но, к сожалению, разобраться не могу. Кроме того, при запуске код ничего не происходит и wps не активируется.

Уверен, что кто-то решил данную задачу. Код user_main.c приведен ниже. Не понимаю как это должно работать. По логике key_init_single возвращает структуру-ключ, но зачем необходимо определять gpio ? Почему в коде используется именно 13ый?

Код:
#include "osapi.h"
#include "user_interface.h"

#include "driver/key.h"

#define WPS_KEY_NUM        1

#define WPS_KEY_IO_MUX     PERIPHS_IO_MUX_MTCK_U
#define WPS_KEY_IO_NUM     13
#define WPS_KEY_IO_FUNC    FUNC_GPIO13

LOCAL struct keys_param keys;
LOCAL struct single_key_param *single_key;

LOCAL void ICACHE_FLASH_ATTR
user_wps_status_cb(int status)
{
    switch (status) {
        case WPS_CB_ST_SUCCESS:
            wifi_wps_disable();
            wifi_station_connect();
            break;
        case WPS_CB_ST_FAILED:
        case WPS_CB_ST_TIMEOUT:
            wifi_wps_start();
            break;
    }
}

LOCAL void ICACHE_FLASH_ATTR
user_wps_key_short_press(void)
{
    wifi_wps_disable();
    wifi_wps_enable(WPS_TYPE_PBC);
    wifi_set_wps_cb(user_wps_status_cb);
    wifi_wps_start();
}

void ICACHE_FLASH_ATTR
user_rf_pre_init(void)
{
}

void ICACHE_FLASH_ATTR
user_init(void)
{
    single_key = key_init_single(WPS_KEY_IO_NUM, WPS_KEY_IO_MUX, WPS_KEY_IO_FUNC,
                                            NULL, user_wps_key_short_press);

    keys.key_num = WPS_KEY_NUM;
    keys.single_key = &single_key;

    key_init(&keys);

    wifi_set_opmode(STATION_MODE);
}
 

russus_16

New member
Когда использую АТ прошивку, то команда AT+WPS=1 работает на УРА (при условии что на роутере кнопка была нажата перед командой). Помогите найти исходный код этой команды!
 
Сверху Снизу