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

Нужна помощь ESP-01. Отображения значения переменной на Web странице

CodeNameHawk

Moderator
Команда форума
Дребезг нажатия сбросить её не сможет, но дребезг отжатия установить - сможет. Итого: knopka_nazata=true будет при нажатиях, а иногда и при отжатиях.
Для отжатия такой же алгоритм, ждем отжатия - задержка - сброс флага.

В итоге сделал задержку на 0,5 секунды и все стабильно работает
К вам тоже относится, вы избавились от половины проблемы.
Если кнопка будет нажата больше 0,5 сек, то дребезг отжатия может проявиться.
 

Сергей_Ф

Moderator
Команда форума
@nikolz вот тут как раз особенность Ардуино. В delay() происходит вызов обработки wifi. Так что можно ставить хоть delay(5000) - сеть не прервет работу.
Более того, в длинные циклы рекомендуется вставлять delay(0) для обработки wifi.
 

bavspb

New member
спасибо. буду знать.
Каким образом это реализовано? Можете дать ссылку?
----------------------
посмотрел библиотеку
если правильно понял то задержка реализуется циклом loop и проверкой разницы текущего значения системного времени и предыдущего.
т е задержка реализована загрузкой CPU.
Действительно в этом случае wifi может исполняться но CPU загружен на 100%
-------------------------------------
поэтому мое предложение в силе
такая задержка плохой совет
---------------------------
лучше сделать это через таймер
т е включить таймер на величину задержки хоть на час и перевести процессор в режим ожидания
результат будет - исполнение ligth-sleep и как следствие существенное экономия питания и отсутствие нагрева модуля.


Заменил в работающей схеме тактовую кнопку на счетчик воды с импульсным выходом для фиксирования замыкания геркона счетчика каждые 10л воды.

Т.е. красный провод счетчика подключен к GPIO2, а черный на землю. По сути, логика подключения такая же как и с кнопкой. Но при включении ESP зависает и постоянно горит синий диод. С кнопкой такой проблемы не было.

Длина провода до счетчика примерно 40см. Есть ли какие-то ограничения на длину провода от контроллера до датчика?
 

tretyakov_sa

Moderator
Команда форума
Заменил в работающей схеме тактовую кнопку на счетчик воды с импульсным выходом для фиксирования замыкания геркона счетчика каждые 10л воды.

Т.е. красный провод счетчика подключен к GPIO2, а черный на землю. По сути, логика подключения такая же как и с кнопкой. Но при включении ESP зависает и постоянно горит синий диод. С кнопкой такой проблемы не было.

Длина провода до счетчика примерно 40см. Есть ли какие-то ограничения на длину провода от контроллера до датчика?
Нельзя счетчик воды вешать на GPIO2, так, как есть состояние когда счетчик находится в замкнутом положении. Если в этот момент включить ESP она будет пытаться загрузится с UART и не стартует правильно. Используйте другой GPIO. GPIO0 тоже использовать нельзя.
 

bavspb

New member
Нельзя счетчик воды вешать на GPIO2, так, как есть состояние когда счетчик находится в замкнутом положении. Если в этот момент включить ESP она будет пытаться загрузится с UART и не стартует правильно. Используйте другой GPIO. GPIO0 тоже использовать нельзя.
Спасибо за мысль! У меня ESP-01, там из входов только GPIO0 и GPIO2. Изначально на GPIO2 у меня висела тактовая кнопка и проблем не было(по нажатию происходил подсчет). В счетчике воды установлен сухой контакт. Его начальное состояние - размокнут.

Возникает вопрос, почему сухой контакт нельзя подключать к GPIO2, а кнопку можно, если принцип работы у них схож?
 

Сергей_Ф

Moderator
Команда форума
почему сухой контакт нельзя подключать к GPIO2, а кнопку можно, если принцип работы у них схож?
есть состояние когда счетчик находится в замкнутом положении. Если в этот момент включить ESP она будет пытаться загрузится с UART и не стартует правильно.
 

tretyakov_sa

Moderator
Команда форума
Спасибо за мысль! У меня ESP-01, там из входов только GPIO0 и GPIO2. Изначально на GPIO2 у меня висела тактовая кнопка и проблем не было(по нажатию происходил подсчет). В счетчике воды установлен сухой контакт. Его начальное состояние - размокнут.

Возникает вопрос, почему сухой контакт нельзя подключать к GPIO2, а кнопку можно, если принцип работы у них схож?
В какой момент контакт разомкнут? Есть ли состояние при котором контакт остается замкнутым? А оно должно быть. Можно использовать TX и RX, когда вы все отладили выключите Serial и измените GPIO.
 

bavspb

New member
В какой момент контакт разомкнут? Есть ли состояние при котором контакт остается замкнутым? А оно должно быть. Можно использовать TX и RX, когда вы все отладили выключите Serial и измените GPIO.
Контакт замыкается как только механический счетчик насчитал 10литров - геркон замкнулся. Попробую повесить на TX. Но я все равно не понял почему GPIO2 не подходит для этих целей
 

bavspb

New member
правильно я вас понял:
у вас кнопка параллельно геркону.
кнопку нажимаем отпускаем все ок
геркон замыкает и все висит
так?
Не совсем так.
Изначально у меня для теста была включена тактовая кнопка, по нажатию которой, срабатывал инкремент. Все это обсуждалось здесь ранее и при помощи форумчан все заработало отлично(без дребезга и тд). Затем я просто заменил кнопку на счетчик с герконом, и хотел считать импульсы уже от счетчика. Подключение счетчика полностью идентично подключению кнопки. Но схема с кнопкой рабатате(когда пальцем замыкаешь контакт), а схема с герконом счетчика нет(сразу ESP виснет при включении).
 

bavspb

New member
а схема с герконом какая?
сколько времени контакт замкнут и сколько разомкнут?
Счетчик подключен к GPIO2(он в свою очередь в режиме PULL_UP) и к "-". Изначально контакт разомкнут(прозванивал). Как только отсчитает 10л, должен замкуться контакт(время зависит от скорости подачи воды, но речь о минутах). Вся логика через прерывание

Сам счетчик Счетчик воды ПУЛЬС 15 УИ-80 - купить, цена, отзывы: 11 и фото в интернет-магазине 220 Вольт
 

bavspb

New member
Предположу следующее:
если у Вас сохранилось мое предложение использовать смену флага в прерывании, то надо применять именно это
Ваше решение с задержками скорее всего не работает при большой длительности импульса.
-----------------
еще проверьте сопротивление замкнутого и разомкнутого контакта.
и для проверки повесьте кнопку на GPIO02 и смоделируйте длительность импульса от геркона
Нажал и сижу куру.
--------------------------------------
и уточните 10 литров -геркон замыкает контакт или размыкает.

Сопротивление разомкнутого мерил - 5.5K. Замкнутого не могу замерить, так как не отловить замыкание в ручную.

Я предполагаю, что каждые 10л контакт замыкается, так как изначально он разомкнут(не звенит и есть сопротивление 5.5К). Счетчик разобрать не могу, он опечатан и работает.
 

bavspb

New member
тут вопрос изначально в другом - почему при включении счетчика в схему ESP горит синим цветом и виснет. Логика и длина импульса, это уже следующее, как мне кажется
 

bavspb

New member
тут вопрос изначально в другом - почему при включении счетчика в схему ESP горит синим цветом и виснет. Логика и длина импульса, это уже следующее, как мне кажется

Правильнее сказать, что при подаче питания на схему с подключенным счетчиком воды(герконом) - сразу виснет контроллер
 

Сергей_Ф

Moderator
Команда форума
изначально он разомкнут(не звенит и есть сопротивление 5.5К).
для esp - это все равно что замкнут. Потому и не работает. Делайте подтяжку как сказал @nikolz.
Тут даже смена gpio не поможет. Виснуть, конечно не будет, но и считать без доп резистора тоже.
 

bavspb

New member
берем паяльник и резистор 1 ком
один конец резистора паяем на 3.3 в а второй к контакту ESP куда присоединяете геркон.
если паяльника нет то прикручиваем пальцами туда же
Я это проделал на макетной плате. Так можно было?
 
Сверху Снизу