Нужна помощь Arduino + ESP8266 + WiFi + UDP

d_tramp

New member
Всем привет!
Столкнулся с такой проблемой.
Ардуино через шилд воткнуто в точку доступа
ESP8266 по wifi подключена к точке доступа.
Ардуино передает пакет UDP в ESP с командой
ESP принимает пакет и включает реле.
Вроде все просто и должно работать.
Включаем, проверяем.
На экране нажимаем кнопочку, ардуино передает пакет, ESP пакет принимает - реле включается.
Все правильно, НО! работает это примерно минут 7-10.
Потом ESP отваливается от сети и больше пакеты не принимает...

Что происходит? ESP уходит в режим энергосбережения, или просто они так нестабильно работают?

Если заресетить ESP то будет работать, но примерно столько же.

Прошу помощи...
 

pvvx

Активный участник сообщества
По умолчанию включается режим энергосбережения и пинг увеличивается до 0.1 сек DTIM(1).
Посланные UDP пакеты при таком раскладе не доходят до адресата, т.к. UDP не подразумевает обязательную доставку и роутер не будет хранить все пакеты для каждого клиента пока те спят в режиме DTIM(n). У него банально не хватит памяти...
Роутер пробуждает клиента, тот просыпается и связь налаживается. Передавайте пакет заново, когда ESP проснется...
Все другие варианты связаны с ошибками в ПО или несовместимости ESP и роутера (неверных настроек).
 
Последнее редактирование:

NeoroN

Member
ну да нужен контроль доставки - ESP должна ответить, a Arduino повторяь отпраку раз в 100...200мс пока не получит ответ.
 

d_tramp

New member
Стабильность соединения получена, но лишь частично...
Напомню что участвует:
Ардуина+Nextion дисплей через шилд воткнута витой парой в точку доступа
ESP через WiFi.
Что получается...
Все выключаем и включаем.
Все стартуют, ждем секунд 30 и нажимаем кнопки на экране - на ESP никакой реакции.

Все выключаем и включаем.
Ардуина стартует, стартуем ESP и в это время судорожно жмем кнопки на экране
после 3-4 нажатия ESP начинает принимать пакеты и в этом (рабочем) состоянии
может находиться очень долго (пока не отключим питание видимо).
По крайне мере пару суток оно так проработало.
Отсюда непонятный для меня вопрос, ESP когда включается что не так?
К WIFI она точно подключена - почему не принимает пакеты?
А когда при старте начинаешь бомбить ESP пакетами что происходит?
Почему начинает работать?
И главный вопрос как это исправить?
У меня остался последний этап и именно этот.

Помогите пожалуйста... :)
Я не понимаю что происходит и в какую сторону смотреть.
Могу скинуть скетчи ардуины и ESP. наверняка где-то косяк есть. Да и не один подозреваю...
 

NeoroN

Member
Может надо отказаться от UDP в пользу TCP если так важна гарантия доставки пакетов?
UDP на то он и UDP что там нет служебных пакетов - когда отдельный пакет не столь важен - различные потоки данных.
 
Сверху Снизу