Как поддерживать состояние переключения в спящем режиме?
Я использую esp8266 для создания пульта дистанционного управления для питания газового камина. Я использую это руководство, чтобы попытаться увеличить время автономной работы.
Концепция заключается в том, что контроллер использует встроенный Wi-Fi для доступа к API RESTful на удаленном сервере; Если API обнаруживает"1", он должен закрыть переключатель, и камин включается. Если arduino считывает "0" через API, он открывает переключатель, и камин выключается. После обнаружения и выполнения необходимых действий устройство вызывает глубокий сон и отключается на десять секунд, после чего включается, и цикл повторяется снова.
Я только что понял, что если контроллер выключится, я не знаю, что произойдет с переключателем. Если камин был включен, что происходит, когда начинается глубокий сон. Есть ли способ (специальный переключатель?) который поддерживает свое состояние в режиме глубокого сна?
@WhiskerBiscuit, 👍2
Обсуждение3 ответа
Да, есть такой "переключатель". Вы можете использовать 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
Вы можете получить релеблокировки. Они бывают двух видов: однополярные, когда вы включаете один вывод, чтобы включить его, и включаете другой, чтобы выключить, и биполярные, когда направление тока через катушку включается или выключается.
Однополярный проще в управлении, так как вам нужно всего два транзистора, диоды и резисторы. Биполярный сложнее, так как вам нужен H-мост (драйвер двигателя), но для его подключения требуется меньше проводов (2, а не 3).
В обоих случаях для переключения реле в другое состояние требуется всего лишь короткий импульс - нет необходимости поддерживать выход, поэтому он идеально подходит для режима глубокого сна, когда все выключено, кроме RTC.
Во время моих экспериментов с глубоким сном я заметил, что пара контактов сохраняла свое состояние во время сброса глубокого сна, но я нигде не записывал это. Простое наблюдение предполагает, что ни один из контактов, которые шевелятся во время загрузки, не будет сохранен, что оставляет только GPIO4 и GPIO5 для вероятных кандидатов. Попробуй и увидишь!
Во время глубокого сна контакты сохраняют свое состояние, хотя они используют слабые FET, эквивалентные току источника/приемника 2uA. Цикл загрузки после сна блокирует большую часть GPIO. Вздох.
- Почему использование ESP8266 в режиме глубокого сна быстро разряжает батарею?
- Переключатель управления энергосбережением esp8266
- ESP8266 глубокий сон и MQTT
- Вывод ESP8266 из deepSleep с помощью кнопки
- PIR движение выводит ESP8266 из глубокого сна
- Память ESP8266 RTC (для загрузки)
- Считать напряжение батареи и значение аналогового датчика с помощью NodeMCU ESP8266.
- Легкий сон ESP8266 — не могу проснуться
Пожалуйста, отредактируйте вопрос, чтобы уточнить значение “Я бы это увидел”., @James Waldby - jwpat7
Сохраните последнее состояние в EEPROM. Или, поскольку вы используете удаленный сервер, сохраните состояние на сервере., @Gerben
@Gerben Я думаю, что он имеет в виду физическое состояние вывода ввода - вывода-когда в глубоком сне общее мнение (хотя я не нашел окончательного ответа) заключается в том, что выводы GPIO потеряют свое состояние привода, когда чип перейдет в спящий режим., @Majenko
@Majenko это действительно имеет больше смысла., @Gerben