Как поддерживать состояние переключения в спящем режиме?

Я использую esp8266 для создания пульта дистанционного управления для питания газового камина. Я использую это руководство, чтобы попытаться увеличить время автономной работы.

Концепция заключается в том, что контроллер использует встроенный Wi-Fi для доступа к API RESTful на удаленном сервере; Если API обнаруживает"1", он должен закрыть переключатель, и камин включается. Если arduino считывает "0" через API, он открывает переключатель, и камин выключается. После обнаружения и выполнения необходимых действий устройство вызывает глубокий сон и отключается на десять секунд, после чего включается, и цикл повторяется снова.

Я только что понял, что если контроллер выключится, я не знаю, что произойдет с переключателем. Если камин был включен, что происходит, когда начинается глубокий сон. Есть ли способ (специальный переключатель?) который поддерживает свое состояние в режиме глубокого сна?

, 👍2

Обсуждение

Пожалуйста, отредактируйте вопрос, чтобы уточнить значение “Я бы это увидел”., @James Waldby - jwpat7

Сохраните последнее состояние в EEPROM. Или, поскольку вы используете удаленный сервер, сохраните состояние на сервере., @Gerben

@Gerben Я думаю, что он имеет в виду физическое состояние вывода ввода - вывода-когда в глубоком сне общее мнение (хотя я не нашел окончательного ответа) заключается в том, что выводы GPIO потеряют свое состояние привода, когда чип перейдет в спящий режим., @Majenko

@Majenko это действительно имеет больше смысла., @Gerben


3 ответа


1

Да, есть такой "переключатель". Вы можете использовать JK-триггер для удержания последнего вывода. Триггер JK имеет J, K и тактовые входы, и если J и K разные, то на выходе принимается значение J на следующем тактовом фронте.

,

Разве триггер не требовал бы постоянного питания, снижая преимущества режима глубокого сна?, @Harper Shelby

ESP8266 потребляет от 50 до 200 мА, в то время как триггер J-K потребляет 5-6 мА + менее 100 мкА на вход. Все уменьшает преимущества режима глубокого сна, даже счетчик ESP8266, который все еще работает во время глубокого сна., @Chupo_cro

Значит, это "Да, но разница незначительна"? Я просил просветления, так что спасибо за информацию., @Harper Shelby

Что ж, разница между режимом глубокого сна и "глубоким сном + J-K флип-флоп" действительно значительна, потому что ток в режиме глубокого сна составляет всего около 10 мкА, но 5-6 мА все равно могут быть приемлемыми при использовании батарей, потому что несколько секунд ESP8266, набирающего полную мощность каждый раз, когда он просыпается, вероятно, разрядит батарею больше, чем триггер J-K, непрерывно набирающий несколько мА. Зависит от интервалов пробуждения, и для того, чтобы пульт дистанционного управления был приемлемо отзывчивым, ESP должен просыпаться довольно часто., @Chupo_cro


1

Вы можете получить релеблокировки. Они бывают двух видов: однополярные, когда вы включаете один вывод, чтобы включить его, и включаете другой, чтобы выключить, и биполярные, когда направление тока через катушку включается или выключается.

Однополярный проще в управлении, так как вам нужно всего два транзистора, диоды и резисторы. Биполярный сложнее, так как вам нужен H-мост (драйвер двигателя), но для его подключения требуется меньше проводов (2, а не 3).

В обоих случаях для переключения реле в другое состояние требуется всего лишь короткий импульс - нет необходимости поддерживать выход, поэтому он идеально подходит для режима глубокого сна, когда все выключено, кроме RTC.

,

1

Во время моих экспериментов с глубоким сном я заметил, что пара контактов сохраняла свое состояние во время сброса глубокого сна, но я нигде не записывал это. Простое наблюдение предполагает, что ни один из контактов, которые шевелятся во время загрузки, не будет сохранен, что оставляет только GPIO4 и GPIO5 для вероятных кандидатов. Попробуй и увидишь!

Во время глубокого сна контакты сохраняют свое состояние, хотя они используют слабые FET, эквивалентные току источника/приемника 2uA. Цикл загрузки после сна блокирует большую часть GPIO. Вздох.

,