Некоторое время назад мною была создана первая версия автоматизированной системы обеспечивающей управление электричеством и подачей воды в квартире. За прошедшее время система претерпела довольно серьезные изменения и была внедрена в квартире. О всем по порядку ниже. Для понимания о чем пойдет речь, нужно ознакомится со статьей по первой версией автоматизированной системы. Теперь система состоит из 3-х блоков, блок управления электропитанием, блок управления подачи воды и блок мобильной связи. Основной принцип работы системы не поменялся, блок мобильной связи был разработан с нуля, остальные блоки были доработаны.  По сравнению со старой версией блока, из него были убраны встроенные на плате реле, вместо них используются 12 вольтовые реле на дин рейку китайской фирмы Geya.  Добавлен еще один канал для управления реле - в итоге стало 4-ре управляющих канала. На крышку блока также как и раньше выводится индикация наличия напряжения после реле - так сделано на случай если реле замкнет и не отключит питание, будет видно какое реле вышло из строя. На реле есть светодиод он обозначает что реле включено или не включено. В блок добавлена функция: если реле разомкнуто и напряжение все равно есть, на индикацию сигналов находящаяся на кнопке перехода режимов (круглый красный светодиод) будет выдан сигнал аварии по наличию напряжения (подробнее о индикаторе сигналов будет написано ниже). От твердотельного реле решил отказаться, по причине того что оно полностью не перекрывает напряжение (ток), так-же появились сомнения что при скачке  напряжения или пробое оно поведет себя адекватно и гарантии что напряжение снято - нет. С корпуса блока убрал индикацию режима работы блока (она осталась на кнопке перехода в режимы) Знаю что во мне погиб перфекционист, и в щитке можно было сделать все более идеально, но для меня было самое главное что при разводке придерживался принципа отделения проводов 12 и 220 Вольт.  Из особенностей блока: так как каналов на все желания не хватило, применил нестандартные способы реализации подключения управляющего канала к 2-м реле. В первом случае общее управление  раздельными фазами (на рисунке реле 3.1 и реле 3.2) - минус такого подключения нельзя контролировать наличие напряжения на выходе с обоих реле. Во втором случает увеличение  пропускной способности по току (на рисунке реле 2.1 и реле 2.2). Так как реле у этой фирмы максимально на 16 ампер, то подключил так - таким образом у меня запитана плита с духовкой (искал информацию по такому типу подключения, иногда такое реализуют) - может у кого есть опыт по эксплуатации по такому типу подключения поделитесь в комментариях. Главное изменение (которое вызвало бурю эмоций в предыдущей статье) - полностью исключил использование напряжения 220 вольт в блоке. Были убраны двигатели приводов  вентилей на 220 вольт, и на их место установлены двигатели под напряжение 12 вольт (корпуса остались те же). В связи с этим был изменен алгоритм работы по закрытию вентилей. Теперь принцип работы  открытия/закрытия вентиля основан на 2-х реле (для каждого вентиля) - одно реле разрешает работу вентиля (подает питание от общих 12 вольт), 2-ое реле задает  направление открыть/закрыть. Такое подключение дало независимость от наличия питающего напряжения которая была в предыдущей версии блока.  Добавлен датчик обнаружения воды на полу (датчик наличия воды). Алгоритм работы блока дополнился - датчик проверяет наличие воды, если она обнаружена - перекрывает оба вентиля и подает  сигнал на индикацию. Особенность в алгоритме по датчику наличия воды: если состоялось перекрытие воды по датчику наличия воды, то при  исчезновении сигнала о наличии воды - блок автоматически не открывает вентилей, для открытия вентилей требуется нажатия кнопки "смена режима" на корпусе  блока. При этом при нажатии кнопки происходит проверка, если датчик все еще будет находить воду - вентиля не откроются (типа сначала убери воду/найди почему на датчик  попала вода, потом открывай вентиля).  Датчик скомпонован из простейшего датчика воды с алиэкспресс и корпуса для телефонной розетки с разъемом RJ12, в принципе можно поставить любой который  замыкает контакты. Добавлен функционал по профилактике вентилей - если после последнего закрытия вентилей прошло более 45 дней то оба вентиля закрываются и примерно через 5 секунд открываются(в данный момент это функционал еще тестирую). Нюансы блока: Режим работы со стиральной машиной в блоке оставил без изменений. Если в блоке установлен режим работы ручной то внешние команды от блока управления электропитанием игнорируются. В будущем планирую по такому-же алгоритму подключить посудомоечную машину.  Как мне кажется это важный блок, сообщающий о том что произошла протечка воды. Даже если вентили перекрыли воду на стояках, то все равно надо как можно раньше  убрать воду которая уже вылилась в "неположенное место", не говоря уже о том случае что вода может попасть в область контроля датчика другими неконтролируемыми  способами (отопление и прочее). Блок основан на ардуино нано и GSM модуле на SIM800L. По поводу соединения этих 2-х плат с друг другом - работает, но не очень хороший вариант, слишком  мало памяти на ардуино для реализации на ней всего функционала который хотелось бы, поэтому реализовал частичный функционал (запрос и парсинг баланса, отправка  разных сообщений ). Платка SIM800L очень придирчива к напряжению и не всегда какая-то стабильная, поискал бы ей замену при случае. На корпусе блока мобильной связи  имеется светодиод который показывает текущее состояние блока и выключатель питания блока.  Алгоритм работы блока: при включении питания инициализируется модуль SIM800L. При неудачной инициализации через 2-3 минуты инициализация автоматически повторяется,  всего 3 цикла повторов инициализаций. Если после всех циклов не удалось проинициализировать модуль SIM800L светодиод показывающий текущее состояние начинает  светится постоянно - что означает инициализация не имела успеха. Если инициализация прошла успешно то блок переходит в ожидание команд на отправку СМС сообщений,  примерно через 5 минут отправляется запрос текущего баланса. последующие запросы баланса производятся раз в 3 дня. Если баланс низкий - светодиод текущего состояния мигает. Нюансы блока: СМС сообщения могут отправляться на телефонные номера до 3-х штук включительно, они записаны в энергонезависимую память ардуины, долго думал как  заносить номера в память ардуины, от реализации  кнопками блока пришлось отказаться так как это требует очень большого прорабатывания алгоритма работы с кнопками и не гарантирует правильного сохранения номера, также  была идея при подачи питания с помощью кнопки переводить блок в состояние настройки номеров по присылаемым СМС, но это потребовало больше памяти, поэтому отказался  от этого варианта. Так как все-таки часто этого делать не требуется, то остановился на варианте: вынуть ардуино из блока, подключить по USB к компу и через windows программу задать номера. (если у кого есть свое видение как это можно реализовать изящнее буду признателен если поделитесь в комментариях). Так-же узкое место блока  мобильной связим это текст СМС с балансом, каждый оператор присылает баланс в своем стиле который может меняться, так-же еще может вставить рекламу, что затрудняет  анализ текста баланса, в общем существует шанс что в определенный момент блок не сможет узнать баланс. Также В блоке реализована очередь на 3 отправляемых сообщения, в случае занятости SIM800L (такая ситуация возможна при инициализации или отправке запроса баланса)  сообщения будут сохранены и отправлены позднее после высвобождения SIM800L. Добавил в блок вспомогательный функционал - веду счет дней когда последний раз на номера отправлялось сообщение и если это было более чем 30 дней назад, то автоматически на записанные номера отправляется профилактическая СМС с текущим балансом - т.е. если раз в 30 дней не  пришло СМС, то с блоком что-то случилось (это функционал ввел совсем недавно и сейчас он еще тестируется).   Блок мобильной связи отправляет СМС по аварии в любом режиме работы. Сделал так на случай если спишь или не надолго ушел из дома и не переводил в дежурный режим, или просто "завис" в  компьютере, телевизоре и прочее и не замечаешь что начала течь вода. Естественно блок мобильной связи делался с расчетом на отправку любого сообщения задаваемого по интерфейсу. Принцип передачи информации между блоками: все блоки на одной линии RS-485 (программный протокол тот-же что был и раньше) блок управления электропитанием остался  мастером отправляет команды и ведет опрос состояний блоков, блоки подачи воды и блок мобильной связи отправляют ответную информацию когда приходит запрос по их адресу, опрос блоков происходит с частотой 2 Гц.Так как на кнопке-клавише перехода режимов индикатор сигналов один (круглый красный светодиод) то при одновременном срабатывании сигналы имеют разный тип индикации и приоритет выдачи.  2 импульсных сигнала - обнаружена протечка  3 импульсных сигнала - есть напряжение при выключенном реле  4 импульсных сигнала - аварийное отключение питания (если стиральная машина производила стирку и при этом пропало питание) светится постоянно - идет стирка 5 импульсных сигналов - SIM модуль не проиницилизировался или низкий баланс на счете SIM карты Реле фирмы Geya показывают себя достаточно неплохо, работают больше года - полет нормальный, претензий к ним нет (пока что). Если у кого есть большой опыт эксплуатации таких реле, буду благодарен если поделитесь им в комментариях. Установка контакторов вместо реле показалась мне не сильно рациональной, т.к. каких-то плюсов в этом я не увидел, а место в щитке они занимают существенно больше. Вся система в целом потребляет в дежурном режиме (3,3Вт) 11-20 мА по 220В, в основном режиме при работе 6 реле (8Вт) 35-40мА по 220В. Цену системы довольно трудно оценить: примерные расходы на добавленное оборудование из основного : 12 вольтовый блок питания на дин рейку для питания всей системы ~800 рублей, реле Geya ~700 рублей за штуку (4200 руб за все), 12 вольтовые моторы приводов вентилей по ~500 рублей штука, модуль SIM-800L ~500 рублей, около 3000-4000 рублей ушло на кабели 12 Вольт и 485 интерфейса проложенные по квартире. В итоге ценник на систему существенно возрос и перешел грань "для побаловаться" - Хотя все зависит от получаемого дохода ))Пользуюсь системой постоянно, уже сильно привык и вижу в ней удобство. В дальнейшем планирую ещё добавлять функционал и улучшать ее. В планах добавить блок регулировки отопления (квартирные радиаторы отопления), блока автоматизации приточной вентиляции (по типу устройства описанного ранее в своей статье "Автоматизация проветривания комнаты через окно и что из этого вышло" - скорее всего просто переделаю из него). Так-же уже довольно сильно назревает выделения в отдельный блок мастера шины RS-485 который также будет выступать как задающий внешние настройки для блоков, отображения в графическом виде текущего состояния блоков и голосовое оповещение об аварийных состояниях или требующих срочного принятия мер - его планирую реализовывать на Raspberry Pi. - Но это уже другая история! Инженер-программист