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

Вопрос Deep sleep с пробуждением по кнопке

Если кнопка выдает +3В, то сигнал с кнопки надо инвертировать (там есть переключатель перемычками). Тогда модуль будет работать по отпусканию кнопки.
Не понял зачем инвертировать если тема пробуждение( работа) по кнопке.. В общем вчера попробовал всё работает без инверсий.
 

nikolz

Well-known member
Не понял зачем инвертировать если тема пробуждение( работа) по кнопке.. В общем вчера попробовал всё работает без инверсий.
Вообще-то, чтобы совместить кнопку и режим deep-sleep на rST надо создать монтажное или.
Т е надо формировать сигнал не пуска, а сброса, аналогично сигналу deep-sleep.
Поэтому Вам и предложили проинвертировать сигнал, чтобы нажатие приводило к сбросу.
Но в этом случае работа eSP начнется после отпускания кнопки
Чтобы влияло лишь нажатие надо сформировать короткий импульс.
Например используя RC цепь (см мое сообщение выше).
 
Вообще-то, чтобы совместить кнопку и режим deep-sleep на rST надо создать монтажное или.
Т е надо формировать сигнал не пуска, а сброса, аналогично сигналу deep-sleep.
Поэтому Вам и предложили проинвертировать сигнал, чтобы нажатие приводило к сбросу.
Но в этом случае работа eSP начнется после отпускания кнопки
Чтобы влияло лишь нажатие надо сформировать короткий импульс.
Например используя RC цепь (см мое сообщение выше).
Всё же не понял. кнопка при "нажатии" подаёт сигнал 3.3 в и при "отпускании" даёт ноль , что ещё надо куда припаять ? вроде как логическое "или" есть нажата или не нажата.
 

Сергей_Ф

Moderator
Команда форума
@Алексей Бергман попробую я объяснить. Сброс осуществляется низким уровнем, нулём. У вас на выходе кнопки всегда ноль, т.е. чип будет в "подвешенном" состоянии перед сбросом. По нажатии начнет работать загрузка и затем ваша программа, но только до момента отпускания кнопки. Как кнопку отпустите - все прекратится.
Чип в дипслип никогда не уйдет. Для дипслип на входе сброс должен быть всегда высокий уровень и кратковременный низкий для просыпания. Тут либо инверсия, либо RC-цепь нужны.
 
https://radiokot.ru/konkursCatDay2014/53/01.pdf
Судя по даташиту при разомкнутых пинах ( по умолчанию на кнопке 10 Шт. TTP223 Сенсорный Ключ Модуль Коммутатора Кнопки Емкостные Датчики Self Locking/Не Замок Jog 2.5 5.5 В купить на AliExpress они разомкнуты как я вижу перемычки а и б ) именно в инвертированом режиме она и работает .. Я правильно понимаю ,что мне как раз таки повезло и кнопка работает как надо?
Извините за занудство ,но хочется расставить все точки .
 
Последнее редактирование:

Zhenya88

Member
Добрый день.
Ребят, прошу Вашей помощи.
Собираю датчики протечки домой, разобрался с передачей данных по MQTT в Majordomo и долгой работой от батарей, но вот никак не пойму, как будить ESP не по таймеру (для датчика протечек таймер - не очень практично), а по возникновению замкнутой цепи (через датчик дождя, просто напрямую, не через плату)

Я сам не так хорошо понимаю в pnp транзисторах но по-моему через них можно это как-то сделать (но не могу понять, как "кратковременный низкий для просыпания" сигнал подать, через конденсатор?).
Может есть кто хорошо плавает в этом и сможет схему правильно дорисовать в Fritzing, буду очень благодарен.
ссылка на схему - Untitled Sketch 2.fzz
Снимок.PNG
 

nikolz

Well-known member
Добрый день.
Ребят, прошу Вашей помощи.
Собираю датчики протечки домой, разобрался с передачей данных по MQTT в Majordomo и долгой работой от батарей, но вот никак не пойму, как будить ESP не по таймеру (для датчика протечек таймер - не очень практично), а по возникновению замкнутой цепи (через датчик дождя, просто напрямую, не через плату)

Я сам не так хорошо понимаю в pnp транзисторах но по-моему через них можно это как-то сделать (но не могу понять, как "кратковременный низкий для просыпания" сигнал подать, через конденсатор?).
Может есть кто хорошо плавает в этом и сможет схему правильно дорисовать в Fritzing, буду очень благодарен.
ссылка на схему - Untitled Sketch 2.fzz
Посмотреть вложение 7169
попробуйте так.
пин CHIP_EN подключаете к земле через сопротивление 20 ком и через датчик дождя (две контактных полоски на текстолите) к Vcc.
При попадании датчика дождя в воду его сопротивление станет много меньше 20 ком и на пин поступит напряжение. ESP включится.
ESP питаем от батарейки.
Скорее всего такая схема будет работать лишь при быстром помещении датчика в воду.
Проверь просто.
 

Сергей_Ф

Moderator
Команда форума
@Zhenya88 у вас на картинке Witty Cloud - не самый удачный выбор для батарейного питания. Там куча резисторов и светодиодов с паразитными токами. Надеюсь, это только для отладки.
Датчик дождя имеет цифровой настраиваемый выход - его можно использовать для подачи сигнала на esp, например, как предложил @nikolz. Резистор или конденсатор в этом случаи не нужны. Просто соединить выход и EN, и земли.
 
Последнее редактирование:

Zhenya88

Member
@nikolz@Сергей_Ф
Спасибо, попробую. Найду только мначала резистор на 20ком.
А почему именно EN порт? ведь везде пишут что для пробуждения нужно Rest и 16 замыкать?

PS: witty cload просто дома есть штук 5 и я уже приловчился с ними работать, питание в нем нормально от батареи держит если стаб, фоторезистор и светодиод снять (я тут тему сохдавал и замеры выкладывал вроде).
 

Сергей_Ф

Moderator
Команда форума
везде пишут что для пробуждения нужно Rest и 16 замыкать?
Вы невнимательно читаете, это нужно только при пробуждении от таймера esp. Если вам нужно внешнее прерывание, то не важно как вы его вызовите. EN удобно тем, что esp будет работать, пока на нем высокий уровень. Это то что нужно в вашем случае.
Не ищите резистор, попробуйте цифровой выход датчика подать напрямую на EN.
 

nikolz

Well-known member
попробуйте так.
пин CHIP_EN подключаете к земле через сопротивление 20 ком и через датчик дождя (две контактных полоски на текстолите) к Vcc.
При попадании датчика дождя в воду его сопротивление станет много меньше 20 ком и на пин поступит напряжение. ESP включится.
ESP питаем от батарейки.
Скорее всего такая схема будет работать лишь при быстром помещении датчика в воду.
Проверь просто.
сбросить ESP можно либо по RST либо по CHIP_EN.
А вот отключить можно либо отключив питание либо подав ноль на CHIP_EN.
Режим deep-sleep - это режим сна При этом работают внутренние часы. Его тоже можно использовать чтобы ESP заснуло
Поэтому Вам надо сначала разработать алгоритм
Если Вы хотите чтобы esp потребляло не более 20 мка и очень просто включалось при появлении воды то надо использовать CHIP_EN
Если надо потреблять еще меньше то надо отключать питание -что сложнее
Если надо периодически включать чтобы проверить что датчик живой, то тогда RST и GPIO16 и добавить схему монтажное или на RST (говорил об этом выше)
 

Zhenya88

Member
@nikolz
@Сергей_Ф
что-то не выходит у меня.
Я вижу Вы пишете про CHIP_EN, но у меня на плате CHIP_PD, может в этом дело


Я заметил, что когда я прямо замыкаю CHIP_PD на GND, то ничего не происходит, но в момент размыкания цепи как раз срабатывает цикл.
 

nikolz

Well-known member
[QUOTE="Zhenya88, post: 58748, member:
Я заметил, что когда я прямо замыкаю CHIP_PD на GND, то ничего не происходит, но в момент размыкания цепи как раз срабатывает цикл.[/QUOTE]
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf
стр 5,
7 CHIP_EN I Chip Enable High: On, chip works properly Low: Off, small current consumed
 

Zhenya88

Member
Рассказываю как сделать пробуждение по кнопке и по времени в одном флаконе.
Для этого используем режим deep-sleep, который настраивается на требуемый тайм.
Кнопку подключаем к пину RST через параллельно соединенные резистор ( килоом от 5 ) и конденсатор( мкф от 10)
(Вот и вся дополнительная логика).
Можете, как самому чайнику объяснить? (как в детском саду, какой провод куда, хоть рисунок на салфетке).
Можете в этом редакторе дорисовать?!(без регистрации, просто совместная онлайн рисовалка) - AWW App | Online Whiteboard for Realtime Visual Collaboration
Я понимаю, что это связано с темой подтягивающих/стягивающих резисторов, но у меня с пониманием этого совсем туго пока.
Понимаю, что это очень просто и основы, но не выходит у меня никак. Код рабочий написал, а вот пять проводов соединить правильно не могу =(
 

Сергей_Ф

Moderator
Команда форума
@Zhenya88 вы понимаете, что в этом случае Ван нужен rst, а не chip-en? И тут вам придется делать внешнюю логику прерывания от датчика. Вы уверены что это вы сделали, прежде чем писать код?
Соединения:
Rst - 10kOm - +питание (уже есть у Witty Cloud)
Rst - диод - gpio16
Rst - диод - внешнее прерывание от датчика.
 

Zhenya88

Member
@Сергей_Ф
А через chip-en какая схема подключения будет?
Я пытался через chip-en сделать, но не добился включения никак, потому и начал вычитал про RST
 

Сергей_Ф

Moderator
Команда форума
@Zhenya88 chip_en просто соединить с выходом датчика. Лучше через резистор на 100 Ом. И всё. Датчик замкнулся - esp отработала передачу.
Но тут проверку датчика не сделать. Esp будет выключена все время и включаться только во время аварии.
 
Сверху Снизу