• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Зависает ESP при управление большими токами

horreodor

New member
Делаю связку Arduino nano и esp8266 дачный уличный полив. через интернет система отправляет данные с датчиков и принимает настройки.
немного истории
первоначально система работала от блока питания 12 вольт. так как нано не тянет esp был подключен дополнительно понижающий преобразователь LM2596S. так же для полива оконных цветов к этому же блоку питания был подключен моторчик от омывателя стекла машины (12вольт тоже), для подачи воды. на стадии исптыний все было отлично. когда дошло до дела, оказалось что как только моторчик подачи воды включает на всю катушку, зависает esp. из за нехватки времени было принято решение поставить маленький блок питания на 12вольт только для esp. так же подключил через LM2596S. все ок. система работает как часы. Но проект рос.
к системе было подключено реле для управления большими нагрузками. ну не сильно большими, насос на 350ват. и тут опять старая история. насос на 220 вольт, подключен к той же линии что и два блока питания по 12 вольт. и как только он включается, что происходит? правильно. виснет esp. сама система то работает, но вот уже связи с внешним миром нету. пока решил проблему тем что, поставил биполярный транзистор на питание esp. перед включением насоса выключаю esp, после выключения насоса, соответственно включаю esp. но это бред какой то. может есть какие нибудь адекватный стабилизаторый на 3.3в
забыл сказать работаю через AT. может пора переходить на что то другое.
 

Vitaly

Member
когда что-то виснет, нужна диагностика
даже с ат прошивкой можно получить какой-то минимум данных

вот для начала - есп виснет и перестает отвечать на ат команды вообще? или отвечает но нет связи по wifi?
если виснет совсем, то для начала пробовать менять питание (а потом все равно прошивки)
если совсем не виснет но связь пропадает, стоит попробовать другие версии ат прошивок, или уходить с них на что-то другое, ардуиноиде или сдк, на что хватит знаний
 

CodeNameHawk

Moderator
Команда форума
Как вариант попробуйте стабилизатор на LM 7512, возможно идет электромагнитная наводка на катушку LM2596S
возле esp поставьте танталовый конденсатор 1 mkF.
если управляете при помощи реле, поставьте развязку на оптроне.
 

Vitaly

Member
теоретически даже при зависании от наводки должен сработать вочдог и прошивку рестартанет, вот что там в ат прошивке происходит это вопрос
 

vad7

Active member
@horreodor, то есть Nano работает, а esp виснет, так?
Схему всего этого увидеть можно? Регулятор на LM2596S сами собирали или готовая?
 

horreodor

New member
@Vitaly АТ во всех моих проектах, до этого вполне выполняет все функции. прекрасно получает данные, и потом они легко парсятся. да и думаю что не в ней проблема. Варианты сбоя совершенно разные. как правило это перестает работать команда AT+CIPSEND, на все другие команды дает нормальные ответы. другой вариант это просто перестает соединяться (AT+CIPSTART), пишет ошибку no ip или busy... ну или просто начинает отвечать бредом (иероглифами). не понятно что там у него перемыкает в голове. так как питается по земле через транзистор, перезагрузка решает проблему сразу. arduino сам отлавливает то что плата не адекватна и перезагружает ее. пробовал перезагрузать через rst, но почему то сбой не всегда проходит, а вот кратковременное отключение питания всегда ее решает. так же повторюсь что это не первый проект, и использую одну и ту же прошивку и один и тот же алгоритм работы. но это первый проект с большой нагрузкой.


@CodeNameHawk развязка на оптроне это для меня высокая материя =)

@vad7 nano не виснет, да и есп в принципе то не виснет, просто отвечает бредом как правило. к сожалению схему не делал, если сделаю то выложу обязательно. LM2596S готовая была куплена.
 

serrgee

New member
Я тоже столкнулся с зависанием ESP при релейной коммутации, когда тестировал только что выпущенное устройство Electrodragon WiFi Relay board. В качестве тестовой нагрузки использовал всего-то светодиодную лампу мощностью 7 Вт. (Китайцы признали проблему, вернули деньги, и сейчас разбираются с устранением.)

Схема питания этого устройства такая: AC-DC импульсник на 5 В (регулятор THX208H) для питания реле и ключей и DC-DC линейник 3.3 В (LDO 11117) для ESP.

Сброс еспишки происходит из-за того, что импульсник на несколько десятков миллисекунд отключается пиковой помехой в момент коммутации нагрузки. В моём случае это хорошо заметно - светодиод на выходе блока питания мигает при пропадании напряжения. Подозреваю, что у регулятора низкая помехоустойчивость по цепям питания и/или защиты. Схема БП примитивная, несколько упрощённая даже относительно даташита.

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

Стабильной работы устройства я добился только заменой блока питания на нечто ещё более примитивное, вытащенное из зарядки Deppa, но стабильное под нагрузкой, видимо как раз из-за дубовости схемы.

Планирую попробовать добавить помеховый фильтр на вход 230В и защитный варистор. Ну или полностью менять БП.
 
Последнее редактирование:

Vitaly

Member
повторюсь что это не первый проект, и использую одну и ту же прошивку и один и тот же алгоритм работы
самое время начать пробовать другие АТ прошивки, да и не АТ тоже

имея больше разума на стороне есп можно получить больше данных о том, что происходит

да, а какая версия прошивки использовалась, на каком сдк?
 

horreodor

New member
методом перебора прошивок пришел к использованию http://esp8266.ru/forum/resources/at-0-24-sdk-1-1-0-dlja-modulej-s-512k-flash.4/
планирую начать писать на lua но сейчас нет времени разбираться, нужно закончить проект, так как уже дачный сезон... а система еле работает.
планирую поставить два конденсатора, перед питанием есп, один параллельно другой последовательно. а так же добавить пусковой конденсатор на насос, да побольше =))) надеюсь компенсировать просадку при старте.
помеховый фильтр тоже мне кажется лишним не будет
 

serrgee

New member
планирую поставить два конденсатора, перед питанием есп, один параллельно другой последовательно. а так же добавить пусковой конденсатор на насос, да побольше =))) надеюсь компенсировать просадку при старте.
В моём случае были испробованы похожие методы но безуспешно: импульсник отключается на большее время, чем способны держать конденсаторы на 1000 мкф. Но возможен грязный и быстрый аппаратный хак: запитать ESP дополнительно от литиевого аккумулятора через диод. Достаточно одной банки 18650 или полудохлого аккума от старого телефона. И, наверное, его на несколько месяцев хватит без подзарядки - только саморазряд фактически будет. За напряжением этого аккума можно следить через вход ADC еспишки. ;)
Ещё существуют суперкондансаторы емкостью в фарад, но у меня такого нет, поэтому не знаю годится ли он в такой ситуации.
 
Последнее редактирование:

Atom

Member
Только сейчас закончил, подобный навоз попборол. Только симптомы были немного другие, но подобные: при старте ЕСП (не важно какого старта, в моем варианте был начальный старт и когда из-за работы движков напруга проседала им модуль рестартовал еще раз) имеет на GPIO2 напругу более 0, то модуль просто не стартует.
Исследование показало, что в последовательный в виде отладки идет всяческий мусор. В общем поборол включением резистора с 3,3 вольт на GPIO2, а смещение на базу биполярного резистора просто выкинул.
 

horreodor

New member
@Atom какой резистор использовали? у меня GPIO2 на всех проектах вообще не подключен. проблем не было замечено с этим.
 

serrgee

New member
@Atom какой резистор использовали? у меня GPIO2 на всех проектах вообще не подключен. проблем не было замечено с этим.
Если GPIO2 не подключен и не используется, то ничего делать с ним не надо. После загрузки ESP состояние этого вывода значение не имеет и его неподключенность не является причиной нестабильности.
 

serrgee

New member
Важно. Если при подключении ESP к nano используется сигналы с 5-вольтовыми уровнями, то это может быть фактором, способствующим нестабильности ESP. Не делайте так...
 

horreodor

New member
@serrgee по поводу GBPIO2 это понятно что не причина, причину я уже выяснил, это просто для интереса.
по поводу RX, это да, желательно подключать через резисторы 1 и 2ком и на землю подтягивать, но я как всегда на русское авось пустил =) пока из за этого не замечал проблема.
 

serrgee

New member
И в чём оказалась причина в вашем случае?
 
Последнее редактирование:

serrgee

New member
скорее всего провал по питанию
Варианты:
1. Включение нагрузки просаживает напряжение на выходе БП.
2. Импульсная помеха прилетает на блок питания и отключает его совсем на какое-то время.
3. Импульсная помеха прилетает прямо на ESP.

Я бы попробовал определить причину, сделав батарейное питание у ESP или всей слаботочной электроники.
Если при батарейном питании проблема исчезнет - дело в БП и это вариант 1 или 2. Если проблема сохраняется, то 3.
 

Atom

Member
@Atom какой резистор использовали? у меня GPIO2 на всех проектах вообще не подключен. проблем не было замечено с этим.
оба 4к5. У меня на адаптерах GPIO0 подтянуты по умолчанию. Немудрствуя лукаво успользовал те, значения, которые на этом сайте в схемах написаны: 10к.
Хотя вру. На некоторых платах адаптера жаба задаваила все СМД-шные десятки использовать, использовал значения от 7к и 11к. Но это роли не влияет. Если по схеме нужен будет другой пулл-ап - можно либо парралельно подобрать или другой адаптер протравить.

по поводу RX, это да, желательно подключать через резисторы 1 и 2ком и на землю подтягивать, но я как всегда на русское авось пустил =) пока из за этого не замечал проблема.
Если в собираемой схеме они не используются, то ничего не цепляю. А вот как RX c делителем из сопротивляторов у меня не покатило. поэтому использую преобразователь уровня на N-канале.
 
Последнее редактирование:
Сверху Снизу