• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Нестабильная работа из-за роутера

beragumbo

New member
Здравствуйте! Делаю свой девайсик на ESP-12, столкнулся с частыми перезагрузками по непонятным причинам. Потратив в бесцельной отладке почти два вечера я заметил, что при работе от wi-fi, который я раздаю со смартфона, сбоев в работе нет! При работе от домашнего wi-fi роутера модуль постоянно перезагружается (через несколько минут после старта) и вообще ведёт себя очень неадекватно. Роутер вроде бы хороший, ASUS RT-N10U. Правда один раз удалось добиться аптайма в 10 часов, НО! Когда я пришёл домой и вроде бы подключился к роутеру с телефона - esp опять упал, но теперь даже с отключенными от роутера устройствами мне не удаётся получить стабильную работу. При работе от смартфона в качестве точки доступа по-прежнему перезагрузок нет, работает как часы
 

pvvx

Активный участник сообщества
Не пробовали увеличить расстояние от роутера до модуля?
Есть такой баг у ESP8266 - сильный сигнал некоторых пакетов по WiFi "сносит крышу" его station... Может как-раз тот вариант?
Ловлю стабильность/повторяемость этой беды в ESP8266 уже давно, но оно слишком "рамдомно" для того, чтобы локализовать и сделать патч. Если у вас оно стабильно, т.е. возникает четко при каком-то дейстсвии - отпишите все параметры.
Если это в ту тему, то есть зависимость - установка отключения подстройки частоты WiFi в esp_init_data_default.bin уменьшает вероятность вылета в несколько раз.


Но, думаю, что у вас другая причина проблемы - от роутера к ESP приходят разные запросы-пакеты UDP/TCP из сети, а от телефона - нет. Что-то криво написано и падает от них.

 
Последнее редактирование:

beragumbo

New member
Не пробовали увеличить расстояние от роутера до модуля?
Есть такой баг у ESP8266 - сильный сигнал некоторых пакетов по WiFi "сносит крышу" его station... Может как-раз тот вариант?
Ловлю стабильность/повторяемость этой беды в ESP8266 уже давно, но оно слишком "рамдомно" для того, чтобы локализовать и сделать патч. Если у вас оно стабильно, т.е. возникает четко при каком-то дейстсвии - отпишите все параметры.
Если это в ту тему, то есть зависимость - установка отключения подстройки частоты WiFi в esp_init_data_default.bin уменьшает вероятность вылета в несколько раз.


Но, думаю, что у вас другая причина проблемы - от роутера к ESP приходят разные запросы-пакеты UDP/TCP из сети, а от телефона - нет. Что-то криво написано и падает от них.
Спасибо, сейчас попробую отнести девайс на кухню. А то и правда, все тесты проводятся в полуметре от роутера!!! А он мощный, двухтрубный =)
По коду: у меня идёт стандартный GET запрос из примера, дальше парсинг. При нескольких подряд ошибках подключения запускается функция getSSL_fp(), которая представляет собой точно такой же (под копирку) GET запрос, на выходе которого я получаю свежий SSL отпечаток (GET ведётся с моего сервера, там скрипт выдаёт отпечаток одной строчкой)
Код:
if (WiFi.status() == WL_CONNECTED) {
    i = 0;
    httpCode = 0;
    payload = "";
    http.begin(host, httpsFingerprint);
    delay(500);
    httpCode = http.GET();
    if (httpCode > 0) {
      tries = 0;
      payload = http.getString();
    } else {
      tries++;
      if (tries > 2) {
        tries = 0;
        getSSL_fp();
      }
    }
    http.end();
 

pvvx

Активный участник сообщества
А delay(500); зачем? За его время может прийти более 500 пакетов из сети и куда они набьются?
Это не причина падения, но всё-же...
 

beragumbo

New member
А delay(500); зачем? За его время может прийти более 500 пакетов из сети и куда они набьются?
Это не причина падения, но всё-же...
Хммм, я тоже не понял. Но это было в примере, и я оставил (в примере было 1000!). Я подумал это время, чтобы информация успела дойти и обработаться.
Кстати модуль лежит через стену от роутера, пока что работает. Возможно проблема решена, спасибо! =)
А можно не расстояние увеличить, а допустим корпусом лишнее экранировать/заглушить? Звучит вроде бы логично.
 

pvvx

Активный участник сообщества
1) Измените, если не равен нулю в esp_init_data_default.bin 112-й байт freq_correct_en. Поставьте туда 0. Какая версия SDK вы не написали, но, впрочем, это влияет на все версии.
Далее - проверьте и потом уже пишите.
 

beragumbo

New member
1) Измените, если не равен нулю в esp_init_data_default.bin 112-й байт freq_correct_en. Поставьте туда 0. Какая версия SDK вы не написали, но, впрочем, это влияет на все версии.
Далее - проверьте и потом уже пишите.
А где его взять? Не нашёл в папке \AppData\Local\Arduino15\packages и в папке библиотек ардуино. Версия у меня 2.3.0
 

beragumbo

New member
Я к сожалению недостаточно крут для этого =) Я im.cmc через Arduino IDE, я так понял что нужно flash download tool или чем то похожим это делать?
 

pvvx

Активный участник сообщества
Я к сожалению недостаточно крут для этого =) Я im.cmc через Arduino IDE, я так понял что нужно flash download tool или чем то похожим это делать?
Тогда не парьтесь - попробуйте проверить на другом роутере.
Я описал возможные причины, а как вы их будете решать - это ваша задача.
 

beragumbo

New member
Тогда не парьтесь - попробуйте проверить на другом роутере.
Я описал возможные причины, а как вы их будете решать - это ваша задача.
На данный момент я уверен, что дело было в сильном сигнале, потому что всё работает отлично, оставлю на пару дней в соседней комнате
 

pvvx

Активный участник сообщества
На данный момент я уверен, что дело было в сильном сигнале, потому что всё работает отлично, оставлю на пару дней в соседней комнате
Значит правьте 112 байт в Flash настойках... Потом несите к роутеру и пишите сколько продержится - может вас это устроит. Меня - нет, т.к. на ESP8266 только из-за этого глюка ничего стабильного не сделать. Если надыбаю конкретно, какой пакет его убивает, то вставлю во все коды других модулей - будут убийцами ESP8266 :)
 

beragumbo

New member
Значит правьте 112 байт в Flash настойках... Потом несите к роутеру и пишите сколько продержится - может вас это устроит. Меня - нет, т.к. на ESP8266 только из-за этого глюка ничего стабильного не сделать. Если надыбаю конкретно, какой пакет его убивает, то вставлю во все коды других модулей - будут убийцами ESP8266 :)
Спасибо, может с пивом доберусь, попробую. Но по мне так проще частично экранировать сигнал, так как всё равно корпус будет =)
 

olegmsn

New member
Мне пришлось отдельную сетку поднимать для IoT. ESP очень не любит толпы широковещательных пакетов. А особенно какого нить iptv....
 
Сверху Снизу