Черновик программы для контроллера протечек

Задумал я себе установить в новой квартире систему защиты от протечек, чтобы умная машинерия сама вентили перекрывала, когда где-то что-то на пол накапает. Гугление и просмотр сайтов производителей готовых систем меня несколько расстроило. Почти все, что имеется на рынке — делается из дешевейших китайских комплектующих и вызывает сомнение в адекватной работоспособности.
Почти все системы рассчитаны на установку блока управления на стену, что явно не украшает интерьер квартиры. Систем с блоком управления с монтажем на DIN-рейку почти нет. Краники какие-то хливкие. Неизвестно, как они отработают после продолжительного закисания от нашей водички. Проводки от сервоприводов краников — не толще чем провода от наушников — явно не располагают к долгосрочной стационарной установке с замоноличиванием проводов в стяжку, даже в гофре. И стоят эти системы как паровоз.
В реальности — такая система технически не очень сложное устройство, и ее под силу изготовить самостоятельно. Причем, ее можно изготовить из более брутальных и надежных камплектующих.
Для себя я решил собрать контроллер протечек на базе кранов с сервоприводами FAR 3008 и контроллера LOGO! 8. Сервоприводы кранов FAR 3008 питаются постоянным напряжением 24 В. Поэтому, для управления ими хорошо подойдет LOGO! 24RCE, который также питается постоянным напряжением 24 В. Одинаковое напряжение позволит завести в LOGO! сигналы от концевиков сервоприводов, и отображать на экране LOGO! реальное состояние кранов: открыты они или закрыты.

Пока что я набросал программу контроллера, котрый будет управлять сервоприводами. За неимением самого зверька программа на реальном железе не тестировалась, жила только на симуляторе.
В схеме используются 6 дискретных входов и 3 релейных выхода.

Входы:
1 — Дискретный вход датчика протечки. В Сети можно найти активные датчики, с релейным выходом или транзисторным выходом. В некоторых моделях LOGO! некоторые входы могут использоваться как аналоговые. Но эта «аналоговость» включается по-козлячьи: парами. И работает не со всеми зверьками. Кому хочется использовать аналоговые датчики (две позолоченные пластинки на полу) — можете поиграться с аналоговыми входами.
2 — Дискретный вход сигнала внешнего управления, котрый будет принудительно перекрывать воду, независимо от состояния датчика протечки. К нему пожно подключить реле охранной сигнализации и перекрывать воду при постановки квартиры на сигнализацию. При отсутствии сигнализации можно подключить обычный выключатель, установленный возле двери, и вручную перекрывать краны, уходя из квартиры.
4-6 — Входы концевиков сервоприводов кранов. Сигналы на них позволяют контролировать положение кранов и выводить на экране LOGO! красивую надпись OPEN/CLOSE.

Релейные выходы:
1 — Выход тревоги. К нему можно подключить пищалку (ждем появление в LOGO! штатной onboard пищалки) или шлейф сигнализации или автозвонилку. Вообщем, любой извещатель. Кстати, у ABB есть звонок на DIN-рейку на 24 В размером 1 модуль.
2-3 — Выходы управления сервоприводами кранов.
Схема контроллера протечек
Алгоритм работы:
Во время работы на экране LOGO! отображается состояние датчиков протечки и положение кранов. Экран «обычного» цвета.
При появлении логической единицы (сигнал 24 В) на входе 1 контроллер переходит в режим тревоги и включает реле выходов 1, 2 и 3. Пищалка, подключенная к выходу 1 начнет пищать, а сервоприводы кранов, подключенные к выходам 2 и 3 перекроют воду. Экран LOGO! краснеет. Мигание экрана я делать не стал, так как это сильно мещает считывать информацию и лазить по менюшкам. Высыханием лужи на полу и появление на входе логического нуля не выведет систему из состояния тревоги, чтобы краны не открылись и лужа снова не появилась. Думаю, что периодическое натекание/высыхание лужи явно не пойдет на пользу ремонту соседей.
Вывести контроллер из состояния тревоги можно параметром Reset alarm в меню Parameters. При этом логическая единица на входе будет игнорироваться в течение времени, которое задается в Alarm delay. Оставшееся время Alarm delay отображается на экране LOGO!.. В течение этого времени, даже не смотря на фиксацию воды датчиками протечки, краны будут открыты, что позволит найти кокретное место протечки и приступить к ее устранению. При необходимости, сбросить время Alarm delay и закрыть краны можно параметром Reset delay. Если датчики протечки больше не зафиксируют лужи на полу — система вернется в обычное дежурное состояние.
При появлении логической единицы на входе 2 контроллер без перехода в режим тревоги тихо и мирно перекроет воду, и так же мирно откроет ее при появлении логического нуля.
Чтобы краны не закисали, краны, находящиеся в открытом положении, периодически закрываются и снова открываются. Периодичность закрытия/открытия задается в параметре Unjamming. Время тоже настраивается. Контроллер проворачивает краны ночью (чтобы в горячем душе не познать всю мощь искусственного интеллекта), но не ранее, чем через 200 часов.
Закрытые изначально краны не открываются, независимо от того, сколько времени они находятся в закрытом положении. (Мы не знаем достоверно причину закрытия. Кроме того, протечки и разрывы гибких подводок возникают во время гидроударов, которые могут быть вызваны в том числе, и открытием кранов. Поскольку закрытие кранов может означать отсутствие людей в квартире, открывать краны в пустой квартире — не лучшая затея.)

Жду конструктивной критики.

Схема
Схема картинкой

5 комментариев

avatar
Тут интересный момент — если случайно пролили немного воды на пол в ванной — что произойдет? В принципе, тут главное грамотно датчики поставить, чтобы система срабатывала именно тогда, когда вода уже там, где совсем никогда не должна быть.
А можно картинку схемы в более высоком разрешении выложить?
Комментарий отредактирован 2018-02-21 12:32:09 пользователем serafim
avatar
Я даже не думал, что движок так сильно картинку пожмет. Добавил ссылку на картинку на файлообменнике в нормальном разрешении. Если будут проблемы с просмотром — перезалью на другой файлообменник.
Датчики, которые я видел, имеют снизу выступы, за счет которых контактные площадки не лежат на полу, а висят над ним на высоте 1-2 мм. Теоретически, это должно частично защищать от ложных срабатываний.

А так — при срабатывании (ложном или не очень) достаточно все вытереть, зайти в меню Parameters и нажать Reset alarm. Как-то так.
avatar
Сам собираю защиту от протечек, правда по сравнению с тобой из «говна и палок». Но тратить 60 тыров на два стояка меня просто жаба задушит. У меня будет четыре крана Гидролок, шесть их датчиков. Контроллеры на атмеге (первая версия на ардуине работает уже около двух лет, сейчас планирую перейти на отдельный чип).

По алгоритму, основываясь на собственном понимании того, как должно работать.
Первое. По пищалке. У нее должен быть таймаут. Скажем, одна минута. Если ты дома, то минуты вполне достаточно, чтобы понять, что проблема есть. Потом пищание контроллера будет просто мешать. И другая ситуация. Ты уехал на три дня в командировку. Сработал датчик протечки. Контроллер запищал. И пищит все три дня, пока тебя нет. Зачем зря нервировать соседей. Не будем рассматривать шанс выхватить от агрессивного соседа по возвращении. Нужно просто учитывать что соседи живые люди и им твой писк будет неприятен.
Второе. Закрытие кранов при постановке на сигнализацию. Это лишнее. Если произойдет протечка во время отсутствия хозяев — контроллер сам воду перекроет. Для этого ты его и ставишь. А вот кранам лишние движения совсем не нужны. Кроме того, лично мы иногда оставляем работать стиралку и посудомойку, уходя из дома. Они точно не будут рады отсутствию воды. Если уж уезжаешь надолго, можно нажать кнопку и перекрыть воду вручную.
Третье. Восстановление подачи воды при высыхании датчика. В твоем варианте нужно будет высушить датчик и нажать кнопку (которая будет где-то в щитке, скорей всего). Это хорошо, если ты чистишь зубы. А если ты в душе? Ну так получилось, что протечки нет, просто случайно налил воды на датчик. Нужно будет высушить датчик, потом в пене доскакать до щитка и щелкнуть выключателем. Как бы не получилось как у инженер Щукина из 12-ти стульев :-) Правда как вариант, можно вывести кнопку в ванную. Но тогда это уже будут не выключатели (логический 1 и 0), а параллельные кнопки.
Четвертое. Не предусмотрено информирование хозяев о произошедшей аварии. Хотя, может ты просто он нем не написал. Но нужна, как минимум, возможность отправить смс при возникновении аварийной ситуации.
avatar
Спасибо за замечания.
По ограничению времени работы пищалки — дельное замечание. Учту.
По поводу перекрытия кранов при постановке на сигнализацию — краны иногда все-же полезно дергать, чтобы не закисали. Одно-два открывания в день — думаю, для них не критично. Вон, у Шамана они закрываются по кнопке при выходе из квартиры.
Чаще всего в квартирах течи возникают из-за разрыва гибкой подводки от гидроударов в системе водоснабжения. При аварии краны перекроются только при попадании воды на датчик. А до датчика она еще должна дотечь. Закрытые в отсутствие хозяев краны по позволят гидроудару пройти из городской сети в квартиру. Хотя, если оставлять стиралку работать пока никого нет дома, то я согласен, стиралка за перекрытую воду «спасибо» не скажет. :-)

Временное открытие сделано не кнопкой в щите, а выбором специального пункта в менюшке самого Лого. При выборе этого пункта Лого откроет краны и будет ждать заданное в настройках время, независимо от состояния датчиков. Это позволит найти конкретное место протечки. Если по истечении этого времени датчики останутся мокрыми, то Лого снова перекроет воду (вдруг, тебя отвлекли), а если будут сухими — то сбросит состояние тревоги и оставит краны открытыми.

А вообще, мне очень понравилось решение Шамана в нескольких последних щитах с аквасторожами — небольшой переключатель авто/ручное, который позволяет отключить Лого и полностью перейти на ручное управление. Он еще лампочки индикации ставил. Щит в Алтуфьево, кажется.

Информирование — штука разноплановая. Если есть сигнализация — то можно отдельный шлейф сигнализации в Лого завести, и пусть она отправляет тебе СМС (без уведомления пульта охраны). Сейчас почти все сигнализации работают по мобильным каналам (даже пультовые). Также, есть автозвонилки в магазинах, торгующих сигнализациями. Фирменный Сименовский модуль для GSM стоит как паровоз.

А у тебя датчики активные, с питанием или без? Или обычные две пластинки? Что выдают? Логическую единицу/ноль или аналоговый сигнал?
avatar
Я не пытаюсь переубеждать по поводу работы с сигнализацией. Просто мое мнение по этому поводу. Контроллер и так будет дергать краны раз в 8 дней (у тебя написано раз в 200 часов). Если закрывать их при постановке на сигнализацию, то уже не нужно будет настраивать закрытие и открытие по таймеру. Я у себя добавил в схему часы реального времени и настроил дерганье кранов в ночь с субботы на воскресенье в 4 часа.
По поводу скорости срабатывания при протечке. Расстояние от поверхности до контактов датчиков где-то полтора миллиметра. При площади ванной комнаты 4 квадрата, необходимо 6 литров воды, чтобы он сработал. А учитывая то, что датчиков несколько и лежат они в наиболее опасных местах (у меня под душевой, стиральной машиной, унитазом и в коробе со стояками), то сработают они намного раньше. Не скажу, что 6 литров это мало, но серьезно повредить ремонт соседям не получится.
По ручному открытию в случае срабатывания датчиков. ИМХО можно настроить и без ползанья в меню контроллера. Если есть выведенный выключатель, который дает контроллеру 0 или 1, можно пользоваться им. Выключатель будет, скорей всего, в более доступном месте, чем сам контроллер. Можно сделать примерно так. Датчики сухие, выключатель в положении 1, краны открыты. Сработал датчик. Краны закрылись. Человек щелкает выключатель в 0, как бы вручную закрывая краны. Щелкает в 1. Если датчики уже сухие — контроллер открывает воду. Если датчики еще мокрые, контроллер заводит таймер, скажем, на 60 секунд и открывает краны. Если за 60 секунд датчик не высушен, краны опять закрываются. Человек может опять переключить 0/1 и искать протечку дальше. В этом случае ты немного усложняешь отработку кнопки вкл/выкл (добавляешь проверку состояния датчиков при включении), но полностью избавляешь себя от введения дополнительной функции временного включения воды через меню контроллера.
Переключатель ручное/автоматическое хорош, пока не забудешь переключить его в автоматический режим и не случится какой-нибудь факап. Но это уже на любителя. Я вообще считаю, что любая железка, обладающая какой-то автоматической функцией, должна минимально зависеть от человека. Либо это зависимость была заложена на стадии разработки. Т.е., допустим, у меня на контроллере только две кнопки. Открыть и закрыть. Ну еще можно ему питание отключить. Больше я, как пользователь, ничего с ним сделать не могу. Зато сидя на работе у меня не будет болеть голова — а в каком режиме я его оставил? Работает ли он вообще?
По сигнализации ничего не скажу. У меня ее пока нет. Я буду делать через HomeAssistant, скорей всего.
Датчики обычные аналоговые. WSP с этой страницы
gidrolock.ru/production/datchiki-protechki-vody-gidrolock/
Меняют сопротивление при попадании воды. Аналоговым входом ловится на ура. В принципе, можно к каждому датчику прикрутить собственные мозги и заставить общаться с центральным контроллером по воздуху, но у меня такой необходимости нет. Я заложил провода еще на стадии ремонта.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.