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

Проблемы с подключением к Wi-Fi сети

BARS__

New member
Всем привет.
Пишу прошивку в Ardino IDE. Требуется подключение модуля к домашней сети. Собственно, с этим возникли проблемы. Если создать сеть на телефоне, то коннект проходит без проблем. А вот к домашней сети ни в какую. При первой попытке коннекта возвращает статус IDLE, а при последующих - CONNECT_FAILED. Название сети и пароль верны на 100%. Коннекчусь вот так:
Код:
          WiFi.disconnect();
          delay(500);
          WiFi.mode(WIFI_OFF);
          delay(500);

          IPAddress staIP(192,168,1,10);
          WiFi.mode(WIFI_AP_STA);     
          WiFi.softAPConfig(staIP, staIP, IPAddress(255,255,255,0));
          WiFi.softAP(AP_SSID);
       
          Serial.print("Connecting to ");
          Serial.println(STA_SSID);
         
          ConnectWiFi(STA_SSID.c_str(), STA_PASS.c_str());
Код:
/**
* Соединение с WiFi
*/
bool ConnectWiFi(const char *ssid, const char *pass) {
  // Три попытки соединения по WiFi

  for(int i = 0; i < 3; i++) {

    Serial.print("\nConnecting to: ");
    Serial.print(ssid);
    Serial.print(" pass: ");
    Serial.println(pass);
    Serial.println('\n');
     
    WiFi.begin(ssid, pass);
 
    for(int j = 0; j < 15; j++){

      if(WiFi.status() == 1){
        j = 15;
      }

      Serial.print('.');
     
      delay(1000);
    }

    Serial.println(STAT[WiFi.status()-1]);
         
    if(WiFi.status() == 1){
       Serial.println(" ");
       Serial.print("WiFi connect true: ");
       Serial.print(WiFi.localIP());
       Serial.print("/");
       Serial.print(WiFi.subnetMask());
       Serial.print("/");
       Serial.println(WiFi.gatewayIP());
           
       return true;
    }
  }
   
    WiFi.begin(ssid, pass); // иначе будет тупить при реконнекте
    
    sprintf(txt, "Connect to %s FAIL!", ssid);
 
    Serial.println("Connect WiFi failed ...");
    return false;
  }
В чем может быть проблема?
 

=AK=

New member
Проверять на подключение лучше так:

if (WiFi.status() == WL_CONNECTED)

Помнится, значение WL_CONNECTED равно 3.
 

BARS__

New member
Ну опытным путем я выяснил, что 1 =) Но не суть, я пробовал и так и эдак, статус WL_CONNECTED все равно не возращается...
 

CodeNameHawk

Moderator
Команда форума
Попробуйте упрощённый вариант
Код:
// the IP address for the shield:
IPAddress ip(192, 168, 1, 10); //static IP address
IPAddress ip_gate(192, 168, 1, 1);
IPAddress ip_subnet(255, 255, 255, 0);
IPAddress ip_dns1(8, 8, 8, 8);
IPAddress ip_dns2(8, 8, 4, 4);
const char *ssid = "****";     
const char *password = "*******";
byte czas_czekania_na_podlaczenia_sie_do_sieci; //zadaje sie ile sekund czekac na podlaczenie sie do sieci


    // Wait for connection 10 sec
    czas_czekania_na_podlaczenia_sie_do_sieci = 10; //sekund, czas oczekiwania na podlaczenie sie do sieci
    WiFi.mode(WIFI_STA);
    WiFi.config(ip, ip_gate, ip_subnet, ip_dns1, ip_dns2); //zadajemy statyczny adres
    WiFi.begin(ssid, password);


    do  //Probowac podlaczyc sie do sieci, poki jest czas
    {
        if (WiFi.status() == WL_CONNECTED)  //jezeli podlaczono sie do sieci
        {
            czas_czekania_na_podlaczenia_sie_do_sieci = 0;  //Podlaczyli sie do sieci, zzucic czas
            Serial.print("IP address: ");
            Serial.println(WiFi.localIP());
        }
        else //jezeli nie podlaczona sie do sieci
        {
            digitalWrite(2, LOW);   // turn the LED on (HIGH is the voltage level)
            delay(10);              // wait for a second
            digitalWrite(2, HIGH);    // turn the LED off by making the voltage LOW
            delay(1000);
            --czas_czekania_na_podlaczenia_sie_do_sieci; //zmiejszyc czas czekania na podlaczenie sie do sieci
        }
    } while (czas_czekania_na_podlaczenia_sie_do_sieci);  //Probowac podlaczyc sie do sieci, poki jest czas
}
 

AndrF

Active member
То же вопрос по WiFi - чтобы не плодить темы.

Режим STA WiFi модуля - у меня он используется для задания настроек сети, включая ssid и пароль пользователя.

Проблема: при первоначальном включении устройства или его длительном простое к нему довольно сложно приконнектиться со смартфона по ip: 192.168.4.1. Вплоть до того что коннект смартфона рвется и все начинается по новой, хотя уровень сигнала отличный. Когда все же удается подключиться и загрузилась страничка, то все работает нормально.

В чем может быть проблема?
 
Сверху Снизу