Защита от протечки

Smirniy

✩✩✩✩✩✩✩
14 Май 2023
7
0
Здравствуйте. После того как посреди ночи у меня разорвало магистральный фильтр и затопило всю квартиру, а заодно и пару квартир соседей живущих ниже, я озадачился вопросом собрать защиту от протечек воды.
Для реализации этого были приобретены плата Arduino UNO, драйвер двигателей L298N, несколько датчиков дождя и пара электрических приводов крана, которые и будут установлены на шаровые краны стояков горячей и холодной воды, и в случае протечки будут перекрывать воду.
Поскольку программист из меня никакой, то после обзора и анализа нескольких десятков самых разных схем и проектов, моя конструкция пришла к следующему виду.

Датчик дождя подключен к аналоговому входу А0.
При обнаружении протечки моргает красный светодиод (пин 8) и зуммер (пин 6) прерывисто пищит.
Зелёный светодиод дежурного режима при этом гаснет. Горит он только когда "сухо".
Приводы кранов (моторы) при этом закрываются. На закрытие уходит где-то 7 секунд, после чего в приводе срабатывают встроенные концевые выключатели и мотор останавливается. После закрытия крана светодиод и зуммер продолжают прерывисто моргать/пищать (только если на датчике будет вода – если нет, то не будут).
После того как кран закрылся и датчик дождя высох, кран сам по себе не откроется. Чтобы открыть кран, нужно кратковременно нажать на кнопку «Открыто».
Примечание:
Если, вдруг, во время срабатывании тревоги, нажать кнопку открытия крана, то загорится соответствующий светодиод и раздастся непрерывный писк (в течении, примерно, 7 сек) после чего сигнал сигнализации продолжит свою работу, поскольку протечка не устранена. Кран при этом не откроется.

Кроме автоматического режима ведено ручное управление – при нажатии кнопки (пин 5) мотор запускается и горит красный светодиод «Закрыто». Закрытие происходит примерно за 7 сек.
По нажатию второй кнопки (пин 4) мотор запускается в другую сторону и горит соответствующий светодиод «Открыто».
Светодиод дежурного режима при ручном управлении не гаснет.

Скетч устройства: 7-07_store

Что не решено:

В настоящий момент не решил как подключить остальные датчики протечки, всего их у меня плпнируется 6 штук.
Пробовал их подключать как в скетче 7-08_store (тут я подключил только 3 датчика), но это приводит к тому, что если какие-то прописанные в скетче датчики отключить, то сразу же срабатывает тревога с закрытием кранов, включением сирены и морганием светодиода.
Если кто-то знает, как это сделать правильно, подскажите пожалуйста.
.
 

Вложения

Bruzzer

★★★✩✩✩✩
23 Май 2020
639
190
Если кто-то знает, как это сделать правильно
Как все сделать правильно не скажу, не делал, но в инете наверно есть проекты с описанием и обсуждением, т.к. часто бывают не очевидные особенности.
Чтобы отключенные датчики не приводили к срабатыванию, в вашем случае возможно будет достаточно включить подтяжку на пинах для датчиков
pinMode(Rain_sensor, INPUT_PULLUP);
 
  • Лойс +1
Реакции: Smirniy

Smirniy

✩✩✩✩✩✩✩
14 Май 2023
7
0
Да, хотел спросить, платы компараторов должны размещаться вместе с датчиками или их можно установить отдельно, например в корпусе устройства? Сами датчики, при этом будут соединяться с ними при помощи разъёмов.
Так, кстати, физическое отключение прописанных в скетче датчиков срабатывания тревоги не вызывает, даже можно не прописывать pinMode(Rain_sensor, INPUT_PULLUP);

Ещё один вопрос по коду: как сделать, чтобы в автоматическом режиме мотор работал также по 7 секунд, как в ручном.
Пробовал туда вставлять комбинацию:

digitalWrite (IN1, HIGH); // включить мотор
delay(7000); // 7 секунд
digitalWrite(IN1, LOW); // выключить мотор

Мотор работает заданные 7 секунд, но вот сигнализация при этом работает неправильно - вместо прерывистого звукового сигнала и моргания светодиода получается просто писк зуммера и светодиод тревоги просто горит.
Временная составляющая нужна для того, чтобы мотор гарантированно закрыл кран даже при кратковременном, менее 7 секунд, попадании воды на датчик. В противном случае, если вода будет на датчике менее 7 секунд, мотор может закрыть кран не полностью.

Для наглядности нарисовал схему устройства.
 

Вложения

Bruzzer

★★★✩✩✩✩
23 Май 2020
639
190
но вот сигнализация при этом работает неправильно
Решение зависит от интересов спрашивающего. Если есть желание изучать ардуино дальше, то наверно правильнее будет почитать уроки, как предложено в предыдущем посте. (Или найти другие, понятные уроки).
Но на данном этапе, возможны "не правильные", но возможно более понятные начинающему варианты.
  • можно просто поменять понятие "правильно". Пусть правильно будет так как работает сейчас. Пока мотор работает, звук и свет постоянный. В этом даже можно найти свои плюсы.
  • можно разбить dealy(7000); на серию более мелких задержек, и переключать свет и звук между ними.
 

7Up

★✩✩✩✩✩✩
3 Июн 2021
142
11
Для таких штук ещё неплохо вводить watchdog таймер на перезагрузку. А то вдруг ардуина зависнет и не будет реагировать
 

Smirniy

✩✩✩✩✩✩✩
14 Май 2023
7
0
Повторю свой вопрос: платы компараторов должны размещаться вместе с датчиками или их можно установить отдельно, например в корпусе устройства?
 

Мишутк

★✩✩✩✩✩✩
29 Мар 2025
58
22
Повторю свой вопрос: платы компараторов должны размещаться вместе с датчиками или их можно установить отдельно, например в корпусе устройства?
До датчика 2 провода. До компаратора 3. От датчика передается только аналоговый сигнал, сопротивление в линии, и имеется подстроечный элемент для установки порога срабатывания. Кабель до датчика можно выбрать любой, чтобы компенсировать помехи и потери. А от компаратора приходится ориентироваться на цифру, помеха там сразу трактуется МК как изменение состояния, без возможности подстройки. В добавок к компаратору идет питание, что заставляет задуматься о защите линии на случай замыкания в кабеле - это грозит поломкой всего МК.

Логичнее начать с выноса только датчика.
 

Smirniy

✩✩✩✩✩✩✩
14 Май 2023
7
0
До датчика 2 провода. До компаратора 3. От датчика передается только аналоговый сигнал, сопротивление в линии, и имеется подстроечный элемент для установки порога срабатывания. Кабель до датчика можно выбрать любой, чтобы компенсировать помехи и потери. А от компаратора приходится ориентироваться на цифру, помеха там сразу трактуется МК как изменение состояния, без возможности подстройки. В добавок к компаратору идет питание, что заставляет задуматься о защите линии на случай замыкания в кабеле - это грозит поломкой всего МК.

Логичнее начать с выноса только датчика.
Подстроечный элемент установлен именно на компараторе, датчик это просто плата с дорожками, сами можете увидеть это на фото. А так, да, хотел компараторы оставить в корпусе, для индикации,.