• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 куда присоединяете геркон.
если паяльника нет то прикручиваем пальцами туда же
Я это проделал на макетной плате. Так можно было?
 
Сверху Снизу