• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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. Вплоть до того что коннект смартфона рвется и все начинается по новой, хотя уровень сигнала отличный. Когда все же удается подключиться и загрузилась страничка, то все работает нормально.

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