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

Подключение к Access Point.

jenya7

Member
На включении питания ESP8266 подключается к 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;
}
Иногда время подключения приемлимое 6-10 секунд. Иногда 30-60 секунд. Иногда выходит по таймаут с ошибками
WL_CONNECT_FAILED
WL_NO_SSID_AVAIL
Причем при WL_NO_SSID_AVAIL я делаю WiFi.scanNetworks() и вижу мой Access Point.

Я могу улучшить как то ситуацию?
 

enjoynering

Well-known member
Какой версией Arduino пользуетесь. В 3.0.2 воде был баг с неверным статусом подключения. Его исправили с текущей версии 3.0.2-dev на github.
 

jenya7

Member
Какой версией Arduino пользуетесь. В 3.0.2 воде был баг с неверным статусом подключения. Его исправили с текущей версии 3.0.2-dev на github.
а где я могу посмотреть версию? после инсталяции Arduino я добавил esp модуль но версии его не помню и где посмотреть не нашёл.
 

jenya7

Member
в Tools->Boards->esp8266 3.0.1 это оно ? нажал на Update обновился до 3.0.2. надеюсь это исправленная версия.
 
Сверху Снизу