Защита от протечек. Проба пера
- Войдите на сайт для отправки комментариев
Чт, 09/03/2017 - 12:41
Здравствуйте,
Очень хочется овладеть навыками схемотехники и программирования для Arduino.
Хотел начать с несложной, но полезной защиты от протечек.
На форуме масса примеров, но все очень навороченные, с которыми мне сразу не разобраться.
Итак, с чего я начал:
1. Arduino Uno
2. Моторизированный шаровый кран, 5-и проводной https://ru.aliexpress.com/item/1-2-DC12V-brass-2-way-electric-motorized-valve-NPT-BSP-automatic-ball-valve-5-wires/2041306163.html
3. Реле
Вот мой самый первый скетч (после мигания встроенным светодиодом):
int probe = 2; //датчик int button = 4; //кнопка открытия int rel_1 = 7; //реле in1 int rel_2 = 8; //реле in2 void setup() { Serial.begin(9600); //будем писать отладочную инфу, можно удалить pinMode(rel_1, OUTPUT); pinMode(rel_2, OUTPUT); pinMode(probe, INPUT); pinMode(button, INPUT); digitalWrite(probe, HIGH); digitalWrite(button, HIGH); digitalWrite(rel_1, LOW); //начальное состояние, 0 digitalWrite(rel_2, LOW); } void loop() { if (digitalRead(probe) == LOW) { Serial.println(" Close "); digitalWrite(rel_1, HIGH); //включаем оба реле digitalWrite(rel_2, HIGH); } if (digitalRead(button) == LOW) { Serial.println(" Open "); digitalWrite(rel_1, LOW); //выключаем оба реле digitalWrite(rel_2, LOW); } }
Для самого начала почти достаточно.
Хотелось бы услышать бэстпрактис, что у меня уже категорически неправильно сделано и решить 1-ю проблему: при перезагрузке Ардуины или пропадании питания кран то пытается открыться, то закрыться, в зависимости от положения. Хочется чтобы без явной команды краны не трогались. Я так думаю, нужно использовать сигнальные провода крана и считывать положение крана или есть способ лучше?
Кроме того, поднабравшись опыта, нужно будет реализовать:
1. Борьбу с "дребезгом". (прочитал про аппаратные и программные способы, пока не понял что правильно для датчиков протечки (обычные прободные))
2. Контроль обрыва датчика.
3. Звонок на телефон (заказан GSM модуль https://ru.aliexpress.com/item/mini-A6-GPRS-GSM-Module-Kit-Wireless-Exte...)
4. Закрытие при пропадании питания (при разрядке ИБП)
5. Переодическое закрытие
6. Контроль работоспособности (Watchdog)
Если подскажите что нужно еще и примеры реализации, то буду безмерно благодарен.
Спасибо.

опять с самого начала методология неверная.
1) нужен датчик протечки
2) там же есть сигнали открыт закрыт.
3) соответственно при включение проверяем а) датчик протечки б) если протечки нет проверяем датчик открыт закрыт если закрыт - открываем если открыт не трогаем. если протечка все наоборот и все.
сигнал по смс посылать только если протечка и потом проверять если закрылось то посылать сигнал протека-кран закрыт. если не закрылось проверили еще раз через несколько секунд. там же ест ьвермя закрытия. и если опять не закрылось мега сигнал протечка-кран НЕ закрыт. после этого бежать домой.
arDubino,
спасибо, но мне нужно как для самых маленьких( а то я не догоняю. Датчик протечки есть, но проводной датчик - это просто 2 контакта. "Там сигналы" - это где, на кране? У меня же задано положение начальное digitalWrite(rel_1, LOW); но при перезагрузке кран открывается на некоторое время.
ПС
GSM пока еще нету, даже не думал про логику пока
на твоем кране ж есть сигналы открыто закрыто. ты когда покупал то смотрел что берешь??
BL YW видимо блек и еллоу т.е. черный и желтый провод. первый заземляется видимо когда открыто желтый закрыто.
земля на белый идет.
на твоем кране ж есть сигналы открыто закрыто. ты когда покупал то смотрел что берешь??
Да, конечно, я же об этом в первом посту писал. Мне не столь важно положение крана (на данном этапе), там есть концевики и кран сам себя отключает в райних положениях. У меня-то больше вопрос был почему он открывается если у него начальное состояние закрыт? Ну т.е. мне бы хотелось чтобы Ардуина не трогала кран если нет явного указания на это. Перезагружается она или зависла, вода ли на нее льется) Но если кран закрыт, то он закрыт.
видимо потому что реле дает таки ток :))) а ток оно дает потому что выводы при перегрузке в состоянии видимо 1 или 0. читай даташиты и смотри в реле что включает
MIIIIIA начинайте плясать от этой схемы. RD(красный) BK BL YW(желтый) WТ(белый) . WT на вывод GND BL и YW на вход ардуины RD - на 1 канал реле BK на 2 канал реле.
qwone,
спасибо, плясать начал. Я понимаю, что нужно (можно) использовать состояние крана. Но никак не соображу как именно. C логикой беда(
Я читаю положение крана, если открыт, то реле в положение открыть, если закрыт, то реле закрыть. А далее как и было - если протечка, то закрыть. Если нажато "открыть", то открыть. Масло маслянное.
Тем более мне кажется правильнее чтобы основную часть времени ничего не проиходило. Т.е. ловим только состояние кнопок и датчиков - сработал датчик, закрыли кран и опять только ловим состояние. А у меня получается что сработал датчик и я постоянно в цикле пытаюсь закрыть кран, до тех пор пока не сработает другой датчик (кнопка), нет состояния ничегонеделанья.
Имеет ли смысл добавлять
delay(100);
// задержка для устранения дребезга после нажатия кнопок?
Еще вопрос, как правильнее делать: чтобы при включенном реле кран был открыт или закрыт? Если при включенном открыт, то хорошо, если ардуина сломается, то кран закроется, но когда реле под напряжением оно слегка греется (а в этом положении оно почти все время) и я вычитал, что оно может "залипнуть" и в ответственный момент не сработать (но и даже если не залипнуть, то под напряжением по-умолчанию это плохо)
Пробую осознать скетч от avton http://arduino.ru/forum/proekty/sistema-zashchity-ot-protechki-vody
Я читаю положение крана, если открыт, то реле в положение открыть, если закрыт, то реле закрыть. А далее как и было - если протечка, то закрыть. Если нажато "открыть", то открыть. Масло маслянное.
Ну во первых у крана не 2 состояния как у реле (открыто , закрыто), есть еще промежуточное . или промежуточные. Опять же лучше рассматривать кран как объект у которого есть методы Открыть и Закрыть. То есть по команде Открыто на движок подается положительное напряжение до тех пор пока не сработает концевик Открыто. И это произойдет через 10 секунд, что для процессора вечность. Метод Закрыто идет аналогично. На мотор подается Отрицательное напряжение до тех пор пока не сработает концевик Закрыто. Вот для того что бы управлять мотором надо 2 пина управления 00 стоит движок 01 мотор работает в + 10 мотор в 2-"
Замечательно было бы если Концевики были на размыкание в крайних положениях . Тогда просто собрали последовательну цепочку из мотора 2 выпрямительных диодов и концевиков. Один концевик отрубает ток в + в конечном положении, а другой в -. Так что подать нужное направление напряжения и подождать секунд 10 к кран будет закрыт или открыт. А так придется делать это программно.
ПС: Хотя кран не ворота . Но алгоритм похож http://arduino.ru/forum/proekty/avtomaticheskie-vorota-garazha#comment-266538
Замечательно было бы если Концевики были на размыкание в крайних положениях .
На самом деле так и есть, мотором можно управлять 2-я проводами, в крайних положениях по 2 концевика: 1 размыкает цепь, 2-й сигнальный. У меня в 1-м посте как раз сигнальные концевики не задействованы. Я не имел в виду что мотор постоянно под напряжением.
^ половинка диодного моста
))) Эта наскальная живопись называется паралельное встречное включение диодов.
))) Эта наскальная живопись называется паралельное встречное включение диодов.
ага, я понял. Я выше писал что так и реализовано.
хм, месяц прошел, а я все еще не определился как же управлять реле. Посмотрел пример qwone но там все-таки немного не про то. Меня интересует именно реле. С мотором у меня все хорошо.
Еще раз повторюсь, что именно мне не нравится, может кто-то предложит свежее решение:
1. способ подключения вижу только один - 2 реле которые перекидывают контакты от мотора на +или-. Рассматривал еще вариант с 4 реле, где каждый модуль на 1 провод, но там вообще все чревато КЗ.
2. Если использовать реле в положении "выключено - кран закрыт", то почти все время обмотку реле необходимо держать под напряжением, что вроде как не очень хорошо.
3. Если использовать реле в положении "включено - кран закрыт", то есть риск, что при выходе из строя управляющего устройства, кран просто не закроется в ответственный момент.
примерно с такой же системой вожусь, но у меня краны трехпроводные. Я использую транзисторные ключи.
Реле вполне можно использовать, и даже держать катушку под напряжением. Такие же реле в люстрах с дистанционным управлением и в других устройствах целыми днями работают. Можно конечно через минуту после подачи команды реле обесточивать. Ведь если мотор за это время не закрылся/открылся, то ему уже ничего не поможет.
У Ардуино есть энергонезависимая память EEPROM, в которую я записываю состояние мотора (открыт/закрыт), чтобы после внезапного отключения электричества знать, в каком состоянии я кран оставлял. Кроме того, электричество может пропасть в момент закрывания / открывания. Имеет смысл после включения электроэнергии закрыть кран, чтобы потом точно знать его состояние. И потом решить, надо его открыть или нет. Посмотрите алгоритмы работы фирменных систем
По последнему пункту: это может произойти и с фирменной системой. Выбирайте компоненты надежных фирм. Либо делать аналог Гидролок Виннер, который без внешнего контроллера обходится
Я для управления кранами использовал L298N https://ru.aliexpress.com/item/L298N-Module-Dual-H-Bridge-Stepper-Motor-...
Вот мой скетч но тут много чего лишнего емкостной датчик под крышкой унитаза, ультразвуковой дальномер, MQ-7 как датчик дыма для обнаружения курильщиков и включения вентилятора esp8266 для передачи по WIFI для расширения входов исползуется 74HC165
есть в протеусе только не знаю как его сюда залить
только почему кран Dy15 ?? у меня труба пластик 20 мм
afen потому что у этой трубы условный проход 15 внутри