Вывод ESP8266 из deepSleep с помощью кнопки

У меня есть кнопка с двумя изолированными дорожками. Я хочу иметь возможность выводить esp из deepSleep с помощью этой кнопки, а также определять, что она была нажата. Поэтому я не могу подключить его для сброса, потому что esp не будет работать, если я не отпущу кнопку. А если не в deepSleep, то он перезагрузится, а мне это не нужно. Как это сделать?

, 👍0

Обсуждение

Можете ли вы опубликовать код, который у вас есть? И что вы подразумеваете под «двумя изолированными дорожками»?, @MichaelT

Подключите кнопку с подтяжкой к GPIO. Также подключите кнопку через небольшой конденсатор к выводу сброса. Платы Arduino используют тот же трюк для сброса ATMega328 через USB на DTR-контакт последовательного чипа., @Gerben

У меня пока нет кода, который бы относился к этой функции. Под «двумя изолированными дорожками» я подразумеваю, что эта кнопка имеет 4 контакта и 2 пути изолированы, поэтому вы можете подключить две отдельные вещи к одной и той же кнопке. Один путь разбудит ESP, а второй будет подключен к одному из GPIO. Будет ли конденсатор также сбрасывать его во время работы? Я хочу, чтобы он сбрасывался только один раз во время сна и не делал этого во время работы., @TheLastGimbus

Не могли бы вы нарисовать мне это в красках или чем-нибудь еще?, @TheLastGimbus

Возможный дубликат Сброс глубокого сна с датчиком удара, @Juraj


2 ответа


1

Используйте другой контакт для удержания RESET HIGH или отключения кнопки от RESET, когда esp8266 не работает.

schematic

Я спросил на EE SE недостающую часть схемы.

,

Было бы полезно дать картинку лучшего качества или лучше нарисовать правильную схему на компьютере., @MichaelT

это лишь частичный ответ, поскольку схема управления, подключенная к выводу io X, отсутствует. @MichaelT, ты можешь отредактировать и улучшить ответ или написать лучший, @Juraj

Я мог бы, и ты мог бы, кто-нибудь еще. Я предложил ФП потратить немного больше времени на ответ., @MichaelT


-1

Вы не можете остановить deepSleep, все, что вы можете сделать, это перезагрузить плату, поэтому подключите кнопку к контакту сброса и выполните соответствующие настройки:

  1. Подключите подтягивающий резистор (10 кОм) к RST
  2. Подключите кнопку из RST к земле

Когда вы нажимаете, RST имеет GND, поэтому ESP сбрасывается.

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

EDIT Спасибо Юраю за комментарий: «из SDK API» system_dee p_sleep(0): таймер пробуждения отсутствует; чтобы проснуться, подключите GPIO к контакту RST; микросхема проснется при спаде фронта на выводе RST."

,

из SDK API «system_deep_sleep(0): таймер пробуждения отсутствует; чтобы проснуться, подключите GPIO к выводу RST; чип проснется по спаду на выводе RST»., @Juraj

в ссылке предполагается, что esp8266 используется в качестве «сопроцессора» для основного MCU, поскольку он не предназначен для автономного использования. поэтому упомянутый контакт GPIO является контактом основного MCU., @Juraj