Защита от протечки
Защита от протечки
Здравствуйте. После того как посреди ночи у меня разорвало магистральный фильтр и затопило всю квартиру, а заодно и пару квартир соседей живущих ниже, я озадачился вопросом собрать защиту от протечек воды.
Для реализации этого были приобретены плата Arduino UNO, драйвер двигателей L298N, несколько датчиков дождя и пара электрических приводов крана, которые и будут установлены на шаровые краны стояков горячей и холодной воды, и в случае протечки будут перекрывать воду.
Поскольку программист из меня никакой, то после обзора и анализа нескольких десятков самых разных схем и проектов, моя конструкция пришла к следующему виду.
Датчик дождя подключен к аналоговому входу А0.
При обнаружении протечки моргает красный светодиод (пин 8) и зуммер (пин 6) прерывисто пищит.
Зелёный светодиод дежурного режима при этом гаснет. Горит он только когда "сухо".
Приводы кранов (моторы) при этом закрываются. На закрытие уходит где-то 7 секунд, после чего в приводе срабатывают встроенные концевые выключатели и мотор останавливается. После закрытия крана светодиод и зуммер продолжают прерывисто моргать/пищать (только если на датчике будет вода – если нет, то не будут).
После того как кран закрылся и датчик дождя высох, кран сам по себе не откроется. Чтобы открыть кран, нужно кратковременно нажать на кнопку «Открыто».
Примечание:
Если, вдруг, во время срабатывании тревоги, нажать кнопку открытия крана, то загорится соответствующий светодиод и раздастся непрерывный писк (в течении, примерно, 7 сек) после чего сигнал сигнализации продолжит свою работу, поскольку протечка не устранена. Кран при этом не откроется.
Кроме автоматического режима ведено ручное управление – при нажатии кнопки (пин 5) мотор запускается и горит красный светодиод «Закрыто». Закрытие происходит примерно за 7 сек.
По нажатию второй кнопки (пин 4) мотор запускается в другую сторону и горит соответствующий светодиод «Открыто».
Светодиод дежурного режима при ручном управлении не гаснет.
Скетч устройства: 7-07_store
Что не решено:
В настоящий момент не решил как подключить остальные датчики протечки, всего их у меня плпнируется 6 штук.
Пробовал их подключать как в скетче 7-08_store (тут я подключил только 3 датчика), но это приводит к тому, что если какие-то прописанные в скетче датчики отключить, то сразу же срабатывает тревога с закрытием кранов, включением сирены и морганием светодиода.
Если кто-то знает, как это сделать правильно, подскажите пожалуйста.
Для реализации этого были приобретены плата 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 (239.51 КБ) 325 просмотров
-
- 00.jpg (206.3 КБ) 325 просмотров
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1025
- Зарегистрирован: 22 окт 2010, 23:57
Re: Защита от протечки
Привет!
Прикрепите, пожалуйста, ваши исходники в виде простых текстовых файлов.
Прикрепите, пожалуйста, ваши исходники в виде простых текстовых файлов.
Re: Защита от протечки
Вот, пожалуйста.
Помимо этого, я пробовал соединять выходы датчиков, вернее их компараторов, параллельно, подавая сигнал с их выходов на вход ардуины А0. Так всё работает - при попадании на любой из датчиков срабатывает сигнализация, однако тут есть нюанс - непонятно в каком месте именно протекло, поскольку при попадании воды на один из датчиков светодиоды DO-LED тревоги загораются сразу у ВСЕХ компараторов.
Помимо этого, я пробовал соединять выходы датчиков, вернее их компараторов, параллельно, подавая сигнал с их выходов на вход ардуины А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: Защита от протечки
Вы прислали файлы в формате docx. Я не могу их открыть чтобы посмотреть исходный код. Нужны файлы с расширением *.ino.
Вот так выглядит содержимое файла docx:
Вот так выглядит содержимое файла docx:
Re: Защита от протечки
Так вы же попросили прислать исходники в виде текстовых файлов, вот и прислал в вордовском формате.
Файлы с расширением *.ino прикрепить не получается, потому вот:
Файлы с расширением *.ino прикрепить не получается, потому вот:
- Вложения
-
- 7_08_store.txt
- (5.18 КБ) 8 скачиваний
-
- 7_07_store.txt
- (4.69 КБ) 9 скачиваний
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1025
- Зарегистрирован: 22 окт 2010, 23:57
Re: Защита от протечки
Спасибо! Теперь я могу прочитать код.
Предлагаю для начала составить таблицу сигналов для Arduino UNO:
Я все верно указал?
Предлагаю для начала составить таблицу сигналов для Arduino UNO:
Код: Выделить всё
Контакт Режим Сигнал
======================
A0 IN Датчик дождя №1 (в режиме Digital Input)
4 IN Кнопка "Открыть"
5 IN Кнопка "Закрыть"
6 OUT Зуммер
7 OUT Светодиод синий "Привод клапана включен"
8 OUT Светодиод красный "Тревога"
9 OUT Управление приводом клапана. Команда "Закрыть"
10 OUT Управление приводом клапана. Команда "Открыть"
11 OUT Светодиод зеленый "Дежурный режим"
Re: Защита от протечки
Да, всё верно.
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1025
- Зарегистрирован: 22 окт 2010, 23:57
Re: Защита от протечки
Могу рекомендовать следующее решение.В настоящий момент не решил как подключить остальные датчики протечки, всего их у меня плпнируется 6 штук.
Пробовал их подключать как в скетче 7-08_store (тут я подключил только 3 датчика), но это приводит к тому, что если какие-то прописанные в скетче датчики отключить, то сразу же срабатывает тревога с закрытием кранов, включением сирены и морганием светодиода.
Если кто-то знает, как это сделать правильно, подскажите пожалуйста.
- Для подключения датчиков используйте входы A0-A5.
- Состояние датчиков получайте с помощью функции digitalRead() также как вы уже делаете в 7-08_store.ino.
- Чтобы иметь возможность селективно выводить датчики из логики аварийной защиты используйте дополнительный код или аппаратное решение.
- Аппаратное решение заключается в добавлении на каждый вход An, переключателя с двумя положениями:
"Защита по датчику An ВКЛЮЧЕНА" - Датчик подключен к входу.
"Защита по датчику An ВЫВЕДЕНА" - Датчик отключен от входа. Переключатель подтягивает вход An к шине питания +5V через резистор.
Такое решение позволит визуально контролировать какие датчики у вас сейчас выведены из защиты. Для исключения ложных срабатываний при переключении датчика используйте программную задержку на формирование внутреннего сигнала "Авария" - Программное решение можно реализовать путем добавления на каждый вход An дополнительной переменной AlarmReactionEnable[n], которую следует использовать в логической функции для формирования результирующего признака аварии:
Соответственно вам надо будет придумать какой-либо интерфейс для ручного изменения переменных AlarmReactionEnable[n] во время работы системы. Можно использовать компьютер через USB порт или отдельную аппаратную клавиатуру и дисплей.
Код: Выделить всё
// AlarmReactionEnable[n]==1 - Защита по датчику включена // AlarmReactionEnable[n]==0 - Защита по датчику выведена for(n=0;n++; n<=5) { AlarmReaction[n] = (A[n]==0) and (AlarmReactionEnable[n]==1) }
Re: Защита от протечки
Аппаратное решение конечно интереснее, поскольку не нужны средства коммутации в виде переключателей, НО использовать дополнительно компьютер или отдельную аппаратную клавиатуру с дисплеем вообще не вариант, слишком уж это геморройно.
Re: Защита от протечки
Да, хотел спросить, платы компараторов должны размещаться вместе с датчиками или их можно установить отдельно, например в корпусе устройства? Сами датчики, при этом будут соединяться с ними при помощи разъёмов.
Так, кстати, физическое отключение прописанных в скетче датчиков срабатывания тревоги не вызывает.
Так, кстати, физическое отключение прописанных в скетче датчиков срабатывания тревоги не вызывает.