ESP8266 виснет

Victor

Administrator
Команда форума
Статистика поисковых запросов показывает, что достаточно много людей, у которых "ESP8266 виснет".
Предлагаю вам в этой теме размещать посты с подробным описанием подключения esp8266 - мы постараемся вам помочь. Внимание! Перед тем, как размещать пост, прочитайте
ESP8266 — подключение и обновление прошивки
Если вы выполнили все рекомендации, описанные в этой статье, а esp8266 виснет, тогда можете разместить свой пост.

1. Укажите тип модуля esp8266 (ESP-01, ESP-07 и т.п.)
2. Сообщите схему подключения (какой стабилизатор питания, как и куда подтянуты GPIO, какой USB-TTL и т.д. - чем подробнее, тем больше шансов, что кто-то из пользователей форума увидит вашу ошибку и вам поможет)
3. Сообщите тип и версию прошивки (если модуль сами не перепрошивали, то так и напишите)
4. Сообщите через какое время стабильной работы происходит зависание
5. К какому роутеру подключаетесь, какую IP адресацию используете (статическую или динамическую)

Приложите как можно больше подробной информации (фото, фрагменты кода, скриптов и AT команд, только пожалуйста, уважайте других - спрячьте это все под спойлер, чтобы глаза не выпадывали от вашего поста)
 

TRO

New member
У меня вешался ESP-01 во время передачи посылки через вайфай, из за длинного шлейфа от стабилизатора до ESP-01.
По осцилографу просадка была при передаче менше 2.5в. Заменил шлейф на покороче и добавил емкостей, теперь ок.

ESP-0з тоже вешалась, но тут уже был виноват другой длинный кабель с USB до стабилизатора, поставил на входе стабилизатора емкость от материнки на пару тысяч микрофарад, пока полет нормальный.
 

Victor

Administrator
Команда форума
Основные признаки, по которым я визуально могу определить зависание или Exception прошивки
1. Резкое увеличение тока (если при отключенном WiFi у меня 0,07А, то при зависании постоянно 0,3А)
2. Красный светодиод начинает гореть в половину яркости, которая была при старте модуля (светодиод питания присутствует не на всех типах модуля) при питании от USB (через конвертер, конечно)
3. При обмене по UART не мигает в такт данным синий светодиод на модуле
 

xlightx

New member
Модуль ESP-01. Прошит NodeMCU. Подключен как показано на рисунке. GPIO 0 включен на выход из датчика движения: http://arduino-ua.com/prod193-IK_datchik_dvijeniya_dlya_Arduino . При загрузке виснет. Если отключаю от датчика - грузится и работает нормально. Датчик выдает ноль если нет движения. Вероятно модуль считает, что его перевели в режим прошивки, т.к. gpio 0 заведен на ноль. Как это обойти - не понимаю. И кстати, если включать датчик после загрузки модуля - все работает на ура.
 
Последнее редактирование:

Виктор59

New member
Модуль ESP-01. Прошит NodeMCU. Подключен как показано на рисунке. GPIO 0 включен на выход из датчика движения: http://arduino-ua.com/prod193-IK_datchik_dvijeniya_dlya_Arduino . При загрузке виснет. Если отключаю от датчика - грузится и работает нормально. Датчик выдает ноль если нет движения. Вероятно модуль считает, что его перевели в режим прошивки, т.к. gpio 0 заведен на ноль. Как это обойти - не понимаю. И кстати, если включать датчик после загрузки модуля - все работает на ура.
Аналогичная проблема, тоже ищу информацию по этому поводу
 

xlightx

New member
Аналогичная проблема, тоже ищу информацию по этому поводу
Виктор, у меня датчик и esp, были запитаны от разных источников питания и проблемма возникала если esp включался, в момент выдачи датчиком нуля (когда отсутствовало движение). Решил проблемму запитав оба устройства от одного источника.
 

Alex Sedov

New member
Привет. Есть такая проблема с зависанием: esp- точка доступа, к ней подключается мобильное устройство и кидает данные (данных 1 байт). Все идет нормально, пока не отключить wi-fi на мобильном устройстве( эмуляция обрыва) при активном соединении "сервер-клиент". Дальше - wifi есть в списке, но подключение к нему не возможно до перезагрузки esp. Esp программировал через Arduino IDE.
Код:
void setup()
{ delay(1000);
  Serial.begin(115200);
  delay(1000);
  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid,password);
  server.begin();
}

void loop()
{ String s,s1;
  WiFiClient client = server.available();  
  if (client)
  { while (client.connected())
     { while (client.available())
       {char c= client.read();      
        s +=c;
       }
       if (s.toInt()>0 && s.toInt()<33){ Serial.write(s.toInt()); s="";} else{s="";}
      }
   }
client.stop();

}
Была идея при потере клиента перезагрузить или wi-fi, или сервер, или esp. Но реализовать это в Arduino IDE не вижу возможности. Может ли кто-нибудь что-нибудь подсказать/посоветовать?
 

sav-13

New member
Привет. Есть такая проблема с зависанием: esp- точка доступа, к ней подключается мобильное устройство и кидает данные (данных 1 байт). Все идет нормально, пока не отключить wi-fi на мобильном устройстве( эмуляция обрыва) при активном соединении "сервер-клиент". Дальше - wi
Была идея при потере клиента перезагрузить или wi-fi, или сервер, или esp. Но реализовать это в Arduino IDE не вижу возможности. Может ли кто-нибудь что-нибудь подсказать/посоветовать?
Решил проблему "топором". Повесил на выход ESP-шки сторожевой таймер на NE555
В принципе релюшкой можно перезагружать хоть ESP, хоть роутер, хоть весь дом )))
 

Alex Sedov

New member

sav-13

New member
Т.е. программно реализовать подобное через Arduno IDE пока нет возможности?
У меня не получилось. ESP.reset() не всегда лечит подвисание.
Функции работы со встроенным WDT тоже глючные
Народ советует через уход в спящий режим и пробуждение через GPIO16 лечить. На мой взгляд тоже не самый простой путь )))
Может SDK допилят и все решится само со временем.
 

Alex Sedov

New member
У меня не получилось. ESP.reset() не всегда лечит подвисание.
Функции работы со встроенным WDT тоже глючные
Народ советует через уход в спящий режим и пробуждение через GPIO16 лечить. На мой взгляд тоже не самый простой путь )))
Может SDK допилят и все решится само со временем.
Cпасибо, будем пробовать.
 
Привет всем. Помогите пожалуйста решить следующюю проблему залил в esp8266 стандартную прошивку из библиотеки ардуино WIFI web server. Там происходит управлением gpio отправкой запроса 192.168.1...gpio/1 на выходе ставится логическая единица или аналогично ноль. после 5-6 посылов модулю, модуль наченает зависать (отрабатывает медленно) Что посоветуете?
 

Виктор59

New member
я решил проблему подпаяв проводок с крайнего выхода. Получился еще один GPIO5. с ним проблем нет. Кому интересно пишите - отвечу.
 

net

New member
два есп01 работают параллельно. виснут оба неделя-две. Ставить ватчдог не вижу смысла т.к. передергивание не помогает, если только подождать минуты 4-5. зашел в роутер- оба есп01 висят как клиенты с айпи адресами. После перезагрузки роутера , обе зависшие есп восстанавливаются без передергивания и работают. Дело в роутере? глюк есп? что посоветуете. .
 

sharikov

Active member
два есп01 работают параллельно. виснут оба неделя-две.
...что посоветуете. .
Забейте болт.
Китайские модули отвратительно разведены. Например на esp-03 только 1 (один!) блокировочный конденсатор который расположен вплотную к антенне. Гигагерцовые схемы так не разводят если хочется чтобы работало.
Модуль должен быть разведен на 4-х слойке с соблюдением импеданса вч трасс и нормативным отступом от антенны, на каждый питающий вывод esp8266 должно быть установлено по блокировочному конденсатору...
 

nikolz

Well-known member
два есп01 работают параллельно. виснут оба неделя-две. Ставить ватчдог не вижу смысла т.к. передергивание не помогает, если только подождать минуты 4-5. зашел в роутер- оба есп01 висят как клиенты с айпи адресами. После перезагрузки роутера , обе зависшие есп восстанавливаются без передергивания и работают. Дело в роутере? глюк есп? что посоветуете. .
возможно esp теряют соединение. После этого они действительно повиснут и восстановятся лишь после перезагрузки роутера.
Как вариант надо вставить поиск соединения при его потере в программу eSP.
 

net

New member
возможно esp теряют соединение. После этого они действительно повиснут и восстановятся лишь после перезагрузки роутера.
Как вариант надо вставить поиск соединения при его потере в программу eSP.
Пока роутер не сбросит есп шки в листе клиентов успеха нет. либо передернуть зависшие есп и подождать минуты 4 пока сбросятся они в роутере. Попробовать реализовать циклическое отключение/включение соединения в программе и не ждать пока наберутся ошибки и зависнеит?
 

Юрий Ботов

Moderator
Команда форума
Ставить ватчдог не вижу смысла т.к. передергивание не помогает, если только подождать минуты 4-5. зашел в роутер- оба есп01 висят как клиенты с айпи адресами. После перезагрузки роутера , обе зависшие есп восстанавливаются без передергивания и работают
Похоже на роутер. Сталкивался с подобным на андроид-устройствах.
 

=AK=

New member
Мы написали тестовую программку для РС, которая делает тривиальную вещь: открывает ТСР соединение с ESP8266, посылает 3 байта данных и закрывает соединение. Она это делает в нескольких потоках с максимальной скоростью, примерно 200 раз в секунду получатся. ESP8266 зависает через пару секунд работы этой программы, перестает реагировать на АТ команды.

Я использую ESP-12 с АТ командами 0.60, вот эту прошивку: http://esp8266.ru/forum/resources/at-0-60-sdk-1-5-2-dlja-modulej-s-512k-flash.29/, но не думаю, что проблема в АТ командах, скорей в ТСР сервере в ESP8266. Интересно было бы попробовать с другими прошивками, зависнет от такой программы или нет.

Если зависнет, то это сущее безобразие получится. Значит, кто угодно сможет завесить ваше устройство через WiFi.
 
Последнее редактирование:
Сверху Снизу