ESP32 не подключается к Wi-Fi после глубокого сна deep sleep

Рейтинг: 69.4% · 29 голосов
Raspberry Pi, Arduino, ESP32, Orange Pi: умный дом, датчики, робототехника, 3D-печать и самодельная электроника.
Ответить
Аватара пользователя
cpp1
Сообщения: 4
Зарегистрирован: 27 май 2026, 02:36
Репутация: 174

ESP32 не подключается к Wi-Fi после глубокого сна deep sleep

Сообщение cpp1 »

Столкнулся с проблемой: ESP32 работает нормально, но после выхода из deep sleep перестаёт подключаться к роутеру. Скетч простой — считываю данные с DHT22, отправляю на MQTT-брокер, ухожу в сон на 5 минут. Первые 2-3 цикла всё ок, потом зависает на этапе WiFi.begin(). Жду 30 секунд, ничего. Приходится вручную перезагружать. Кто сталкивался?
👍1 ❤️1 🔥1 😄 🤔1
Кто не бэкапит — тот плачет.
✔ Лучший ответ сформирован автоматически — Farkle
Ещё один момент которого здесь не коснулись: если ESP32 уходит в deep sleep и роутер за это время успевает удалить запись ARP — при пробуждении устройство пытается подключиться с тем же IP (если DHCP lease ещё действует), но роутер уже не знает этот MAC в ARP-таблице и нужен новый ARP handshake. На некоторых дешёвых роутерах это приводит к зависанию именно на этапе получения IP. Статический IP…
Перейти к ответу →
Аватара пользователя
rtrowsdell
Сообщения: 33
Зарегистрирован: 11 май 2026, 21:50

Re: ESP32 не подключается к Wi-Fi после глубокого сна deep sleep

Сообщение rtrowsdell »

Классика жанра. Попробуй перед подключением явно вызывать WiFi.disconnect(true) и WiFi.mode(WIFI_OFF), а потом снова WiFi.mode(WIFI_STA). Ещё важный момент — задержка после WiFi.begin(), у меня помогало добавить delay(100) перед циклом ожидания подключения. Без этого стек иногда не успевает инициализироваться.
👍 ❤️1 🔥 😄 🤔
Аватара пользователя
delphin
Сообщения: 72
Зарегистрирован: 13 май 2026, 02:35

Re: ESP32 не подключается к Wi-Fi после глубокого сна deep sleep

Сообщение delphin »

У меня была похожая история. Оказалось дело в роутере — он не сразу отдаёт IP устройству, которое уже было подключено. Решил проблему через статический IP: WiFi.config(ip, gateway, subnet). Скорость подключения выросла с 3-4 секунд до менее чем секунды, и зависания пропали полностью.
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
coder_anton
Сообщения: 32
Зарегистрирован: 11 май 2026, 16:50

Re: ESP32 не подключается к Wi-Fi после глубокого сна deep sleep

Сообщение coder_anton »

Не забывай про esp_wifi_set_ps(WIFI_PS_NONE) — отключает power saving на уровне Wi-Fi стека. По умолчанию включён режим экономии, который иногда конфликтует с логикой переподключения после сна. Особенно актуально для роутеров на старых прошивках.
👍4 ❤️1 🔥1 😄2 🤔2
Аватара пользователя
Donegal
Сообщения: 10
Зарегистрирован: 22 май 2026, 19:52

Re: ESP32 не подключается к Wi-Fi после глубокого сна deep sleep

Сообщение Donegal »

Проверь ещё одну вещь: сколько у тебя устройств в сети? Если роутер дешёвый и таблица ARP переполняется, он начинает игнорировать новые DHCP-запросы от уже известных MAC-адресов. Статический IP решает это на корню. Ну и watchdog timer не помешает — на случай если всё равно зависнет, хотя бы сам перезагрузится.
👍1 ❤️ 🔥1 😄 🤔1
Аватара пользователя
markcack
Сообщения: 22
Зарегистрирован: 12 май 2026, 01:49

Re: ESP32 не подключается к Wi-Fi после глубокого сна deep sleep

Сообщение markcack »

Самое полное решение которое я нашёл после месяца мучений: использовать RTC_DATA_ATTR для хранения BSSID и канала роутера между циклами сна. Тогда ESP32 не сканирует все каналы, а сразу подключается к нужной точке. Вот суть: сохраняй WiFi.BSSID() и WiFi.channel() перед уходом в сон, а при пробуждении передавай их в WiFi.begin(ssid, pass, channel, bssid). Время подключения падает до 200-400 мс вместо 3-5 секунд, и зависания исчезают — потому что основная причина глюков это как раз долгий процесс сканирования/ассоциации.
👍3 ❤️2 🔥 😄2 🤔3
Аватара пользователя
rojo7509
Сообщения: 38
Зарегистрирован: 12 май 2026, 13:19

Re: ESP32 не подключается к Wi-Fi после глубокого сна deep sleep

Сообщение rojo7509 »

А какую версию arduino-esp32 используешь? На 2.x была куча багов с Wi-Fi после сна, многие починили в 3.x. Обнови через Board Manager и попробуй снова.
👍3 ❤️ 🔥2 😄1 🤔
Аватара пользователя
rdnckavn
Сообщения: 23
Зарегистрирован: 13 май 2026, 21:19

Re: ESP32 не подключается к Wi-Fi после глубокого сна deep sleep

Сообщение rdnckavn »

@markcack, RTC_DATA_ATTR с BSSID и каналом — лучший совет в треде. Добавлю детали: при сохранении BSSID нужно копировать массив байт явно, потому что WiFi.BSSID() возвращает указатель на внутренний буфер, который после WiFi.disconnect() может стать невалидным. То есть: `uint8_t bssid[6]; memcpy(bssid, WiFi.BSSID(), 6);` — и вот этот массив уже в RTC_DATA_ATTR. Иначе после нескольких циклов получишь мусор вместо адреса точки.
👍1 ❤️ 🔥 😄 🤔1
Аватара пользователя
makler
Сообщения: 11
Зарегистрирован: 19 май 2026, 10:48

Re: ESP32 не подключается к Wi-Fi после глубокого сна deep sleep

Сообщение makler »

@rojo7509, версия arduino-esp32 — это вообще первое что надо проверять при странных Wi-Fi глюках. На 2.0.x был известный баг с тем что Wi-Fi стек не полностью сбрасывался при deep sleep, и накопленное состояние через несколько циклов давало именно такую картину: первые 2-3 цикла работает, потом висит. В 3.x это починили, плюс там новый Wi-Fi драйвер с улучшенным обходом проблем reconnect.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
Farkle
Сообщения: 37
Зарегистрирован: 12 май 2026, 00:45

Re: ESP32 не подключается к Wi-Fi после глубокого сна deep sleep

Сообщение Farkle »

✔ Лучший ответ — сформирован автоматически
Ещё один момент которого здесь не коснулись: если ESP32 уходит в deep sleep и роутер за это время успевает удалить запись ARP — при пробуждении устройство пытается подключиться с тем же IP (если DHCP lease ещё действует), но роутер уже не знает этот MAC в ARP-таблице и нужен новый ARP handshake. На некоторых дешёвых роутерах это приводит к зависанию именно на этапе получения IP. Статический IP решает проблему полностью, как уже написал matvey5884, но если хочется DHCP — увеличьте lease time до нескольких часов в настройках роутера.
👍 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Одноплатники, IoT и DIY-электроника»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость