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

Вопрос WeMos D1 mini - как "получить"/"обработать" сигнал от No/NC

DimOkIdE

New member
Подскажите, пожалуйста, как на esp8266 (D1 mini) принять и "обработать" сигнал от срабатывания NC/NO контакта?

Есть программатор для котла отопления, состоящий из термостата-передатчика (по RF 868.35 MHz) и приемника. У приемника, помимо питания от 220В, есть 3 разъема (NO, COM, NC). Котел подключается к NO+COM и, когда термостат дает команду "ВКЛ", замыкает эти NO и COM (ну и размыкает NC и COM, соответственно).

Никакого напряжения на этих контактах, в штатном режиме, нет (в котле, когда еще не было программатора, была просто перемычка проводком).

Как можно "отловить" это закрытие/открытие на esp8266? Может какой датчик а-ля геркон и т.п., который среагирует на закрытие NO или открытие NC (они там в паре работают и NC контакт свободен, т.к. нужен для кондиционеров, а не отопления) и подаст сигнал на esp (а там уже пойдет работа по сценарию)?

Хочу повесить через esp'шку несколько реле, чтобы отключало (через Х минут) насосы отопления после того, как термостат подаст команду "ВЫКЛ" (ну и включало их после ВКЛ, само собой).

Спасибо!
 

kab

New member
@DimOkIdE
Нет, ну, наверно, надо взять тестер и проверить отсутствие гальванической связи каждого контакта с обоими проводами питания 220 в (конечно, отключив предварительно от сети). Сколько Мом изоляция должна быть - не помню. Знающие- может быть уточнят :). А подключать - пару контактов (наверно, нормально разомкнутых - но это не принципиально) - как обычную кнопку. (не забыть пин притянуть - как обычно)
 

kab

New member
@DimOkIdE
Нет, ну, наверно, надо взять тестер и проверить отсутствие гальванической связи каждого контакта с обоими проводами питания 220 в (конечно, отключив предварительно от сети). Сколько Мом изоляция должна быть - не помню. Знающие- может быть уточнят :). А подключать - пару контактов (наверно, нормально разомкнутых - но это не принципиально) - как обычную кнопку. (не забыть пин притянуть - как обычно)
зы - не внимательно прочитал - если контакты уже используются - лучше их паралельно сдублировать - например, слабой релюхой или оптопарой
 

DimOkIdE

New member
@DimOkIdE
Нет, ну, наверно, надо взять тестер и проверить отсутствие гальванической связи каждого контакта с обоими проводами питания 220 в (конечно, отключив предварительно от сети). Сколько Мом изоляция должна быть - не помню. Знающие- может быть уточнят :).
Ну, тестер везде показывает OL (перегрузку). Только иногда проскакивало что-то в районе 43-55МОм, а потом в перегрузку выскакивает (щупы, зажатые в 2х руках, показывают от 1.5 до 7 МОм :) ).

В инструкции к программатору написано, что напряжение на эти "сигнальные" контакты не попадает. Т.е., как понимаю, гальванической связи нет?

@DimOkIdEА подключать - пару контактов (наверно, нормально разомкнутых - но это не принципиально) - как обычную кнопку. (не забыть пин притянуть - как обычно)
Я в этом деле, мягко говоря, новичок. Сориентируйте, пожалуйста, по кнопке. Знаю подключение кнопки по схеме, примерно, такой (через подачу питания):
- к GND
+ к VCC (3В) и к одному из контактов кнопки
а второй контакт кнопки к D4 (GPIO2), например

Если так подключить в моем случае, то на контактах программатора появится напряжение в 3В, верно? Не хотелось бы, т.к. он же еще и в котел уходит и там напряжение, имхо, лишнее :(
 

DimOkIdE

New member
зы - не внимательно прочитал - если контакты уже используются - лучше их паралельно сдублировать - например, слабой релюхой или оптопарой
Ну там можно воткнуть еще по 1 проводку в них, в принципе.
Да и заняты COM + NO, а вот NC свободен. Думал задействовать NC и COM (засунуть туда второй провод рядом с тем, что на котел идет).

А если продублировать "слабой релюхой", то как это сделать если на них нет напряжения? Для реле же, вроде, нужен либо сигнал, либо напряжение?
 

kab

New member
Ну там можно воткнуть еще по 1 проводку в них, в принципе.
Да и заняты COM + NO, а вот NC свободен. Думал задействовать NC и COM (засунуть туда второй провод рядом с тем, что на котел идет).

А если продублировать "слабой релюхой", то как это сделать если на них нет напряжения? Для реле же, вроде, нужен либо сигнал, либо напряжение?
Вы же писали, что:
Котел подключается к NO+COM и, когда термостат дает команду "ВКЛ", замыкает эти NO и COM
Наверно, всё-таки не так - Котел подключается к NO+COM и, когда термостат дает команду "ВКЛ", эти NO и COM замыкаются и включают котёл? Так вернее?

Тогда, если котел изменение состояния контактов понимает, значит разность потенциалов (напряжение) на контактах всё же есть (на разомкнутых), соответственно, при замыкании контактов эта разность исчезает. Чудес всё-таки не бывает (хотя бывают, но не в электронике :)). Простейшее подключение - эту разность потенциалов на контактах промерить тестером и в эти точки подключить реле, уверенно срабатывающее при обнаруженном напряжении.
 

DimOkIdE

New member
Наверно, всё-таки не так - Котел подключается к NO+COM и, когда термостат дает команду "ВКЛ", эти NO и COM замыкаются и включают котёл? Так вернее?

Ну да, имел в виду, что их замыкает термостат, а не котел :)

Тогда, если котел изменение состояния контактов понимает, значит разность потенциалов (напряжение) на контактах всё же есть (на разомкнутых), соответственно, при замыкании контактов эта разность исчезает. Чудес всё-таки не бывает (хотя бывают, но не в электронике :)). Простейшее подключение - эту разность потенциалов на контактах промерить тестером и в эти точки подключить реле, уверенно срабатывающее при обнаруженном напряжении.
Залез в котел на "разобраться".

Как раньше писал - до того, как поставили программатор, там раньше была просто перемычка между двумя клеммами (сейчас туда приходят, соответственно, провода от COM и NO из программатора). Через эти клеммы проходит НОЛЬ и уходит куда-то на отдельный контакт на плате (т.е. замкнуто/разомкнуто не отключает весь котел наглухо, а дает напряжение на отдельных контактах, которые, по всей видимости, заведуют чисто функцией отопления). И, соответственно, когда на термостате контакты замыкаются, то на отдельной группе контактов на плате котла появляется 220В.

Ну и раз это, по сути, нейтраль, то никакого напряжения между COM и NO выявить не удалось :(

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

Сергей_Ф

Moderator
Команда форума
тестер везде показывает OL (перегрузку). Только иногда проскакивало что-то в районе 43-55МОм,
сейчас туда приходят, соответственно, провода от COM и NO из программатора). Через эти клеммы проходит НОЛЬ
Вы уж, как то определитесь, приходит туда Ноль или 50 МОм с любым проводом.
 

kab

New member
когда на термостате контакты замыкаются
Если тестер всё-таки имеется, что мешает промерить не сопротивление, а напряжение на контактах приёмника (откуда нам надо снять сигнал для ESP) в обоих состояниях - включено, выключено? Я понимаю, что там может быть и 220, но обычный тестер это напряжение меряет!!! Мерять в состоянии - когда котёл работает, как ему положено...
 

kab

New member
на контактах приёмника
На контактах, это значит один щуп тестера на одном контакте, другой - на другом!!! Ни ноль, ни фаза тут не при делах!!! Для того, чтобы отделиться от нуля с фазой питающей сети и делается так называемая гальваническая развязка через реле!
 

kab

New member
Мерять в состоянии - когда котёл работает, как ему положено
Как учили в школе, технику безопасности надо соблюдать. Если работаете внутри устройства на 220 - то положено, чтобы неподалёку находился помощник, который в случае чего сможет вызвать скорую помощь :confused:
 

DimOkIdE

New member
Вы уж, как то определитесь, приходит туда Ноль или 50 МОм с любым проводом.
Вероятно, из-за неопытности, проскальзывает какое-то косноязычие в плане "специфических" терминов из-за чего получается не очень понятно :(

те 50МОм - это я измерял сопротивление между каждым из контактов группы NC/COM/NO и контактами питания программатора (220в N и L).

"НОЛЬ" - имелось в виду, N от 220В, а не 0 каких-либо единиц.

Если тестер всё-таки имеется, что мешает промерить не сопротивление, а напряжение на контактах приёмника (откуда нам надо снять сигнал для ESP) в обоих состояниях - включено, выключено? Я понимаю, что там может быть и 220, но обычный тестер это напряжение меряет!!! Мерять в состоянии - когда котёл работает, как ему положено...
Имеется, мерял. Нет напряжения между контактами NO и COM, ни в разомкнутом, ни в замкнутом состоянии.
Между NC и COM - то 0, то 0.8В (но, судя по всему, это тестер чудит - заменю вечером батарейки и заново проверю).

На контактах, это значит один щуп тестера на одном контакте, другой - на другом!!! Ни ноль, ни фаза тут не при делах!!! Для того, чтобы отделиться от нуля с фазой питающей сети и делается так называемая гальваническая развязка через реле!
Так и меряю (другого способа пока не знаю :) ).

Про "ноль" и фазу речь шла в контексте того, что примитивненько попытался на рисунке изобразить:
esp-baxi-q7.GIF
а) 1 и 2 - питание котла
б) 3 и 4 - запитывает функционал отопления (когда здесь нет 220, то котел работает только на ГВС)
в) между 5 и 6 была обычная перемычка "по умолчанию", а сейчас здесь "умная" перемычка в виде термостата

И, собственно, вопрос - как в это хозяйство можно (оптимальнее всего) "вклинить" ESP, чтобы оно:
а) либо просто "отслеживало" момент замыкания NO и COM (и дальше управляло другими устройствами, не затрагивая сам котел)
б) либо отслеживало замыкание NO и COM, а контакты 5 и 6 котла коммутировались при помощи реле, висящего на ESP (т.е., по идее, отключить термостат от котла, а замыкать 5 и 6 будет уже ESP'шка)

Хотя вот, пока не нарисовал картинку и не описал, то пункт "б" в голову не приходил :) Уже польза от топика :)
 

kab

New member
Нет напряжения между контактами NO и COM
прям чудеса какие-то :)
Но тут можно еще проверить (хотя, похоже, вариант "б" - нормальный) какой ток течет через контакты - естественно, когда они замкнуты. Поставив тестер в режиме измерителя тока в разрыв цепи контакта. Кстати, разорвав цепь в момент работы котла - можно дополнительно убедиться , действительно ли управление идет по этой цепи...
 

Сергей_Ф

Moderator
Команда форума
DimOkIdE, значит так, отключаете термостат от котла и меряете напряжение на контактах 5 и 6 котла. Если в режиме переменного напряжения ничего нет, пробуем в режиме постоянного напряжения. Не может там не быть напряжения.
Вариант 6 рабочий, только ответьте себе на вопрос: что произойдет если ваша esp зависнит при разомкнутом реле и при замкнутом реле. Если ничего страшного за несколько дней не может произойти, то вперёд.
 

DimOkIdE

New member
прям чудеса какие-то :)
Сам удивляюсь :)

Но тут можно еще проверить (хотя, похоже, вариант "б" - нормальный) какой ток течет через контакты - естественно, когда они замкнуты. Поставив тестер в режиме измерителя тока в разрыв цепи контакта. Кстати, разорвав цепь в момент работы котла - можно дополнительно убедиться , действительно ли управление идет по этой цепи...
@DimOkIdE, значит так, отключаете термостат от котла и меряете напряжение на контактах 5 и 6 котла. Если в режиме переменного напряжения ничего нет, пробуем в режиме постоянного напряжения. Не может там не быть напряжения.
Провел замеры. Итоги:

1. Термостат без котла (просто вывел проводки от контактов наружу):
1.1 Напряжение между контактами NO и COM, когда они разомкнуты - 0.36-0.5В (но это, походу, какие-то глюки тестера, т.к. он такое же показывает когда просто щупы в воздухе (т.е. от 300 до 800 мВ), а когда без щупов вообще- 13-18 мВ).
1.2 Когда контакты замыкаются, то напряжение стабильно скидывается в 0.05 мВ.

Ну, т.е., как я понимаю, там нет напряжения между ними (да и откуда ему взяться, если там, как оказалось, внутри стоит реле OMRON стандартное (хз какие у него параметры - на нем наклейка))?

2. Котел без термостата:
2.1 Напряжение между контактами 5 и 6, когда котел включен в сеть (даже когда он в режиме сна или off, или гвс) - 110В (внезапно :rolleyes: ).
2.2 Рабочий ток, протекающий по этой перемычке - в районе 2.7 мА (плавает от 2.5 до 2.7). Независимо от режима (включено отопление или выключено).

3. Котелв связке с термостатом:
3.1 Напряжение между COM и NO стабильно 1.3 мВ (хоть замкнуты они, хоть разомкнуты). Хз как так.
3.2 Рабочий ток в районе 2.9 мА (т.е. то же самое, что и п.2.2).

Т.е., как понимаю, схема должна быть примерно такая:

esp-baxi-q7-2.GIF

Что смущает:

1. Не понимаю - как от термостата на ESP подать сигнал :( Соединить напрямую 3.3В с COM, а один из GPIO с NO? Или, учитывая, что там в термостате стоит реле на переменный ток, то надо как-то иначе?
2. Вообще, все эти реле, у которых на выходе указаны только VAC, они могут работать с постоянкой? :oops:
3. Если у реле на выходе указано 30VDC или 28VDC, то оно сможет скоммутировать 3.3/5VDC от esp? Или на реле значение напряжения указывают в связке с током чтобы обозначить верхнюю границу по напряжению и току, а пропускать можно любое, что не превышает эти пороговые значения? Т.е., если указано 10А 125VAC, то 110В моих от котла оно нормально "пропустит"? И, аналогично, про 30VDC и 3.3/5В от esp?


Вариант 6 рабочий, только ответьте себе на вопрос: что произойдет если ваша esp зависнит при разомкнутом реле и при замкнутом реле. Если ничего страшного за несколько дней не может произойти, то вперёд.
В принципе, если никуда не отлучаться, то максимум, при залипе с замкнутым реле, оно даст перерасход газа и эл-ва. А с разомкнутым - в доме станет холодно и про залипание нам сообщат холодные батареи :)

А вот если уезжать надолго, то, скорее всего, надо будет отключать и переводить котел на штатные средства (ведь даже термостат, который я использую, в принципе, может зависнуть, хотя уже 2 года работает без нареканий). Ну, или городить огород из 2-3 плат, чтобы следили друг за другом и "стучали" куда следует, если вдруг одна из них отлынивает от работы :)

Или есть более надежные платы с таким же низким порогом входа (для нубов, далеких от электроники :rolleyes:)?
 

Сергей_Ф

Moderator
Команда форума
@DimOkIdE а зачем вам вообще нужно esp? Поставьте Ардуино Уно , там и сторожевой таймер делается элементарно. И куча готовых шилдов с реле.
 

DimOkIdE

New member
@DimOkIdE а зачем вам вообще нужно esp? Поставьте Ардуино Уно , там и сторожевой таймер делается элементарно. И куча готовых шилдов с реле.
Сергей, я, в принципе, только начинаю знакомиться с этой "темой". Как показалось - у esp больше ресурсов + wifi на борту по-умолчанию. Плюс, пара штук уже куплено и терзается по мере сил и возможностей (на уровне поморгать, серву покрутить).

Вообще, в принципе, я хочу реализовать пару проектов по управлению домашним "хозяйством".

1) Котельная:
1.1. Управление насосами маломощными - 3шт (отопление + пол + рециркуляция)
1.2. Управление котлом по отоплению (то, что в этой теме обсуждаем)
1.3. Управление бойлером (в поиске решения для 3.3кВт мощности) по таймеру
1.4. Управление котлом по гор.воде (там котел использует датчик визуально похожий на DS18b20 (как "зонд" металлический на конце кабеля), вставленный в специальное место в бойлере - хочу "вклиниться" и получать данные от этого датчика в "мозг" проекта, а потом передавать дальше в котел, чтобы можно было его "обмануть" (надо для согласования работы с п.3 - чтобы включать попеременно нагрев бойлером или котлом)).
1.5. Получение данных с датчика температуры внешней (завтра буду смотреть какой котел использует, но по памяти там что-то копеечное а-ля DHT22 или может тот же DS18b20, но в другом исполнении).
1.6. В идеале - получение данных с нескольких датчиков температуры в разных комнатах, но еще не разбирался как их через несколько стен и 5-10м передавать в общий "мозг".
1.7. Сбор данных по всем этим пунктам и сбрасывание их куда-то в web (или на локальный сервер) для последующей обработки/анализа
1.8. Управление всем этим добром через web-интерфейс и/или со смарта.

Какая плата для этого лучше подходит из тех, что доступны для нубов?

2) И второй проект - водоснабжение. Но там я насчитал минимум 3 esp понадобится, т.к. кол-во получаемых данных и управляемых устройств много больше котельной :(

2.1) Подача воды №1:
2.1.1 "Взрослый" насос (640Вт, вроде, с пусковым током под 10-12А) - 1шт
2.1.2 Данные с датчика давления - 1шт
2.1.3 Сервопривод - 1шт
2.1.4 Потом, когда-нибудь, датчик протока - 1шт
2.1.5 Потом, еще позже, эм.клапан и/или кран - 2-3шт
2.1.6 Световая сигнализация статуса пунктов 2.1.1 - 2.1.4 (т.е. 2-3 светодиода)
2.1.7 Часы/таймер (не хочется зависеть от синхронизации времени через веб, т.к. это в подвале и сигнала там пока нет, а насколько стабилен будет в будущем - хз).
2.1.8 Отсылка всех данных на сервер
2.1.9 Управление 2.1.1, 2.1.3 и 2.1.5 через веб/приложение

2.2) Очистка и подача №2:
2.2.1 Насос на 460Вт
2.2.2 Насос на 1.1кВт с обвязкой (фильтрация)
2.2.3 Данные с датчика давления - 1шт
2.2.4 Данные с датчиков уровня жидкости (или 2 УЗ, или 5 емкостных)
2.2.5 Данные с "поплавка" насоса (может быть и не понадобится, если 2.2.4 будет нормально работать)
2.2.6 Насос на 250Вт
2.2.7 Может быть, в будущем, датчик протока - 1шт
2.2.8 Часы/таймер - 1шт
2.2.9 Отсылка всех данных на сервер
2.2.10 Управление всем этим добром через веб/приложение

2.3) Вентиляция и прочее:
2.3.1 Вентиляторы - 2шт
2.3.2 Цирк.насос (маломощный) - 1шт
2.3.3 УФ лампа (20-30Вт) - 1шт
2.3.4 Датчик протока - 1шт
2.3.5 Реле на 12В - 1шт
2.3.6 Часы/Таймер - 1шт
2.3.7 BME280 - 2шт
2.3.8 Световая сигнализация - 2 светодиода
2.3.9 Отсылка данных на сервер
2.3.10 Управление через веб/приложение

Вооот :eek:

И это я еще не придумал как в подвал загнать сигнал wifi o_O

Сергей, с высоты Вашего опыта, на чем лучше сие реализовать? С учетом пожелания "легкий вход для новичка" :)
 
Сверху Снизу