На включении питания ESP8266 подключается к Access Point.
Иногда время подключения приемлимое 6-10 секунд. Иногда 30-60 секунд. Иногда выходит по таймаут с ошибками
WL_CONNECT_FAILED
WL_NO_SSID_AVAIL
Причем при WL_NO_SSID_AVAIL я делаю WiFi.scanNetworks() и вижу мой Access Point.
Я могу улучшить как то ситуацию?
Код:
uint8_t UDP_Start(char* ssid, char* pass, uint16_t loc_port)
{
uint32_t timeout = 0;
if (WiFi.status() != WL_CONNECTED)
{
rt_parameters.wifi_mode = WIFI_STA;
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass);
if (sys_parameters.debug)
Serial.println("Waiting for connection");
while (WiFi.status() != WL_CONNECTED)
{
delay(DELAY_TICK);
if (sys_parameters.debug)
Serial.print('.');
timeout++;
if (timeout >= sys_parameters.ap_con_timeout)
{
if (sys_parameters.debug)
Serial.println();
return UDP_WIFI_ERR;
}
}
Serial.print("\nConnection time (ms) ");
Serial.println(DELAY_TICK * timeout);
}
rt_parameters.wifi_status = WiFi.status();
IPAddress ip_addr = WiFi.localIP();
memcpy(sys_parameters.loc_ip, ip_addr, 4);
if (sys_parameters.debug)
{
Serial.print("Connected! IP address: ");
Serial.println(ip_addr);
Serial.printf("UDP server on port %d\n", loc_port);
}
if (udp.begin(loc_port) == 0)
return UDP_CONNECT_ERR;
return UDP_OK;
}
WL_CONNECT_FAILED
WL_NO_SSID_AVAIL
Причем при WL_NO_SSID_AVAIL я делаю WiFi.scanNetworks() и вижу мой Access Point.
Я могу улучшить как то ситуацию?