на запрос "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ый?
Необходимо подключить 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);
}