Расскажу, пожалуй, о нашем Безумном доме...
Исходные данные: раздельный санузел, полный ремонт санузла и коридора, что дает простор для проводного творчества. В процессе ремонта сразу были прокинуты кабели под датчики. Куда, сколько - ниже в тексте.
Задача - автоматизировать включение/выключение света, вытяжного вентилятора.
Начнем с периферии.
В качестве исполнительных устройств использованы сенсорные переключатели Livolo с радиоуправлением.
Ванная
Данное помещение по сути имеет две зоны: зона кратковременного пребывания перед раковиной и зона длительного пребывания в ванне. Для обработки этих зон была установлена пара общеизвестных PIRов HC-SR501 в версии с джампером, позволяющим переключать режим работы. Нам нужен такой режим работы, когда ПИР выдает на контроллер только сработку на сигнал определенного уровня. Все остальное (таймеры) будет делать контроллер. Такой режим позволяет мгновенно реагировать на движение. Над раковинной зоной был установлен обычный ПИР, над ванной - ПИР с закрытой изнутри наполовину линзой Френеля, для исключения его сработки при нахождении человека в раковинной зоне. Для определения наличия света в помещении был установлен один датчик света. Я не нашел его маркировку, но он простой как валенок - питание и логический ноль/единица на выходе. чувствительность сработки настраивается на плате.
Вот, как это выглядит на потолке. Все датчики были врезаны и вклеены в крышки коммутационных коробок, установленных в потолок. Все легко снимается, разбирается.
Алгоритм работы таков:
Подходит незнающий про автоматику гость и жмет на переключатель. Свет включается, датчик света это видит и начинает отсчет. По прошествии 5 секунд и неоткрытии двери, свет выключается. Аналогично это момент реализован в туалете. Также можно принудительно свет выключить.
Если человек заходит, то срабатывает первый ПИР - на раковинной зоной - и включается свет, если еще не был включен вручную Здесь при исчезновении движения тикает таймер до 30 секунд. Если человек полез в ванну, то система забивает на раковинный таймер и начинается отсчет 300 секунд.
Вышли/заснули в ванной, таймер протикал и свет отключился. Тут все просто.
Туалет
Помимо ПИРа и датчика света, в туалете еще был установлен УЗ-дальномер - HC-SR04. Только один ПИР в туалете не работает.
Начинка коробочки. Это старое фото с временным креплением дальномера. Сейчас все сделано аккуратнее. Дальномер вынесен от плоскости крышки для сужения угла обнаружения - нам нужна только зона над сидушкой без стен, полочек и прочего. В каждую коробку приходит по два 4-жильных кабеля.
Алгоритм таков:
Открываем дверь, срабатывает ПИР. Уселись на трон, затихли.. Вот тут бы ПИРу бы и выключить свет, но в дело вступает дальномер. Он меряет расстояние от потолка вниз и сравнивает с опорным расстоянием. Если измеренное расстояние меньше/больше, то имитируем сработку ПИРа и далее все по новой. То есть можно и поспать... Вышли, таймер отсчитал 15 секунд и свет выключил.
Все казалось бы просто, но.. HC-SR04 с потолочным расположением и дистанцией до трона и обратно в 4 метра это очень веселое сочетание. Пришлось писать хитрый код, усредняющий измерения, адаптирующийся под уплывание опорного расстояния, а оно плавает в диапазоне 20 см. Пока во всей системе HC-SR04 является самым слабым местом.
Вентилятор
Вытяжка включается при любом из двух условий: Свет в туалете горит более 2х минут. Разность между влажностями в коридоре и в ванной больше чем 20 единиц. После исчезновения обоих этих условий система отсчитывает 2 минуты и выключает вентилятор. Само собой есть ручной режим. Датчик влажности и температуры врезан в трубу вытяжки из ванной.
Мозги
Все головные устройства были установлены в металлический шкафчик с монтажной платой. Там они стоят на пластиковых стойках (как, например, матплата в компе). Наверх выведены разъемы от датчиков и питание светодиодных лент. Вниз - 220В и ЮСБ.
В качестве контроллера был взят Ардуино Мега 2560. К нему из локальной периферии были подключены:
- часы (справа вверху на макетке) они будут нужны для дальнейшего развития.
- драйверы двигателей L298N (красный справа) - этими драйверами я управляю светодиодными лентами. Пока установлена лишь одна над раковиной. Далее будет добавлена лента под потолок в туалете. Обе этих ленты при отсутствии света в помещениях и коридоре в ночное время будут использованы в качестве ночного освещения вместо основного, чтобы не бить по сонным глазам. Сначала хотел сделать РЖБ-ленты, но с жабой договориться не получилось.
- Блок питания светодиодной ленты на 12В (слева)
- Преобразователь напряжения регулируемый с индикатором (слева вверху), от него питается сам контроллер.
- Приемник и передатчик 433 МГц вынесены наружу в отдельную коробочку - на фотке ниже она справа.
Все кабели от датчиков сводятся на D-разъемы с 25 ногами. Кабели дл ясветодиодных лент также приходят на свои разъемы. Распайка этих D-разъемов была самой муторной работой при сборке.
Дальнейшее развитие
В каждую комнату и в коридоры в процессе ремонта были прокинуты кабели под датчики - свет, ПИР, метео.
Уже куплен 4" сенсорный монитор Nextion для создания пульта управления.
Автоматическое управление светом планируется только в коридоре в урезанном режиме - плинтусная светодиодная подсветка в условиях темноты. Большой свет здесь будет лишь выключаться при отсутствии активности. Датчики в комнатах лишь для сбора дополнительной информации и управления ночным светом в санузлах. Но возможна реализация имитации присутствия в квартире, когда по определенному сценарию система будет включать-выключать свет в отсутствие жильцов.
Дочка любит засыпать при свете, а меня свет в ночи как-то раздражает. Повешу на отдельный маленький контроллер с релюшкой - по данным времени с основного контроллера будет отключаться спустя какой-то время.
В пути еще Езернет-шилд для тревожных оповещений и управления через инет и телефонная звонилка для тревожных оповещений, например, от датчиков протечки.
Итог. Да. это офигенно удобно. Привыкаешь быстро. Приходишь в гости к кому-нибудь, заходишь в С/У, а там темно..