ESP32: связь пропала — подключиться заново

Отодвиньте точку доступа во время работы: зелёный светодиод погаснет, красный загорится, а плата будет пытаться подключиться снова.

Продвинутый уровень ESP32 DevKit V1 C++
Схема подключения: ESP32: связь пропала — подключиться заново
Схема в симуляторе. Нажмите «Открыть в симуляторе», чтобы запустить её и поменять.

Что понадобится

Как подключить

ОткудаКуда
ESP32 DevKit V1D4→Резистор 11
Резистор 12→Светодиод 1A
Светодиод 1C→ESP32 DevKit V1GND
ESP32 DevKit V1D5→Резистор 21
Резистор 22→Светодиод 2A
Светодиод 2C→ESP32 DevKit V1GND

Скетч

#include <WiFi.h>

const int LED_OK = 4;     // зелёный: связь есть
const int LED_BAD = 5;    // красный: связи нет

bool wasConnected = false;
unsigned long lastTry = 0;

void setup() {
  Serial.begin(115200);
  pinMode(LED_OK, OUTPUT);
  pinMode(LED_BAD, OUTPUT);
  WiFi.begin("Кабинет-робототехники", "robot2026");
  lastTry = millis();
}

void loop() {
  bool ok = (WiFi.status() == WL_CONNECTED);
  digitalWrite(LED_OK, ok ? HIGH : LOW);
  digitalWrite(LED_BAD, ok ? LOW : HIGH);

  // Печатаем только СМЕНУ состояния: иначе монитор забьётся
  // одной и той же строкой десять раз в секунду.
  if (ok != wasConnected) {
    if (ok) {
      Serial.print("связь есть, сигнал ");
      Serial.print(WiFi.RSSI());
      Serial.println(" дБм");
    } else {
      Serial.println("связь потеряна, подключаюсь заново");
    }
    wasConnected = ok;
  }

  // Новую попытку делаем не чаще раза в три секунды. Дёргать begin()
  // каждый виток бессмысленно: подключение занимает время, и плата
  // просто не успевала бы его закончить.
  if (!ok && millis() - lastTry > 3000) {
    WiFi.begin("Кабинет-робототехники", "robot2026");
    lastTry = millis();
  }

  delay(300);
}

Как это работает

Настоящая плата теряет связь постоянно: человек ушёл с телефоном за стену, роутер перезагрузился. Поэтому подключение проверяют в loop(), а не один раз в setup().

Коротко о детали: ESP32 DevKit V1

Плата на модуле ESP32-WROOM-32: два ядра на 240 МГц, Wi-Fi и Bluetooth, логика 3,3 В. Выводов больше, чем у Uno, и почти любой из них можно назначить входом АЦП или выходом ШИМ. Беспроводная связь в симуляторе не моделируется — WiFi.begin() честно пишет об этом в монитор порта.

Распиновка и все примеры →

Ещё примеры с деталью «ESP32 DevKit V1»

Попробуйте сами

Симулятор работает прямо в браузере: схему можно менять, код — править, а результат видно сразу. Бесплатно, без установки и регистрации.

Открыть «ESP32: связь пропала — подключиться заново» в симуляторе