Arduino-esp32: рд╡рд╛рдИрдлрд╛рдИ рдСрдЯреЛ рд░реАрдХрдиреЗрдХреНрдЯ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ - рдХреНрдпрд╛ рдХрдиреЗрдХреНрд╢рди рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рд╕рд┐рддре░ 2017  ┬╖  150рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: espressif/arduino-esp32

рдмреЛрд░реНрдб: рдореЛрдбрдПрдорд╕реАрдпреВ рдИрдПрд╕рдкреА рейреи рджреЗрд╡ рдореЙрдбреНрдпреВрд▓
рдХреЛрд░ рд╕реНрдерд╛рдкрдирд╛ / рдЕрджреНрдпрддрди рддрд┐рдерд┐: 15 / рд╕рд┐рддрдВрдмрд░ / 2017
IDE рдирд╛рдо: Arduino IDE

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдИрдПрд╕рдкреА 32 рдХреЛ рдХрдиреЗрдХреНрд╢рди рдбреНрд░реЙрдк рд╣реЛрдиреЗ рдкрд░ рдпрд╛ рдлрд┐рд░ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдСрдЯреЛ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рддрд░реНрдХ рдирд╣реАрдВ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ ESP32 рдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ, рдХрднреА-рдХрднреА рдЗрд╕рдХреЗ 30 рдорд┐рдирдЯ рддрдХ рдФрд░ рдЕрдзрд┐рдХрддрдо 18 - 20 рдШрдВрдЯреЛрдВ рддрдХред рд╡рд╛рдИрдлрд╝рд╛рдИ рдЧрд┐рд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред

рдореИрдВ рдЬрд┐рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рдИрдлрд╛рдИ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд╣ рд╡рд╛рдИрдлрд╛рдИ рдЗрд╡реЗрдВрдЯ рджреЗрдЦ рд░рд╣реА рд╣реИ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рд╣реИ рдЬреЛ рдорджрдж рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рдкрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдпрд╣реА рд╣реЛрддрд╛ рд╣реИ ... рдореБрдЭреЗ рд░рд┐рдмреВрдЯ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдХреЛрдИ рдиреАрдВрдж / рдХрдо рд╢рдХреНрддрд┐ рдореЛрдб рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рд▓рдЧрд╛рддрд╛рд░ 3.3v рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реИред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рдорд╛рдорд▓рд╛ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛, https://github.com/espressif/arduino-esp32/issues/353 , рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрддреНрддрд░ рдХреЗ рдмрдВрдж (рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдСрдЯреЛ рдХрдиреЗрдХреНрдЯ рдПрдХ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рд╣реИ ... рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдСрдЯреЛ рдХреЛ рдХреЛрдб рдореЗрдВ рд╣реА рд▓рд╛рдЧреВ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдордЬрд╝рдмреВрддреА рд╕реЗ, рдФрд░ рдпрджрд┐ рдирд╣реАрдВ рддреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ Arduino рдХреЛрдб рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ?

-Allan

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ; рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ WiFiEvent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЕрдЪреНрдЫреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд╛рдИрдлрд╛рдИ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╣рд░ рдмрд╛рд░ рдордЬрд╝рдмреВрддреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ IF / ELSE рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ WL_CONNECTED рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдореЗрдВ рдиреАрдЪреЗ рд╕реЗ рд▓рдЧрднрдЧ 18 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░ рдХреЛ рдмрд╛рдж рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реА рдХрдиреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЖрдИрдкреА рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдорд┐рд▓рддрд╛ рд╣реИред

рдпрд╣ 6 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЧрд┐рдирддреА рдХрд░ рд░рд╣рд╛ рд╣реИред

loop()
{
  if ( WiFi.status() ==  WL_CONNECTED ) 
  {
    // WiFi is UP,  do what ever
  } else
  {
    // wifi down, reconnect here
   WiFi.begin(  );
    int WLcount = 0;
    while (WiFi.status() != WL_CONNECTED && WLcount < 200 ) 
    {
      delay( 100 );
         Serial.printf(".");
         if (UpCount >= 60)  // just keep terminal from scrolling sideways
         {
            UpCount = 0;
               Serial.printf("\n");
         }
         ++UpCount;
      ++WLcount;
    }
  }
} // END loop()

рдХрдВрдХрд╛рд▓ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдЬреЛ рдореИрдВрдиреЗ https://github.com/espressif/arduino-esp32/sues/1100 рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ SmartConfig рдХреЗ рд╕рд╛рде рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдерд╛, рдпрд╣ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕рднреА 150 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдмреЛрд░реНрдб рдореЗрдиреВ рдореЗрдВ рдбрд┐рдмрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдиреЗ рдкрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ?

рдореИрдВ рдЖрдЬ рд░рд╛рдд рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред Arduino рдХреЛрдб рдмрд╣реБрдд рд╣реА рдмреЗрд╕рд┐рдХ рд╣реИ, рд╡рд╛рдИрдлрд╛рдИ рдЗрд╡реЗрдВрдЯ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдпрд╣ рд╣реИ:

case SYSTEM_EVENT_STA_DISCONNECTED:
    Serial.println("WiFi lost connection.  Attempting to reconnect...");
    WiFi.reconnect();
    break;

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛ рд╕рдХреЗ?

рдмрд╕ рдЬрд▓реНрджреА рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
System_EVENT_STA_DISCONNECTED рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдорд░ рд╢реБрд░реВ рдХрд░реЗрдВ рдЬреЛ WiFi.reconnect () рдХрд╣рддрд╛ рд╣реИ; рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЗрд╕реЗ SYSTEM_EVENT_STA_CONNECTED рдореЗрдВ рд░реЛрдХреЗрдВред рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рддреЛ System_EVENT_STA_DISCONNECTED рдЗрд╡реЗрдВрдЯ рдХреЛ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗрдВред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдХрд┐рд╕реА рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЧреЛрдж рд▓реЗ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ C ++ рд╕реЗ рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдЯрд╛рдЗрдорд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдореБрдЭреЗ VB.net рдкрддрд╛ рд╣реИ ... рдореИрдВ рдХрдо рд╕реЗ рдХрдо рддрд╛рд░реНрдХрд┐рдХ рднрд╛рдЧреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдиреБрдХреВрд▓рди)ред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рд╣реИрдВ рдХрд┐ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдпрд╛ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдкрд░ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдПрдХ рдмрд╛рд░ рд╣рд╛рд░ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдмрдЧ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдореБрдЭреЗ рджрд┐рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд╣рд╛рдВ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред

рд▓реЗрдХрд┐рди рдореВрд▓ рдкреНрд░рд╢реНрди рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдмрдВрдж рдореБрджреНрджреЗ рдкрд░ рд╡рд╛рдкрд╕: рдХреНрдпрд╛ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд╣реАрдВ рд╣реИ? рдФрд░ рдЕрдЧрд░ рдирд╣реАрдВ рддреЛ рдкрд┐рдЫрд▓реЗ рдореБрджреНрджреЗ рдХреЛ "рдХрд╛рдо" рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рдпрд╣ рднреА рдирд╣реАрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

рдореИрдВрдиреЗ рдбрд┐рдмрдЧ рд╕реНрддрд░ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рд╕реАрд░рд┐рдпрд▓ рдореЙрдирд┐рдЯрд░ рдЦреЛрд▓рд╛ рдФрд░ рдЗрд╕реЗ рдмрд╛рд░-рдмрд╛рд░ рдорд┐рд▓рд╛:

[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...

рдореИрдВрдиреЗ рдЖрдЦрд┐рд░реА рдмрд╛рд░ рдЪреЗрдХ рдХрд┐рдпрд╛ рдХрд┐ рдЙрд╕рдиреЗ рджреВрд╕рд░реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдбреЗрдЯрд╛ рднреЗрдЬрд╛ рдерд╛ рдФрд░ рд╡рд╣ 24 рдШрдВрдЯреЗ рдкрд╣рд▓реЗ рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдореЛрдб рдореЗрдВ рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдиреАрдЪреЗ рдФрд░ рдКрдкрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛, рдпрд╣ рд╡рд╛рдИрдлрд╛рдИ рд╕реЗ рдареАрдХ рдФрд░ рд╕рдВрдЪрд░рд┐рдд рдбреЗрдЯрд╛ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд╛рд░ рд▓рдЧрднрдЧ 2 рдШрдВрдЯреЗ рдХреИрд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рдВрджреЗрд╢ рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рдЧрдпрд╛ рдФрд░ рдареАрдХ рдЙрд╕реА рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖред рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдиреЗ рджрд┐рдпрд╛, рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд╕ рдХреБрдЫ рд╣реА рд╕рдордп рд╣реИред

рддреЛ рдкрд╣рд▓рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░реВрдВред рджреВрд╕рд░рд╛ рдпрд╣ рдЕрднреА рднреА рдореБрдЭреЗ рдСрдЯреЛ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ

рджреЛрд╕реНрддреЛрдВ рдХреГрдкрдпрд╛ рдбрд┐рдмрдЧ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк рдЕрдзрд┐рдХ рд╡рд░реНрдмреЛрдЬрд╝ WiFi рд╕реНрдерд┐рддрд┐ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦ рд╕рдХреЗрдВ:
screen shot 2017-09-22 at 13 48 16

рдпрджрд┐ рдореЗрд░рд╛ рдЙрдкрдХрд░рдг рдЕрднреА рднреА STA (рд▓реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ) () рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рддреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рддреБрдореНрд╣реЗрдВ рдирдпрд╛ рддрд░реАрдХрд╛ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ? wifi_is_connected рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реИ рдЬреЛ рд╡рд╛рдИрдлрд╝рд╛рдИ рдЗрд╡реЗрдВрдЯ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рд╕реЗрдЯ рдФрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

static void poll_watchdog_sta(void) {
  static uint32_t ms = millis();
  static uint8_t watchdog = 0;

  // watch out for STA disconnects and reboot if
  // connection cannot be reestablished after
  // X minutes

  // this watchdog MUST NOT reboot the device if
  // wifi is not enabled or never was connected
  // since last reboot

  if (wifi_is_enabled && watchdog_enabled && ((millis() - ms) > 1000 * 6)) {
    ms = millis();

    if (!wifi_is_connected) {
      if (++watchdog < watchdog_timeout * 10) { // timeout in minutes ( * 10 )
        if (watchdog == 1) {
          log_print(F("WIFI: arming network watchdog (reboot in %i min.)"),
            watchdog_timeout
          );
        }
      } else {
        log_print(F("WIFI: still not connected, triggering reboot ..."));
        system_reboot();
      }
    } else {
      if (watchdog) {
        log_print(F("WIFI: network is back, disarming watchdog"));
        watchdog = 0;
      }
    }
  }
}

рд╣рд╛рдБ, рдореБрдЭреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рд▓реВрдк () рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рд╡рд╛рдИрдлрд╛рдИ (рдлрд┐рд░ рд╕реЗ, рдерд░реНрдб рдкрд╛рд░реНрдЯреА) рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд░реНрдмреЛрдЬрд╝ рд▓реЙрдЧрд┐рдВрдЧ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рдмрджрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ рдХреЛрдИ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬрд┐рди WiFi рдШрдЯрдирд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рдФрд░ рдЙрди рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рд╡реЗ рд╣реИрдВ SYSTEM_EVENT_STA_GOT_IP, SYSTEM_EVENT_STA_DISCONNECTED, SYSTEM_EVENT_STA_START, рдФрд░ SYSTEM_EVENT_STA_CONNECTEDред рд╣рд╛рд▓рд╛рдВрдХрд┐ https://github.com/espressif/esp-idf/blob/master/compords/esp32/include/esp_event.h рдкрд░ рдФрд░ рднреА рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬреЛрдбрд╝рд╛: рд╕реНрд╡рд┐рдЪ рдХреЛ рдЬреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдХреБрдЫ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореИрдВрдиреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рджреЗрдЦрд╛ рдХрд┐ рдореИрдВ //WiFi.setAutoReconnect(true) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ; рдЗрд╕рд▓рд┐рдП рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореВрд▓ рд▓реЗрдЦрдХ рдиреЗ рдСрдЯреЛ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рджреА?

@ рдореБрдЭреЗ-рдиреЛ-рджреЗрд╡ - рд╡рд░реНрдмреЛрд╕ рдиреЗ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджрд┐рдпрд╛ред рдЦреИрд░ ... рд╢рд╛рдпрдж рдЖрдкрдХреЗ рд▓рд┐рдП:

рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛, рддреЛ рдпрд╣ 150 рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдорд┐рд▓рд╛, рд╢рд╛рдпрдж:

[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 113

рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛ рдЧрдпрд╛:

[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 7 - NOT_ASSOCED
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 202 - ASSOC_FAIL
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5

рдЕрдВрддрд┐рдо рднрд╛рдЧ (рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдЗрд╡реЗрдВрдЯ 5, рдХрд╛рд░рдг 2) рдмрд╕ рд╣рд░ 4 - 5 рд╕реЗрдХрдВрдб рдореЗрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред

рдЙрд╕ рдкрд╣рд▓реА рддреНрд░реБрдЯрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬреЛ рдореИрдВрдиреЗ рджреЛрд╣рд░рд╛рдИ рдФрд░ рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛: https://github.com/espressif/arduino-esp32/issues/180ред рдЗрд╕рдореЗрдВ рдЖрдкрдиреЗ рдХрд╣рд╛ рдерд╛ "рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдпрд╛ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред" рдореБрдЭрд╕реЗ рдпрд╣ рдХреИрд╕реЗ рд╣реЛрдЧрд╛? рдореИрдВ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣реА рд╡рд╣ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдИрдлрд╛рдИ рдЗрд╡реЗрдВрдЯ рдХреЛ рдкрдХрдбрд╝рдирд╛ рд╣реИ:

//**************************************************************************************
/// Event Handler for ESP32 WiFi Events (needed to implement reconnect logic for now...)
//**************************************************************************************
    void MyESP32WiFi::WiFiEvent(WiFiEvent_t event)
    {
        Serial.printf("[WiFi-event] event: %d\n", event);

        switch (event) {
        case SYSTEM_EVENT_STA_GOT_IP:
            Serial.println("WiFi connected");
            Serial.println("IP address: ");
            Serial.println(WiFi.localIP());
            break;
        case SYSTEM_EVENT_STA_DISCONNECTED:
            Serial.println("WiFi lost connection.  Attempting to reconnect...");
            WiFi.reconnect();
            break;
        case SYSTEM_EVENT_STA_START:
            Serial.println("ESP32 station start");
            break;
        case SYSTEM_EVENT_STA_CONNECTED:
            Serial.println("ESP32 station connected to AP");
            break;
        default:            
            Serial.println("Unhandled WiFi Event raised.");
            break;
        }

    }

рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореБрдЭреЗ "5" рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЦреЛрдП рд╣реБрдП рд╡рд╛рдИрдлрд╛рдИ рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдХреЛрдб "WiFi.reconnect ();" рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдореБрдЭреЗ рд╡рд╣рд╛рдВ рдХреБрдЫ рдФрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдереЛрдбрд╝реЗ рдХреА рддрд░рд╣ @everslick рдЙрджрд╛рд╣рд░рдг рд▓реЗрдХрд┐рди рд╕рд░рд▓ (рд╕рд┐рд░реНрдл ai = i + 1) рдФрд░ рдпрджрд┐ рдпрд╣ 20 рд░реАрдмреВрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ? рдпрд╛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП / рдкрд╣рд▓реА рдЬрдЧрд╣ рдкрд░ рд░реЛрдХрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп WiFi.begin () рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ :)

@ me-no-dev - рдореИрдВрдиреЗ рдЗрд╕реЗ WiFi.begin () рдХреЗ рдмрдЬрд╛рдп WiFi.reconnect () рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓реАред рд▓рдЧрднрдЧ рдПрдХ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ lwip_connect_r: 113 рд▓рд╛рдЗрди, рд╣рд░ рдПрдХ рдорд┐рдирдЯ рдпрд╛ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рд░ 5 рдпрд╛ рдЗрддрдиреЗ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:

[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 113
[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 113
[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 113
[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 113
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 7 - NOT_ASSOCED
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE

рдФрд░ рдлрд┐рд░ 4 рд▓рд╛рдЗрдиреЗрдВ рдмрд╕ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рджреЛрд╣рд░рд╛рддреА рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рд░рд┐рдмреВрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдФрд░ рдХреНрдпрд╛ рдЖрдЬрдорд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рддрдереНрдп @everslick рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрдм рдЙрд╕реА рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХреА рдЧрдИ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЪрд┐рдВрддрд╛рдЬрдирдХ рд╣реИ .... рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдмреВрдЯ рдХрд░рдирд╛ рдЕрдВрддрд┐рдо рд╡рд┐рдХрд▓реНрдк рд╣реИ рдФрд░ рдЗрд╕реЗ рдСрдирд▓рд╛рдЗрди рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рд╕рд╛рдЗрдб рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛ ESP8266 рдПрдХ рд╣реА рд░рд╛рдЙрдЯрд░ (Netgear R8000) рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рд╕реНрдерд┐рд░ рд╣реИред

рд╣рдореНрдордо .... рдпрд╣ рдпрд╛ рддреЛ рдирд┐рдЪрд▓реЗ рд╕реНрдЯреИрдХ рдореЗрдВ рдпрд╛ рдЖрдкрдХреЗ рд░рд╛рдЙрдЯрд░ рдореЗрдВ рдПрдХ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред
рдЖрдк рдкрд╣рд▓реЗ рдХрд╛рд░рдг рдХреЛ NOT_ASSOCED рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЖрдк AUTH_EXPIRE рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рдЖрдк рд╢рд╛рдпрдж рдПрд╕рдЯреАрдП рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдЪрд╛рд▓реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд╛рд░рдг рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреБрдирдГ-рдЕрдиреБрд░реЛрдз рдЕрдиреБрд░реЛрдз рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдЖрдкрдХрд╛ рд░рд╛рдЙрдЯрд░ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрдкрдХреЛ рд╡рд╛рдкрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╕реЗ рдордирд╛ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЖрдВрддрд░рд┐рдХ рдореБрджреНрджрд╛ рдЙрдард╛ рд╕рдХрддрд╛ рд╣реВрдВред рд░рд╛рдЙрдЯрд░ рдлрд░реНрдорд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдЗрд╕рдХрд╛ рдиреЗрдЯрдЧрд┐рдпрд░ рдирд╛рдЗрдЯрд╣реЙрдХ R8000 рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд╡реАрдирддрдо рдлрд░реНрдорд╡реЗрдпрд░ V1.0.3.54_1.1.37 рдкрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рднреА рдХрд┐рдпрд╛ рдерд╛ред рдореЗрд░реЗ рдкрд╛рд╕ 20 - 25 рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рджреЛ ESP8266 рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдореИрдВ рдПрд╕рдЯреАрдП рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдФрд░ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдИ-рдлрд╛рдИ рд╢реБрд░реВ / рдкреБрди: рдХрдиреЗрдХреНрдЯ рд▓рд╛рдЗрди рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдЬрд╛рдирдирд╛ рдФрд░ рдХрд┐рд╕реА рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ .... рдореИрдВ рдХреИрд╕реЗ "рдПрд╕рдЯреАрдП рдХреЛ рдмрдВрдж рдХрд░ рджреВрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдЪрд╛рд▓реВ рдХрд░ рджреВрдВ"?

рджреВрд╕рд░рд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣ https://github.com/espressif/esp-idf/issues/499#issuecomment -314262611 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рд╣реИ рдЙрд╕реА NOT_ASSOCED рдФрд░ AUTH_EXPIRE рдХреЗ рд╕рд╛рдеред рдореИрдВ рдРрд╕рд╛ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рд╕реЛрдЪреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ BLE рд╕рд╛рдорд╛рди рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирд╛ред

рдореИрдВрдиреЗ wifi рдЯреАрдо рдХреЛ рднреА рдЕрд▓рд░реНрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИ :) рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рдЖрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ

рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдореБрдЭреЗ рдПрд╕рдЯреАрдП рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдЖрдк рдореЗрд░рд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдореБрдЭреЗ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдХреИрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВрдиреЗ рдпрд╣ рднреА рджреЗрдЦрд╛: https://github.com/espressif/esp-idf/issues/738#issuecomment -311626685 рдиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рдореИрдВ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реЗ WiFi.connect рдпрд╛ WiFi.Begin рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛? рдХреНрдпрд╛ рдпрд╣ рднреА рдореЗрд░рд╛ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? @ рд╕рд░реЛрдЬ ?

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреВрд╕рд░рд╛ ESP32 рдЦрд░реАрджрд╛, рдПрдХ рд╣реА, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдПрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдХрд▓ рд░рд╛рдд рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдЬреАрдердм (https://nodemcu.readthedocs.io/en/dev-esp32/en/build/) рд╕реЗ рдПрдХ рдирдП рдкреБрд▓ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдирдИ рдЪрд┐рдк рдФрд░ рдкреБрд░рд╛рдиреА рджреЛрдиреЛрдВ рдХреЛ рдлреНрд▓реИрд╢ рдХрд┐рдпрд╛ред рдореИрдВ рднреА рдареАрдХ рдЙрд╕реА рд╕реНрдХреЗрдЪ рдХреЗ рд╕рд╛рде рджреЛрдиреЛрдВ рднрдбрд╝рдХ рдЧрдпрд╛ред рдореВрд▓ рдореЗрд░реЗ рдЧреИрд░реЗрдЬ рдореЗрдВ рд╣реИ, рдореЗрд░реЗ рд░рд╛рдЙрдЯрд░ рд╕реЗ рдереЛрдбрд╝реЗ рд░рд╛рд╕реНрддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдореЗрд░реЗ рд▓рд┐рд╡рд┐рдВрдЧ рд░реВрдо рдореЗрдВ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╛рдИрдлрд╛рдИ рдмрд╣реБрдд рдордЬрдмреВрдд рд╣реИред рджреЛрдиреЛрдВ рдореЗрдВ рд╕реАрд░рд┐рдпрд▓ рдореЙрдирд┐рдЯрд░ рдПрдХ рдХрдиреЗрдХреНрдЯреЗрдб рдкреАрд╕реА рдкрд░ рд╡рд░реНрдмреЛрдЬрд╝ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдЬреЛ рднреА рдорд┐рд▓реЗрдЧрд╛, рдореИрдВ рдЙрд╕реЗ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдБрдЧрд╛ред

рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рдФрд░ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдореИрдВ STA рдХреЛ рдХреИрд╕реЗ рдмрдВрдж рдХрд░реВрдВ? рдХреНрдпрд╛ рд╡рд╣ STA_Disconnect рднрд╛рдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ WiFi.reconnect рд╣реИ?

рдареАрдХ рд╣реИ рдХрд┐ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд╣реАрдВ рдерд╛ .... рдореИрдВ рдирдП рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБред рдкрд╣рд▓реЗ рдореВрд▓ рдПрдХ рд╣реА "[рдИ] [WiFiClientред Cpp : 97 ] рдХрдиреЗрдХреНрдЯ (): lwip_connect_r: 113" рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ рдФрд░ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ 30 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рдСрдирд▓рд╛рдЗрди рдбреЗрдЯрд╛ рдирд╣реАрдВ рднреЗрдЬ рд░рд╣рд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рджреЛ рдмрд╛рд░ рдПрдХ рд╕рд╛рде рд▓рдЧрднрдЧ 5 рдпрд╛ 6 рд╕реЗрдХрдВрдб рдХреЗ рдмреАрдЪ рдФрд░ рдлрд┐рд░ рдЕрдЧрд▓реЗ рд╕реЗрдЯ рдХреЗ рдмреАрдЪ 45 - 50 рд╕реЗрдХрдВрдб рдХреЗ рдмреАрдЪ рдлрд┐рд░ рд╕реЗ рдереЛрдбрд╝реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХред рд▓рдЧрднрдЧ 10 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рдПрдХ рд╣реА рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдкреИрдЯрд░реНрди рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛:


[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 113
[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 113
Data: Sending: temperature1 -49.02
[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 113
[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 113
Data: Sending: humidity1 -5.02
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 7 - NOT_ASSOCED
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 202 - ASSOC_FAIL
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5

рдФрд░ рдЕрдВрддрд┐рдо 4 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ред рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рдЗрд╕рдиреЗ рдХреБрдЫ рдЕрд▓рдЧ рдХрд┐рдпрд╛ ... рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдереЛрдбрд╝рд╛ рдмрджрд▓ рдЧрдпрд╛:

[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 113
[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 118
Data: Sending: temperature2 -1.00
[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 118
[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 118
Data: Sending: humidity2 -1.00
[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 118
[E][WiFiClient.cpp:97] connect(): lwip_connect_r: 118
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 113 рдХреЗ рд╡рд┐рдкрд░реАрдд 118 рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ред рд▓реЗрдХрд┐рди рдЙрд╕ рдмрд┐рдВрджреБ рд╕реЗ рдЙрд╕ рдкрд░ STA_DISCONNECTED рдФрд░ AUTH_EXPIRED рдХреЗ рд╕рд╛рде-рд╕рд╛рде 118 рддреНрд░реБрдЯрд┐ рдХреЛ рдЕрдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ред

рдлрд┐рд░ рдирдИ ESP32 рдиреЗ рдареАрдХ рд╡рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдЬреНрдпрд╛рджрд╛рддрд░ 113 рддреНрд░реБрдЯрд┐ рддреЛ NOT_ASSOCED, ASSOC_FAIL рдФрд░ AUTH_EXPIRE рдХрд╛ рдПрдХ рд╣реА рдкреИрдЯрд░реНрди рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдмрд╕ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдФрд░ AUTH_EXPIRE рдУрд╡рд░-рдУрд╡рд░ред

рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдордп рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣реЗ, 25 рдорд┐рдирдЯ рдЕрд▓рдЧ, рдЬрдмрдХрд┐ рд╡реЗ рдареАрдХ рдЙрд╕реА рд╕рдордп рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдереЗред рд╡рд╛рдИрдлрд╛рдИ рд╕рд┐рдЧреНрдирд▓ рдПрдХ рдХрд╛рд░рдХ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рди рд╣реА рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдмрд╕ рдПрдХ рд░рд┐рдмреВрдЯ рдкрд░ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╣рд░ рдмрд╛рд░ рдкрд╣рд▓реА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рддреБрд░рдВрдд рдЬреЛрдбрд╝рддрд╛ рд╣реИ:

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371 
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0010,len:4
load:0x3fff0014,len:708
load:0x40078000,len:0
load:0x40078000,len:11460
entry 0x400789f4
Everything: init started
Everything: Free RAM = -1
Disabling ESP32 WiFi Access Point
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 2 - STA_START
[WiFi-event] event: 2
Initializing ESP32 WiFi network.  Please be patient...
ESP32 station start
Attempting to connect to WPA SSID: (SSIDRemoved)
..[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 4 - STA_CONNECTED
[WiFi-event] event: 4
ESP32 station connected to AP
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 7 - STA_GOT_IP
[WiFi-event] event: 7
WiFi connected
IP address: 
192.168.xx.xx

рдЕрднреА рднреА рд╡рд╛рдИрдлрд╛рдИ рдЯреАрдо рдХреЗ рдЬрд╡рд╛рдм рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред рдХреБрдЫ рдФрд░ рд╢реЛрд░ рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред рдЕрдВрдХ Arduino рдХреЗ рдиреАрдЪреЗ рдФрд░ рдмрдВрдж рд╕реНрд░реЛрдд рд╡рд╛рдИрдлрд╝рд╛рдИ lib рдореЗрдВ рдХрд╣реАрдВ рд░рд╛рд╕реНрддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ STA_DISCONNECTED рдИрд╡реЗрдВрдЯ рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИ рдФрд░ 5 рдХреЗ рдмрд╛рдж рд╡рд╛рдИрдлрд╛рдИ рд░реА-рдЗрдирд┐рдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ 10 рдХреЗ рдмрд╛рдж рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдХрдиреЗрдХреНрдЯ рдкрд░ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ 0 рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХрдо рд╕реЗ рдХрдо рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред

рдЕрдЧрд░ рдХреБрдЫ рдФрд░ рд╣реИ рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЛрдб рдпрд╛ рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЕрдЧрд░ рдпрд╣ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЬрд┐рд╕ ESP32 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рд╡реЛрд▓реНрдЯреЗрдЬ рдЗрдирдкреБрдЯ, рдПрдХ рдмрд╛рдЗрдирд░реА рдЗрдирдкреБрдЯ рдФрд░ рдПрдХ DTH22 (рдЕрд╕реНрдерд╛рдпреА + рдЖрд░реНрджреНрд░рддрд╛) рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рд╣рд╛рдп @vseven , рдореИрдВ рдЕрднреА рдЦреБрдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ WiFi рдХреЗ рдлрд░реНрдорд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ? рдпрджрд┐ рдЖрдк рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд▓реЙрдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ "I (588) рд╡рд╛рдИрдлрд╛рдИ: рд╡рд╛рдИрдлрд╛рдИ рдлрд░реНрдорд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг: 2cd69aa" рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреАрдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рд╡рд╛рдИрдлрд╛рдИ рдХрд╛ рдХрд╛рдо рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@vseven рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЬреЛрдбрд╝рд╛ рд╣реИ? рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрдм esp_wifi_connect () рдХреЙрд▓ рдХрд░реЗрдВ? рдпрджрд┐ рдЖрдк рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддрд░реНрдХ рдХреЛ рдЪрд┐рдкрдХрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

@liuzfesp wifi рд▓реЙрдЧрд┐рдВрдЧ Arduino рдореЗрдВ рдЕрдХреНрд╖рдо рд╣реИред
@vseven рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд▓рд╛рдЗрди рдкрд░ рдЯрд┐рдкреНрдкрдгреА

рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдЙрд╕ рд▓рд╛рдЗрди рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреА рдФрд░ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ред рдореИрдВ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдБрдЧрд╛ред рдПрдХ рд╕рд╛рдЗрдб рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЗрдирд┐рдЯ () рдХреЛ рд╡рд╛рдкрд╕ рдмреБрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ .... рдпрд╣ рдЗрдирд┐рдЯ рдХреА рддрд░рд╣ рдерд╛ () рдХрднреА рдирд╣реАрдВ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдЬрдм рдХрд╛рдЙрдВрдЯрд░ рдХреЛ 10 рдорд┐рд▓рд╛ рддреЛ ESP.restart рдХреЛ рд░рдХреНрд╖рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░рд┐рдмреВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛:

    void SmartThingsESP32WiFi::WiFiEvent(WiFiEvent_t event)
    {
        Serial.printf("[WiFi-event] event: %d\n", event);
        switch (event) {
        case SYSTEM_EVENT_STA_GOT_IP:
            Serial.println("WiFi connected");
            Serial.println("IP address: ");
            Serial.println(WiFi.localIP());
            break;
        case SYSTEM_EVENT_STA_DISCONNECTED:
            Serial.println("WiFi lost connection.  Attempting to reconnect...");
            WiFi.reconnect();
            disconnectCounter++;
            if (disconnectCounter > 5) {
                Serial.println("We have recieved the STA_DISCONNECTED event 5 times now.  Re-init...");
                void init();
            }
            if (disconnectCounter > 10) {
                Serial.println("We have recieved the STA_DISCONNECTED event 10 times now.  Reboot...");
                ESP.restart();
            }
            break;
        case SYSTEM_EVENT_STA_START:
            Serial.println("ESP32 station start");
            break;
        case SYSTEM_EVENT_STA_CONNECTED:
            Serial.println("ESP32 station connected to AP");
            disconnectCounter = 0;
            break;
        }
    }

@liuzfesp - рдпрд╣рд╛рдБ рдЙрд╕ рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рджреА рдЧрдИ рд╣реИ:

I (243) wifi: wifi firmware version: c1b8a2f
I (243) wifi: config NVS flash: enabled
I (243) wifi: config nano formating: disabled
I (257) wifi: Init dynamic tx buffer num: 32
I (257) wifi: Init data frame dynamic rx buffer num: 64
I (257) wifi: Init management frame dynamic rx buffer num: 64
I (261) wifi: wifi driver task: 3ffd0d8c, prio:23, stack:4096
I (267) wifi: Init static rx buffer num: 10
I (270) wifi: Init dynamic rx buffer num: 0
I (274) wifi: Init rx ampdu len mblock:7
I (278) wifi: Init lldesc rx ampdu entry mblock:4
I (282) wifi: wifi power manager task: 0x3ffd60f0 prio: 21 stack: 2560
I (290) wifi: wifi timer task: 3ffd7148, prio:22, stack:3584
I (314) wifi: mode : null
Disabling ESP32 WiFi Access Point

I (815) wifi: Init Ampdu: 1 tx baw=6 rx baw=6
I (815) wifi: mode : sta (30:ae:a4:25:78:64)
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 2 - STA_START

Initializing ESP32 WiFi network.  Please be patient...
[WiFi-event] event: 2
ESP32 station start
Attempting to connect to WPA SSID: (SSIDREMOVED)
.I (1946) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
.I (2603) wifi: state: init -> auth (b0)
I (2605) wifi: state: auth -> assoc (0)
I (2612) wifi: state: assoc -> run (10)
I (2670) wifi: connected with (SSIDREMOVED), channel 1
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 4 - STA_CONNECTED
[WiFi-event] event: 4
ESP32 station connected to AP
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 7 - STA_GOT_IP
[WiFi-event] event: 7
WiFi connected

рдФрд░ рдЬреЛ рдлрд╛рдЗрд▓реЗрдВ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВрдиреЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рд╛):

SmartThingsESP32WiFi.h.txt
SmartThingsESP32WiFi.cpp.txt

@liuzfesp - рддреЛ рдЗрд╕рдиреЗ рдбрд┐рдмрдЧ рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛, рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреБрдЫ рдЖрдкрдХреЛ рдХреБрдЫ рдмрддрд╛рдПрдЧрд╛ред рдпрд╣ рдПрдХ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рдЪрд▓рд╛ рдпрд╛ рдлрд┐рд░ 113 рддреНрд░реБрдЯрд┐ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдлреЗрдВрдХрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рд▓рдЧрднрдЧ 15 рдорд┐рдирдЯ рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ 113 рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рд░реВрдЯреАрди рдХреЗ рдмреАрдЪ рдпрд╣ рдХрд┐рдпрд╛:

I (5427111) wifi: state: run -> auth (7c0)
I (5427111) wifi: pm stop, total sleep time: 0/1119534452

I (5427111) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 7 - NOT_ASSOCED
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (5427133) wifi: state: auth -> init (0)
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 202 - ASSOC_FAIL
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (5427276) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (5427276) wifi: state: init -> auth (b0)
I (5428276) wifi: state: auth -> init (2)
I (5428277) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (5428413) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (5428414) wifi: state: init -> auth (b0)
I (5429414) wifi: state: auth -> init (2)
I (5429414) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (5429551) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (5429551) wifi: state: init -> auth (b0)
I (5430551) wifi: state: auth -> init (2)
I (5430551) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (5430688) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (5430688) wifi: state: init -> auth (b0)
I (5431689) wifi: state: auth -> init (2)
I (5431689) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
We have recieved the STA_DISCONNECTED event 5 times now.  Re-init...
I (5431826) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (5431826) wifi: state: init -> auth (b0)
I (5432826) wifi: state: auth -> init (2)
I (5432826) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
We have recieved the STA_DISCONNECTED event 5 times now.  Re-init...
I (5432963) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (5432963) wifi: state: init -> auth (b0)
I (5433964) wifi: state: auth -> init (2)
I (5433964) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
We have recieved the STA_DISCONNECTED event 5 times now.  Re-init...
I (5434100) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (5434101) wifi: state: init -> auth (b0)
I (5435101) wifi: state: auth -> init (2)
I (5435101) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
We have recieved the STA_DISCONNECTED event 5 times now.  Re-init...
I (5435238) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (5435238) wifi: state: init -> auth (b0)
I (5436238) wifi: state: auth -> init (2)
I (5436239) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
We have recieved the STA_DISCONNECTED event 5 times now.  Re-init...
I (5436375) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (5436376) wifi: state: init -> auth (b0)
I (5437376) wifi: state: auth -> init (2)
I (5437376) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[D][WiFiGeneric.cpp:182] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:187] _eventCallback(): Reason: 2 - AUTH_EXPIRE
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
We have recieved the STA_DISCONNECTED event 5 times now.  Re-init...
We have recieved the STA_DISCONNECTED event 10 times now.  Reboot...
I (5437405) wifi: flush txq
I (5437407) wifi: stop sw txq
I (5437410) wifi: lmac stop hw txq
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

рддреЛ рдкреНрд░рддреНрдпреЗрдХ STA_DISCONNECT рдХреЗ рд▓рд┐рдП рдЗрд╕рдиреЗ WiFi.reconnect рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реНрдкрд╖реНрдЯ рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдлрд┐рд░ рдЗрд╕рдиреЗ init () рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдлрд┐рд░ 5 рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдЬреЛ рдХрд┐ рддрдм рднреА рдорджрдж рдирд╣реАрдВ рдХреА, рдПрдХ рдмрд╛рд░ 10 рдбрд┐рд╕реНрдХ рдХреЛ рд╣рд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд░рд┐рдмреВрдЯ рдХрд┐рдпрд╛ рдФрд░ рд░реАрдмреВрдЯ рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ред

рдореИрдВрдиреЗ рдкреВрд░реЗ рд╕рдкреНрддрд╛рд╣ рдЕрдкрдиреЗ рдИрдПрд╕рдкреА 32 рдкрд░ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдореЙрдирд┐рдЯрд░ рдЪрд╛рд▓реВ рд░рдЦрд╛ рдФрд░ рд╢реБрдХреНрд░рд╡рд╛рд░ рд░рд╛рдд 6 рдмрдЬреЗ рд╕реЗ рд░рд╡рд┐рд╡рд╛рд░ рд░рд╛рдд 9 рдмрдЬреЗ рдХреЗ рдмреАрдЪ рд▓рдЧрднрдЧ 10 рдмрд╛рд░ рд░рд┐рдмреВрдЯ рдХрд┐рдпрд╛ред рд╣рд░ рдмрд╛рд░ рдпрд╣ рдЙрдкрд░реЛрдХреНрдд рд▓реЙрдЧреНрд╕ рдХреА рддрд░рд╣ рд╣реА рдерд╛ред

@ me-no-dev - рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдПрд╕рдЯреАрдП рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдФрд░ рд╡рд╛рдкрд╕ рджреЗрдЦрдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рднреА рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ 5 рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рдж? 10 рдХрд╛рдореЛрдВ рдХреЗ рдмрд╛рдж рд░рд┐рдмреВрдЯ рд▓реЗрдХрд┐рди рдореИрдВ рдЖрд░рдЬреАрдмреА рд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рд╛рдЗрдЯ рдмрдВрдж рдФрд░ рдЪрд╛рд▓реВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

@liuzfesp - рдХреНрдпрд╛ рдХреБрдЫ рдФрд░ рд╣реИ рдЬреЛ рдореИрдВ рдЖрдкрдХреЛ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдпрд╛ рдХреБрдЫ рднреА рд╣реИ рдХрд┐ рдореИрдВ рдмрд╛рд╣рд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреЛрдИ рд╕реБрдзрд╛рд░? рдЕрднреА рднреА рджреЛрдиреЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░рдВрддрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реИрдВред

@ рдпрд╣рд╛рдБ рдХреЛрдИ рднреА рдЦрдмрд░?

рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдмреНрд▓реВрдЯреВрде рдФрд░ рд╡рд╛рдИрдлрд╛рдИ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдЖ рд░рд╣реЗ рд╣реИрдВред рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рдХрд┐ рдЙрд╕рдореЗрдВ рд╕реЗ рдХреЛрдИ рдореЗрд░реА рдорджрдж рдХрд░реЗрдЧрд╛ рдпрд╛ рдирд╣реАрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рд╕рдорд╛рди рдореБрджреНрджреЗ рд╣реИрдВ рдФрд░ рд░рд┐рдмреВрдЯ рдореЗрд░реЗ рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рд╕ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЖрд░рдЬреАрдмреА рд▓рд╛рдЗрдЯ рд╕реНрдЯреНрд░рд┐рдк рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рдкрд╛рдпрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд▓рд╛рдЗрдЯ рд░рд┐рдмреВрдЯ рдХреЛ рдЪрд╛рд▓реВ рд░рдЦрддреА рд╣реИред

@liuzfesp - рдХреНрдпрд╛ рд▓реЙрдЧ рдореЗрдВ рдХреБрдЫ рднреА рд╣реИ рдЬреЛ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдХреБрдЫ рдФрд░ рдЬреЛ рдореИрдВ рдкреНрд░рджрд╛рди рдпрд╛ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдореИрдВрдиреЗ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд┐рдпрд╛, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рднреА рджреЗрд░реА рдпрд╛ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдирд╣реАрдВ рдереА, рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рдХрдо рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ (113 рдФрд░ 118 рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рди рджреЗрдЦреЗрдВ) рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдПрдХ рд╣реА рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реАрдзреЗ рд╕рдВрдмрдВрдзрд┐рдд рд▓рдЧрддрд╛ рд╣реИ WiFi рдкреНрд░рдорд╛рдгрд┐рдд (рдирд╡реАрдиреАрдХрд░рдг?) рдФрд░ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рддрд╛рдЬрд╛ рдХрдмреНрдЬрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ 24 рдШрдВрдЯреЗ рдХреА рдЕрд╡рдзрд┐ рдореЗрдВ рд▓рдЧрднрдЧ 5 рдмрд╛рд░ рд░рд┐рдмреВрдЯ рдХрд┐рдпрд╛ рдерд╛ред рдлрд┐рд░ рд╕реЗ, рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдИрдПрд╕рдкреА 32 рдкрд░ рдПрдХ рд╣реА рдмрд╛рдд, рдореИрдВ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ (рдЗрд╡реЗрдВрдЯ 5) рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╡рд╛рдИрдлрд╛рдИ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рдПрдХ рд╡рд╛рдИрдлрд╛рдИ рдФрд░ рдПрдХ рд╡рд╛рдИрдлрд╛рдИред рджреЛрдиреЛрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднрд╛рдЧреНрдп рдХреЗ рд╕рд╛рде рдЗрд╕рд▓рд┐рдП 10 рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдареАрдХ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ

I (1903652) wifi: active cnt: 5
I (1913652) wifi: active cnt: 5
I (1923652) wifi: send null to keep active
I (1933652) wifi: send null to keep active
I (1943653) wifi: active cnt: 1
I (1953653) wifi: active cnt: 2
I (1963653) wifi: send null to keep active
I (1973653) wifi: send null to keep active
I (1983653) wifi: send null to keep active
I (1993653) wifi: active cnt: 1
I (2003654) wifi: send null to keep active
I (2013654) wifi: send null to keep active
I (2023654) wifi: send null to keep active
I (2033654) wifi: send null to keep active
I (2043654) wifi: send null to keep active
I (2053654) wifi: send null to keep active
I (2063654) wifi: send null to keep active
I (2073655) wifi: send null to keep active
I (2083655) wifi: active cnt: 1
I (2093655) wifi: send null to keep active
I (2103655) wifi: send null to keep active
I (2113655) wifi: send null to keep active
I (2123655) wifi: send null to keep active
I (2133655) wifi: send null to keep active
I (2143656) wifi: send null to keep active
I (2153656) wifi: send null to keep active
I (2163656) wifi: send null to keep active
I (2173656) wifi: send null to keep active
I (2183656) wifi: send null to keep active
I (2193656) wifi: send null to keep active
I (2203657) wifi: send null to keep active
I (2213657) wifi: send null to keep active
I (2223657) wifi: send null to keep active
I (2233657) wifi: send null to keep active
I (2243657) wifi: send null to keep active
I (2253657) wifi: send null to keep active
I (2263657) wifi: send null to keep active
I (2273658) wifi: active cnt: 2
I (2283658) wifi: send null to keep active
I (2293658) wifi: send null to keep active
I (2303658) wifi: send null to keep active
I (2313658) wifi: send null to keep active
I (2323658) wifi: send null to keep active
I (2333658) wifi: send null to keep active
I (2343659) wifi: send null to keep active
I (2353659) wifi: send null to keep active
I (2363659) wifi: send null to keep active
I (2373659) wifi: send null to keep active
I (2383659) wifi: send null to keep active
I (2393659) wifi: send null to keep active
I (2403660) wifi: send null to keep active
I (2413660) wifi: send null to keep active
I (2423660) wifi: send null to keep active
I (2433660) wifi: send null to keep active
I (2443660) wifi: send null to keep active
I (2453660) wifi: send null to keep active
I (2463660) wifi: send null to keep active
I (2473661) wifi: send null to keep active
I (2483661) wifi: send null to keep active
I (2483663) wifi: state: run -> auth (7c0)
I (2483663) wifi: pm stop, total sleep time: 0/-1824912959

I (2483663) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (2483674) wifi: state: auth -> init (0)
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (2483805) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (2483805) wifi: state: init -> auth (b0)
I (2484805) wifi: state: auth -> init (2)
I (2484806) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (2484930) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (2484931) wifi: state: init -> auth (b0)
I (2485931) wifi: state: auth -> init (2)
I (2485931) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (2486056) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (2486056) wifi: state: init -> auth (b0)
I (2487056) wifi: state: auth -> init (2)
I (2487056) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (2487181) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (2487181) wifi: state: init -> auth (b0)
I (2488182) wifi: state: auth -> init (2)
I (2488182) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (2488306) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (2488307) wifi: state: init -> auth (b0)
I (2489307) wifi: state: auth -> init (2)
I (2489307) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (2489432) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (2489432) wifi: state: init -> auth (b0)
I (2490432) wifi: state: auth -> init (2)
I (2490432) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (2490557) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (2490557) wifi: state: init -> auth (b0)
I (2491558) wifi: state: auth -> init (2)
I (2491558) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (2491682) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (2491683) wifi: state: init -> auth (b0)
I (2492683) wifi: state: auth -> init (2)
I (2492683) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
I (2492808) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (2492808) wifi: state: init -> auth (b0)
I (2493808) wifi: state: auth -> init (2)
I (2493808) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
[WiFi-event] event: 5
WiFi lost connection.  Attempting to reconnect...
We have recieved the STA_DISCONNECTED event over 10 times now.  Reboot...
I (2493819) wifi: flush txq
I (2493822) wifi: stop sw txq
I (2493824) wifi: lmac stop hw txq
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0010,len:4
load:0x3fff0014,len:708
load:0x40078000,len:0
load:0x40078000,len:11460
entry 0x400789f4
Everything: init started
Everything: Free RAM = -1
I (749) wifi: wifi firmware version: c1b8a2f
I (749) wifi: config NVS flash: enabled
I (749) wifi: config nano formating: disabled
I (758) wifi: Init dynamic tx buffer num: 32
I (758) wifi: Init data frame dynamic rx buffer num: 64
I (758) wifi: Init management frame dynamic rx buffer num: 64
I (762) wifi: wifi driver task: 3ffca34c, prio:23, stack:4096
I (768) wifi: Init static rx buffer num: 10
I (771) wifi: Init dynamic rx buffer num: 0
I (775) wifi: Init rx ampdu len mblock:7
I (779) wifi: Init lldesc rx ampdu entry mblock:4
I (783) wifi: wifi power manager task: 0x3ffd6004 prio: 21 stack: 2560
I (791) wifi: wifi timer task: 3ffd705c, prio:22, stack:3584
I (815) wifi: mode : null
Disabling ESP32 WiFi Access Point

I (1816) wifi: Init Ampdu: 1 tx baw=6 rx baw=6
I (1816) wifi: mode : sta (30:ae:a4:07:f1:98)
[WiFi-event] event: 2

Initializing ESP32 WiFi network.  Please be patient...
ESP32 station start
Attempting to connect to WPA SSID: (SSIDREMOVED)
.I (2943) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
.I (3600) wifi: state: init -> auth (b0)
I (3602) wifi: state: auth -> assoc (0)
I (3606) wifi: state: assoc -> run (10)
I (3635) wifi: connected with (SSIDREMOVED), channel 1
[WiFi-event] event: 4
ESP32 station connected to AP
[WiFi-event] event: 7
WiFi connected
IP address: 
192.168.1.142

@liuzfesp / @ me-no-dev - рдХреНрдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рдореИрдВ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд╕рд╛рде рдпрд╛ рдХреЗрд╡рд▓ рдореЗрд░реЗ рджреЛ HiLetGo ModeMCU ESP32s рдХреЗ рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдХреНрдпрд╛ рдХреЛрдИ рдХрд╕реНрдЯрдо рдлрд░реНрдорд╡реЗрдпрд░ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЖрдЬрд╝рдорд╛ рд╕рдХрддрд╛ рд╣реВрдВ?

-Allan

рдореЗрд░реЗ рд╡реЛрд░реЛрдо -32 рдореЙрдбреНрдпреВрд▓ рдкрд░ рднреА рдореЗрд░рд╛ рд╡рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред
рд╣рд░ 3 рдпрд╛ 4 рд░реАрдмреВрдЯ, рдпрд╣ STA_DISCONNECTED -> AUTH_EXPIRED рд▓реВрдк рдореЗрдВ рд▓рдЯрдХрд╛ рд░рд╣рддрд╛ рд╣реИред
рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП, рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рджреВрд╕рд░реЗ рдореЙрдбреНрдпреВрд▓ рдХреА рдЬрд╛рдБрдЪ рдХреАред
рдореЗрд░рд╛ рд░рд╛рдЙрдЯрд░ рдПрдХ TL-WR841 (TPLINK) рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ ASUS RT-AC87U рдХреЗ рд╕рд╛рде рднреА рд╣реЛрддрд╛ рд╣реИред

рдХрдм рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛, рдЗрд╕рдХреА рдмреЗрдХрд╛рд░ рдЕрдЧрд░ рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд░рд┐рдмреВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ...

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмреВрдЯ рдХреЗ рдмрд╛рдж рднреА рд╣реЛрддреА рд╣реИ, рдЕрд░реНрдерд╛рдд WiFi.begin () STA_DISCONNECTED -> AUTH_EXPIRED рдореЗрдВ рд╕рднреА рдЫреЛрд░реЛрдВ рдкрд░ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛

рдореБрдЭреЗ рдПрдХ рдорд╣реАрдиреЗ рдореЗрдВ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдИ рдЕрдкрд░рд╛рдз рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдХреЗрд▓рд╛ рдирд╣реАрдВ рд╣реВрдВред

@liuzfesp / @ me-no-dev - рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ рдпрд╛ рдХреБрдЫ рднреА рд╣рдо рдЗрд╕реЗ рд╡рд╛рдИрдлрд╛рдИ рд╕реЗ рдордЬрд╝рдмреВрддреА рд╕реЗ рдЬреБрдбрд╝реЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреЛрдХреНрдб @liuzfesp рдлрд┐рд░ рд╕реЗ ... рдпрд╣ рдЙрддрдирд╛ рд╣реА рд╣реИ рдЬрд┐рддрдирд╛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рдИрдлрд╛рдИ рд▓рд┐рдмреНрд░реЛ рд╕реНрд░реЛрдд рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ

@igrr

@copercini рдХреНрдпреЛрдВ?

рдЪреВрдБрдХрд┐ рдореБрдЭреЗ рдпрд╣рд╛рдБ рдЯреИрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ... @vseven , рдХреНрдпрд╛ рдХреЛрдИ рдореМрдХрд╛ рд╣реИ рдЬрдм рдЖрдк рдореЙрдирд┐рдЯрд░ рдореЛрдб рдореЗрдВ Wireshark рдФрд░ WiFi рдПрдбрд╛рдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреИрдХреЗрдЯ рдХреИрдкреНрдЪрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рд╡рд┐рд╢реЗрд╖ рд░реБрдЪрд┐ рд╡рд╣ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЪреВрдБрдХрд┐ рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╣рдо рдЕрдкрдиреЗ CI рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкреИрдХреЗрдЯ рдкрд░ рдХрдмреНрдЬрд╛ рдХреБрдЫ рд╡рд┐рд╕рдВрдЧрддрд┐ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реБрд░рд╛рдЧ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░ (рдмрд╕ рдЪрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рднреА рд╣реЛрддреА рд╣реИ рдпрджрд┐ рдЖрдк рдПрдХ рдЦреБрд▓реЗ рд╡рд╛рдИрдлрд╛рдИ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ?

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╕рднреА рдбрд┐рдмрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдореЗрд░реА WROOM32s рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВ:

[рдбреА] [WiFiGenericред cpp: 265 ] _eventCallback (): рдЗрд╡реЗрдВрдЯ: 2 - STA_START
.... [рдбреА] [WiFiGenericред cpp: 265 ] _eventCallback (): рдЗрд╡реЗрдВрдЯ: 4 - STA_CONNECTED
.. [рдбреА] [WiFiGenericред cpp: 265 ] _eventCallback (): рдЗрд╡реЗрдВрдЯ: 7 - STA_GOT_IP
рд╡рд╛рдИрдлрд╛рдИ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛
... рддреЛ рдореИрдВ рдРрдиреНрдЯреЗрдирд╛ рд░рд┐рд╕реЗрдкреНрд╢рди рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реВрдВ рдпрд╛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдПрдкреА рдкрд░ рд░реАрд╕реЗрдЯ рджрдмрд╛рддрд╛ рд╣реВрдВ ...
[рдбреА] [WiFiGenericред cpp: 265 ] _eventCallback (): рдЗрд╡реЗрдВрдЯ: 5 - STA_DISCONNECTED
[W] [WiFiGenericред cpp: 270 ] _eventCallback (): рдХрд╛рд░рдг: 200 - NO_AP_FOUND
... рдЬрдм рд░рд┐рд╕реЗрдкреНрд╢рди рдлрд┐рд░ рд╕реЗ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЗрд╕реЗ рдХрд╣рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 2 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ:

[рдбреА] [WiFiGenericред cpp: 265 ] _eventCallback (): рдЗрд╡реЗрдВрдЯ: 8 - STA_WPS_ER_SUCCESS

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
WPS рдореЗрд░реЗ рдПрдкреА рдореЗрдВ рдмрдВрдж рд╣реИред рдкрддрд╛ рдирд╣реАрдВ рдХрд┐ рдбрд┐рдмрдЧ рд╕рдВрджреЗрд╢ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред
рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдкреА рдФрд░ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ WROOM32 рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░, wificlient рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреЗрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ WPA2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЦреБрд▓рд╛ред
рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ Wireshark рд▓реЙрдЧ рдХреЛ рдореЙрдирд┐рдЯрд░ рдореЛрдб рдореЗрдВ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрд╕рдбреАрдХреЗ рдкрд░ рдЖрдкрдХреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдореЗрдВ рдПрдХ рдЯрди рдордЬрд╝рд╛ рд▓рд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдЬреЛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдмрд╣реБрдд рдЖрднрд╛рд░реА рд╣реВрдВред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕ рдЫреЛрдЯреЗ рд╕реНрдХреЗрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ ESP8266 рдФрд░ ESP32 рджреЛрдиреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

https://github.com/sidoh/esp32_reconnect_demo

рдореИрдВрдиреЗ рдСрдЯреЛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рдореБрдЭреЗ рдЪрд░ рдХрд╛ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдорд┐рд▓реЗред

рд╕реЗрдЯ рдЕрдк

  1. ESP8266 рдФрд░ ESP32 рджреЛрдиреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг
  2. рдореЛрдмрд╛рдЗрд▓ рд╣реЙрдЯрд╕реНрдкреЙрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рджреЛрдиреЛрдВ WPA2 PSK рдФрд░ рдЦреБрд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА
  3. MCU рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ NTP рдХреНрд▓рд╛рдЗрдВрдЯ рдЬреЛрдбрд╝рд╛ред

рдлрд┐рд░ рдореИрдВрдиреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:

(рдП) рдиреЗрдЯрд╡рд░реНрдХ рдлрд╛рдбрд╝, рддреБрд░рдВрдд рд╡рд┐рд╢реНрд░рд╛рдо

рдЗрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдЙрд╕ рд╕рдордп рддрдХ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдПрдорд╕реАрдпреВ рдиреЛрдЯрд┐рд╕ рдХрдЯ рдЬрд╛рддрд╛ рд╣реИред

(рдмреА) рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдлрд╛рдбрд╝ рджреЗрдВ, рдПрдорд╕реАрдпреВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдХрд┐ рд╡рд╣ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рддреИрдпрд╛рд░ рдХрд░реЗрдВ

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ

  1. рд╡реНрдпрд╡рд╣рд╛рд░ WPA2 рдФрд░ рдЦреБрд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╣реИред
  2. ESP8266 рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рджреЛрдиреЛрдВ (рдП) рдФрд░ (рдмреА) рдХреЗ рд╕рд╛рде рд╕рд╛рдордВрдЬрд╕реНрдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
  3. ESP32 рдкреНрд░рдпреЛрдЧ (рдП) рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди (рдмреА) рдореЗрдВ рдлрдВрд╕ рдЬрд╛рддрд╛ рд╣реИред
  4. ESP32 рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ (рдП) рдФрд░ (рдмреА) рджреЛрдиреЛрдВ рдореЗрдВ WiFi.disconnect(true); _and_ WiFi.begin(WIFI_SSID, WIFI_PASSWD); рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЛрдиреЛрдВ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред
    \
    рдмреВрд▓рд┐рдпрди wifioff рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ disconnect рд╕рд╣реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ WiFi.disconnect(true); WiFi рд╕реЗрдЯрд┐рдВрдЧ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, begin рдХреЙрд▓ рдореЗрдВ ssid рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ

рд▓реЙрдЧреНрд╕

рдпреЗ рд╕рднреА рдПрдХ рдЦреБрд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рд╣реИрдВред рдореИрдВ ESP8266 рд▓реЙрдЧ рдХреЛ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, рд▓реЗрдХрд┐рди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗред

ESP32, рдкреНрд░рдпреЛрдЧ (рдП)

I (25) wifi: wifi firmware version: 708a055
I (26) wifi: config NVS flash: enabled
I (26) wifi: config nano formating: disabled
I (31) wifi: Init dynamic tx buffer num: 32
I (32) wifi: Init data frame dynamic rx buffer num: 64
I (32) wifi: Init management frame dynamic rx buffer num: 64
I (35) wifi: wifi driver task: 3ffd46dc, prio:23, stack:4096
I (40) wifi: Init static rx buffer num: 10
I (44) wifi: Init dynamic rx buffer num: 0
I (48) wifi: wifi power manager task: 0x3ffd9418 prio: 21 stack: 2560
I (425) wifi: mode : sta (30:ae:a4:04:42:c8)
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 2 - STA_START
I (2836) wifi: n:6 0, o:1 0, ap:255 255, sta:6 0, prof:1
I (2836) wifi: state: init -> auth (b0)
I (2853) wifi: state: auth -> assoc (0)
I (2872) wifi: state: assoc -> run (10)
I (2872) wifi: connected with glowyrectangle, channel 6
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 4 - STA_CONNECTED
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 7 - STA_GOT_IP
Setup completed
[4] ssid=glowyrectangle
[5] ssid=glowyrectangle
I (5872) wifi: pm start, type:0

[6] ssid=glowyrectangle
[7] ssid=glowyrectangle
[8] ssid=glowyrectangle
[9] ssid=glowyrectangle
[10] ssid=glowyrectangle
I (10388) wifi: state: run -> auth (7c0)
I (10389) wifi: pm stop, total sleep time: 0/4516399

I (10389) wifi: n:6 0, o:6 0, ap:255 255, sta:6 0, prof:1
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:270] _eventCallback(): Reason: 7 - NOT_ASSOCED
W (11413) wifi: Haven't to connect to a suitable AP now!
[11] ssid=
Attempting to reconnect...
I (13822) wifi: n:6 0, o:6 0, ap:255 255, sta:6 0, prof:1
I (13823) wifi: state: auth -> auth (b0)
I (13826) wifi: state: auth -> assoc (0)
I (13839) wifi: state: assoc -> run (10)
I (13839) wifi: connected with glowyrectangle, channel 6
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 4 - STA_CONNECTED
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 7 - STA_GOT_IP
Connection result: 3
[1513219385] ssid=glowyrectangle
[1513219386] ssid=glowyrectangle
[1513219387] ssid=glowyrectangle
[1513219388] ssid=glowyrectangle
I (16839) wifi: pm start, type:0

ESP32, рдкреНрд░рдпреЛрдЧ (B)

rst:0x10 (RTCWDT_RTC_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:812
load:0x40078000,len:0
load:0x40078000,len:11404
entry 0x40078aa0
I (25) wifi: wifi firmware version: 708a055
I (26) wifi: config NVS flash: enabled
I (26) wifi: config nano formating: disabled
I (35) wifi: Init dynamic tx buffer num: 32
I (36) wifi: Init data frame dynamic rx buffer num: 64
I (36) wifi: Init management frame dynamic rx buffer num: 64
I (39) wifi: wifi driver task: 3ffd46d0, prio:23, stack:4096
I (44) wifi: Init static rx buffer num: 10
I (48) wifi: Init dynamic rx buffer num: 0
I (52) wifi: wifi power manager task: 0x3ffd940c prio: 21 stack: 2560
I (431) wifi: mode : sta (30:ae:a4:04:42:c8)
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 2 - STA_START
I (2842) wifi: n:6 0, o:1 0, ap:255 255, sta:6 0, prof:1
I (2843) wifi: state: init -> auth (b0)
I (2846) wifi: state: auth -> assoc (0)
I (2863) wifi: state: assoc -> run (10)
I (2863) wifi: connected with glowyrectangle, channel 6
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 4 - STA_CONNECTED
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 7 - STA_GOT_IP
Setup completed
[3] ssid=glowyrectangle
[4] ssid=glowyrectangle
I (5863) wifi: pm start, type:0

[5] ssid=glowyrectangle
[1513219573] ssid=glowyrectangle
[1513219574] ssid=glowyrectangle
[1513219575] ssid=glowyrectangle
[1513219576] ssid=glowyrectangle
[1513219577] ssid=glowyrectangle
[1513219578] ssid=glowyrectangle
[1513219579] ssid=glowyrectangle
I (13174) wifi: bcn_timout,ap_probe_send_start
[1513219580] ssid=glowyrectangle
[1513219581] ssid=glowyrectangle
[1513219582] ssid=glowyrectangle
I (15676) wifi: ap_probe_send over, resett wifi status to disassoc
I (15677) wifi: state: run -> init (1)
I (15678) wifi: pm stop, total sleep time: 0/9813809

I (15678) wifi: n:6 0, o:6 0, ap:255 255, sta:6 0, prof:1
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:270] _eventCallback(): Reason: 200 - NO_AP_FOUND
W (16387) wifi: Haven't to connect to a suitable AP now!
[1513219583] ssid=
Attempting to reconnect...
Connection result: 5
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
W (17412) wifi: Haven't to connect to a suitable AP now!
[1513219584] ssid=
Attempting to reconnect...
Connection result: 5
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
W (18437) wifi: Haven't to connect to a suitable AP now!
[1513219585] ssid=
Attempting to reconnect...
Connection result: 5
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
W (19462) wifi: Haven't to connect to a suitable AP now!
[1513219586] ssid=
Attempting to reconnect...
Connection result: 5

... ( loops like this indefinitely ) ...

ESP32, рдкреНрд░рдпреЛрдЧ (B) рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ (рд╕рдЪ) + рд╢реБрд░реВ (ssid, рдкрд╛рд╕рд╡рд╛рд░реНрдб) рдХреЗ рд╕рд╛рде

rst:0x10 (RTCWDT_RTC_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:812
load:0x40078000,len:0
load:0x40078000,len:11404
entry 0x40078aa0
I (27) wifi: wifi firmware version: 708a055
I (28) wifi: config NVS flash: enabled
I (28) wifi: config nano formating: disabled
I (36) wifi: Init dynamic tx buffer num: 32
I (36) wifi: Init data frame dynamic rx buffer num: 64
I (36) wifi: Init management frame dynamic rx buffer num: 64
I (39) wifi: wifi driver task: 3ffd46d0, prio:23, stack:4096
I (45) wifi: Init static rx buffer num: 10
I (48) wifi: Init dynamic rx buffer num: 0
I (52) wifi: wifi power manager task: 0x3ffd940c prio: 21 stack: 2560
I (431) wifi: mode : sta (30:ae:a4:04:42:c8)
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 2 - STA_START
I (2842) wifi: n:6 0, o:1 0, ap:255 255, sta:6 0, prof:1
I (2843) wifi: state: init -> auth (b0)
I (2847) wifi: state: auth -> assoc (0)
I (2863) wifi: state: assoc -> run (10)
I (2863) wifi: connected with glowyrectangle, channel 6
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 4 - STA_CONNECTED
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 7 - STA_GOT_IP
Setup completed
[1513219802] ssid=glowyrectangle
[1513219803] ssid=glowyrectangle
[1513219804] ssid=glowyrectangle
I (5863) wifi: pm start, type:0

[1513219805] ssid=glowyrectangle
[1513219806] ssid=glowyrectangle
[1513219807] ssid=glowyrectangle
[1513219808] ssid=glowyrectangle
[1513219809] ssid=glowyrectangle
[1513219810] ssid=glowyrectangle
[1513219811] ssid=glowyrectangle
[1513219812] ssid=glowyrectangle
[1513219813] ssid=glowyrectangle
[1513219814] ssid=glowyrectangle
[1513219815] ssid=glowyrectangle
[1513219816] ssid=glowyrectangle
I (17282) wifi: bcn_timout,ap_probe_send_start
[1513219817] ssid=glowyrectangle
[1513219818] ssid=glowyrectangle
[1513219819] ssid=glowyrectangle
I (19785) wifi: ap_probe_send over, resett wifi status to disassoc
I (19785) wifi: state: run -> init (1)
I (19786) wifi: pm stop, total sleep time: 0/13922305

I (19786) wifi: n:6 0, o:6 0, ap:255 255, sta:6 0, prof:1
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:270] _eventCallback(): Reason: 200 - NO_AP_FOUND
W (20616) wifi: Haven't to connect to a suitable AP now!
[1513219820] ssid=
Attempting to reconnect...
I (20632) wifi: mode : null
I (20634) wifi: flush txq
I (20634) wifi: stop sw txq
I (20635) wifi: lmac stop hw txq
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 3 - STA_STOP
I (20644) wifi: mode : sta (30:ae:a4:04:42:c8)
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 2 - STA_START
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 2 - STA_START
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:270] _eventCallback(): Reason: 201 - AUTH_FAIL
Connection result: 1
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
W (24182) wifi: Haven't to connect to a suitable AP now!
[1513219823] ssid=
Attempting to reconnect...
I (24254) wifi: mode : null
I (24256) wifi: flush txq
I (24257) wifi: stop sw txq
I (24257) wifi: lmac stop hw txq
I (24266) wifi: mode : sta (30:ae:a4:04:42:c8)
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 3 - STA_STOP
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 2 - STA_START
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 2 - STA_START
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:270] _eventCallback(): Reason: 201 - AUTH_FAIL
Connection result: 1
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
W (27804) wifi: Haven't to connect to a suitable AP now!
[1513219827] ssid=
Attempting to reconnect...
I (27820) wifi: mode : null
I (27822) wifi: flush txq
I (27822) wifi: stop sw txq
I (27822) wifi: lmac stop hw txq
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 3 - STA_STOP
I (27832) wifi: mode : sta (30:ae:a4:04:42:c8)
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 2 - STA_START
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 2 - STA_START
I (30311) wifi: n:6 0, o:1 0, ap:255 255, sta:6 0, prof:1
I (30312) wifi: state: init -> auth (b0)
I (30318) wifi: state: auth -> assoc (0)
I (30339) wifi: state: assoc -> run (10)
I (30340) wifi: connected with glowyrectangle, channel 6
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 4 - STA_CONNECTED
[D][WiFiGeneric.cpp:265] _eventCallback(): Event: 7 - STA_GOT_IP
Connection result: 3
[1513219831] ssid=glowyrectangle
[1513219832] ssid=glowyrectangle
I (33340) wifi: pm start, type:0

[1513219833] ssid=glowyrectangle
[1513219834] ssid=glowyrectangle
[1513219835] ssid=glowyrectangle
[1513219835] ssid=glowyrectangle
[1513219836] ssid=glowyrectangle

рд▓рдкреЗрдЯреЗрдВ

рдореИрдВрдиреЗ SDK рдореЗрдВ рдХреБрдЫ рдЦреБрджрд╛рдИ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред рдореИрдВ рд▓рдЧрднрдЧ рдереЛрдбрд╝рд╛ рдЦреЛрдж рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрдпреЛрдЧреА рд╣реИред рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рддреЛ рдореИрдВ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ; рдореИрдВ рдЙрдкрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ рдореЙрдирд┐рдЯрд░ рдореЛрдб рдореЗрдВ рдХреБрдЫ рдкреАрд╕реАрдПрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рд╡реЗ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рдереЗред рдмрд╕ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХреЗ рдмрд╛рдж ESP32 рдХреБрдЫ рднреА рдирд╣реАрдВ рднреЗрдЬ рд░рд╣рд╛ рдерд╛ред

рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб (рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ (рд╕рддреНрдп) + рд╢реБрд░реВ (рдПрд╕рдПрд╕рдбреА, рдкрд╛рд╕рд╡рд╛рд░реНрдб) рдорд┐рд▓рд╛ рд╣реИред

@vseven @Markusenz @sidoh
рдмрд╛рдж рдореЗрдВ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдФрд░ рдПрд╕рдбреАрдХреЗ рдкрд░ рдЖрдкрдХреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдЕрдиреБрд▓рдЧреНрдирдХ wifi lib рдХрд╛ рдбрд┐рдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рд▓реЙрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
wifi_lib.tar.gz

@igrr - рдореИрдВрдиреЗ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдЦреБрд▓реЗ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рджреЛрдиреЛрдВ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдкреИрдХреЗрдЯ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрджреНрджрд╛ рдмреЗрд╣рдж рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИ, рдпрд╣ рдЗрд╕реЗ рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ 4 рдмрд╛рд░ рдпрд╛ рджрд┐рди рдореЗрдВ рджреЛ рдмрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдХреИрдкреНрдЪрд░рд┐рдВрдЧ рдмрд╣реБрдд рдердХрд╛рдК рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рдЬрдм рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдбрд┐рдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐

рдХреНрдпрд╛ рдЖрдЙрдЯрд▓реБрдХ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ @sidoh рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдЬреНрдпрд╛рджрд╛ рдХрд┐рд╕реНрдордд рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИред рдХреЗрд╡рд▓ рд░рд┐рдмреВрдЯрд┐рдВрдЧ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрди рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд▓реВрдкреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдорд┐рд▓рддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдЗрд╕реЗ рдкреБрдирдГ рд▓реЛрдб рдФрд░ рд▓реЛрдб рдХрд░реВрдБрдЧрд╛ред

EDIT: wifi_lib.tar.gz рдлрд╝рд╛рдЗрд▓ рдЦрд╛рд▓реА рд╣реИред рдХреНрдпрд╛ рдЖрдк рд░рд┐рдкреЙрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдореИрдВрдиреЗ рджреЗрдЦреА рдереА:

WiFi.disconnect(true);
WiFi.begin(SSID, PASSWORD);

рд╣рдореЗрд╢рд╛ рдЕрдВрдд рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП ( true рдкрд░рдо рд╕реЗ disconnect рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ)ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ WiFi.disconnect(true) рд░реЗрдбрд┐рдпреЛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдХреБрдЫ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд░рд╛рдЬреНрдп рдИрдПрд╕рдкреА 32 рдХреЛ рдХреНрд▓рд┐рдпрд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдкрд░реЛрдХреНрдд рдЗрд╕реЗ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рд╡рд╛рдИрдлрд╛рдИ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдореБрджреНрджрд╛ 100% рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдИрдПрд╕рдкреА 32 рдХреЗ рдЗрдВрддрдЬрд╛рд░ рдореЗрдВ рдпрд╣ рдиреЛрдЯрд┐рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд╡рд╛рдкрд╕ рдЪрд╛рд▓реВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдиреЗрдЯрд╡рд░реНрдХ ESP32 рдиреЛрдЯрд┐рд╕ рд╕реЗ рдкрд╣рд▓реЗ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрднреА-рдХрднреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред рд▓реЙрдЧ рд╕реЗ, рдЕрдВрддрд░ рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ NO_AP_FOUND рдШрдЯрдирд╛ рдкреВрд░реНрд╡ рдорд╛рдорд▓реЗ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдирд╣реАрдВред

рдбрд┐рдмрдЧ рд▓рд┐рдм рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдпрд╛ред рдпрд╣рд╛рдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ:

рдпрд╣ рд╕рдм рдПрдХ рдЦреБрд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдерд╛ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ - рдЬрд┐рд╕реНрдЯ рдкреГрд╖реНрда рдХреЗ рдмрдЬрд╛рдп рдХрдЪреНрдЪреЗ рд▓реЙрдЧ рдХрд╛ рд▓рд┐рдВрдХред

@zhangyanjiaoesp - рдЗрд╕ рдкрд░ рдХреЛрдИ рдЦрдмрд░? рдореИрдВрдиреЗ рдбрд┐рдмрдЧ рдХреЛрдб рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ @sidoh рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЙрдЧ рдкреНрд░рджрд╛рди рдХрд┐рдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрд╣ рдХреБрдЫ рдФрд░ рд╕рдкреНрддрд╛рд╣ рд╣реЛ рдЧрдП рд╣реИрдВ рдФрд░ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрддреНрддрд░ рдирд╣реАрдВ рд╣реИред

@sidoh
slow_ap_recreate.log , рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд┐рдВрдЯ рдХреА рддрд░рд╣ рд╣реИрдВ

[1513308152] ssid =
рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕...

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ ssid рдЦрд╛рд▓реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдЪреИрдирд▓реЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЛрдИ рдПрдкреА рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ ssid рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рд╣реИ рдпрд╛ рдирд╣реАрдВред
screenshot from 2018-01-04 17-55-20

рд╣рд╛рдп @ рдЬрд╝рдирдЧрдВрдЬрд┐рдпрд╛рдУрд╕реЗ ,

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдорд╛рдВрд╕ рд╣реИред slow_ap_recreate.log , рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХреЛрдб рдмрд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдкреВрд░реНрдг рд╕реНрдХреЗрдЪ рдпрд╣рд╛рдБ ):

WiFi.begin();

рддреЛ рдпрд╣ рдПрдХ рдПрдкреА рдХреА рдЖрдкреВрд░реНрддрд┐ рдирд╣реАрдВ рд╣реИред рдПрд╕рдбреАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдЬреНрдЮрд╛рдд рдПрдкреА рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢рд╛рдпрдж рдЕрдЧрд░ рдпрд╣ рдкрд┐рдЫрд▓реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП SSID рдХреЛ рдирд╣реАрдВ рдЦреЛрдЬ рдкрд╛рдП, рддреЛ рдпрд╣ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХреЛ рдХреНрд▓рд┐рдпрд░ рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ?

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдЖрддрд╛ рд╣реИ:

WiFi.disconnect(true);
WiFi.begin(ssid, passwd);

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ - рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕реЗрдЯрдЕрдк рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЬрд┐рд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рддрдм рд╣реИ рдЬрдм рдПрдкреА рдПрд╕рдбреАрдХреЗ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд╣ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред

@ рд╕рд┐рджреЛрд╣ рд╣рд╛рдВ, рдЖрдк рд╕рд╣реА рд╣реИрдВред рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рд╡рд┐рдзрд┐ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

WiFi.disconnect (рд╕рд╣реА);
WiFi.begin (ssid, passwd);

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ, рдЗрд╕рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдореИрдВ рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ WiFi.begin() рдмрд┐рдирд╛ рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рд╕рд╣реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рд┐рд░реНрдл рдПрд╕рдбреАрдХреЗ рд╣реИрдВрдбрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реИред

SDK рдореЗрдВ рдкреБрдирд░реНрд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХрд╣рд╛рдВ рд╕реЗ рд╣реИрдВрдбрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдореИрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ рдпрд╣рд╛рдБ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ, WiFi.begin() ред рдХреНрдпрд╛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ?

рд╣рд╛рдБ рдЖрдк рд╕рд╣реА рд╣реИ

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ SDK рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдореБрджреНрджрд╛ рд╡рд╣реА рд╣реЛрдЧрд╛ рдЬреЛ рдореЗрд░рд╛ рдбреЗрдореЛ рд╣реИ? рдпрджрд┐ рдпрд╣ рдПрдкреА рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ SSID рд╕рд╛рдлрд╝ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЬрдм рддрдХ AP рдЬрд╛рдирдХрд╛рд░реА рдкреБрдирдГ рдЖрдкреВрд░реНрддрд┐ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА, рддрдм рддрдХ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗрдЧрд╛?

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ SDK рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ WiFi.setAutoReconnect (рд╕рдЪ) рд╣реЛрдиреЗ рдХрд╛ рдкреВрд░рд╛ рдмрд┐рдВрджреБ рд╣реИред

@everslick - рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ 3+ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИред WiFi.setAutoReconnect (рд╕рдЪ) рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдбрдВрдмрдирд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдХрд╛рдо рдХрд░рддреА рд╣реИ рд╡рд╣ рд╣реИ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рдХрдиреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рджреЗрдирд╛ (рдЬреЛ рдХрд┐ рдПрд▓ рдИ рдбреА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ) рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдФрд░ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

@zhangyanjiaoesp - рддреЛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ WiFi.setAutoReconnect (рд╕рдЪ) рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рдФрд░ рдЪрд╛рд░реЛрдВ рдУрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ SSID рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛? рдЕрдЧрд░ рдпрд╣ рд╕рдЪ рд╣реИ рддреЛ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХрд╛рдЧрдЬрд╝рд╛рдд рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рдореЗрд░рд╛ рднреА рд╡рд╣реА рдореБрджреНрджрд╛ рд╣реИ,
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рджреНрд╡рд╛рд░рд╛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж:
WiFi.disconnect (); // рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди ssid / рдкрд╛рд╕рд╡рд░реНрдб рдорд┐рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рджреЗрд░реА (1000);
ESP.restart ();
рдИрдПрд╕рдкреА рд░рд┐рдмреВрдЯ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд░реАрд╕реЗрдЯ рд╣реЛрдиреЗ рддрдХ рдПрдкреА рд╕реЗ рдХрднреА рдирд╣реАрдВ рдЬреБрдбрд╝рддрд╛ рд╣реИред
рдлрд╝рдВрдХреНрд╢рди Wifi.disconnect () рднреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рд░реЙрдмрд░реНрдЯ

рд╣рд╛рд░реНрдб рддрд░реАрдХрд╛ рдПрдХ GPIO рдкрд┐рди рдХреЛ EN рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдФрд░ рд░рд┐рдмреВрдЯ / рд░рд┐рд╕реНрдЯрд╛рд░реНрдЯ рдпрд╛ wifi (рдкреБрдирдГ) рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рд░рд┐рд╕реЗрдЯ (GPIO рд▓реЛ) рдХреЛ рдмрд▓ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рди рдХрд░реЗрдВред рдмрд╕ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВред рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ ... рдЕрдЧрд░ WiFi.setAutoReconnect (рд╕рдЪ) рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рддреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

Wifi.disconnect рдпрд╛ autoreconnect рдХрд╛ рдХрд╛рдо рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдмрд╛рдд рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ Wifi рдХрдиреЗрдХреНрд╢рди рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ ESP32 рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ рдкреНрд░рдореБрдЦ рд╣реИ (рд╕рднреА рдмрд╛рдж рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╢рд╛рдпрдж Wifi рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ), рдЗрд╕рд▓рд┐рдП рдЕрдВрддрд┐рдо рд╕рдорд╛рдзрд╛рди рдПрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд░реАрд╕реЗрдЯ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ ... рдЕрд▓рд╡рд┐рджрд╛ ESP32 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд░рд┐рдмреВрдЯ рдХрд░рдирд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЖрд░рдЬреАрдмреА рдПрд▓рдИрдбреА рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд░рд┐рдмреВрдЯрд┐рдВрдЧ рд▓рд╛рдЗрдЯ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдИрдПрд╕рдкреА рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рд╡рд╛рдИрдлрд╛рдИ рдЦреЛ рджреЗрддрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ GPIO рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ ESP рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ESP рдХреЛ рдЖрддреНрдорд╣рддреНрдпрд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╛рд╣рд░реА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдкрд░ рд╕рд╣рдорддрд┐ рд╡реНрдпрдХреНрдд рдХреА рдЬреЛ рдмрдЪрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╛рдИрдлрд╛рдИ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ, рдИрдПрд╕рдкреА рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдпрд╛ рд╡рд╛рдИрдлрд╛рдИ рдСрдЯреЛ рдкреБрдирдГ рдХрдиреЗрдХреНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдИрдПрд╕рдкреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, I2C рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдПрдХ рдФрд░ рдПрдХ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред
ESP32 рдЕрдм рддрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛрдирд╛ рдмрд╛рдХреА рд╣реИ ...ред
рд░реЙрдмрд░реНрдЯ

рдФрд░ рдореИрдВрдиреЗ SPI рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ ...

esp_restart_noos ();

рдЬрдм ESP.restart () рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдПрдХ WeMos Lolin32 рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Arduino IDE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

void unitReset ()
 {
#ifdef DEBUGGING
  Serial.println ("Coordinator will REBOOT NOW ....");
#endif    
  WiFi.disconnect();                          //Ensure current  ssid/password is erased
  delay (1000);
  ESP.restart();
 }

рдЬрдм WeMos WiFi.mode (WIFI_STA) рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ MQTT рд╕реЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдХреЗрдЪ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рдИрдлрд╝рд╛рдИ (рдЙрд╕ рдмрд┐рдВрджреБ рд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдпрд╛рд╕ рдПрдХ рдЕрдВрддрд╣реАрди рд▓реВрдк рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ)ред рдПрдХ рдореИрдиреБрдЕрд▓ рд░реАрд╕реЗрдЯ рдЗрд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЯреЗрд▓рдиреЗрдЯ рдХреЗ рдЬрд░рд┐рдП WiFi.mode (WIFI_STA) рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рд╣реА рдлрдВрдХреНрд╢рдиред

@vseven @everslick @rrobinet
рдЖрдк WiFi.setAutoReconnect(true) рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрд░реНрде рдЧрд▓рдд рд╕рдордЭрддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ, WiFi.setAutoReconnect(true) рдХрд╛ рдорддрд▓рдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд╛рдИрдлрд╛рдИ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ ESP32 рдкрд╣рд▓реЗ рд╡рд╛рдИрдлрд╛рдИ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рддреЛ рдЬрдм рд╕рд┐рд╕реНрдЯрдо рдЕрдЧрд▓реА рдмрд╛рд░ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ wiil рдкрд┐рдЫрд▓реЗ рдХрдиреЗрдХреНрдЯреЗрдб рд╡рд╛рдИрдлрд╛рдИ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЬреЛрдбрд╝реЗрдВрдЧреЗред рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдХрд╛рдо рдкрд░ рдЕрд╕рд░ рдкрдбрд╝рд╛ рд╣реИред

@zhangyanjiaoesp рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ: рдпрд╣ рд╕рд┐рд░реНрдл "рдЧрд▓рдд" рд╣реИред рдЙрд╕ рдПрдкреАрдЖрдИ рдХреЛ ESP8266 рдХреЗ рд▓рд┐рдП рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕рдиреЗ рдареАрдХ рдпрд╣реА рдХрд┐рдпрд╛: рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд╛рдИрдлрд╛рдИ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ред рдЖрдк рдХреНрдпрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ WiFi.setAutoConnect () рдХреНрдпрд╛ рд╣реИ; рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд╣реИ рдЖрдк рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдПрдкреАрдЖрдИ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддреЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рдПрдкреАрдЖрдИ рдЖрдкрдХреЗ рдЬреИрд╕рд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдордХрд░рдг рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмреБрд░рд╛ рдФрд░ рднреНрд░рд╛рдордХ рд╣реЛрдЧрд╛ред

рд╡реИрд╕реЗ рднреАред рд╣рдо рдпрд╣рд╛рдВ IoT рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдбрд┐рдлреЙрд▓реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЪрд╛рд╣реЗ рдЬреЛ рднреА рд╣реЛред рдпрджрд┐ рдХреБрдЫ рднреА рд╣реЛ, рддреЛ рд╕реНрд╡рдд: рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрд╕ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдкреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреВрджрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

@vseven @everslick @rrobinet
рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ , рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

ESP.restart рдореБрджреНрджрд╛, рд╕реБрдзрд╛рд░ред
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдКрдкрд░ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ ESP8266 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реА рдереА рдФрд░ ESP32 рдХреЗ рд╕рд╛рде рдирд╣реАрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рдж, рдореБрджреНрджрд╛ ES.d.restart () рд╕реЗ рдкрд╣рд▓реЗ WiFi.disconnect (рд╕рдЪ) рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред ESP32 рдХреЗ рд▓рд┐рдП рдпрд╣ рдлрд╝рдВрдХреНрд╢рди Wifi рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рджреЗрдЦреЗрдВ https://github.com/espressif/arduino-esp32/pull/466)
рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

<snip>
  WiFi.disconnect(true);                                      // Clear Wifi Credentials
  WiFi.persistent(false);                                     // Avoid to store Wifi configuration in Flash
  WiFi.mode(WIFI_STA);                                        // Ensure WiFi mode is Station 
  Serial.println("Now Connecting to Access Point ...");  
  // Connect to the Access Point
  WiFi.begin(ssid,key);
<snip>

рдФрд░ рдпреВрдирд┐рдЯ рд░реАрд╕реЗрдЯ рдмрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

void unitReset ()
 {
#ifdef DEBUGGING
  Serial.println ("Coordinator will REBOOT NOW ....");
#endif    
  delay (1000);
  ESP.restart();
 }

рдХреНрдпрд╛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкрдврд╝рддреЗ рд╣реБрдП рдЕрдм рддрдХ рд╕рдордЭрддрд╛ рд╣реВрдВ:

  • ESP32 ESP8266 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ ESP32 рдХреЗ рд╕рд╛рде рдПрдкреА рдХреЗ рдЦреЛ рдЬрд╛рдиреЗ рдпрд╛ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рднреА рд╡реИрд╕рд╛ рд╣реА рдСрдЯреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рди рд╣реЛред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд╛рдИрдлрд╛рдИ рдХреЗ рдиреБрдХрд╕рд╛рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ ??)
  • ESP32 ESP8266 рд╕реЗ рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмреВрдЯ рдХреЗ рдмрд╛рдж, рдпрд╣ рдХрднреА-рдХрднреА рдПрдкреА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╣рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдпрд╣рд╛рдБ https://github.com/espressif/arduino-esp32/issues/653#issuecomment -356534618
  • рд╡рд░реНрдгрд┐рдд рдореБрджреНрджреЛрдВ рдХреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдкреАрдЖрдИ рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ ESP32 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛

@Markusenz , рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ https://github.com/espressif/arduino-esp32/issues/653#issuecomment -355659659 рд╣рдореЗрд╢рд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП GetAutoReconnect рд▓рд┐рдВрдХ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЪрд┐рдкрдХрд╛рдпрд╛ рдерд╛, рдЬреЛ рдХрд┐ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЕрдЧрд░ рдпрд╣ рд╕рдмред

@zhangyanjiaoesp , рдЗрд╕ рдкрд░ рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред :)

рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрд░реНрде рдХреЛ рдЧрд▓рдд рд╕рдордЭрддреЗ рд╣реИрдВ WiFi.setAutoReconnect (рд╕рдЪ)ред
рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ, WiFi.setAutoReconnect (рд╕рдЪ) рдХрд╛ рдорддрд▓рдм рд╡рд╛рдИрдлрд╛рдИ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ ESP32 рдкрд╣рд▓реЗ рд╡рд╛рдИрдлрд╛рдИ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рддреЛ рдЬрдм рд╕рд┐рд╕реНрдЯрдо рдЕрдЧрд▓реА рдмрд╛рд░ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ wiil рдкрд┐рдЫрд▓реЗ рдХрдиреЗрдХреНрдЯреЗрдб рд╡рд╛рдИрдлрд╛рдИ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рддрд░реАрдХрд╛ setAutoConnect , рди рдХрд┐ setAutoReconnect ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рддрд░реАрдХреЗ рдЕрд▓рдЧ рд╣реИрдВред setAutoReconnect рдпрд╣рд╛рдБ рд╣реИ ред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдЙрд╕ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдпрд╣рд╛рдБ рд╣реИ ред

рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдФрд░ рдЙрд╕ рдЭрдВрдбреЗ рдХреЛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣реИ рдЬрд┐рд╕реЗ рд▓реЛрдЧ рдорд╛рди рд░рд╣реЗ рд╣реИрдВ - рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдПрдкреА рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░рдирд╛ред

рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрднреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ SDK WiFi.begin() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЛ SSID рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЦреЛрдЬрд╛ рд╣реИред

рддреЛ рдРрд╕рд╛ рд╣реА рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЕрдЧрд░ рдЗрд╕реЗ рддреБрд░рдВрдд рдирд╣реАрдВ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ SDK AP рдХреЛ рдЦрд╛рд▓реА рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рдпрджрд┐ рдХреЛрдИ рдЬреНрдЮрд╛рдд SSID рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ WiFi.Begin рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрджрд┐ WiFi.setAutoReconnect (рд╕рдЪ) рдпрд╛ рдореИрдВ рдХреБрдЫ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?

рдпрджрд┐ рдореЗрд░реА рд╕реЛрдЪ / рдЦреБрджрд╛рдИ рд╕рд╣реА рд╣реИ, рддреЛ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЬрд╛рдирдмреВрдЭрдХрд░ рдпрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ setAutoReconnect рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рд▓реЛрдЧ рдЗрд╕рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдХреАрдбрд╝реЗ рд╣реИрдВред

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрднреА рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реВрдВ

WiFi.disconnect(true);
WiFi.begin(ssid, passwd);

рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд╛рдорд╛рди рдХреЗ рдмрдЬрд╛рдп Arduino SDK рджреНрд╡рд╛рд░рд╛ рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред ESP8266 Arduino SDK рдХреЗ рд╕рд╛рде, рдЧреИрд░-OS SDK рджреНрд╡рд╛рд░рд╛ рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ ESP32 Arduino рдПрд╕рдбреАрдХреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рд╢рд╛рдпрдж рдЗрд╕ рдмрд╛рд╣рд░реА рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рддрд░рд╣ рдмрд╣реБрдд рдХреБрдЫ рджрд┐рдЦреЗрдЧрд╛ (рдлрд┐рд░ рд╕реЗ - рдореЗрд░реА рд╕реЛрдЪ рдХреЛ рд╕рд╣реА рдорд╛рдирддреЗ рд╣реБрдПред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ - рдпрд╣рд╛рдВ рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЕрдиреБрднрд╛рдЧ рд╣реИ рдЬреЛ рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

@Markusenz
рддреБрдо рд╕рд╣реА рд╣реЛред
@vseven @sidoh
рдореИрдВ @sidoh рд╕реЗ рд╕рд╣рдордд

рдХреБрдЫ рдЦреБрджрд╛рдИ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛:

static bool sta_was_connected = false;

static void poll_connection(void) {                                         
#ifdef ESP32
  // this is a crude workaround due to the inability of
  // the ESP32 to reconnect to an accesspoint automatically.
  //
  // https://github.com/espressif/arduino-esp32/issues/653

  static uint32_t ms = millis();

  if (!WiFi.isConnected() && (millis() - ms) > 1000 * 5) {
    ms = millis();

    if (sta_was_connected) WiFi.reconnect(); else WiFi.begin();
  }
#endif
}

loop() {
  poll_connection();
}

SYSTEM_EVENT_STA_GOT_IP рдХреЗ рд▓рд┐рдП WiFi рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдЖрдкрдХреЛ sta_was_connected рдХреЛ true рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рддрдм рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрдм ESP32 рдмреВрдЯ рд╣реЛрдиреЗ рдкрд░ рдПрдХреНрд╕реЗрд╕рдкреЙрдЗрдВрдЯ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдерд╛ред

рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐, рдпрд╣ рдПрд╕рдЯреАрдП рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ рдпрджрд┐ рдЖрдкрдиреЗ рдПрдХ рд╕реНрдерд┐рд░ рдЖрдИрдкреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдбреАрдПрдЪрд╕реАрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ) рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдП
[D][WiFiGeneric.cpp:293] _eventCallback(): Event: 8 - STA_LOST_IP
рдпрджрд┐ рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ (рджреЗрд░реА рд╣реЛ рд░рд╣реА рд╣реИ)

рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реВрдВ

    } else if(event->event_id == SYSTEM_EVENT_STA_LOST_IP) {
        if(WiFi.getAutoReconnect()){
            WiFi.begin();
        }

рдпрд╣рд╛рдВ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рд╡рд╛рдИрдлрд╛рдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред
WiFi.begin () рдХреЗ рдмрд╛рдж рдХреЗ рдЫреЛрд░реЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рдХреА рджреЗрд░реА рд░рд╛рдЙрдЯрд░ рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ, рдПрдИрдПрд╕, рдбрдмреНрд▓реНрдпреВрдкреАрдП 2 рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛, рд╕рдмрд╕реЗ рддреЗрдЬ рдФрд░ рд╕рдмрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд▓рдЧрддрд╛ рд╣реИред

рдЙрд╕ рдЕрдВрдд рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдЬрдм рддрдХ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред

рдореИрдВрдиреЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рдХрд┐ рдХреБрдЫ WiFi.disconnect () рдХрд╣ рд░рд╣реЗ рд╣реИрдВред рд╡рд╛рдИрдлрд╝рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВред рдЭреВрдареЗ (рдЭреВрдареЗ); рдЗрд╕рдХреЗ рд╕рд╛рде рдпрд╛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдареАрдХ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдк NV FLASH рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬрдм FLASH рдХреА рдореГрддреНрдпреБ рд╣реЛ рдЬрд╛рдПрдЧреА, рддрдм рдЗрд╕реЗ рдИрдВрдЯ рдорд╛рд░ рджреЗрдВрдЧреЗред

рдЖрдВрд╢рд┐рдХ рдХреЛрдб рдирдореВрдирд╛

setup()
{
  WiFi.begin( rssiSSID , password );

  int WLcount = 0;
  while (WiFi.status() != WL_CONNECTED && WLcount < 250 ) 
  {
    delay( 100 );
    #ifdef DEBUG
       Serial.print(".");
    #endif
    ++WLcount;
  }
}

void loop() 
{
  if (WiFi.status() ==  WL_CONNECTED) 
  {
    // PUT_YOUR_UP_TIME_CODE_HERE   

    #ifdef DEBUG
       Serial.print("C");
       if (UpCount >= 20)   // just keep terminal from scrolling sideways
       {
        UpCount = 0;
        Serial.println();
       }
       ++UpCount;
    #endif

      // END WiFi connected loop()
  } else
  {
    // PUT_YOUR_DOWN_TIME_CODE_HERE
    //  WiFi DOWN loop

    #ifdef DEBUG
        WFstatus = getWifiStatus( WFstatus );
    #endif

    WiFi.begin( rssiSSID , password );
    int WLcount = 0;
    // loop - depending on router, connect can be from 4 - 20 seconds
    // usually longer to reconnect than the connect at boot
    // lopping till reconnect seems to let it settle
    // usually around 80 count to breakout
    while (WiFi.status() != WL_CONNECTED && WLcount < 250 ) 
    {
        delay( 100 );
        #ifdef DEBUG  
            Serial.print(".");
            // just keep terminal from scrolling sideways in test
            if (UpCount >= 20)
            {
                UpCount = 0;
                Serial.println();
            }
            ++UpCount;
        #endif
        ++WLcount;
    }
    delay( 1000 );
  }  // END WiFi DOWN 
} // END loop()


int getWifiStatus( int WiFiStatus  )
{
  WiFiStatus = WiFi.status();
  Serial.print("\tStatus "); Serial.print( WiFiStatus );
  switch( WiFiStatus )
     {
        case WL_IDLE_STATUS :           // WL_IDLE_STATUS     = 0, 
                Serial.println(", WiFi IDLE "); 
                break;
        case WL_NO_SSID_AVAIL:          // WL_NO_SSID_AVAIL   = 1,
                Serial.println(", NO SSID AVAIL ");
                break;
        case WL_SCAN_COMPLETED:         // WL_SCAN_COMPLETED  = 2,
                Serial.println(", WiFi SCAN_COMPLETED "); 
                break;
        case WL_CONNECTED:      // WL_CONNECTED       = 3,
                Serial.println(", WiFi CONNECTED "); 
                WiFi.persistent(true);  
                break;
        case WL_CONNECT_FAILED:         // WL_CONNECT_FAILED  = 4,
                Serial.println(", WiFi WL_CONNECT FAILED"); 
                break;
        case WL_CONNECTION_LOST:        // WL_CONNECTION_LOST = 5,
                Serial.println(", WiFi CONNECTION LOST");
                WiFi.persistent(false); // don't keep writing FLASH
                break;   
        case WL_DISCONNECTED:            // WL_DISCONNECTED    = 6
                Serial.println(", WiFi DISCONNECTED ==");
                break;
  }
  return WiFiStatus;
}  // END getWifiStatus()

======
рдореЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдФрд╕рддрди 8-15 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ
рдиреЛрдЯ "ред" рдХрдиреЗрдХреНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
"C" рдХреЗ рдХрдиреЗрдХреНрдЯреЗрдб рд╣реИрдВ

OUTPUT
CCCCCCCCC     Status 5, WiFi CONNECTION LOST    Unplugged Router here
.........
....................                            Trying
 More lines of dots...
....................
...........       Status 1, NO SSID AVAIL       Gave up, Changed Modes
.........                                       Replugged Router here
....................
................CCCC                            TaDa I'm Back...
CCCCCCCCCCCCCCCCCCCC

рдореИрдВ рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ

void WiFiEvent(WiFiEvent_t event){
    if(event == SYSTEM_EVENT_STA_DISCONNECTED){
      Serial.println("Event: SYSTEM_EVENT_STA_DISCONNECTED, reconnecting");
      WiFi.reconnect();
    }
}

if(WiFi.getAutoReconnect()) WiFi.onEvent(WiFiEvent);

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рд╕ рдХреЗ 50 рдПрдкреА рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЬрдЧрд╣ рд╣реИред Tablatronix рд╕реЗ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ esp32 рдХреЛ рдбрдВрдк рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдорд┐рдХреАрдкреЙрдк рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреЛрдИ рднреА рдЕрдЪреНрдЫрд╛ рдХреИрд╕реЗ рдХрд░реЗрдЧрд╛, рдЬреЛ рдЗрд╕реЗ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рд╡рд╛рдИрдлрд╛рдИ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣рд░ рдмрд╛рд░ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╣рд╛рд░реНрдб рдкрд╛рд╡рд░ рд░реАрд╕реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдУрд░ рдореБрдЭреЗ рдЙрд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдХ esp8266 рдорд┐рд▓рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрднреА рднреА рдХрд┐рд╕реА рдореИрдиреБрдЕрд▓ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдореИрдВрдиреЗ рдХреБрдЫ рдЕрдиреНрдп рд╕реБрдЭрд╛рд╡реЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдпрд╣рд╛рдБ рднрд╛рдЧреНрдп рдХреЗ рдмрд┐рдирд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдХрдорд╛рд▓ рд╣реИред рд╕рдЪ рдХрд╣реВрдВ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╣рд▓ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рд╡реЗ рдХрдареЛрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдкрд░реАрдХреНрд╖рдг рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ esp32 рдПрдХ рдареЛрд╕ рд╕рдВрдмрдВрдз рд╣реИ рдФрд░ рдЖрдВрддрд░рд╛рдпрд┐рдХ рд╡рд╛рдИрдлрд╝рд╛рдИ рдЗрдирд╛рдпрдд рд╕реЗ рд╕рдВрднрд╛рд▓ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд╛рдорд╛рдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж: @tablatronix рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдмрд╣реБрдд рддреЗрдЬ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ / рдмреИрдХрдЯреНрд░реЗрд╕ рджреЗрддрд╛ рд╣реИред рд╣рд░ рдХреБрдЫ рд╕реЗрдХрдВрдб рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИред рдЕрдм рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рдХреБрдЫ рджрд┐рдиреЛрдВ рддрдХ рдЪрд▓рдиреЗ рджреЗрдВ
if(WiFi.getAutoReconnect()) WiFi.onEvent(WiFiEvent);
Edit2: рдЫреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 30 рдорд┐рдирдЯ рддрдХ рдЪрд▓рд╛

@Thefatmoop рдореИрдВ рдПрдХ WiFi рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдЬреЛ рдПрдХ NVS рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдореБрджреНрджрд╛ рдерд╛ред # 1147 рдореИрдВрдиреЗ рдПрдирд╡реАрдПрд╕ рдбреЗрдЯрд╛ рдХреЛ рдбрдВрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреЗрдЪ рдмрдирд╛рдпрд╛ред рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВред рдпрд╣ рдХреБрдЫ рджрд┐рдЦрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдирд╡реАрдПрд╕ рдХреБрдВрдЬреА рджрд┐рдЦрд╛рдПрдВ

рдЪрдХред

thefatmoop

рджреЛрдиреЛрдВ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдПред
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдиреЛрдЯ рдХрд┐рдпрд╛; "_Here рдПрдХ рд╡рд░реНрдХрд┐рдВрдЧ рд╕реЙрд▓реНрдпреВрд╢рди рд╣реИ рдЬреЛ WiFi рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ ред_"

рдЬрдмрдХрд┐ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддрд╛ рд╣реИ,

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдиреЗ рдХрдИ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж рдиреЛрдЯ рдХрд┐рдпрд╛ рдХрд┐ рд╡реЗ рдЯрдХрд░рд╛ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд░рд╛рдЙрдЯрд░ рдореЗрдВ рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░ рдХреЗ рд▓реАрдЬ рд╕рдордп рдХрд╛ рдПрдХ рдХрд╛рд░реНрдп рд╣реИред

рдпрджрд┐ рд░рд╛рдЙрдЯрд░ рдХрд╛ рд▓реАрдЬ рд╕рдордп рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ, рддреЛ рдХрднреА-рдХрднреА рдХреЛрдИ рдЖрдИрдкреА рдкрддрд╛ рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ "рднреВрд▓" рдЬрд╛рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдХрднреА-рдХрднреА рд╡рд╛рдИрдлрд╛рдИ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИред

  • WiFi.begin () рдбреАрдПрдЪрд╕реАрдкреА рдХреЛ рдирдП рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдЖрдИрдкреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред
  • WiFi.reconnect () рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпреВрдирд┐рдЯ рдореЗрдВ рдЕрднреА рднреА рдПрдХ IP рд╣реИ рдФрд░ рд╡рд╣ DHCP рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдХрд╛ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╕рдордп-рд╕рдордп рдкрд░ рдбреАрдПрдЪрд╕реАрдкреА рд░рд╛рдЙрдЯрд░ рдХреЛ рдкрд┐рдВрдЧ рдХрд░рдирд╛ рд╣реИред
рдпрд╣ рд░рд╛рдЙрдЯрд░ рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрднреА рднреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╣реИрдВ рдФрд░ рд▓реАрдЬ рдХреЛ рдЪрд╛рд▓реВ рд░рдЦрддреЗ рд╣реИрдВред

рд░рд┐рдмреВрдЯрд┐рдВрдЧ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреА WHY рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рд░реАрдмреВрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЕрдХреНрд╕рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд┐рдВрдХ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рддреЛ рд░рд┐рдмреВрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЕрдХреНрд╕рд░ рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдкреБрдирдГ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ dhcp, рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдЬрдм hostname рдмрджрд▓рдиреЗ рдФрд░ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рдЗрд╕реЗ рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

@Tablatronix рд╕реЗ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдзрдиреНрдпрд╡рд╛рдж! @thefatmoop рдЖрдк OpenMQTTGateway.ino рдХреЛрдб рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЛрдб рдХреЛ MQTT рд╡рд┐рдпреЛрдЧ рдХреЗ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рд╢рд░реНрдд рдХреЗ рдмрд╛рд╣рд░ рдХреЛрдб рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ESP рдбрдВрдк рдХрд░рддрд╛ рд╣реВрдВред

рдпрджрд┐ WiFi.reconnect() рдлрд┐рд░ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди MQTT рдХреНрд▓рд╛рдЗрдВрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдХреБрдЫ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ () рд╡рд┐рд▓рдВрдм () рдФрд░ рд╢реБрд░реВ () рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ setup_wifi() рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдирдП рдХреЗ рднреАрддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХрдиреЗрдХреНрд╢рдиред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрдордХреНрдпреВрдЯреАрдЯреА рд╕рд░реНрд╡рд░ рдбрд╛рдЙрди рд╣реЛрддрд╛ рд╣реИ?

Thats рдПрдХ рдЖрд╡реЗрджрди рд╕реНрддрд░ рдХреА рд╕рдорд╕реНрдпрд╛ ..

рд╡рд┐рдХреА рдХреЛ mickeypop рдХреЛрдб рдкреНрд░рд╕реНрддрд╛рд╡ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛

рдорд╛рдлрд╝ рдХрд░рдирд╛ред рдореИрдВ arduino / esp рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдПрдХ рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВ рд╡рд╛рдИрдлрд╝рд╛рдИ рдХрдиреЗрдХреНрдЯ рдФрд░ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреАрдбрд╝реЗ / рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рднреА рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреЛрдб рдХрд╛ рдореЗрд░рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛ WiFi рдФрд░ MQTT рдХреНрд▓рд╛рдЗрдВрдЯ (PubSubClient) рджреЛрдиреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Adafruit / Huzzah32 рд╕реЗ ESP32 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

void setupWiFi() {
  WiFi.disconnect(true);
  WiFi.begin(WLAN_SSID, WLAN_PASS);
  WiFi.waitForConnectResult();
}

boolean clientReconnect() {
  if(client.connect("esp32_client")) {
    client.subscribe("/test");
  }
  return client.connected();
}

boolean wifi_connected_once = false;
unsigned long last_client_reconnect_attempt = 0;
int client_reconnect_attempts = 0;

void setup() {  
  client.setServer(MQTT_SERVER, 1883);
  client.setCallback(client_callback);
}

void loop() {
  unsigned long loop_start = millis();

  if(WiFi.isConnected()) {
    // WiFi connected
    if(client.connected()) {
      // client connected
      // publish data every 5 seconds
      if(loop_start - last_client_publish >= 5000) {
        client_publish_data();
        last_client_publish = loop_start;
      }
      client.loop();
    } else {
      // client not connected
      // try reconnect a few times every 5 seconds
      if(client_reconnect_attempts <= 5) {
        if(loop_start - last_client_reconnect_attempt > 5000) {
          client_reconnect_attempts++;
          if(clientReconnect()) {
            // client connected
            client_reconnect_attempts = 0;
          }
          last_client_reconnect_attempt = loop_start;
        }
      } else {
        // maybe MQTT server is down
        // try reconnect in 5 minutes
        if(loop_start - last_client_reconnect_attempt > 300000) {
          last_client_reconnect_attempt = loop_start;
          client_reconnect_attempts = 0;
        }
      }
    }
  } else {
    // WiFi not connected
    // try connect for the first time or 
    // try reconnect every 2 minutes
    if((loop_start - last_client_reconnect_attempt > 120000) || wifi_connected_once == false) {
      last_client_reconnect_attempt = loop_start;
      wifi_connected_once = true;
      client_reconnect_attempts = 0;
      setupWiFi();
    }
  }
}

рдХреБрдЫ рд░рд╛рдЙрдЯрд░ рд░рд┐рдмреВрдЯ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдИрдПрд╕рдкреА рд░рд┐рдмреВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдХреЛрдб рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдмреЗрд╣рддрд░ рд╕реБрдЭрд╛рд╡ рд╣реИ?

рдпрд╣ рдореБрджреНрджрд╛ рдореБрдЭреЗ рдорд╛рд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдмрд┐рдирд╛ рдореБрджреНрджреЛрдВ рдХреЗ рдЪрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЫрд╣ рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж рдХрднреА-рдХрднреА рдкрд╣рд▓реЗ рдШрдВрдЯреЗ рдореЗрдВ рдХрднреА-рдХрднреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореИрдВ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИред рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рджреНрд╡рд╛рд░рд╛ рдИрдПрд╕рдкреА рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдирд╛ рдПрдХ рдЕрдВрддрд┐рдо рдЙрдкрд╛рдп рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред

рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЪрд▓рд╛рдирд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдФрд░ рдЪрд╛рд░ рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП, рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реБрдЖред

рдореИрдВрдиреЗ рдЕрдм рддрдХ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ:

1) AutoReconnect рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдФрд░ рдХреЙрд▓ рдХрд░рдирд╛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛
2) рд╕реНрд╡рддрдГ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдФрд░ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ред рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдореИрдВрдиреЗ рдПрдВрдЯреАрдирд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдпрд╛ рдирд╣реАрдВред рдХрд┐рд╕реА рднреА рдореЛрдб рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рд▓реЙрдЧ рд╣реИрдВ (рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рдЪрд▓ рд░рд╣рд╛ рд╣реИ 600 рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд░рд╛рдЙрдЯрд░ рдкрд░ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЯреАрдкреА-рд▓рд┐рдВрдХ):

рдЪреЗрддрд╛рд╡рдиреА: рд╡рд╛рдИрдлрд╛рдИ рдиреЗ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рджрд┐рдпрд╛ рд╣реИред рдЕрдЧрд▓реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ 632 рдХреЗ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд╛ рдкреНрд░рдпрд╛рд╕
рд╡рд╛рдИрдлрд╛рдИ рд░реАрдЬрд╝рдирд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕ 632 рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛
I (14944038) рд╡рд╛рдИрдлрд╛рдИ: рдореЛрдб: рд╕реЙрдлреНрдЯрдПрдк (30: ae: a4: 1a: ca: 1d)
SSID 'рдиреИрдиреЛ BAB - рд╡рд┐рдХрд╛рд╕' рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб '#######' рдХреЗ рд╕рд╛рде WiFi рдмрдирд╛рдирд╛
WiFi рд╕реЗ рдЬреБрдбрд╝рдирд╛ 'TP-LINK_A8FB38'
[рдбреА] [WiFiGenericред cpp: 293 ] _eventCallback (): рдЗрд╡реЗрдВрдЯ: 3 - STA_STOP
[рдбреА] [WiFiGenericред cpp: 293 ] _eventCallback (): рдЗрд╡реЗрдВрдЯ: 2 - STA_START
[рд╡рд╛рдИрдлрд╝рд╛рдИ рдШрдЯрдирд╛] рдШрдЯрдирд╛: 2
[рдбреА] [WiFiGenericред cpp: 293 ] _eventCallback (): рдЗрд╡реЗрдВрдЯ: 5 - STA_DISCONNECTED
[W] [WiFiGenericред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкрд░ рд╡рд┐рдлрд▓ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб рд╕рд╣реА рд╣реИред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдирдВрдмрд░ 578 !!) рддреНрд░реБрдЯрд┐ 2 рдЙрдард╛ рд░рд╣рд╛ рд╣реИ:

рдЪреЗрддрд╛рд╡рдиреА: рд╡рд╛рдИрдлрд╛рдИ рдиреЗ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рджрд┐рдпрд╛ рд╣реИред рдЕрдЧрд▓реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ 578 рдХреЗ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд╛ рдкреНрд░рдпрд╛рд╕
рд╡рд╛рдИрдлрд╝рд╛рдИ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрддрд┐ рдкреНрд░рдпрд╛рд╕ 578
I (14134199) wifi: рдореЛрдб: softAP (30: ae: a4: 1a: ca: 1d)
SSID 'рдиреИрдиреЛ BAB - рд╡рд┐рдХрд╛рд╕' рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб '#########' рдХреЗ рд╕рд╛рде WiFi рдмрдирд╛рдирд╛
[рдбреА] [WiFiGenericред cpp: 293 ] _eventCallback (): рдЗрд╡реЗрдВрдЯ: 3 - STA_STOP
[рд╡рд╛рдИрдлрд╝рд╛рдИ рдШрдЯрдирд╛] рдШрдЯрдирд╛: 3
WiFi рд╕реЗ рдЬреБрдбрд╝рдирд╛ 'TP-LINK_A8FB38'
[рдбреА] [WiFiGenericред cpp: 293 ] _eventCallback (): рдЗрд╡реЗрдВрдЯ: 13 - AP_START
[рд╡рд╛рдИрдлрд╛рдИ-рдИрд╡реЗрдВрдЯ] рдИрд╡реЗрдВрдЯ: резрей рдЖрдИ (резрекрезрейрек) реп реж) рд╡рд╛рдИрдлрд╛рдИ: рдореЛрдб: рд╕реНрдЯрд╛ (рейреж: рдПрдИ: рдП: рез рдП: рд╕реАрдП: рез рд╕реА) + рд╕реЙрдлреНрдЯрдПрдк (рейреж: рдПрдИ: рдП рек: рез рдП: рд╕реАрдП: рез рдбреА)
[рдбреА] [WiFiGenericред cpp: 293 ] _eventCallback (): рдЗрд╡реЗрдВрдЯ: 2 - STA_START *

[рд╡рд╛рдИрдлрд╛рдИ-рдИрд╡реЗрдВрдЯ] рдИрд╡реЗрдВрдЯ: реи [рдбреА] [WiFiGeneric.cpp: реи реп рей] _eventCallback (): рдИрд╡реЗрдВрдЯ: реи - STA_START
[рд╡рд╛рдИрдлрд╛рдИ-рдИрд╡реЗрдВрдЯ] рдИрд╡реЗрдВрдЯ: реи рдЖрдИ (резрекрезрей w wрек w) рд╡рд╛рдИрдлрд╛рдИ: рдПрдкреА рдЪреИрдирд▓ рдПрдбрдЬрд╕реНрдЯ рдУ: резрез реп рдПрди: ремрезрез
I (14137749) wifi: n: 6 1, o: 1 0, ap: 6 1, sta: 6 1, prof: 1
I (14138422) wifi: рд░рд╛рдЬреНрдп: init -> рдЕрдВрддрд░рд┐рдо (b0)
I (14139423) wifi: рд░рд╛рдЬреНрдп: рд╕реНрдерд┐рддрд┐ -> init (2)
I (14139424) wifi: n: 6 0, o: 6 1, ap: 6 1, sta: 6 1, prof: 6
[рдбреА] [WiFiGenericред cpp: 293 ] _eventCallback (): рдЗрд╡реЗрдВрдЯ: 5 - STA_DISCONNECTED
[W] [WiFiGenericред

рдпрд╣ рд╣рдореЗрд╢рд╛ рджреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЕрдВрдд рдореЗрдВ рдмрд╕ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдордЬреЗрджрд╛рд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдХреБрдЫ рд╣реА рдорд┐рдирдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд╡рд░ рдХреЙрд░реНрдб рдЦреАрдВрдЪрдХрд░ рд░рд╛рдЙрдЯрд░ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдореЗрд░рд╛ рдХреЛрдб рдбрд┐рд╕рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╕рдордп рдореЗрд░рд╛ рд╕рд┐рд╕реНрдЯрдо рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рд░рд╛рдЙрдЯрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдЦрд┐рд░рдХрд╛рд░ рд╣реЛрддреА рд╣реИ рдФрд░ рдИрдПрд╕рдкреА рдмрд╕ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

Btw, рдореИрдВ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рд╣реВрдБ:

SDK рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ: 'v3.1-dev-239-g1c3dd23f-dirty'
CPU рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА: 240MHz
рд╡рд╛рдИрдлрд╛рдИ рджреЛрдиреЛрдВ рдЕрдкрдирд╛ рдирд┐рдЬреА рд╡рд╛рдИрдлрд╛рдИ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ

рд░реЗрдкреЛ рд╕реЗ рдЕрдВрддрд┐рдо рдмрд╛рд░ рдЖрдкрдХреЛ рдХрдм рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛?

1132

рдЖрдк рдХреЗрд╡рд▓ рд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдХреЛрдИ рд╕реНрдХреЗрдЪ рдпрд╛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВред

рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд▓рдЧрднрдЧ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХрд╛ рд╕рдордп рдерд╛ред рдореЗрд░рд╛ рдПрд╕рдбреАрдХреЗ рд╕рдВрд╕реНрдХрд░рдг 3.1-рджреЗрд╡ -239 рд╣реИред
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдХреЛрдб рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдкреЛрд╕реНрдЯ рдХреЗ рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдерд╛ред рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдореИрдВ рдЗрд╕рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рдХрд╣рддрд╛ рд╣реВрдВ:

WiFi.disconnect(true);
WiFi.softAP(wifiName, wifiPassword);
WiFi.begin(connectoToWifiSSID, connectToWifiPassword);

рддрдм рдореИрдВ WiFi рдЗрд╡реЗрдВрдЯреНрд╕ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╡реЗрдВрдЯ SYSTEM_EVENT_STA_DISCONNECTED рд╣реИрдВрдбрд▓ рдХрд░рддрд╛ рд╣реВрдВ ред рдЬрдм рдпрд╣ рдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХреЗ 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ:

1) рдЬрдм рд╡рд╛рдИрдлрд╝рд╛рдИ рдСрдЯреЛрд░рдирдХрдиреЗрдХреНрдЯ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддреЛ рдореИрдВрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛
2) рдореИрдВрдиреЗ autoreconnect рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЙрд╕ рдШрдЯрдирд╛ рдкрд░ WiFi.reconnect () рдХреЙрд▓рд┐рдВрдЧ
3) рдирд╡реАрдирддрдо рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд░реЗрдбрд┐рдпреЛ рдмрдВрдж рдХрд░рдХреЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдореБрдЭреЗ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рд╛ рд╣реИ:

reconnections++;
needsReconnection = true;
reconnectionDetection = millis();
Serial.printf("\r\nWARNING: WiFi lost connection. Trying reconnection attempt %d on next iteration\r\n", reconnections);

needReconnection рдПрдХ рдЭрдВрдбрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореБрдЦреНрдп рд▓реВрдк рдореЗрдВ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЛрдб рдХреА рдкрд╣рд▓реА 3 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЪрд▓рд╛рдХрд░ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдм рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ ;-)

рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдФрд░ рддрд░реАрдХрд╛ рд╣реИред

рдореИрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛, рдореИрдВ рдПрдХ рд░реЗрд╕реНрдЯ рдПрдкреАрдЖрдИ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╕рд░реНрд╡рд░ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рд╕рд╕реЗ рдЕрдзрд┐рдХрддрдо 3 рд╕рдорд╡рд░реНрддреА рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рдпрдХреАрди рдирд╣реАрдВ рддреЛ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

  1. рдХреЛрдИ рдСрдЯреЛрд░рдирдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рд╣реИред
  2. WiFi.reconnect рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ, рд╕реНрдЯрд╛рд░реНрдЯ () (dhcp рдЖрджрд┐) рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
  3. рдпрд╣ рдореЛрдб рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдХреЛрдб рдХреЗ рдХрд┐рд╕реА рдХреЛ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдк рдШрдЯрдирд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ "рд░реЗрдбрд┐рдпреЛ рдмрдВрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ"

рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЦреАрдВрдЪрдХрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдорд╛рдорд▓рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред

josmunpav

рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ WiFi рдореЛрдб рдХреА рд╣реЛ рд╕рдХрддреА рд╣реИ

рддреБрдореНрд╣рд╛рд░рд╛ рдХреЛрдб

WiFi.softAP(wifiName, wifiPassword);
WiFi.begin(connectoToWifiSSID, connectToWifiPassword);

рдЖрдк рдорд┐рд╢реНрд░рд┐рдд рдореЛрдб рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред
WiFi.softAP () ; рдбрд┐рдлрд╝реЙрд▓реНрдЯ WIFI_MODE_AP рдореЛрдб рд╣реИ

WiFi.begin (); рдбрд┐рдлрд╝реЙрд▓реНрдЯ WIFI_AP_STA рдореЛрдб рд╣реИ

рдпрджрд┐ рдЖрдк WIFI_MODE_APSTA рдореЛрдб (рдорд┐рд╢реНрд░рд┐рдд рдореЛрдб) рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ WiFi EVENT рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЛрдб рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред

WiFi.mode( WIFI_MODE_APSTA );
WiFi.softAP(wifiName, wifiPassword);
WiFi.begin(connectoToWifiSSID, connectToWifiPassword);

REF рдЬрд╛рдирдХрд╛рд░реА
in esp_wifi_types.h

typedef enum {
    WIFI_MODE_NULL = 0,  /**< null mode */
    WIFI_MODE_STA,       /**< WiFi station mode */
    WIFI_MODE_AP,        /**< WiFi soft-AP mode */
    WIFI_MODE_APSTA,     /**< WiFi station + soft-AP mode */
    WIFI_MODE_MAX
} wifi_mode_t;

wifitypes.h рдореЗрдВ

typedef enum {
    WL_NO_SHIELD        = 255,   // for compatibility with WiFi Shield library
    WL_IDLE_STATUS      = 0,
    WL_NO_SSID_AVAIL    = 1,
    WL_SCAN_COMPLETED   = 2,
    WL_CONNECTED        = 3,
    WL_CONNECT_FAILED   = 4,
    WL_CONNECTION_LOST  = 5,
    WL_DISCONNECTED     = 6
} wl_status_t;

рд╣рд╛рдп рдорд┐рдХреНрдХреАрдкреЙрдк ,

рдореИрдВ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:


WiFi.mode( WIFI_MODE_APSTA );
WiFi.softAP(wifiName, wifiPassword);
WiFi.begin(connectoToWifiSSID, connectToWifiPassword);

рдореИрдВ WiFi.reconnect () рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдЬрдм рдЗрд╡реЗрдВрдЯ SYSTEM_EVENT_STA_DISCONNECTED рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдореИрдВрдиреЗ рд░рд╛рдЙрдЯрд░ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА рдФрд░ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ (рд╡рд╣ рдмрд┐рдЯ рдкрд╣рд▓реЗ рднреА рдХрд╛рдо рдХрд░

рдЕрдм рддрдХ рдпрд╣ 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ ESP32 рдкрд░ 7 рдШрдВрдЯреЗ рдиреЙрди рд╕реНрдЯреЙрдк рдХреЗ рд▓рд┐рдП рд░рд╛рдд рднрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╣рд░ 5 рд╕реЗрдХрдВрдб рдореЗрдВ рдкрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдм рддрдХ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рдХрд┐ рдорд┐рд╢реНрд░рд┐рдд рдореЛрдб рдШреЛрд╖рдгрд╛ рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ WiFi.begin рдФрд░ WiFi.softAP () рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдерд╛ред рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░ред рдореИрдВ рдЕрдм рдФрд░ рдЕрдзрд┐рдХ рднрд╛рд░реА рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдореИрдВ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд╡реИрд╕реЗ, рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж !!

@mickeypop @josmunpav рдЕрдкрдиреЗ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рдХреА рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рджрд┐рдпрд╛

рдЗрд╕рд╕реЗ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдиреНрдмрд╛рд▓реЗрд╕реНрдЯрд╛ рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ рдпрд╛ рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЛрдб рд╕реЗрдЯ рдХрд░рдирд╛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдореЛрдб рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП рдкреНрд░рдЬрдирди рдХреЛрдб рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛

рдЗрд╕рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХреНрдпреЛрдВрдХрд┐ @everslick рдКрдкрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/espressif/arduino-esp32/issues/653#issuecomment -356515973ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ 6 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЕрднреА рднреА рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рдереЗ рдЬрдм рдЗрд╕реЗ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред

рдХреНрдпреЛрдВ рдХреБрдЫ "autoReconnect" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдСрдЯреЛ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ puzzling рд╕реЗ рдкрд░реЗ рд╣реИред рд╣рд░ рдХреЛрдИ рдЗрд╕ рдХрдореА / рдмрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХрд╛ рдХреЛрдб рдмрдирд╛рдиреЗ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдХреЛрдб рдХреА рдПрдХ рдирдИ рдкреНрд░рддрд┐ рдЦреАрдВрдЪрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкреНрд░рддрд┐ @tablatronix рд╕реБрдЭрд╛рд╡ рдХреЛ рдлрд┐рд░ рд╕реЗ

рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЕрднреА рднреА рдЪрд┐рдк рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдЬрдм рдпрд╣ рдЗрд╕ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд▓реВрдк рдореЗрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ 10 рддрдХ рдЧрд┐рди рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ (15 рдореЗрдВ рд╕реЗ 1 рдпрд╛ рдлрд┐рд░ рд░рд┐рдмреВрдЯ) рдпрд╣ рд░рд┐рдмреВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд┐рд░реНрдл рд╣рд╛рд░реНрдб рд▓реЙрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдардВрдбреЗ рд░рд┐рдмреВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ ESP8266 рдХреЛ рджрд┐рд▓ рдХреА рдзрдбрд╝рдХрди рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ / рд╕рдХрддреА рд╣реВрдВ рдЕрдЧрд░ рдЗрд╕рдореЗрдВ рдмреЗрд╣рддрд░ / рдЕрдзрд┐рдХ рдПрдирд╛рд▓реЙрдЧ рдЗрдирдкреБрдЯ рдереЗ, рд▓реЗрдХрд┐рди рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ ESP32 рдЙрд╕ рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ (https://www.esp32.com/viewtopic.php?f=19&t=2881)ред

Esp8266 рдореЗрдВ рдСрдЯреЛрд░рд┐рдХреНрдХреЙрди рдХреЛ SDK рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, esp32 рдореЗрдВ рдХреЛрдИ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреБрдЫ рдЕрдиреБрдХреВрд▓рддрд╛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдХреЗрд╡рд▓ WIFI_REASON_AUTH_EXPIRE рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрднреА рднреА рдЕрд▓реНрдлрд╝рд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдЕрдкреЗрдХреНрд╖рд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдПрд╕рдбреАрдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрди рд╣реИ, рд╕рдВрдкреВрд░реНрдг рдШрдЯрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрди рд╣реИред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдЕрдЧрд░ рдПрд╕реНрдкреНрд░реЗрд╕рд┐рдл рдПрд╕рдбреАрдХреЗ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЕрдкрдирд╛ рд╕рд╛рд░рд╛ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░ рджреЗрддреЗ рд╣реИрдВред

рдЬрдм рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрдИ рдмрдХрд╛рдпрд╛ рдореБрджреНрджреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдкреВрдЫрддрд╛ рд╣реВрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдШрдЯрдирд╛ рд╕рдорд╛рдзрд╛рди рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред

  • рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, dhcp рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдЦреЛрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ (), рд╢реБрд░реВ () ** рдХреЗ рд╡рд┐рдкрд░реАрдд
  • рдСрдЯреЛрдХрдиреЗрдХреНрдЯ рдЧрд▓рдд wl_status рдЙрддреНрд╕рд░реНрдЬрди рдФрд░ рдЕрдирдВрдд рд▓реВрдк рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ
  • sdk рдХреБрдЫ рд░рд╛рдЙрдЯрд░реЛрдВ рдкрд░ Cort_fail рдХреЗ рд▓рд┐рдП Cort_expire рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИ, рдКрдкрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ
  • esp_wifi_set_mode рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ, рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ
  • рдСрдЯреЛрдХрдиреЗрдХреНрдЯ, рдХрд╛рдо рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, https://github.com/espressif/arduino-esp32/issues/173

** reconnect does not enablesta, it just returns false, you should always be checking for return values!

рдпрджрд┐ рдореИрдВ рдЕрдкрдиреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрди рдмрдЧреЛрдВ рдореЗрдВ рд╕реЗ 2 рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдСрдЯреЛрд░рд┐рдХреЛрдиреЗрдХреНрдЯ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВред

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ рдореИрдВ рдПрдХ рдирдореВрдиреЗ рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реВрдВ рдЬреЛ рдЙрди рдореБрджреНрджреЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореИрдВ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдирдореВрдирд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рднрд░рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  1. рджреЛ рдХрд╛рд░реНрдп: рдореБрдЦреНрдп рдПрдХ рдФрд░ рд╡реЗрдм / рд╡рд╛рдИрдлрд╛рдИ (рдордВрдЧреЛрд▓рд┐рдпрд╛рдИ 6.11 рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд)
  2. рдбрдореА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЬреИрд╕реЗ PWM рдХреЛ рдкрд┐рди рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛, рдФрд╕рдд рдПрдбреАрд╕реА рдорд╛рди рдкрдврд╝рдирд╛ рдФрд░ рдПрдХ рд╕рд╛рдЭрд╛ рдЗрдВрдЯ рдХрд╛рдЙрдВрдЯрд░
  3. Http: // your_esp32_ip / рдкрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреГрд╖реНрда рдЬрд┐рд╕реЗ рдЖрдк рдЗрд╕реЗ рдЪрд▓рд╛рдирд╛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрдм рдпрд╣ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рддреЛ рдЖрдкрдХреЛ
  4. рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдорд╛рдлреЛрд░ред рдореБрдЦреНрдп рдХрд╛рд░реНрдп pwm рдкрд┐рди рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддрд╛ рд╣реИ, ADC рд╕реЗ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдХрд╛рдЙрдВрдЯрд░ рдмрдврд╝рд╛рддрд╛ рд╣реИред рд╡реЗрдм рдЯрд╛рд╕реНрдХ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╣реЛрдо рдкреЗрдЬ рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред
  5. рд╡рд╛рдИрдлрд╛рдИ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ, рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рдИрдлрд╛рдИ рддрд░реАрдХреЗред
  6. рдпрд╣ APSTA рдореЛрдб рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд╛рдИрдлрд╛рдИ (рдЖрдкрдХреЗ рд╡рд╛рдИрдлрд╛рдИ рдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣реЛрдо рд╡реЗрдм рдкреЗрдЬ рдПрдХ рд╕реАрдбреАрдПрди рд╕реЗ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдирдореВрдирд╛ рдореЗрдВ ESP32 рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)

рдореИрдВрдиреЗ рдЕрдм рддрдХ рдЬреЛ рдкрд╛рдпрд╛ рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдбрдореА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрддреЗ рд╣реИрдВ (рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЭрдВрдбрд╛ рд╣реИ) рддреЛ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдп рдареАрдХ-рдард╛рдХ рдЪрд▓рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдВрддрддрдГ (рдХрднреА-рдХрднреА рдШрдВрдЯреЛрдВ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЖрдо рддреМрд░ рдкрд░ рдкрд╣рд▓реЗ рдШрдВрдЯреЗ рдХреЗ рднреАрддрд░ рд╣реЛрддрд╛ рд╣реИ) рд╡рд╛рдИрдлрд╛рдИ рд╕реЗ рдИрдПрд╕рдкреА 32 рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╣рд░ рд╕рдордп рд╕рдлрд▓рддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╣рд░ 10 рд╕реЗрдХрдВрдб рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ADC рдпрд╛ PWM рд▓рд╛рдЗрдмреНрд░реЗрд░реА ( esp32-hal-ledc.h рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ) рдХреЗ рдмреАрдЪ рдХреБрдЫ рд╣рд╕реНрддрдХреНрд╖реЗрдк рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ рдЬрдм рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдбрдореА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдХреБрдЫ рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдЬрдм рд╡рд┐рдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ рдПрдкреА рдХреЗ рд▓рд┐рдП рд╡рд╛рдИрдлрд╛рдИ рд╕рд┐рдЧреНрдирд▓ рдмрд╣реБрдд рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкрд░ рдЪреЗрдХ рдХрд┐рдпрд╛ред

рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ WiFi рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

[WiFi-event] event: 5
Disconnected from WiFi. Trying connection again in 10000ms
Web/Main Task is up and running. Shared counter is 11309, Average ADC Value = 1305.000000, PWM Value = 0
Connecting to WiFi 'TP-LINK_A8FB38' with password: 'C1A8FB38' on connection attempt = 108
Oops, there was a problem when connecting. It returned error: 1[D][WiFiGeneric.cpp:293] _eventCallback(): Event: 5 - STA_DISCONNECTED
[W][WiFiGeneric.cpp:298] _eventCallback(): Reason: 2 - AUTH_EXPIRE

рдХреГрдкрдпрд╛ рд╕рдВрд▓рдЧреНрди рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдирдореВрдирд╛ рдкреГрд╖реНрда рджреЗрдЦреЗрдВ:

working
not_working

ESP32_APSTA_Mode_Disconnection_Test.zip

PS: рдореЗрд░рд╛ рдЕрд╕рд▓реА рдРрдк рдЙрд╕реА рддрд░рд╣ рдХрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕реЗрдВрд╕рд░, рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдЬреАрдкреАрдЖрдИрдУрдПрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдПрдкреАрдПрд╕рдЯреАрдП рдореЛрдб рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рджреВрд╕рд░рд╛ рд╡рд╛рдИрдлрд╛рдИ рдФрд░ рд╡реЗрдмрд╕рд░реНрд╡рд░ рдХреЛ рдорд╛рдирд╕ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдмрд╣реБрдд рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдореИрдВрдиреЗ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реНрдХреЗрдЪ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛, рд╣рд░ 10 рд╕реЗрдХрдВрдб рдореЗрдВ 10 рдмрд╛рд░ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рд╡рд╛рдИрдлрд╛рдИ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рд╡рд╛рдИрдлрд╛рдИ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЕрдиреНрдп рдХреЛрдб рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рдереАред

#include <WiFi.h>
#include "time.h"

const char* ssid       = "ssid1";
const char* password   = "password1";

const char* ntpServer = "pool.ntp.org";
const long  gmtOffset_sec = 3600;
const int   daylightOffset_sec = 3600;

byte wfConnectTry = 0;
byte loopCnt = 0;

void printLocalTime()
{
  struct tm timeinfo;
  if (!getLocalTime(&timeinfo)) {
    Serial.println("Failed to obtain time");
    return;
  }
  Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
}

void setup()
{
  Serial.begin(115200);

  //connect to WiFi
  Serial.printf("Connecting to %s ", ssid);
  //WiFi.begin(ssid, password);
  wifiStart();
  //init and get the time
  configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
  if (WiFi.status() == WL_CONNECTED) {
    printLocalTime();
  }

}

void loop()
{
  delay(10000);
  printLocalTime();
  while (WiFi.status() != WL_CONNECTED || wfConnectTry >=5) {
    wfConnectTry++;
    wifiReconnect();

  }
  if (loopCnt >= 10){
    wifiReconnect();
  }
  loopCnt++;
}

void wifiReconnect()
{
  Serial.println(F("Disconnecting"));
  WiFi.disconnect(true);
  delay(500);
  Serial.println(F("Starting WiFi!"));
  wifiStart();
  loopCnt = 0;
}

void wifiStart()
{
  unsigned long timer1 = millis();
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED && millis() - timer1 < 5000UL) {
    delay(500);
    Serial.print(".");
  }
  if (WiFi.status() == WL_CONNECTED) {
    Serial.println(F(" CONNECTED"));
    wfConnectTry = 0;
  }
  else {
    Serial.println(F("Could not connect!"));
  }
}

.... рдХреЛрдб рдЯрд┐рдк @tablatronix рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдмрд╛рдбрд╝ рддреАрди рдЯрд┐рдХ рдирдИ рдХреЗ рдмрд╛рдж amd рд╕реЗ рдкрд╣рд▓реЗ

рдпрд╣рд╛рдБ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЯреБрдХрдбрд╝рд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣рд░ рдЪрд╛рд▓ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ SimpleWiFiServer рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рд░рди рдХрд░рддрд╛ рд╣реВрдВ , рддреЛ

рдореЗрд░рд╛ рдРрдк рд╡рд╛рдИрдлрд╛рдИ рд╕реЗ рдмрд╕ рдареАрдХ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдмрд┐рдВрджреБ (рджрд┐рди рдпрд╛ рд╕рдкреНрддрд╛рд╣) рдкрд░ рдпрд╣ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдФрд░ рдирд╛рдж рдкрд░ рд╕рднреА рддрд░рд╣ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╣рд╛, рдореИрдВ рдЕрдкрдиреЗ ESP32 рдХреЛ Wifi рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдЪреАрдЬреЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЕрдиреНрдп рдРрдк рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рдИрдлрд╛рдИ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдИрдПрд╕рдкреА 32 рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@gdombiak , рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдбреАрдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ ESP32 рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрдм рдпрд╣ рд▓реЙрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ? рдореЗрд░реЗ рдкрд╛рд╕ рд╣рд╛рд▓ рд╣реА рдХрд╛ рдПрдХ рдореБрджреНрджрд╛ рдерд╛, рдЬрд╣рд╛рдВ рдореЗрд░реЗ рдПрдХ рд╕реНрдХреЗрдЪ рдиреЗ рдПрдХ рд╡рд┐рдЬреЗрддрд╛ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд┐рдпрд╛, рд╕рд┐рд╡рд╛рдп рдЬрдм рдирдпрд╛ рджрд┐рди рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рдФрд░ рджреЛ рд▓рд╛рдЗрдиреЗрдВ рдереАрдВ рдЬреЛ рдЗрд╕реЗ рдПрдХ рдирд┐рд░рдВрддрд░ рд▓реВрдк рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИрдВ рдФрд░ рдИрдПрд╕рдкреА рдЕрдВрдд рдореЗрдВ рдЦреБрдж рдХреЛ рдиреАрдЪреЗ рдЧрд┐рд░рд╛ рджреЗрддреА рд╣реИ рдЬрдм рддрдХ рдореИрдВ рд░реАрд╕реЗрдЯ рдпрд╛ рдкреБрдирдГ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдпрд╣ рдерд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ ESP рдерд╛ рдЬреЛ AP_STA рдХреЗ рд░реВрдк рдореЗрдВ рдерд╛ рдФрд░ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп WiFI рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд░рд╣рд╛ред рдЕрдиреНрдп рдИрдПрд╕рдкреА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WiFi.mode (WIFI_STA) рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

@AIWIndustries

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХреА рдЧрдИ рдПрдХ рдкреЛрд╕реНрдЯ рджреЗрдЦреЗрдВ :
" SmartConfig / WiFi рдХрдВрдХрд╛рд▓ " рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ

рдореИрдВрдиреЗ рдПрдХ рдкреВрд░рд╛ рдХрдВрдХрд╛рд▓ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐; SmartConfig рдХреЗ рд╕рд╛рде рд╕реЗрдЯ, WiFi UP рдФрд░ DOWN рдХреЗ рд╕рд╛рде рдбреАрд▓ рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдбрд╛рдЙрди рд╣реЛ рддреЛ рдСрдЯреЛ рдлрд┐рд░ рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдПрдХ рдкреВрд░реНрдг рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рд╡рд╛рдИрдлрд╛рдИ рд╕реЗ рдиреАрдЪреЗ рдЬрд╛рдиреЗ рдпрд╛ рдЕрдЬреНрдЮрд╛рдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рд╣рдореЗрд╢рд╛ рдЬреБрдбрд╝рд╛ рд░рд╣рддрд╛ рд╣реИред

" // WiFi DOWN " рдХреЗ рд▓рд┐рдП рд▓реВрдк () рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдВред рдореИрдВ рд╡рд╛рдИрдлрд╛рдИ рд╕реНрдЯреЗрдЯрд╕ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг () / рдЕрдиреНрдпрдерд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдПрд╕реНрдкреНрд░реЗрд╕рд┐рдл рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╡рдЬрд╣ рд╕реЗ, рдЬрдм рд╡рд╛рдИрдлрд╛рдИ рдбрд╛рдЙрди рд╣реЛрддрд╛ рд╣реИ, рддрдм рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 30-40 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред

рдпрджрд┐ рдПрдкреА рдмрд┐рдЬрд▓реА рдЪрдХреНрд░рд┐рдд рд╣реИ рддреЛ рдПрдкреА рдХреЛ рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 30 рд╕реЗрдХрдВрдб рдФрд░ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 15 рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдкреБрди: рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИред

@AIWIndustries

рдПрдХ рд▓реЙрдХрдЕрдк рджреЗрдЦрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдпрджрд┐ рдЯреНрд░реЗрд╕рдмреИрдХ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рдореБрджреНрд░рд┐рдд рд╣реЛред

"рдИрдПрд╕рдкреА рдЕрдкрд╡рд╛рдж рд╡рд┐рдХреЛрдбрдХ" рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ; https://github.com/me-no-dev/EspExceptionDecoder
рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред

рдПрдХ рдмрд╛рд░ рдмрд╕ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдЯреНрд░реЗрд╕рдмреИрдХ рд▓рд╛рдЗрди рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рд▓реЙрдХ рдЕрдк рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдирдорд╕реНрддреЗ,

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╢реВрдиреНрдп wifiReconnect () {
рдЬрдмрдХрд┐ (WiFi.status ()! = WL_CONNECTED) {
WiFi.begin (ssid, рдкрд╛рд╕рд╡рд░реНрдб);
for (int i = 0; рдореИрдВ <= 50; i ++) {
digitalWrite (LED_BUILTIN, HIGH);
рджреЗрд░реА (100);
Serial.print ( "ред");
digitalWrite (LED_BUILTIN, LOW);
рджреЗрд░реА (100);
}
}
}

рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реВрдк () рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░реЗрдВ

рдЕрдЧрд░ (WiFi.status ()! = WL_CONNECTED) {
wifiReconnect ();
}

рдирдорд╕реНрддреЗ
рдореИрдВ рд▓рдЧрднрдЧ 2 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП ESP32 рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдореЗрд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдореИрдВ рд╕реЗрдЯрдЕрдк рдореЗрдВ () рдФрд░ рдХреЙрд▓рд┐рдВрдЧ WiFi.regin (ssid, pass) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "System_EVENT_STA_DISCONNECTED" рдЗрд╡реЗрдВрдЯ рдкрд░ WiFi.reconnect () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрджрд┐ рдХреЛрдИ рд╡рд┐рдпреЛрдЧ рд╣реЛ рддреЛ рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рддрдГ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдХрд▓ рдореИрдВрдиреЗ рд▓реЗрдЯреЗрд╕реНрдЯ рдХреЛрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рд╡рд╣ рдХрд╛рд░рдг рдХреЛрдб 8 рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред
рдХреБрдЫ рд╣рд┐рдЯ рдФрд░ рдЯреНрд░рд╛рдпрд▓ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ WiFi.reconnect () рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИ рддреЛ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдПрдкреА рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкрд░ рднреА рд╡рд╛рдИрдлрд╛рдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЗрд╡рд▓ рд╕реЗрдЯрдЕрдк рд╡рд┐рдзрд┐ рдореЗрдВ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
WiFi.mode (WIFI_STA);
Wifi.begin ()

рдпрд╣ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдХреНрдпрд╛ рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирдП рдХреЛрд░ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ () рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдСрдЯреЛрд░рд┐рдХреЛрдиреЗрдХ рдЕрдм рдирд╡реАрдирддрдо рдХреЛрд░ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ?

рд╕рд╣реА рдмрд╛рддред рдЕрдм рдлрд┐рд░ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ;) рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рддрдп рд╣реИ: рдкреА

Wifi.Reconnect () рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рджреЛрд╖ рд╣реИред

рдХрдИ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдорд┐рд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЧрд╣рд░реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдбреАрдПрдЪрд╕реАрдкреА рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рддрд╛рдХрд┐ рдЖрдк рдЖрдИрдкреА рдкрддреЗ рдХреЗ рдмрд┐рдирд╛ рдЬреБрдбрд╝реЗ рд░рд╣реЗрдВред - рдореИрдВрдиреЗ рдЗрд╕рдХреА рд╕реВрдЪрдирд╛ рджреА, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдХреЛрдИ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдореЗрдВ UDP рдХреЙрд▓ рдЬреЛрдбрд╝рдХрд░ рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░ рджрд┐рдпрд╛ред - рдореИрдВ рдпреВрдбреАрдкреА рджреНрд╡рд╛рд░рд╛ рдПрдкреА рд╕реЗ рдмрд╛рдд рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреЛрдИ рдЖрдИрдкреА рдкрддрд╛ рдирд╣реАрдВ рдерд╛ред рдЙрд╕реА рд╕рдордп рдореИрдХ рдПрдкреА рдХрдиреЗрдХреНрд╢рди рд╕реВрдЪреА рдкрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред

рдЖрдк wifi.begin () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛрддрд╛ рд╣реИред - рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЖрдк рдиреАрдЪреЗ рд╣реИрдВ рдпрд╛ рдЖрдк рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдореБрджреНрджреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

_ рдореИрдВрдиреЗ рдиреАрдЪреЗ рд▓рд┐рдЦрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдХрднреА рдЕрд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдЖред рдпрд╣ рдПрдкреА / рдкрд╛рд╕ рдХреА рд╣рд╛рд░реНрдб рдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдорд╛рд░реНрдЯрдХреЙрдиреНрдлрд┐рдЧ рдФрд░ рд╡рд░реАрдпрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░реЗ рдХреБрдЫ рдХреЛрдб рдПрд▓рдИрдбреА рдлреНрд▓реИрд╢рд░ рдХреЗ рд▓рд┐рдП рдорд╛рд▓рд┐рдХрд╛рдирд╛ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдЖрдк рд╡рд╣рд╛рдВ рдХреЛрдИ рднреА рд╕рдВрдХреЗрддрдХ рдХреЛрдб рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реВрдк рдХреЗ рд╡рд╛рдИрдлрд╛рдИ рдбрд╛рдЙрди рднрд╛рдЧ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ ()ред рдореИрдВ WiFi.begin (PrefSSID.c_str (), PrefPassword.c_str ()) рдХрд╣рддрд╛ рд╣реВрдВ; рд╣рдореЗрд╢рд╛ WL_CONNECTED рдХреА рд╡рд╛рдкрд╕реА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордпред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдорджрдж рдХрд░рддрд╛ рд╣реИред

// ESP32 only,  8266 will not work here
#include "FS.h"
#include "esp_system.h"
#include <esp_wifi.h>
#include <string.h>
#include <WiFi.h>
#include <Preferences.h> // WiFi storage

const char* rssiSSID;        // NO MORE hard coded set AP, all SmartConfig
const char* password;
String PrefSSID, PrefPassword;   // used by preferences storage

int WFstatus;
int UpCount; = 0;
int32_t rssi;         // store WiFi signal strength here
String getSsid;
String getPass;
String MAC;

// SSID storage
  Preferences preferences;       // declare class object
// END SSID storage

void setup() {
  Serial.begin(115200);

  Serial.printf("\tWiFi Setup -- \n" ); 
  wifiInit();      // get WiFi connected
  IP_info();
  MAC = getMacAddress();

  delay(2000);  // let thing settle
} // END setup()

void loop()
{
  if ( WiFi.status() == WL_CONNECTED )
  {   // Main connected loop

         // ANY MAIN LOOP CODE HERE

  }   // END Main connected loop()
  else
  {      // WiFi DOWN

    //  wifi down start LED flasher here

    WFstatus = getWifiStatus( WFstatus );
    WiFi.begin(  PrefSSID.c_str() , PrefPassword.c_str() );
    int WLcount = 0;
    while (  WiFi.status() != WL_CONNECTED && WLcount < 200 )
    {
      delay( 100 );
      Serial.printf(".");

        if (UpCount >= 60)  // keep from scrolling sideways forever
        {
           UpCount = 0;
           Serial.printf("\n");
        }
        ++UpCount;
        ++WLcount;
    }

    if( getWifiStatus( WFstatus ) == 3 )   //wifi returns
    { 
      // stop LED flasher, wifi going up
    }
   delay( 1000 );
  } // END WiFi down
} // END loop()


void wifiInit() //
{
  WiFi.mode(WIFI_AP_STA); // required to read NVR before WiFi.begin()

  // load credentials from NVR, a little RTOS code here
  wifi_config_t conf;
  esp_wifi_get_config(WIFI_IF_STA, &conf);     // load wifi settings to struct comf
  rssiSSID = reinterpret_cast<const char*>(conf.sta.ssid);
  password = reinterpret_cast<const char*>(conf.sta.password);

  //  Serial.printf( "SSID = %s\n", rssiSSID );  // un-comment for debuging
  //  Serial.printf( "Pass = %s\n", password );  // un-comment for debuging
  // Open Preferences with wifi namespace. Namespace is limited to 15 chars
  preferences.begin("wifi", false);
    PrefSSID     = preferences.getString("ssid", "none"); //NVS key ssid
    PrefPassword = preferences.getString("password", "none"); //NVS key password
  preferences.end();

  // keep from rewriting flash if not needed
  if( !checkPrefsStore() )   // see is NV and Prefs are the same
  {                          // not the same, setup with SmartConfig
    if( PrefSSID == "none" ) // New...setup wifi
    {
      initSmartConfig();
      delay( 3000);
      ESP.restart(); // reboot with wifi configured
    }
  }

  // I flash LEDs while connecting here

  WiFi.begin( PrefSSID.c_str() , PrefPassword.c_str() );

  int WLcount = 0;
  while (WiFi.status() != WL_CONNECTED && WLcount < 200 ) // can take > 100 loops depending on router settings
  {
    delay( 100 );
    Serial.printf(".");
    ++WLcount;
  }
  delay( 3000 );

  // stop the led flasher here

} // END wifiInit()

// match WiFi IDs in NVS to Pref store, assumes WiFi.mode(WIFI_AP_STA); was executed
bool checkPrefsStore()
{
  bool val = false;
  String NVssid, NVpass, prefssid, prefpass;

  NVssid = getSsidPass( "ssid" );
  NVpass = getSsidPass( "pass" );

  // Open Preferences with my-app namespace. Namespace name is limited to 15 chars
  preferences.begin("wifi", false);
    prefssid  =  preferences.getString("ssid",     "none"); //NVS key ssid
    prefpass  =  preferences.getString("password", "none"); //NVS key password
  preferences.end();

  if( NVssid.equals(prefssid) && NVpass.equals(prefpass) )
  { 
    val = true; 
  }
  return val;
} // END checkPrefsStore()

void initSmartConfig()
{
  // start LED flasher here
  int loopCounter = 0;

  WiFi.mode( WIFI_AP_STA );     //Init WiFi, start SmartConfig
  Serial.printf( "Entering SmartConfig\n" );

  WiFi.beginSmartConfig();

  while (!WiFi.smartConfigDone())
  { // flash led to indicate not configured
    Serial.printf( "." );
    if( loopCounter >= 40 )
    {
      loopCounter = 0;
      Serial.printf( "\n" );
    }
    delay(600);
    ++loopCounter;
  }
  loopCounter = 0;

  // stopped flasher here

  Serial.printf("\nSmartConfig received.\n Waiting for WiFi\n\n");
  delay(2000 );

  while( WiFi.status() != WL_CONNECTED )
  { // check till connected
     delay(500);
  }
  IP_info();

  preferences.begin("wifi", false); // put it in storage
    preferences.putString( "ssid" ,    getSsid);
    preferences.putString( "password", getPass);
  preferences.end();

  delay(300);
} // END SmartConfig()

void IP_info()
{
  getSsid = WiFi.SSID();
  getPass = WiFi.psk();
  rssi = getRSSI( rssiSSID );
  WFstatus = getWifiStatus( WFstatus );
  MAC = getMacAddress();

  Serial.printf( "\n\n\tSSID\t%s, ", getSsid.c_str() );
  Serial.print( rssi);  Serial.printf(" dBm\n" );  // printf??
  Serial.printf( "\tPass:\t %s\n", getPass.c_str() ); 
  Serial.print( "\n\n\tIP address:\t" );  Serial.print(WiFi.localIP() );
  Serial.print( " / " );              Serial.println( WiFi.subnetMask() );
  Serial.print( "\tGateway IP:\t" );  Serial.println( WiFi.gatewayIP() );
  Serial.print( "\t1st DNS:\t" );     Serial.println( WiFi.dnsIP() );
  Serial.printf( "\tMAC:\t\t%s\n", MAC.c_str() );
}  // END IP_info()

int getWifiStatus( int WiFiStatus )
{
  WiFiStatus = WiFi.status();
  Serial.printf("\tStatus %d", WiFiStatus );
  switch( WiFiStatus )
  {
    case WL_IDLE_STATUS : // WL_IDLE_STATUS = 0,
        Serial.printf(", WiFi IDLE \n");
        break;
    case WL_NO_SSID_AVAIL: // WL_NO_SSID_AVAIL = 1,
        Serial.printf(", NO SSID AVAIL \n");
        break;
    case WL_SCAN_COMPLETED: // WL_SCAN_COMPLETED = 2,
        Serial.printf(", WiFi SCAN_COMPLETED \n");
        break;
    case WL_CONNECTED: // WL_CONNECTED = 3,
        Serial.printf(", WiFi CONNECTED \n");
        break;
    case WL_CONNECT_FAILED: // WL_CONNECT_FAILED = 4,
        Serial.printf(", WiFi WL_CONNECT FAILED\n");
        break;
    case WL_CONNECTION_LOST: // WL_CONNECTION_LOST = 5,
        Serial.printf(", WiFi CONNECTION LOST\n");
        WiFi.persistent(false); // don't write FLASH
        break;
    case WL_DISCONNECTED: // WL_DISCONNECTED = 6
        Serial.printf(", WiFi DISCONNECTED ==\n");
        WiFi.persistent(false); // don't write FLASH when reconnecting
        break;
  }
  return WiFiStatus;
}  // END getWifiStatus()

// Get the station interface MAC address.
// <strong i="14">@return</strong> String MAC
String getMacAddress(void)
{
  WiFi.mode(WIFI_AP_STA); // required to read NVR before WiFi.begin()
  uint8_t baseMac[6];
  esp_read_mac( baseMac, ESP_MAC_WIFI_STA ); // Get MAC address for WiFi station
  char macStr[18] = { 0 };
  sprintf(macStr, "%02X:%02X:%02X:%02X:%02X:%02X", baseMac[0], baseMac[1], baseMac[2], baseMac[3], baseMac[4], baseMac[5]);
  return String(macStr);
}  // END getMacAddress()

// Return RSSI or 0 if target SSID not found
// const char* SSID = "YOUR_SSID"; // declare in GLOBAL space
// call: int32_t rssi = getRSSI(SSID);
int32_t getRSSI( const char* target_ssid )
{
  byte available_networks = WiFi.scanNetworks();

  for (int network = 0; network < available_networks; network++)
  {
    if ( strcmp( WiFi.SSID( network).c_str(), target_ssid ) == 0)
    {
      return WiFi.RSSI( network );
    }
  }
  return 0;
} // END getRSSI()

// Requires; #include <esp_wifi.h>
// Returns String NONE, ssid or pass arcording to request
// ie String var = getSsidPass( "pass" );
String getSsidPass( String s )
{
  String val = "NONE"; // return "NONE" if wrong key sent
  s.toUpperCase();
  if( s.compareTo("SSID") == 0 )
  {
    wifi_config_t conf;
    esp_wifi_get_config( WIFI_IF_STA, &conf );
    val = String( reinterpret_cast<const char*>(conf.sta.ssid) );
  }
  if( s.compareTo("PASS") == 0 )
  {
    wifi_config_t conf;
    esp_wifi_get_config( WIFI_IF_STA, &conf );
    val = String( reinterpret_cast<const char*>(conf.sta.password) );
  }
  return val;
}  // END getSsidPass()

рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХрднреА рднреА рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ () рдФрд░ рд╢реБрд░реВ (ssid ..) рд╣рдореЗрд╢рд╛ dhcp рдХреЛ рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХрд┐рдирд╛рд░реЗ рдХрд╛ рдорд╛рдорд▓рд╛ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ

рд╢реБрд░реВ (args)
рдпрджрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ dhcp рдХреЛ рд░реАрдб рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

    wifi_config_t current_conf;
    esp_wifi_get_config(WIFI_IF_STA, &current_conf);
    if(!sta_config_equal(current_conf, conf)) {
        if(esp_wifi_disconnect()){
            log_e("disconnect failed!");
            return WL_CONNECT_FAILED;
        }

        esp_wifi_set_config(WIFI_IF_STA, &conf);
    } else if(status() == WL_CONNECTED){
        return WL_CONNECTED;
    }
 // We do not always get here
    if(!_useStaticIp) {
        if(tcpip_adapter_dhcpc_start(TCPIP_ADAPTER_IF_STA) == ESP_ERR_TCPIP_ADAPTER_DHCPC_START_FAILED){
            log_e("dhcp client start failed!");
            return WL_CONNECT_FAILED;
        }
    } else {
        tcpip_adapter_dhcpc_stop(TCPIP_ADAPTER_IF_STA);
    }

рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @mickeypop рдзрдиреНрдпрд╡рд╛рджред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рд╕рдВрджреЗрд╣ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдХрд╣рд╛:
I proved this once buy adding a UDP call in some test code. - I could talk to the AP by UDP but had no IP address. At the same time the MAC showed up on the AP connection list.

рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рд╣рдо рдПрдХ рдЖрдИрдкреА рдХреЗ рдмрд┐рдирд╛ UDP рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗред рдпреВрдбреАрдкреА рдЖрдИрдкреА рд▓реЗрдпрд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

@jjassar

рдпреВрдбреАрдкреА рдХреЛ рдХрд┐рд╕реА рднреА рдЖрдИрдкреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдпрд╣ рд╕реНрд╡рдпрдВ рдореИрдХ рд╣реИред

UDP рд╕реНрдорд╛рд░реНрдЯрдХреЙрдиреНрдлрд╝рд┐рдЧ рдореЗрдВ рдЬрд╛рджреВ рд╣реИред рдЖрдкрдХреЗ рд╕реЗрд▓ рдкрд░ рдореМрдЬреВрдж рдРрдк, AP рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЗ рд╕рд╛рде ESP32 рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд UDP рдкреИрдХреЗрдЯ рднреЗрдЬрддрд╛ рд╣реИред

UDP рдХрдиреЗрдХреНрд╢рди рд░рд╣рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, AP рдкрд░ рдпрд╛ рдмрдВрдж рд╕рднреА WiFi рдбрд┐рд╡рд╛рдЗрд╕ рдЗрд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрдм ESP32 рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдкреА рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдпреВрдбреАрдкреА рднреЗрдЬрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдПрдкреА рд╕реЗ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдФрд░ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдорд┐рд▓ рд╕рдХреЗред рдХрдиреЗрдХреНрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХреЛрдИ рдЖрдИрдкреА рдирд╣реАрдВ рд╣реИред

UDP, IP рдореЗрдВ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП DHCP рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЕрдВрдбрд░ рд▓реЗрдпрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@mickeypop рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рдХрд┐ рдЖрдк рдЯреАрд╕реАрдкреА / рдпреВрдбреАрдкреА рдХреЛ рдкреНрд░рд╕рд╛рд░рдг / рдорд▓реНрдЯреАрдХрд╛рд╕реНрдЯ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛ рд░рд╣реЗ рд╣реИрдВ?
рдЯреАрд╕реАрдкреА рдФрд░ рдпреВрдбреАрдкреА рджреЛрдиреЛрдВ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рд▓реЗрдпрд░ рдкрд░ рд░рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рд▓реЗрдпрд░ рдХреЗ рдКрдкрд░ рдмрдирд╛ рд╣реИ, рдЬрд╣рд╛рдБ IP рд╣реИред

@mickeypop @bedenko рдЖрдк рджреЛрдиреЛрдВ рд╕рд╣реА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ 255.255.255.255 рдкрддреЗ рдкрд░ рдпреВрдбреАрдкреА рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╡реИрд╕реЗ рднреА, рдореБрдЭреЗ рдирд╡реАрдирддрдо рд░реЗрдкреЛ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдорд┐рд▓рд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ esp32 рдерд╛ рдЬреЛ рдПрдкреА рд╕реЗ рдЬреБрдбрд╝рд╛ рдерд╛, рдореИрдВрдиреЗ рдПрдкреА рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ред
рд╡рд┐рдпреЛрдЧ рдкрд░ рдпрджрд┐ рдХрд╛рд░рдг рдХреЛрдб 201 (REASON_NO_AP_FOUND) рд╣реИ рддреЛ рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИ
рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рд╡рд┐рдпреЛрдЧ рдХрд╛ рдХрд╛рд░рдг рдХреЛрдб 7 (REASON_NOT_ASSOCED) рддреЛ рдпрд╣ рдХрднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред
рдпрджрд┐ рдореИрдВ AP рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реВрдВ рддреЛ рдХреЛрдб 7 рдХреНрдпреЛрдВ рдЖ рд░рд╣рд╛ рд╣реИ?

рд╢рд╛рдпрдж, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рдХреЛрдб 201 рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдХреЛрдб 7 рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

@ рдЬрдЬрд╕рд░ @ рдЕрдмреНрджреЗрдВрдХреЛ

рдПрдХ рдкрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЛред
рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ IP рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ IP рдХреЗ рдкрд╛рд╕ рдбреАрдПрдЪрд╕реАрдкреА рдХреЗ рдкрд╛рд╕ рдЖрдИрдкреА рдХреЛ "рдЧреЗрдЯ" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рд╛рдзрди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдореИрдВ 30 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рдерд╛ рдФрд░ рдЕрдЧрд░ рдпреВрдбреАрдкреА рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА рдХрд╛ рдЕрднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдерд╛, рддреЛ рдЖрдкрдХреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рджреВрд╕рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЪрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЖрдИрдкреА рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реЗрдЯрдЕрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдБ рдереЛрдбрд╝рд╛ рдкреНрд░рд╛рдЗрдорд░ рд╣реИред

рдбреАрдПрдЪрд╕реАрдкреА рдкреНрд░реЛрдЯреЛрдХреЛрд▓

_DHCP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ UDP_ рдкреЛрд░реНрдЯ 68 рдФрд░ 67

рдбреАрдПрдЪрд╕реАрдкреА рдпреВрдбреАрдкреА рдкрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбреАрдПрдЪрд╕реАрдкреА рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рд╕рд╛рд░рдг рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рдпреВрдбреАрдкреА рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдорд╢реАрди рдХреЛ рдЕрднреА рднреА рдПрдХ рдЖрдИрдкреА рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ (рдпрд╣ рдбреАрдПрдЪрд╕реАрдкреА рд╡рд╛рд░реНрддрд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЙрджреНрджреЗрд╢реНрдп рд╣реИ) рдФрд░ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рдмрд┐рдирд╛ рдЯреАрд╕реАрдкреА рд╕реНрдЯреНрд░реАрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

DHCP рдХреНрд▓рд╛рдЗрдВрдЯ DHCP DISCOVER рдкреИрдХреЗрдЯ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдХреЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рд╕рд╛рд░рдг рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░ (рдПрд╕) рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдбреАрдПрдЪрд╕реАрдкреА рдСрдлрд┐рд╕ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИред DHCP OFFER рд╕рдВрджреЗрд╢ рдореЗрдВ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ IP рдкрддрд╛ рдФрд░ рд╡рд╣ рд╕рдордпрд╛рд╡рдзрд┐ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП IP рдкрддрд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (IP рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдиреАрддрд┐ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред

DHCP рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХрдИ DHCP OFFER рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ DHCP рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдиреАрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЗрд╡рд▓ рдПрдХ DHCP OFFER рд╕рдВрджреЗрд╢ рдЪреБрдирддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдкрд╣рд▓реЗ рдЖрдУ рдкрд╣рд▓реЗ рдкрд╛рдУ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╣рдо рдбреАрдПрдЪрд╕реАрдкреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рдмрд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкрдЯреНрдЯреЗ рдкрд░ рд░рдЦрдиреЗ рдпрд╛ рдХреБрдЫ рдкрд╕рдВрджреАрджрд╛ рд╕рдмрдиреЗрдЯ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдПрдЪрд╕реАрдкреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбреАрдПрдЪрд╕реАрдкреА рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдм рдбреАрдПрдЪрд╕реАрдкреА рдЕрдиреБрд░реЛрдз рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИред

DHCP REQUEST рд╕рдВрджреЗрд╢ рдПрдХ рдкреНрд░рд╕рд╛рд░рдг рд╕рдВрджреЗрд╢ рд╣реИред рдЬрдм рдЕрдиреНрдп рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдпрд╣ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рджрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрд▓рдмреНрдз рдкрддреЗ рдХреЗ рдЙрдкрд▓рдмреНрдз рдкрддреЗ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░ рдЗрд░рд╛рджрд╛ рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░ рдПрдХ рдбреАрдПрдЪрд╕реАрдкреА рдПрд╕реАрдХреЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓реЗрдирджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореЗрдЬрдмрд╛рди рдХреЛ рдЖрдИрдкреА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИред

@mickeypop : рдореИрдВ рдЖрдкрдХреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╕реЗ рд╕рд╣рдордд рд╣реВрдБ, рдЗрд╕ рддрдереНрдп рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХрд┐ UDP IP рдкрддреЗ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рднреА рдбреАрдПрдЪрд╕реАрдкреА рд╡рд╛рд░реНрддрд╛ рдкреНрд░рд╕рд╛рд░рдг рдЖрдИрдкреА 255.255.255.255 ( рд╕реВрдЪрдирд╛ ) рдкрд░ рдХреА рдЬрд╛рддреА рд╣реИред

@bedenko
рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╣рдордд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЙрдХреНрд╕ рд╕реЗ рд╕реАрдзреЗ рдХрдЯ рдФрд░ рдкреЗрд╕реНрдЯ рдХрд┐рдпрд╛ред

рдЖрдк рд╕рд╣реА рдФрд░ рдЧрд▓рдд рджреЛрдиреЛрдВ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдБ рдХреНрдпреЛрдВ рд╣реИред

рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдПрдХ рд╣реА рдкреИрдХреЗрдЯ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред AppleTalk, TCP / IP, Arpnet, AIX, рдЖрджрд┐ ... рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрдШрд░реНрд╖ рдХреЗ рдПрдХ рд╣реА рдИрдерд░рдиреЗрдЯ рдкрд░ рд╕рд╣-рдЕрд╕реНрддрд┐рддреНрд╡ рджреЗрддрд╛ рд╣реИред

рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рдкреНрд░рдХрд╛рд░, рдЪреЗрдХрд╕рдо, рдЧрдВрддрд╡реНрдп рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ ... рд╕рднреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдВрддрд╡реНрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдореЗрдВ 24 (255.255.255.255) рдмрд┐рдЯреНрд╕ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВред

рдиреЗ рдХрд╣рд╛ рдХрд┐;

IP рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдорд╛рд╕реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдкреИрдХреЗрдЯ рдЙрдирдХреЗ рд▓рд┐рдП рд╣реИ рдпрд╛ рд░реВрдЯрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИред

UDP рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдиреЗрдЯрд╡рд░реНрдХ рдорд╛рд╕реНрдХ рдирд╣реАрдВ рд╣реИред 255.255.255.255 рдпреВрдбреАрдкреА рдкреНрд░реЗрд╖рдХ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдиреНрдп рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдЖрдИрдкреА рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдиреЛрдЯ: UDP рдореИрдХ рджреНрд╡рд╛рд░рд╛ IP рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рднреЗрдЬрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреАрдПрдЪрд╕реАрдкреА рд▓реЗрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдЖрдИрдкреА рдпрд╛ рдиреЗрдЯрдорд╛рд╕реНрдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореИрдХ рдкрддреЗ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдкреИрдХреЗрдЯ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдкреНрд░реЛрдорд┐рд╕рд╕ рдореЛрдб рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдореИрдХ рдкрддреЗ рдХреЗ рд╕рд╛рде рдпреВрдбреАрдкреА рджреНрд╡рд╛рд░рд╛ рдПрдХ рдбреАрдПрдЪрд╕реАрдкреА рдбрд┐рд╕реНрдХреЛрд╡рд░ рдкреИрдХреЗрдЯ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреМрди рдЖрдИрдкреА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣рд╛ рд╣реИред

рдкреНрд░реЗрд╖рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЖрдИрдкреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдВрдд рдореЗрдВ рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпреВрдбреАрдкреАред

UDP рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ DHCP OFFER рд╕рдВрджреЗрд╢ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдЙрдирдХреЗ рд▓рд┐рдП рд╣реИред рдзреНрдпрд╛рди рд░рд╣реЗ рдХрд┐ рдЖрдк рд╕рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕рдорд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рддрдХ рдЖрдИрдкреА рдирд╣реАрдВ рд╣реИред

рдпрд╣ рддрдм рддрдХ рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕рднреА рд╡рд╛рд░реНрддрд╛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдЖрдИрдкреА рдпрд╛рддрд╛рдпрд╛рдд рд╕рдВрднрд╡ рд╣реИред

=====
рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП;
рдореИрдВ 1968 рдореЗрдВ рдЯреАрдо рдореЗрдВ рдерд╛ - 70 UNIX OS рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ред рдЬрд╣рд╛рдВ рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред
рд╣рдордиреЗ рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА рд╕реЗ рдкрд╣рд▓реЗ рдпреВрдбреАрдкреА рдХреЗ рд╢реБрд░реБрдЖрддреА рдорд╕реМрджреЗ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдерд╛ред

@mickeypop рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рд╣рдо рд╕рднреА рдЖрдХрд╛рд╢ рдХреЛ рдЫреВ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рджрд┐рдЧреНрдЧрдЬреЛрдВ рдХреЗ рдХрдВрдзреЛрдВ рдкрд░ рдЦрдбрд╝реЗ рд╣реИрдВ!

рдЪрдХред

рдирдорд╕реНрддреЗред
рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

  if (WiFi.status() != WL_CONNECTED)
{
  digitalWrite(26,0);
  WIFI_Connect();
} else {
  digitalWrite(26,1);
}

рдФрд░, рдпрд╣ рддреЗ рдлрд╝рдВрдХреНрд╢рди "WIFI_Connect" рд╣реИ

рд╢реВрдиреНрдп WIFI_Connect ()
{
digitalWrite (26, рдЙрдЪреНрдЪ);
WiFi.disconnect ();
Serial.println ("Reconectando WiFi ...");
WiFi.mode (WIFI_AP_STA);
WiFi.begin (ssid, рдкрд╛рд╕рд╡рд░реНрдб);
// рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ
for (int i = 0; рдореИрдВ <50; i ++)
{
рдЕрдЧрд░ (WiFi.status ()! = WL_CONNECTED) {
рджреЗрд░реА (500);
digitalWrite (26,0);
рд╕реАрд░рд┐рдпрд▓.рдкреНрд░рд┐рдВрдЯ ("ред");
рджреЗрд░реА (500);
digitalWrite (26,1);
}
}
digitalWrite (26,0);
}

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдХреЛрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЕрд╡рд▓реЛрдХрди: рд╕рдВрд╕реНрдХрд░рдг 2.3

рд╢рд╛рдорд┐рд▓

рд╢рд╛рдорд┐рд▓

рдкрд░рд┐рднрд╛рд╖рд┐рдд WIFI_SSID "===="

рдкрд░рд┐рднрд╛рд╖рд┐рдд WIFI_PASSWORD "==="

// рдЗрд╕ рдлрд╛рдпрд░рдмреЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
// рдЖрдкрдХреЛ рдЕрдкрдиреА рдЦреБрдж рдХреА рдлрд╛рдпрд░рдмреЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рджрд░реНрдЬ рдХрд░рдиреА рд╣реЛрдЧреА

FIREBASE_HOST рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ "home-automation-1122.firebaseio.com"

FIREBASE_AUTH рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ "============"

LED1 рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ 5

LED2 рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ 4

LED3 рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ

LED4 рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ

LED5 рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд 14

LED6 рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ 12

LED7 рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ 13

LED8 рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ 15

рд╡реНрдпрд░реНрде рд╡реНрдпрд╡рд╕реНрдерд╛() {

pinMode (LED1, рдЖрдЙрдЯрдкреБрдЯ);

digitalWrite (LED1,0);

pinMode (LED2, рдЖрдЙрдЯрдкреБрдЯ);

digitalWrite (LED2,0);

pinMode (LED3, рдЖрдЙрдЯрдкреБрдЯ);

digitalWrite (LED3,0);

pinMode (LED4, рдЖрдЙрдЯрдкреБрдЯ);

digitalWrite (LED4,0);

pinMode (LED5, рдЖрдЙрдЯрдкреБрдЯ);

digitalWrite (LED5,0);

pinMode (LED6, рдЖрдЙрдЯрдкреБрдЯ);

digitalWrite (LED6,0);

pinMode (LED7, рдЖрдЙрдЯрдкреБрдЯ);

digitalWrite (LED7,0);

pinMode (LED8, рдЖрдЙрдЯрдкреБрдЯ);

digitalWrite (LED8,0);

Serial.begin (9600);

WiFi.begin (WIFI_SSID, WIFI_PASSWORD);

Serial.print ( "рдЬреЛрдбрд╝рдиреЗ");

рдЬрдмрдХрд┐ (WiFi.status ()! = WL_CONNECTED) {

Serial.print ( "ред");

рджреЗрд░реА (500);

}

Serial.println ();

Serial.print ("рдХрдиреЗрдХреНрдЯреЗрдб:");

Serial.println (WiFi.localIP ());

Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);

Firebase.setInt ( "LEDStatus", 0);

}

рд╢реВрдиреНрдп рд▓реВрдк () {

рдЕрдЧрд░ (Firebase.getInt ( "рдлрд╝реАрд▓реНрдб 1"))

{

digitalWrite (LED1, рдХрдо);

}

рдЕрдиреНрдп

{
digitalWrite (LED1, рдЙрдЪреНрдЪ);

}
рдЕрдЧрд░ (Firebase.getInt ( "field2"))

{

digitalWrite (LED2, рдХрдо);

}

рдЕрдиреНрдп

{

digitalWrite (LED2, рдЙрдЪреНрдЪ);

}

рдЕрдЧрд░ (Firebase.getInt ( "рдлрд╝реАрд▓реНрдб 3"))

{

digitalWrite (LED3, рдХрдо);

}

рдЕрдиреНрдп

{
digitalWrite (LED3, рдЙрдЪреНрдЪ);

}

рдЕрдЧрд░ (Firebase.getInt ( "рдлрд╝реАрд▓реНрдб 4"))

{

digitalWrite (LED4, рдХрдо);

}

рдЕрдиреНрдп

{

digitalWrite (LED4, рдЙрдЪреНрдЪ);

}
рдЕрдЧрд░ (Firebase.getInt ( "рдлрд╝реАрд▓реНрдб 5"))

{

digitalWrite (LED5, рдХрдо);

}

рдЕрдиреНрдп

{

digitalWrite (LED5, рдЙрдЪреНрдЪ);

}
рдЕрдЧрд░ (Firebase.getInt ( "рдлрд╝реАрд▓реНрдб 6"))

{

digitalWrite (LED6, рдХрдо);

}

рдЕрдиреНрдп

{

digitalWrite (LED6, рдЙрдЪреНрдЪ);

}
рдЕрдЧрд░ (Firebase.getInt ( "рдлрд╝реАрд▓реНрдб 7"))

{

digitalWrite (LED7, рдХрдо);

}

рдЕрдиреНрдп

{

digitalWrite (LED7, рдЙрдЪреНрдЪ);

}
рдЕрдЧрд░ (Firebase.getInt ( "рдлрд╝реАрд▓реНрдб 8"))

{

digitalWrite (LED8, рдХрдо);

}

рдЕрдиреНрдп

{

digitalWrite (LED8, рдЙрдЪреНрдЪ);

}

//Serial.println(Firebase.getInt("led1 "));
//Serial.println(Firebase.getInt("led2 "));
//Serial.println(Firebase.getInt("led3 "));
//Serial.println(Firebase.getInt("led4 "));
//Serial.println(Firebase.getInt("led5 "));
//Serial.println(Firebase.getInt("led6 "));
//Serial.println(Firebase.getInt("led7 "));
//Serial.println(Firebase.getInt("led8 "));

Serial.println ( "...............");
рдЕрдЧрд░ (Firebase.failed ()) // рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ {

Serial.print ("рд╕реЗрдЯрд┐рдВрдЧ / рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рдлрд▓:");

Serial.println (Firebase.error ());

рд╡рд╛рдкрд╕реА;

}

рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░рд╛ nodemcu esp8226 рдкреБрди: рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ

рдпрд╣ рдзрд╛рдЧрд╛ esp32 рдХреЗ рд▓рд┐рдП рд╣реИред рдХреНрдпрд╛ рдЖрдк esp8266 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рдерд╛?

рдПрд╕реНрдк 82255 рдиреЛрдбреЗрдорд╕реНрдХреБ

Tue рдкрд░, 11 рд╕рд┐рддрдВрдмрд░ 2018 1:45 рдЕрдкрд░рд╛рд╣реНрди рдмреЗрджреЗрдВрдХреЛ, рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдпрд╣ рдзрд╛рдЧрд╛ esp32 рдХреЗ рд▓рд┐рдП рд╣реИред рдХреНрдпрд╛ рдЖрдк esp8266 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рдерд╛?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/espressif/arduino-esp32/issues/653#issuecomment-420196435 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ApKpJ7SS4fk4KrHA1sVKmwV7brGVeh93ks5uZ3gxgaJpZM4PfOia
ред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдпрд╣ esp8266 рд╣реИ

Tue рдкрд░, 11 рд╕рд┐рддрдВрдмрд░ 2018 1:48 рдЕрдкрд░рд╛рд╣реНрди Ijaz Ahmad, [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

рдПрд╕реНрдк 82255 рдиреЛрдбреЗрдорд╕реНрдХреБ

Tue рдкрд░, 11 рд╕рд┐рддрдВрдмрд░ 2018 1:45 рдЕрдкрд░рд╛рд╣реНрди рдмреЗрджреЗрдВрдХреЛ, рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдпрд╣ рдзрд╛рдЧрд╛ esp32 рдХреЗ рд▓рд┐рдП рд╣реИред рдХреНрдпрд╛ рдЖрдк esp8266 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рдерд╛?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/espressif/arduino-esp32/issues/653#issuecomment-420196435 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ApKpJ7SS4fk4KrHA1sVKmwV7brGVeh93ks5uZ3gxgaJpZM4PfOia
ред

рдпрд╣рд╛рдБ рдХреЛрдИ рдореЗрд░реА рдорджрдж рдХрд░реЗ?

рдпрд╣ рдзрд╛рдЧрд╛ ESP32 рдХреЗ рд▓рд┐рдП рд╣реИ, 8266 рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдПрдХ рдЕрд▓рдЧ рд░реЗрдкреЛ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдЖрдк рдореБрдЭреЗ 8226 рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

@vseven рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

@ ijaz1122 рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рдЕрдЧрд░ рдХреЛрдИ рдореБрджреНрджрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реИред рдЕрдиреНрдпрдерд╛ рд╡рд╣рд╛рдБ рдкрд░ рдПрдХ рдирдпрд╛ рдЦреЛрд▓реЗрдВред
рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рд░реЗрдкреЛ рд╣реИред

рд╣реЗ рд╕рдм рдЕрдВрдд рдореЗрдВ рдореИрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рдЕрдкрдиреЗ рд╡рд╛рдИрдлрд╛рдИ / рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЙрдЯрд╕реНрдкреЙрдЯ рдХреЛ рдХрдИ рдмрд╛рд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдЙрдирдХреЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП @ThiagoCas рдХреЛ рдзрдиреНрдпрд╡рд╛рдж

`/ * * * * * * * * * * * *
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
* * * * * * * * * * * * /

рд╢рд╛рдорд┐рд▓

/ * * * * * * * * * * * *
рд▓рдЧрд╛рддрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
* * * * * * * * * * * * /

WIFISSID рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ "== Your Wifi SSID ==" // рдпрд╣рд╛рдВ рдЕрдкрдирд╛ WIFSSID рд▓рдЧрд╛рдПрдВ

PASSWORD рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ "== рдЖрдкрдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб ==" // рдпрд╣рд╛рдВ рдЕрдкрдирд╛ рд╡рд╛рдИрдлрд╛рдИ рдкрд╛рд╕рд╡рд░реНрдб рдбрд╛рд▓реЗрдВ

// рд╕реНрдерд┐рд░рд╛рдВрдХ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред рдкрд┐рди рдирдВрдмрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
const int ledPin = 2; // рдПрд▓рдИрдбреА рдкрд┐рди рдХреА рд╕рдВрдЦреНрдпрд╛

/ * * * * * * * * * * * *
рдЪрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
* * * * * * * * * * * * /
// рдЪрд░ рдмрджрд▓ рдЬрд╛рдПрдВрдЧреЗ:
int ledState = LOW; // рдПрд▓рдИрдбреА рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ledState рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

int рдЕрдВрддрд░рд╛рд▓ = 100; // рдЕрдВрддрд░рд╛рд▓ рдЬрд┐рд╕ рдкрд░ рдкрд▓рдХ рдЭрдкрдХрдирд╛ (рдорд┐рд▓реАрд╕реЗрдХрдВрдб)

// рдЖрдо рддреМрд░ рдкрд░, рдЖрдкрдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдХреЗ рд▓рд┐рдП "рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд▓рдВрдмреЗ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
// рдорд╛рди рддреЗрдЬреА рд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛
рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓реА рдорд┐рд▓реА = 0; // рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдПрд▓рдИрдбреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

/ * * * * * * * * * * * *
рдЕрдкрд░рд┐рдЪрд┐рдд рдХрд╛рд░реНрдп
* * * * * * * * * * * * /
рд╢реВрдиреНрдп WIFI_Connect ()
{
WiFi.disconnect ();
Serial.println ("рд╡рд╛рдИрдлрд╛рдИ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ ...");
WiFi.mode (WIFI_AP_STA);
WiFi.begin (WIFISSID, PASSWORD);

for (int i = 0; рдореИрдВ <60; i ++)
{
рдЕрдЧрд░ (WiFi.status ()! = WL_CONNECTED)
{
рджреЗрд░реА (250);
digitalWrite (ledPin, LOW);
рд╕реАрд░рд┐рдпрд▓.рдкреНрд░рд┐рдВрдЯ ("ред");
рджреЗрд░реА (250);
digitalWrite (ledPin, HIGH);
}
}
рдпрджрд┐ (WiFi.status () == WL_CONNECTED)
{
Serial.println ( "");
Serial.println ("рд╡рд╛рдИрдлрд╛рдИ рдХрдиреЗрдХреНрдЯреЗрдб");
Serial.println ("рдЖрдИрдкреА рдкрддрд╛:");
Serial.println (WiFi.localIP ());
}
digitalWrite (ledPin, 0);
}

/ * * * * * * * * * * * *
рдореБрдЦреНрдп рдХрд╛рд░реНрдп
* * * * * * * * * * * * /

рд╡реНрдпрд░реНрде рд╡реНрдпрд╡рд╕реНрдерд╛()
{
Serial.begin (115200);

// рдбрд┐рдЬрд┐рдЯрд▓ рдкрд┐рди рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВ:
рдкрд┐рдирдореЛрдб (ledPin, OUTPUT);
WIFI_Connect ();
}

рд╢реВрдиреНрдп рд▓реВрдк ()
{
рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд▓рдВрдмреА currentMillis = рдорд┐рд▓реА ();

рдпрджрд┐ (рдХрд░рдВрдЯ рдореЗрдорд┐рд▓рд┐рд╕ - рдкрд┐рдЫрд▓реЗ рдореИрдорд┐рд▓рд┐рд╕> = рдЕрдВрддрд░рд╛рд▓)
{
рдпрджрд┐ (WiFi.status ()! = WL_CONNECTED)
{
Serial.println ("рд╡рд╛рдИрдлрд╛рдИ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ");
WIFI_Connect ();
}
// рдЖрдЦрд┐рд░реА рдмрд╛рд░ рдПрд▓рдИрдбреА рдХреЛ рдмреНрд▓рд┐рдВрдХ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрд╛рдПрдВ
рдкрд┐рдЫрд▓рд╛рдорд┐рд▓рд┐рд╕ = рдХрд░рдВрдЯрдорд┐рд▓рд┐рд╕;
// рдпрджрд┐ рдПрд▓рдИрдбреА рдмрдВрдж рд╣реИ, рддреЛ рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд:
рдЕрдЧрд░ (ledState == рдХрдо)
{
ledState = рдЙрдЪреНрдЪ;
рдЕрдВрддрд░рд╛рд▓ = 100;
}
рдЕрдиреНрдп
{
ledState = LOW;
рдЕрдВрддрд░рд╛рд▓ = 2500;
}
// рдПрд▓рдИрдбреА рдХреЛ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рдПрд▓рдИрдбреАрд╕реНрдЯреЗрдЯ рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд░реЗрдВ:
digitalWrite (ledPin, ledState);
}
} `

рдирдП рдлрд░реНрдорд╡реЗрдпрд░ рдХреА рдорджрдж рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕реЗ рдмрдВрдж рдХрд░реЗрдВред

рдирдП рдлрд░реНрдорд╡реЗрдпрд░ рд╕реЗ @vseven ... рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ? рдореИрдВ 26 рд╕рд┐рддрдВрдмрд░ рдХреЗ рдмрд╛рдж рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдХрдорд┐рдЯреНрд╕ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдЖрдк рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ред

рдЕрдкрдирд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдЧреИрд╕реНрдЯрди

рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЦреЛрд▓рд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рд╣рд╛рдВ, рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдЬреИрд╕рд╛ рдирдпрд╛ рдерд╛ред

рдорд╣рд╛рдиред рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдЕрдВрддрд┐рдо (2 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ?) рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдЕрдВрддрд┐рдо рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж рдХрднреА рдирд╣реАрдВ рджреЗрдЦрд╛ (рдФрд░ рдпрд╣ рд╣рд░ рджреЛ рдорд╣реАрдиреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╣реЛрддрд╛ рдерд╛)ред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реЛ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдм рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рднрд╛рдЧреНрдп рд╕реЗ рдЕрдзрд┐рдХ рдерд╛ред ;)

рдЕрдЪреНрдЫрд╛ рдХрд╛рдоред
рдЧреИрд╕реНрдЯрди

рдпрд╣ рднреА рдорджрдж рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ:

    esp_wifi_set_ps(WIFI_PS_NONE);

@vseven

рдирдП рдлрд░реНрдорд╡реЗрдпрд░ рдХреА рдорджрдж рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕реЗ рдмрдВрдж рдХрд░реЗрдВред

рдирдорд╕реНрддреЗ,
рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ arduino-esp32 рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ platformio рднреА рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдХреНрдпрд╛ рдореИ рдЧрд▓рдд рд╣реБ? рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкреАрдбрд╝рд┐рдд рд╣реВрдБ!

@vseven
рдирдП рдлрд░реНрдорд╡реЗрдпрд░ рдХреА рдорджрдж рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕реЗ рдмрдВрдж рдХрд░реЗрдВред

рдирдорд╕реНрддреЗ,
рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ arduino-esp32 рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ platformio рднреА рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдХреНрдпрд╛ рдореИ рдЧрд▓рдд рд╣реБ? рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкреАрдбрд╝рд┐рдд рд╣реВрдБ!

рдореБрдЭреЗ рднреАред рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП platformio рджреНрд╡рд╛рд░рд╛ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ ...

@vseven
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо IO рд╕реЗрдЯрдЕрдк рдирд┐рд░реНрджреЗрд╢ рдФрд░ рдЕрджреНрдпрддрди рдпрд╣рд╛рдБ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ
https://github.com/espressif/arduino-esp32/blob/master/docs/platformio.md

рд╣рд╛рд▓рд╛рдБрдХрд┐, tid bit: Arduino рдФрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо IO рджреЛрдиреЛрдВ рдкрд░ рдЬрдм рдореИрдВ SDK рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП git рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВрдиреЗ рдХреБрдЫ рдореМрдХреЛрдВ рдкрд░ рдкрд╛рдпрд╛ рдХрд┐ рдЕрдкрдбреЗрдЯ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдБ рдереАрдВред

Esp32 рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ рдФрд░ рдПрдХ рддрд╛рдЬрд╛ рдЧрд┐рдЯ рд╕реЗ рдкреБрдирдГ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рд╛рдл рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИред
рдмрд╕ рдЙрдирдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред

@mickeypop : рдареАрдХ рд╣реИ, рдореЗрд░рд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдореБрджреНрджрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдордВрдЪ рдпрд╛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ? рд╕реНрдерд┐рд░ рдХреЗрд╡рд▓ рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ рд╣реА рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡реИрд╕реЗред

@ Miq1 рдХреЗрд╡рд▓ IDF рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдореМрдЬреВрдж рд╣реИ?

рдореБрдЭреЗ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВ рдкреНрд▓реЗрдЯрд┐рдирд┐рдпреЛ рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рдХреЗрд╡рд▓ Arduino рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - рдореИрдВрдиреЗ рдХрднреА рднреА IDF рд╕реЗ рдирд┐рдкрдЯрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЖрдЬ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рд╡рд╣рд╛рдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХрд╛ рдПрдХ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рд┐рд░реНрдл рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП: рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рдПрдХ рдореЛрдб (WIFI_OFF) рдФрд░ рдмреАрдЪ рдореЗрдВ рдореЛрдб (WIFI_STA) рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ () рдФрд░ рдмрд╛рдж рдореЗрдВ рд╢реБрд░реВ () рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 5 рдмрд╛рд░ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рднреА рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдПрдХ esp.restart () рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдХреЛрдИ рдкреБрдирд░рд╛рд░рдВрдн рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдерд╛ред

рдореИрдВрдиреЗ рдЗрд╕ рдмреАрдЪ рдХреБрдЫ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд┐рдП, рдЗрд╕рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдЙрддрдирд╛ рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЗрд╕ рдмрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ?

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рдИрдПрд╕рдкреА 8266 рдЗрдХрд╛рдЗрдпреЛрдВ рдкрд░ рднреА рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ - рд╕рдЯреАрдХ рд╕рдорд╛рди рд▓рдХреНрд╖рдгред рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпреВрдирд┐рдЯ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдЙрдиреНрдореБрдЦ рдХрд░рдХреЗ рдХрд╛рдлреА рд╣рдж рддрдХ рдХрдиреЗрдХреНрдЯ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ - рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпреВрдирд┐рдЯ (ESP8266 рдФрд░ ESP32 рджреЛрдиреЛрдВ) рдХреИрд╕реЗ рдЦрд░рд╛рдм рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдореИрдВ рдиреЙрдиреЛрд╕ рдФрд░ рдПрдХ ESP8266 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЬрдХ рдХреЛ lwIP рдХреЗ рдиреАрдЪреЗ рдирд┐рдореНрди рд╕реНрддрд░ рдХреА рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рд▓рдЧрддреА рд╣реИ

(Arduino-esp32 рдХреЗ 1.0.4 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП)

рдореБрдЭреЗ рдпрд╣рд╛рдБ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереА (ESP32 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред рдкрд╛рдпрд╛ рдХрд┐ рд░рд╛рдЙрдЯрд░ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ ... рдПрдХ рдмрд╛рд░ ред рдпрд╣реА рд╣реИ, рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж, рдИрдПрд╕рдкреА 32 рдПрдкреА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдПрдХ рдЖрдИрдкреА рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдХрдиреЗрдХреНрдЯ рд░рд╣реЗрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рдЪреАрдЬ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ (рдЬреИрд╕реЗ рдИрдПрд╕рдкреА 32 рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рдирд╛), рдИрдПрд╕рдкреА 32 рддреЛ _is рдХрднреА рднреА рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред AP рдлрд┐рд░ рд╕реЗ_

рд░рд╛рдЙрдЯрд░ рдПрдХ рдЯреАрдкреА-рд▓рд┐рдВрдХ рдЯреАрдПрд▓-рдПрдордЖрд░ 2030 рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рд╡рд╛рдпрд░реНрдб рдИрдерд░рдиреЗрдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реЛрдВ рдУрд░ рд░рдЦрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рд╣реИ рдЬреЛ рд╡рд░реНрд╖реЛрдВ рддрдХ рдмреЗрдХрд╛рд░ рд╣реИ рдФрд░ рдХреЛрдИ рдирдпрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдлрд░реНрдорд╡реЗрдпрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдЧрд░ рдореИрдВ рдЕрдиреНрдп APs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдБ, рдЬреИрд╕реЗ рдХрд┐ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдХреБрдЫ рдирдИ Ubiquiti рдЗрдХрд╛рдЗрдпрд╛рдБ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдмрд╕ рдЗрддрдиреА рд╣реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдореИрдВрдиреЗ рдЖрдИрдЯреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдкрд░ рдЬрд╛рдирдмреВрдЭрдХрд░ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЛрд░реНрдб рдХреЛ рдордЬрдмреВрд░ рдХрд░рдХреЗ рдФрд░ рдЕрдВрдд рдореЗрдВ рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рддрдиреА рдмрд╛рд░ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдиреА рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ ... рдФрд░ рдХреЛрдИ рдкрд░реЗрд╢рд╛рдиреА рдирд╣реАрдВ рд╣реБрдИред

_, рдЕрдВрдд рдореЗрдВ, рдЬрдмрдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ ESP32 рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рдпрд╛ рдЕрдзреВрд░рд╛ рд╣реИ, рдореИрдВ рд╕рд╛рд░рд╛ рджреЛрд╖ рдкреБрд░рд╛рдиреЗ рд░рд╛рдЙрдЯрд░ рдХреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдкрд░ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд░рд╛рдЙрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп, рдЯреАрдкреА-рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ , рддрдерд╛рдкрд┐ред

рдореБрдЭреЗ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╣ рд╣реИред рдпрд╛ рдХрднреА-рдХрднреА рд░рд╛рдЙрдЯрд░ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ рдФрд░ рдХрднреА рднреА рдЖрдкрдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ

рдирд╣реАрдВ, рд░рд╛рдЙрдЯрд░ рдХреЛ рджреЛрд╖ рдирд╣реАрдВ рджреЗрдирд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВред рдЬрд╝рд░реВрд░, рдпрд╣ рдирд╡реАрдирддрдо (wnr2200) рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдбреАрдбреА-рдбрдмреНрд▓реНрдпреВрдЖрд░рдЯреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХрдИ рдПрдВрдбреНрд░реЙрдЗрдб, рд▓рд┐рдирдХреНрд╕ рдФрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрд┐рдирд╛ рдореБрджреНрджреЛрдВ рдХреЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ рдЕрдкрдиреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ WiFiClientEvents.ino рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреА - рдЗрд╕рд▓рд┐рдП рдпрд╣ рдИрд╡реЗрдВрдЯ-рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдореИрдВрдиреЗ arduino-esp32 рдХреЗ рдирд╡реАрдирддрдо рдкреНрд░рддрд┐рдмрджреНрдз рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рднреА рдкрдврд╝рд╛, рдЬреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд▓реЗрдХрд┐рди рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдУрдВ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ WiFiGeneric.cpp рдореЗрдВ рдХреБрдЫ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░рдиреА рдереА рдФрд░ рдкрд╛рдпрд╛ рдХрд┐ рдореЛрдб рд╣рдореЗрд╢рд╛ рд╡рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ (https://github.com/espressif/arduino-esp32/issues/1306)ред

рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо: WiFiGeneric.cpp (рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдВрдд рджреЗрдЦреЗрдВ) рдкрд░ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкреИрдЪ рдХреЗ рд╕рд╛рде, рдореИрдВ рдЕрдкрдиреЗ AP - hurray :) рд╕реЗ рдХрдИ рдмрд╛рд░ рдХрдиреЗрдХреНрдЯ / рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦрддреЗ рд╣реИрдВред

/*
 * This is a very stable example of repeated connecting and disconnecting to/from a wifi access point on STA32
 * Unfortunately, it needs patching of the WiFiGeneric.cpp library file
 * Author: Daniel Alder, based on the example WiFiClientEvents.ino
 * Tested with Arduino 1.8.5 and 1.8.10 with ESP library from Nov 11 2019 (cec3fca4) + patch
*/

#include <WiFi.h>   

#include "HomeWifiConfig.h" // use an extra include or uncomment the following 2 lines
//const char* ssid     = "myssid"; // your network SSID (name of wifi network)
//const char* password = "****";   // your network password

typedef enum {
  MYSTATE_OFFLINE = 0,
  MYSTATE_CONNECTING,
  MYSTATE_ONLINE,
  MYSTATE_DISCONNECTING
} mystate_t;
mystate_t mystate = MYSTATE_OFFLINE;
long state_since = 0;

#define TIMEOUT_ONLINE     20  // reconnect after this [s] offline time
#define TIMEOUT_OFFLINE    20  // disconnect after this [s] online time
#define TIMEOUT_CONNECTING 20  // cancel connecting after this [s] without success

////////////////////////////////////////////////////////////////////////////////

long getUptime() {
  return esp_timer_get_time() / 1000000L;
}

void changeState(mystate_t state) {
  mystate = state;
  state_since = getUptime();
}

void WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info)
{
    Serial.printf("[WiFi-event] event: %d\n", event);

    switch (event) {
        case SYSTEM_EVENT_WIFI_READY: 
            Serial.println("WiFi interface ready");
            break;
        case SYSTEM_EVENT_SCAN_DONE:
            Serial.println("Completed scan for access points");
            break;
        case SYSTEM_EVENT_STA_START:
            Serial.println("WiFi client started");
            break;
        case SYSTEM_EVENT_STA_STOP:
            Serial.println("WiFi client stopped");
            changeState(MYSTATE_OFFLINE);
            break;
        case SYSTEM_EVENT_STA_CONNECTED:
            Serial.println("Connected to access point");
            break;
        case SYSTEM_EVENT_STA_DISCONNECTED:
            Serial.println("Disconnected from WiFi access point");
            break;
        case SYSTEM_EVENT_STA_AUTHMODE_CHANGE:
            Serial.println("Authentication mode of access point has changed");
            break;
        case SYSTEM_EVENT_STA_GOT_IP:
            Serial.print("Obtained IP address: ");
            //Serial.println(WiFi.localIP());
            //Serial.println("WiFi connected");
            //Serial.print("IP address: ");
            Serial.println(IPAddress(info.got_ip.ip_info.ip.addr));

            changeState(MYSTATE_ONLINE);

            break;
        case SYSTEM_EVENT_STA_LOST_IP:
            Serial.println("Lost IP address and IP address is reset to 0");
            //changeState(MYSTATE_OFFLINE);
            break;
        case SYSTEM_EVENT_STA_WPS_ER_SUCCESS:
            Serial.println("WiFi Protected Setup (WPS): succeeded in enrollee mode");
            break;
        case SYSTEM_EVENT_STA_WPS_ER_FAILED:
            Serial.println("WiFi Protected Setup (WPS): failed in enrollee mode");
            break;
        case SYSTEM_EVENT_STA_WPS_ER_TIMEOUT:
            Serial.println("WiFi Protected Setup (WPS): timeout in enrollee mode");
            break;
        case SYSTEM_EVENT_STA_WPS_ER_PIN:
            Serial.println("WiFi Protected Setup (WPS): pin code in enrollee mode");
            break;
        case SYSTEM_EVENT_AP_START:
            Serial.println("WiFi access point started");
            break;
        case SYSTEM_EVENT_AP_STOP:
            Serial.println("WiFi access point  stopped");
            break;
        case SYSTEM_EVENT_AP_STACONNECTED:
            Serial.println("Client connected");
            break;
        case SYSTEM_EVENT_AP_STADISCONNECTED:
            Serial.println("Client disconnected");
            break;
        case SYSTEM_EVENT_AP_STAIPASSIGNED:
            Serial.println("Assigned IP address to client");
            break;
        case SYSTEM_EVENT_AP_PROBEREQRECVED:
            Serial.println("Received probe request");
            break;
        case SYSTEM_EVENT_GOT_IP6:
            Serial.println("IPv6 is preferred");
            break;
        case SYSTEM_EVENT_ETH_START:
            Serial.println("Ethernet started");
            break;
        case SYSTEM_EVENT_ETH_STOP:
            Serial.println("Ethernet stopped");
            break;
        case SYSTEM_EVENT_ETH_CONNECTED:
            Serial.println("Ethernet connected");
            break;
        case SYSTEM_EVENT_ETH_DISCONNECTED:
            Serial.println("Ethernet disconnected");
            break;
        case SYSTEM_EVENT_ETH_GOT_IP:
            Serial.println("Obtained IP address");
            break;
        default: break;
    }
}

#include "esp_wifi.h" // only for fixWifiPersistencyFlag()
/**
 * Disable persistent mode, see https://github.com/espressif/arduino-esp32/issues/1393
 */
void fixWifiPersistencyFlag() {
  wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
  Serial.printf("cfg.nvs_enable before: %d\n", cfg.nvs_enable);
  cfg.nvs_enable = 0;
}

////////////////////////////////////////////////////////////////////////////////

void setup()
{
  Serial.begin(115200);
  Serial.println("-----------------------------------------");
  Serial.println("THIS IS: newWifiImplementationUsingEvents");
  Serial.println("-----------------------------------------");

  WiFi.persistent(false);
  fixWifiPersistencyFlag();

  //Serial.setDebugOutput(true); 
  //WiFi.printDiag(Serial); 

  // delete old config
  WiFi.disconnect(true);

  state_since = getUptime();

  delay(1000);

  // warning: only the last defined event handler gets events!
  WiFi.onEvent(WiFiEvent);

  Serial.println("End of setup");
}

bool firstTime = true;

void loop()
{
  long uptime = getUptime();
  if (mystate == MYSTATE_ONLINE && state_since + TIMEOUT_ONLINE < uptime) {
    Serial.println("Disconnecting NOW");
    changeState(MYSTATE_DISCONNECTING);
    WiFi.disconnect(true);
    WiFi.mode(WIFI_OFF);
  } else if (mystate == MYSTATE_OFFLINE && state_since+TIMEOUT_OFFLINE < uptime) {
    Serial.println("Connecting NOW");
    changeState(MYSTATE_CONNECTING);
    if (firstTime) {
      Serial.println("(firstTime)");
      WiFi.begin(ssid, password);
      firstTime = false;
    } else {
      // doesn't work without WiFiGeneric.cpp patch below
      WiFi.mode(WIFI_STA);
      WiFi.reconnect();
    }
  } else if (mystate == MYSTATE_CONNECTING && state_since+TIMEOUT_CONNECTING < uptime) {
    Serial.println("Cancelling NOW after no connect success");
    changeState(MYSTATE_DISCONNECTING);
    WiFi.disconnect(true);
    WiFi.mode(WIFI_OFF);
  }

  delay(1000);
  if (uptime % 10 == 0) {
    Serial.printf("uptime %d\n", uptime);
  }
}

/* PATH FOR LIBRARY
diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp
index e562921..aab5805 100644
--- a/libraries/WiFi/src/WiFiGeneric.cpp
+++ b/libraries/WiFi/src/WiFiGeneric.cpp
@@ -483,8 +483,10 @@ void WiFiGenericClass::enableLongRange(bool enable)
 bool WiFiGenericClass::mode(wifi_mode_t m)
 {
     wifi_mode_t cm = getMode();
+    log_d("mode() cm=%d, m=%d", cm, m);
     if(cm == m) {
-        return true;
+        log_d("HACK: skip return true");
+        //return true;
     }
     if(!cm && m){
         if(!wifiLowLevelInit(_persistent)){
*/


/* ISSUES:
 *  
 * 1) The example WiFiClientEvents.ino says:
 * 
 *   WiFi.onEvent(WiFiEvent);
 *   WiFi.onEvent(WiFiGotIP, WiFiEvent_t::SYSTEM_EVENT_STA_GOT_IP);
 *   
 *   but the WiFiEvent function never receives a SYSTEM_EVENT_STA_GOT_IP!
 *   
 * 2) I used code from https://github.com/espressif/arduino-esp32/issues/1393 to fix the persistent config issue
 * 
 * 3) The list of events in WiFiClientEvents.ino (comment block) is missing an event. Same bug as fixed in 188560e7f33
 * 
 * 4) Without pathing of WiFiGeneric.cpp, the mode() function doesn't do anything anymore once WiFi it was initialized (not even connected)
 * 
 *   see also: https://github.com/espressif/arduino-esp32/issues/1306 (but the this patch is not yet mentioned there)
 * 
 * 5) just a note: there is a STA_LOST_IP event, 2 minutes after disconnecting. 
 *   So if you want to make your code stable, you should also test with TIMEOUT_OFFLINE > 130
 */

рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдЗрд╕реЗ рддрд╛рд░-рддрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ?

рдПрдХ arduino wifi Rev 2 (рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рдореБрджреНрджрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдПрдкреА рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореБрджреНрджреЗ рд╕рдорд╛рди рдереЗред)

https://github.com/arduino/nina-fw/issues/14

@mrarmyant рдХреНрдпрд╛ рдЖрдк

рдореЗрд░рд╛ рдХреЛрдб (рдЖрдкрдХреА рдкреЛрд╕реНрдЯ рдХреЗ рдКрдкрд░) рд╕реНрдерд┐рд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдИрдПрд╕рдкреА * рдЪрд┐рдкреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрд▓рдЧ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдИрдПрд╕рдкреА рдПрд╕рдбреАрдХреЗ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдЕрд░реБрдбрд┐рдиреЛ рдХреЛ

рдореИрдВ рдмрд┐рдЬрд▓реА рдЖрдкреВрд░реНрддрд┐ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рджреЛрд╖ рджреЗрддрд╛ рд╣реВрдВ

рдореИрдВ рдкреАрдПрд╕ рдХреЛ рджреЛрд╖ рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдордЬреЛрд░ рдЖрдкреВрд░реНрддрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рд╡рд╛рдпрд░рд╢рд░реНрдХ рдпрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреЗрдХрд╛рд░ рд╣реИред

рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдкрдХреЛ рдЖрд░рдЯреАрдУрдПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХрд░рдиреА рд╣реИ рдЬрд╣рд╛рдБ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдЕрд░реБрдбрд┐рдиреЛ рдХреЗ рдХрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗ рдПрдХ рдЖрд╡рд░рдг рд╣реИрдВред

рдпрджрд┐ рдЖрдк WiFi.begin () рдХреЗ рдмрдЬрд╛рдп WiFi.reconnect () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

WiFi.begin () рд╡рд╛рдИрдлрд╛рдИ рдЪрд┐рдк рдФрд░ рдЖрд░рдЯреАрдУрдПрд╕ рд╕реНрдЯреЗрдЯреНрд╕ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ () рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ 2 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╕реВрдЪрдирд╛ рдорд┐рд▓реА рдереАред

WiFi.reconnect () рдЕрдХреНрд╕рд░ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдХреЗрд╡рд▓ рдЖрдзрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рддрд╛ рд╣реИ, UDP рдХреЗ рд╕рд╛рде рдЪрд┐рдк рд╕реНрддрд░ рдореИрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА рдХрдиреЗрдХреНрд╢рди рдХрднреА рдирд╣реАрдВ рдмрдирд╛рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИрдВред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдХреЗ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг () рдпрд╣ рдХреЗрд╡рд▓ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╡рд╣рд╛рдВ рд╣реИрдВред
рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ SYSTEM_EVENT_STA_GOT_IP рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред

рдпрд╛рдж рд╣реИ; рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд░рд╛рдЬреНрдп рдкрд╣рд▓реЗ рд╣реА рдмрджрд▓ рдЪреБрдХреЗ рд╣реИрдВред

I ALWAYS рдиреЗ WiFi.begin () рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдФрд░ рдХрднреА рдЕрд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдЖред

======
рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдирд╣реАрдВ рдХрд╣рдиреЗ рд╡рд╛рд▓реЗ рд░реАрд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдбреАрдПрдЪрд╕реАрдкреА рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╣реИред
рдбреАрдПрдЪрд╕реАрдкреА рдЖрдИрдкреА рдкрддрд╛ рдЖрдорддреМрд░ рдкрд░ рд╣рд░ 15 рд╕реЗрдХрдВрдб рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдм рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рджреВрд╕рд░реА рдмрд╛рд░ рдкреБрдирдГ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк рд░реАрд╕реЗрдЯ рджрдмрд╛рдПрдВред
рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░ рдПрдХ рдФрд░ 13 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдЖрдИрдкреА рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдкрд░ рдпрд╣ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ред

рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмреВрдЯ рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рджреЗрд░реА рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рдпрд╣ рддрдп рдХрд┐рдпрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдХрдИ рдЕрдиреНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ WiFi.begin () рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗрдЯ рдХрд░реЗрдВред

рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реНрдЯрд╛рд░реНрдЯ рдЯрд╛рдЗрдорд░ рдпрд╣рд╛рдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
рдПрдХ рд▓рдВрдмрд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓реЗрдирд╛ Serial.print (millis () - var); WiFi.begin () рдХреЗ рдареАрдХ рдкрд╣рд▓реЗ рдФрд░ рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рдмреВрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдлрд┐рд░ рдЙрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВред

рдореИрдВ 6 рд╡рд░реНрд╖реЛрдВ рд╕реЗ ESP32 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдиреЗ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ; рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ WiFiEvent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЕрдЪреНрдЫреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд╛рдИрдлрд╛рдИ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╣рд░ рдмрд╛рд░ рдордЬрд╝рдмреВрддреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ IF / ELSE рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ WL_CONNECTED рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдореЗрдВ рдиреАрдЪреЗ рд╕реЗ рд▓рдЧрднрдЧ 18 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░ рдХреЛ рдмрд╛рдж рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реА рдХрдиреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЖрдИрдкреА рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдорд┐рд▓рддрд╛ рд╣реИред

рдпрд╣ 6 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЧрд┐рдирддреА рдХрд░ рд░рд╣рд╛ рд╣реИред

loop()
{
  if ( WiFi.status() ==  WL_CONNECTED ) 
  {
    // WiFi is UP,  do what ever
  } else
  {
    // wifi down, reconnect here
   WiFi.begin(  );
    int WLcount = 0;
    while (WiFi.status() != WL_CONNECTED && WLcount < 200 ) 
    {
      delay( 100 );
         Serial.printf(".");
         if (UpCount >= 60)  // just keep terminal from scrolling sideways
         {
            UpCount = 0;
               Serial.printf("\n");
         }
         ++UpCount;
      ++WLcount;
    }
  }
} // END loop()

рдХрдВрдХрд╛рд▓ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдЬреЛ рдореИрдВрдиреЗ https://github.com/espressif/arduino-esp32/sues/1100 рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ SmartConfig рдХреЗ рд╕рд╛рде рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдерд╛, рдпрд╣ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@mrarmyant рдХреНрдпрд╛ рдЖрдк

рдореЗрд░рд╛ рдХреЛрдб (рдЖрдкрдХреА рдкреЛрд╕реНрдЯ рдХреЗ рдКрдкрд░) рд╕реНрдерд┐рд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдИрдПрд╕рдкреА * рдЪрд┐рдкреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрд▓рдЧ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдИрдПрд╕рдкреА рдПрд╕рдбреАрдХреЗ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдЕрд░реБрдбрд┐рдиреЛ рдХреЛ

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ arduino рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд╛рдИрдлрд╛рдИ рд╕реЛрд╕рд╛рдЗрдЯреА рдЬреЛ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдЗрдХрд╛рдИ рдкрд░ рд╣реИред рдЗрд╕рдореЗрдВ dhcp рдХреЗ рд╕рд╛рде рд╣рд┐рдВрдХреА рд╣реЛрдиреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдореБрджреНрджреЗ рдереЗред рдХрд┐рд╕реА рдиреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рдЙрдирдХреЗ рд░рд╛рдЙрдЯрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХ рд╡рд┐рдВрдбреЛрдЬрд╝ dhcp рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛)ред рд╡рд╣рд╛рдБ рдПрдХ рдореБрджреНрджрд╛ рдерд╛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рддрд╛рд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВ рдЗрд╕реЗ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдмрд╕ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЙрди рдореБрджреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рди рддреЛ рдЗрдХрд╛рдИ рдХрднреА рднреА рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдгреЛрдВ рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рдирд╣реАрдВ рджрд┐рдЦреЗрдЧреА, рдФрд░ рд╡рд╛рдпрд░рд╢рд╛рд░реНрдХ рдиреЗ рд╣рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдХреНрдпреЛрдВред рд╕реНрдЯреЗрдЯрд┐рдХ рдЖрдИрдкреА рдХреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рдпрд╣ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╡рд╛рдИрдлрд╛рдИ рд╕реЛрд╕рд╛рдЗрдЯреА рдлрд░реНрдорд╡реЗрдпрд░ рдЬрд┐рд╕реЗ рдбреАрдПрдЪрд╕реАрдкреА рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рджреЗрд░реА рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ред рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рднреА рддрд╛рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬреЗ рдЧрдП рдереЗред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
5 / 5 - 1 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

N0rbert picture N0rbert  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

docloulou picture docloulou  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ComputerLag picture ComputerLag  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

huming2207 picture huming2207  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

NickChungVietNam picture NickChungVietNam  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ