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

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY
Oleg1601
Сообщения: 57
Зарегистрирован: 26 апр 2015, 11:25

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

Сообщение Oleg1601 »

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

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

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

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

Что не решено:
В настоящий момент не решил как подключить остальные датчики протечки, всего их у меня плпнируется 6 штук.
Пробовал их подключать как в скетче 7-08_store (тут я подключил только 3 датчика), но это приводит к тому, что если какие-то прописанные в скетче датчики отключить, то сразу же срабатывает тревога с закрытием кранов, включением сирены и морганием светодиода.
Если кто-то знает, как это сделать правильно, подскажите пожалуйста.
Вложения
7_08_store.docx
(26.51 КБ) 11 скачиваний
7_07_store.docx
(25.1 КБ) 11 скачиваний
01.jpg
01.jpg (239.51 КБ) 326 просмотров
00.jpg
00.jpg (206.3 КБ) 326 просмотров
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1025
Зарегистрирован: 22 окт 2010, 23:57

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

Сообщение Mr.Kubikus »

Привет!
Прикрепите, пожалуйста, ваши исходники в виде простых текстовых файлов.
С уважением, Григорий
GitHub FB ВК
Oleg1601
Сообщения: 57
Зарегистрирован: 26 апр 2015, 11:25

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

Сообщение Oleg1601 »

Вот, пожалуйста.
Помимо этого, я пробовал соединять выходы датчиков, вернее их компараторов, параллельно, подавая сигнал с их выходов на вход ардуины А0. Так всё работает - при попадании на любой из датчиков срабатывает сигнализация, однако тут есть нюанс - непонятно в каком месте именно протекло, поскольку при попадании воды на один из датчиков светодиоды DO-LED тревоги загораются сразу у ВСЕХ компараторов.
Вложения
7_08_store.docx
(26.51 КБ) 13 скачиваний
7_07_store.docx
(25.1 КБ) 8 скачиваний
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1025
Зарегистрирован: 22 окт 2010, 23:57

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

Сообщение Mr.Kubikus »

Вы прислали файлы в формате docx. Я не могу их открыть чтобы посмотреть исходный код. Нужны файлы с расширением *.ino.

Вот так выглядит содержимое файла docx:
image.png
image.png (113.95 КБ) 317 просмотров
С уважением, Григорий
GitHub FB ВК
Oleg1601
Сообщения: 57
Зарегистрирован: 26 апр 2015, 11:25

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

Сообщение Oleg1601 »

Так вы же попросили прислать исходники в виде текстовых файлов, вот и прислал в вордовском формате.
Файлы с расширением *.ino прикрепить не получается, потому вот:
Вложения
7_08_store.txt
(5.18 КБ) 8 скачиваний
7_07_store.txt
(4.69 КБ) 9 скачиваний
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1025
Зарегистрирован: 22 окт 2010, 23:57

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

Сообщение Mr.Kubikus »

Спасибо! Теперь я могу прочитать код.

Предлагаю для начала составить таблицу сигналов для Arduino UNO:

Код: Выделить всё

Контакт  Режим  Сигнал
======================
A0       IN     Датчик дождя №1 (в режиме Digital Input)
4        IN     Кнопка "Открыть"
5        IN     Кнопка "Закрыть"
6        OUT    Зуммер
7        OUT    Светодиод синий "Привод клапана включен"
8        OUT    Светодиод красный "Тревога"
9        OUT    Управление приводом клапана. Команда "Закрыть"
10       OUT    Управление приводом клапана. Команда "Открыть"
11       OUT    Светодиод зеленый "Дежурный режим"
Я все верно указал?
С уважением, Григорий
GitHub FB ВК
Oleg1601
Сообщения: 57
Зарегистрирован: 26 апр 2015, 11:25

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

Сообщение Oleg1601 »

Да, всё верно.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1025
Зарегистрирован: 22 окт 2010, 23:57

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

Сообщение Mr.Kubikus »

В настоящий момент не решил как подключить остальные датчики протечки, всего их у меня плпнируется 6 штук.
Пробовал их подключать как в скетче 7-08_store (тут я подключил только 3 датчика), но это приводит к тому, что если какие-то прописанные в скетче датчики отключить, то сразу же срабатывает тревога с закрытием кранов, включением сирены и морганием светодиода.
Если кто-то знает, как это сделать правильно, подскажите пожалуйста.
Могу рекомендовать следующее решение.
  1. Для подключения датчиков используйте входы A0-A5.
  2. Состояние датчиков получайте с помощью функции digitalRead() также как вы уже делаете в 7-08_store.ino.
  3. Чтобы иметь возможность селективно выводить датчики из логики аварийной защиты используйте дополнительный код или аппаратное решение.
  4. Аппаратное решение заключается в добавлении на каждый вход An, переключателя с двумя положениями:
    "Защита по датчику An ВКЛЮЧЕНА" - Датчик подключен к входу.
    "Защита по датчику An ВЫВЕДЕНА" - Датчик отключен от входа. Переключатель подтягивает вход An к шине питания +5V через резистор.
    Такое решение позволит визуально контролировать какие датчики у вас сейчас выведены из защиты. Для исключения ложных срабатываний при переключении датчика используйте программную задержку на формирование внутреннего сигнала "Авария"
  5. Программное решение можно реализовать путем добавления на каждый вход An дополнительной переменной AlarmReactionEnable[n], которую следует использовать в логической функции для формирования результирующего признака аварии:

    Код: Выделить всё

    // AlarmReactionEnable[n]==1 - Защита по датчику включена
    // AlarmReactionEnable[n]==0 - Защита по датчику выведена
    
    for(n=0;n++; n<=5) {
      AlarmReaction[n] = (A[n]==0) and (AlarmReactionEnable[n]==1)
    }
    
    Соответственно вам надо будет придумать какой-либо интерфейс для ручного изменения переменных AlarmReactionEnable[n] во время работы системы. Можно использовать компьютер через USB порт или отдельную аппаратную клавиатуру и дисплей.
С уважением, Григорий
GitHub FB ВК
Oleg1601
Сообщения: 57
Зарегистрирован: 26 апр 2015, 11:25

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

Сообщение Oleg1601 »

Аппаратное решение конечно интереснее, поскольку не нужны средства коммутации в виде переключателей, НО использовать дополнительно компьютер или отдельную аппаратную клавиатуру с дисплеем вообще не вариант, слишком уж это геморройно.
Oleg1601
Сообщения: 57
Зарегистрирован: 26 апр 2015, 11:25

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

Сообщение Oleg1601 »

Да, хотел спросить, платы компараторов должны размещаться вместе с датчиками или их можно установить отдельно, например в корпусе устройства? Сами датчики, при этом будут соединяться с ними при помощи разъёмов.
Так, кстати, физическое отключение прописанных в скетче датчиков срабатывания тревоги не вызывает.
Ответить