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

Вопрос ESP-14 и "последнее прости" после пропажи питания

Antynik

Member
Возникла необходимость получать информацию с датчика о пропаже питания.
Решение очевидно - ионистор или даже просто конденсатор.
Прикинул примерно - конденсатора 3500 uF хватает на 10 мс.
Уменьшил интервал таймера, поставил три конденсатора параллельно.
Вроде работает, но нестабильно. Сообщение успевает прислать почти всегда, но вот включается через раз! Если долго выключенным стоял, не включается.
Причём чем больше ёмкость конденсаторов, тем реже включается.

Моя версия происходящего:
При подаче питания, напряжение растёт плавно. И ESP успевает инициализироваться, определить что напряжение недостаточное, и остаётся в таком полуподвисшем состоянии.

Пробовал с ионистором, там естественно всё ещё хуже.

Вопрос к сообществу, как правильно организовать питание модуля от ионистора?
 

2mike

New member
надо найти правильный ионистор, искать по максимально допустимому току разряда в даташите. думаю из автомобильного ассортимента что то подберете. только там этот ток от 100ма и выше.
в обычных ионисторах он хорошо если 10ма.
З.Ы, вангую что прозреете от ценника и будете дальше смотреть в сторону лития с обвязкой.
 

Antynik

Member
@2mike
с работой от конденсатора у меня никаких проблем нет. и от ионистора, скорее всего, тоже.
проблема с включением!
 

Antynik

Member
Результат: На одном заряде суперкондера до 4.5в ESP работает 20 циклов.
Интересно. Но у меня работа непрерывная. И даже время работы от кондёра не так важно. Не включается, вот в чём проблема.
Может, какую-нибудь линию задержки на вход EN использовать, чтобы ESP включался с задержкой?
Индуктивность, например, воткнуть.
 
Последнее редактирование:

Antynik

Member
@nikolz
Проблемы с посланием сигнала у меня нет. (сейчас по напряжению питания определяется).
Проблема с включением через раз!

Сейчас попробовал вместо рекомендуемого сопротивления 1 кОм, подтягивающего Gpio0 к питанию, подключить напрямую.
Вроде бы проблема исчезла, буду наблюдать дальше.
Может быть, при плавном повышении напряжения, Gpio0 из-за резистора получал меньшее напряжение, и модуль уходил в режим прошивки.
Непонятно это всё...
 

Antynik

Member
При первом включении у Вас модуль был выключен бесконечно долго. поэтому по вашей логике он не должен вообще включаться.
Именно так и происходит. После включения питания модуль не включается. Но конденсаторы заряжаются.
Если теперь выключить и включить питание, модуль включается нормально.
 

Antynik

Member
Похоже, проблема решена убиранием сопротивления и подключением напрямую Gpio0 - питание.

Сейчас после получаса неактивности включил - и модуль нормально отработал.

С ионистором буду экспериментировать позже, купил четыре штучки по 1,5Ф.
Для текущей задачи они излишни. А вот запитать SIM800l на даче, как раз.
 

rst

Member
Возникла необходимость получать информацию с датчика о пропаже питания.
Решение очевидно - ионистор или даже просто конденсатор.
Решение очевидно для новичка, профессионал видит множество возможных путей решения с разными плюсами и минусами каждого o_O
Может и не надо получать информацию об этом событии именно в сам момент события, а например - получить при последующем появлении питания? Тогда - достаточно в момент события записать его в какую-то энергонезависимую память, а после появления питания - отправить сообщение о нём. На такую запись времени надо на порядки меньше и оно детерминировано.

Вопрос к сообществу, как правильно организовать питание модуля от ионистора?
Естественно - нужно запасать энергию кондёра (или чего там ещё) не на напряжении питания МК, а на высокой стороне: идеально если устройство питается скажем от 12В, на него поставить кондёр, уровень срабатывания монитора питания выставить несколько ниже, скажем на == 11В, ну и понижающий DC-DC до уровня питания МК - до 3.3В. В таком случае, пока напряжение упадёт от 11В до ниже 3.3В пройдёт уже достаточно много времени и за это время можно успеть сделать много чего.
И чтобы при медленном нарастании напряжения питания МК устойчиво стартовал, нужно ставить супервизор по напряжению питания МК, который будет формировать сигнал RESET.
 

rst

Member
С ионистором буду экспериментировать позже, купил четыре штучки по 1,5Ф.
Жесть какая.... :eek:
И поди эти огромные ёмкости поставили по напряжения питания МК? :D
В этом случае - из всей запасённой огромной энергии для пользы будет использована только мизерная часть - та её часть, которая отдастся при снижении напряжения от уровня 3.3В до до уровня при котором сработает внутренний POR. А это всего лишь доли вольта. Остальная энергия уйдёт в тепло.
Чтобы использовать энергию кондёра для пользы, нужно как можно больше увеличить разницу между напряжением срабатывания монитора питания (сигнал тревоги) и напряжением срабатывания POR в МК.

Если у вас скажем кондёр хранит энергию на 3.3В, а уровень срабатывания POR в МК == 3В, то на пользу уйдёт только 0.3В - т.е. всего ~10% энергии кондёра. КПД его получается всего 10%. (даже ещё меньше, так как сигнал пропадания питания надо формировать хоть немного ниже 3.3В).
Если же кондёр будет на 12В, срабатывание монитора == 11В, а POR == 3В, то энергия которую можно использовать для работы будет составлять (11-3)/12=67% - почувствуйте разницу.
 

Antynik

Member
И поди эти огромные ёмкости поставили по напряжения питания МК? :D
Пока не поставил. Сейчас стоят три кондёра по 3500 uF.
Не настолько это и огромная ёмкость, чтобы городить отдельно для неё стабилизатор напряжения.
Даже тупо по цене сравнить - эти проценты КПД обойдутся в несколько раз дороже.
Мне достаточно 100 мс, чтобы с огромным запасом сообщить о потере питания.
 

rst

Member
Не настолько это и огромная ёмкость, чтобы городить отдельно для неё стабилизатор напряжения.
Даже тупо по цене сравнить - эти проценты КПД обойдутся в несколько раз дороже.
Проценты - это в Вашем случае (меньше 10%).
Дороже? Сомнительно. 3 огромных кондёра по 3500мкФ - вещь недешёвая. Плюс - всё равно нужен супервизор по питанию, чтобы не было зависаний на плавном повышении питания.
Понижающий DC-DC + небольшой кондёр будут дешевле 3 шт. по 3500мкФ.
Мне достаточно 100 мс, чтобы с огромным запасом сообщить о потере питания.
В вашем случае не получите никакой стабильности - так как нет никаких расчётов, а всё наугад.
Может 100мс, а может 50мс. Может хватит, может нет. Сегодня работает, завтра - нет.
И даже 100мс - это очень мало для WiFi, любая помеха, тормоз в передаче - и всё пропало. Нужно хотя-бы секунду держать.
 

Antynik

Member
@rst
63 рубля за ионистор 1.5Ф? Не знаю, на мой взгляд дёшево. Если несколько обычных кондёров брать, конечно дороже.
Хотя можно взять 10000мФ, по 20 рублей/штучку.

Насчёт надёжности - время покажет. За сегодня после переделки ни одной проблемы не было.
 
Последнее редактирование:

Antynik

Member
@nikolz
Как вы считали?
По моим расчетам с 3.3 до 3.0 напряжение упадёт за 10 мс.
И это неплохо подтверждается экспериментально. С одним конденсатором сообщение приходит раз из трёх. С тремя - в 90% случаев, что меня устраивает. Не устраивало не включение, которое катастрофически часто случалось при большем числе конденсаторов.
Завтра другой модуль помучаю с ионистором, интересно насколько его хватит.
 

Antynik

Member
@nikolz
У меня связь идёт через сервер blynk.
И работа через таймер 10 мс.
Возможно, не оптимально. Но раз уже работает, менять не буду.
 

Antynik

Member
@nikolz
На ESP-12 я бы так и сделал.
К сожалению, это ESP-14.
У него один вход всего, к которому можно подключиться. И то нежелательно, он управляет переходом в режим прошивки.
А остальные входы для STM8, который слишком сложен для меня (
 

Antynik

Member
Gpio0 подключается к земле для прошивки и к питанию для включения.
После включения, в принципе, можно его использовать как вход.
 

Antynik

Member
Есть у меня ESP-12. Но для такой простой задачи лучше ESP-14 использовать. Хоть куда-то, лучше чем выкидывать.
Про RX не знал, что так можно. В любом случае устройство переделывать поздно.
Новые буду пробовать по-другому, благо это ESP-12.
 
Сверху Снизу