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

Нужна помощь RTC DS3231 by jarzebski + Node MCU v3

Vypra

Member
не RC цепь, а подключение часов к RST через конденсатор, а RST подтянуть к питанию через резистор, например 10 ком.
подключение часов к RST через конденсатор - точно!
RST подтянуть к питанию через резистор, например 10 ком. - а что это должно дать?
И поскольку мне нужно пробуждать Modemcu, а не отключать, то сигнал нужно инвертировать.
 

Vypra

Member
Если я инвертирую сигнал, тогда при включении питания на RST пойдет импульс низкого сигнала, что не даст включить NodeMCU
 

nikolz

Well-known member
подключение часов к RST через конденсатор - точно!
RST подтянуть к питанию через резистор, например 10 ком. - а что это должно дать?
И поскольку мне нужно пробуждать Modemcu, а не отключать, то сигнал нужно инвертировать.
Вы сначала нарисуйте алгоритм, который хотите реализовать.
их может быть много и схем есть много и с инверсией и без и с емкостью и без.
--------------------
пилите шура, пилите...
 

Vypra

Member
Вы сначала нарисуйте алгоритм, который хотите реализовать.
их может быть много и схем есть много и с инверсией и без и с емкостью и без.
--------------------
пилите шура, пилите...
)) Хорошо. Тогда так:
1. Запуск NodeMCU. Поскольку нужно и спать и иногда смотреть данные через RemoteXY, включаем отсчет 5 минут работы. Если RemoteXY активен, в сон не уходим. Если нет - в deepSleep через 5 минут.
2. Будильник RTC отсчитывает время пока NodeMCU в deepSleep. Если будильник RTC сработал - выводим NodeMCU из deepSleep (перезапуск). Проверяем время - если нужное время - отправляем данные. Отправили данные - уходим в deepSleep.
 

Vypra

Member
Кнопка RST и запуск 5 минут с начала.
Алгоритм кода построен так, что новый запуск системы - это перезапуск. Хоть проснулись, хоть руками перезапустили. У меня нет данных, которые жалко потерять при внезапном перезапуске. Все что нужно сохранить, хранится в EEPROM.
 

nikolz

Well-known member
Кнопка RST и запуск 5 минут с начала.
Алгоритм кода построен так, что новый запуск системы - это перезапуск. Хоть проснулись, хоть руками перезапустили. У меня нет данных, которые жалко потерять при внезапном перезапуске. Все что нужно сохранить, хранится в EEPROM.
теперь Вам надо описать сигналы которые надо сформировать (которые формируются) на пинах часов и ESP для перехода в нужные состояния.
Когда нарисуете сигналы то покажите. Исходя из них можно нарисовать схему.
 

Vypra

Member
теперь Вам надо описать сигналы которые надо сформировать (которые формируются) на пинах часов и ESP для перехода в нужные состояния.
Когда нарисуете сигналы то покажите. Исходя из них можно нарисовать схему.
1. Включение. На RST - HIGH поскольку нужно запуститься, на RTC - HIGH, поскольку будильник установлен.
Но как быть, если впервые систему запустили, настройки еще не ввели со смартфона через RemoteXY и период сработки будильника не успели записать, будильник не установлен и на RTC - LOW? Система не запустится.
2. Уходим в deepsleep после 5 минут работы. На RST - не знаю что будет после команды deepsleep. RTC - HIGH, будильник заряжен на сработку и неумолимо время летит в RTC.
3. Выходим из deepsleep по будильнику. На RST - HIGH, на RTC - LOW, будильник сработал.
 

CodeNameHawk

Moderator
Команда форума
Как вам и советовали, часы к есп через конденсатор, резистор к плюсу(это вывод ресет есп, он и так должен быть подключен через резистор к плюсу).
Емкость подобрать, чтобы успела(выйти из сна) запустится есп.
Так как есть кнопка ресет, после старта первым делом отключаете будильник.
Включите его перед сном.

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

CodeNameHawk

Moderator
Команда форума
и период сработки будильника не успели записать
Что мешает успеть? Часы то не запущены.
будильник не установлен и на RTC - LOW?
По идее нет, LOW после срабатывания будильника.
Если часы настроены на выдачу импульсов (нп. взяли часы с другого проекта), ну временно отключите вывод SQW от есп.
 

Vypra

Member
Что мешает успеть? Часы то не запущены.

По идее нет, LOW после срабатывания будильника.
Если часы настроены на выдачу импульсов (нп. взяли часы с другого проекта), ну временно отключите вывод SQW от есп.
И еще инвертировать сигнал, потому что по сигналу будильника LOW при сработке - Nodemcu отключится, а не проснется.
 

CodeNameHawk

Moderator
Команда форума
На вход конденсатора подали LOW, а на выходе получили одиночный импульс LOW.
 

nikolz

Well-known member
И еще инвертировать сигнал, потому что по сигналу будильника LOW при сработке - Nodemcu отключится, а не проснется.
если сделаете как я написал то все будет работать кроме просыпания по deep-sleep
если оно вам нужно то надо соединить GPIO16 с RST через диод шоттки (я так делаю) любители соединяют через резистор.
------------------------------------
логика будет следующая
На RST - High т к подтянуто к Vcc всегда кроме двух случаев
1) выход из deep-sleep по внутренним часам ESP (с GPIO16 на RST поступит короткий импульс)
2) переход в Low выход внешних часов (через кондер поступит короткий импульс на RST)
-------------------------------
 

Vypra

Member
если сделаете как я написал то все будет работать кроме просыпания по deep-sleep
если оно вам нужно то надо соединить GPIO16 с RST через диод шоттки (я так делаю) любители соединяют через резистор.
------------------------------------
логика будет следующая
На RST - High т к подтянуто к Vcc всегда кроме двух случаев
1) выход из deep-sleep по внутренним часам ESP (с GPIO16 на RST поступит короткий импульс)
2) переход в Low выход внешних часов (через кондер поступит короткий импульс на RST)
-------------------------------
Да, работает. Взял конденсаторы 100 пф, 100 нф - не ребутится. Подпаял 2,2 мкф - все ок. Единственное, что при подключении к питанию самостоятельно не стартует. Нужно нажать кнопку RST после подачи питания. В момент, когда втыкаю кабель USB, на SQW кратковременно появляется то ли пила, то ли искаженный меандр. Думаю поэтому NodeMCU не стартует сам.
Вчера еще покопался по теме в сети, ЗДЕСЬ парень интересно через 74HC00 организовал. Но это если от HIGH нужно ребутнуть. Может кому пригодится.
 

nikolz

Well-known member
Да, работает. Взял конденсаторы 100 пф, 100 нф - не ребутится. Подпаял 2,2 мкф - все ок. Единственное, что при подключении к питанию самостоятельно не стартует. Нужно нажать кнопку RST после подачи питания. В момент, когда втыкаю кабель USB, на SQW кратковременно появляется то ли пила, то ли искаженный меандр. Думаю поэтому NodeMCU не стартует сам.
попробуйте увеличить емкость.
если надо чтобы и питание нормально отрабатывалось ставьте супервизор питания.
Либо паяйте доп схему Что и как можно сказать лишь по сигналам при включении питания
Можно еще управлять по EN вместо RST
 
Сверху Снизу