ESP8266 NodeMCU DeepSleep и одна кнопка

Тема в разделе "Arduino & Shields", создана пользователем Beerukoff, 3 апр 2017.

  1. Beerukoff

    Beerukoff Нуб

    Делаю одно устройство на ESP8266 NodeMCU, очень хочется, чтобы кнопка управления была только одна.

    Большую часть времени оно будет находится в DeepSleep, просыпаться будет только по нажатию кнопки (без таймера выхода из сна).

    Насколько я понял (и проверил на макете) в текущей реализации DS на ESP8266 кнопка выхода из режима сна просто резетит ESP.

    Вопрос, можно ли как-то на программном уровне сделать так, чтобы после выхода из DS эта же кнопка могла использоваться для каких-то действий, т.е. переставала быть резетом?
     
  2. rkit

    rkit Гуру

    Не знаю, поддерживается ли это в nodemcu, но вообще 16 пин отвечает за выход из сна без перезагрузки, и как кнопку его использовать можно.
    Ну и, в конце концов, можно всегда присобачить пару транзисторов к кнопке, чтобы она по-разному работала в разных режимах.
     
  3. Beerukoff

    Beerukoff Нуб

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

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

    Хотя общая логика подсказывает, что там достаточно что-то типа реле, которая при просыпании ESP (появления напряжения на какой-то ноге) размыкало контакт на резет
     
  4. rkit

    rkit Гуру

    Да, только по резету просыпается. Тогда его-нибудь в таком духе.
    Пока есп бодрствует, на пин подается высокий уровень. Перед сном - низкий.
    На второй контакт кнопки можно посадить что угодно.
     

    Вложения:

  5. Beerukoff

    Beerukoff Нуб

    Спасибо! Теперь буду мучить Яндекс на предмет что вы нарисовали.
    Пока понял, что слева это два пина Esp, потом моя кнопка, справа и сверху два сопротивления на 500 Ом и 2 кОм, снизу земля. В центре транзистор, к примеру, КТ502Д. Осталось понять, что значит «sw-dpst-mom».
    И по схеме не совсем понятно про кнопку. Верхний пин это индикатор режима ESP. А как подключается пин, которым кнопка управляет после выхода ESP из DS.
    Сорри за нубские вопросы
     
    Последнее редактирование: 3 апр 2017
  6. rkit

    rkit Гуру

    Почитайте книжку по схемотехнике. Там всё рассказано лучше, чем я смогу рассказать.
     
  7. Beerukoff

    Beerukoff Нуб

    Тогда последний вопрос, под эту схему подойдет обычная не фиксирующаяся кнопка (как во всех примерах для начинающих по Ардуине)? Просто не совсем понял как можно что-то посадить на второй контакт кнопки
     
  8. rkit

    rkit Гуру

    Берете кнопку с двумя контактными группами. На одну ресет, на другую что угодно. Если вы не можете понять, как на схеме кнопка выглядит, то вам серьезно нужно разобраться в схемотехнике.
     
  9. Beerukoff

    Beerukoff Нуб

    Как выглядит на схеме кнопка я знаю.

    Я просто изначально думал, что нужно сделать что-то типа стрелки, т.е. переключать роль кнопки. И только сейчас понял, что основную роль кнопки трогать не надо и надо только по условию отключать действие резета. И тогда схема сразу стала полностью понятна. Спасибо!
     
  10. Beerukoff

    Beerukoff Нуб

    Подскажите пжл нормально ли, что когда после ухода ESP в DS командой ESP.deepSleep(0) на D0 появляется 3.3V? По идее это нужно для выхода по таймеру при соединении D0 с RST, но тут же я таймер не ставлю
     
  11. rkit

    rkit Гуру

    Не знаю. Так глубоко в логику работы esp я не копал