Все мы когда-нибудь видели подобные картины в зарубежных фантастических фильмах и мечтали: «Когда-нибудь такое будет и у нас». Спешу вас обрадовать — подобие увиденного можно реализовать уже сейчас и без гигантских затрат.
Небольшой экскурс в том, что сейчас называют «умный дом». Вот что скажет нам википедия:
«У́мный дом (англ. digital home) — жилой автоматизированный дом современного типа, организованный для удобства проживания людей при помощи высокотехнологичных устройств. Под «умным домом» следует понимать систему, которая должна уметь распознавать конкретные ситуации, происходящие в здании, и соответствующим образом на них реагировать: одна из систем может управлять поведением других по заранее выработанным алгоритмам. Основной особенностью интеллектуального здания является объединение отдельных подсистем в единый управляемый комплекс.
Важной особенностью и свойством „Умного дома“ отличающим его от других способов организации жизненного пространства является то, что это наиболее прогрессивная концепция взаимодействия человека с жилым пространством, когда человек одной командой задает желаемую обстановку, а уже автоматика в соответствии с внешними и внутренними условиями задает и отслеживает режимы работы всех инженерных систем и электроприборов.
В этом случае исключается необходимость пользоваться несколькими пультами при просмотре ТВ, десятками выключателей при управлении освещением, отдельными блоками при управлении вентиляционными и отопительными системами, системами видеонаблюдения и сигнализации, воротами и прочим. В доме оборудованном системой „Умный дом“ достаточно одним нажатием на настенной клавише (или пульте ДУ, сенсорной панели и т. д.) выбрать один из сценариев. Дом сам настроит работу всех систем в соответствии с Вашим пожеланием, временем суток, Вашим положением в доме, погодой, внешней освещённостью и т. д. для обеспечения комфортного состояния внутри дома.»
В моем случае, я расскажу как организовать управление нагрузкой (розетки, лампы накаливания, etc) при помощи распознавания голосовых команд и озвучить все это неплохим русским голосом.
Технические подробности
1-wireДля начала нам, конечно же, необходимо определиться с технологиями управления электропитанием устройств. На текущий момент таких имеется множество. Самая, пожалуй, простая, популярная и недорогая в реализации, это 1-wire от компании Maxim/Dallas. Технология 1-wire далеко не нова и известна уже около 10 лет. 1-wire широко применяется как в быту, так и в промышленных системах.
Преимущества 1-wire
- Простая и понятная архитектура сети
- Низкие требования к кабелям
- Большая протяженность линии
- Низкая стоимость и простота компонентов
- Открытый протокол и доступное ПО для программирования
- Возможность в определенных ситуациях обходиться без питания
Как известно, плюсов без минусов не бывает. Вот они:
- Низкая скорость передачи данных
- Обязательное наличие мастера, ведущего сети
Видно, что плюсов технологии гораздо больше, чем минусов. Остановимся подробнее на обязательном требовании к наличию мастера сети.
Дело все в том, что устройства с точки зрения организации обмена данными пассивные элементы цепи. Компоненты 1-wire не могут без специального запроса посылать в сеть данные. Таким образом устройства не могут общаться друг с другом без «активного» ведущего. Элементы сети являются всегда ведомыми. Мастер в сети 1-wire только один. Именно он инициирует, контролирует и управляет работой сети и подключенных к сети устройств. В зависимости от используемого программного обеспечения, мастер 1-wire линии может по-разному работать со своими подопечными, но только он в конечном итоге может опросить состояние конкретного элемента, а также послать запроса на получение от этого элемента какой-либо информации. Например, если нам необходимо в режиме реального времени выводить значение температуры с множества датчиков, то мастер сети в цикле будет по очереди опрашивать эти датчики. Отвечать мастеру по сети может только одно устройство. В качестве мастера может выступать МК (микроконтроллер), который может при соответствующем ПО напрямую включаться в сеть 1-wire к одному из своих портов ввода-вывода. Мастером может выступать также ПК (персональный компьютер), использующий специальные элементы сопряжения, позволяющие соединять 1-wire с COM-портом или USB-портом компьютера, такие как DS9097 или DS9490.
Собственно, работа ПК в качестве контроллера нас и интересует. Специальный элемент сопряжения выглядит примерно так:
Как видно, это небольшой переходник, имеющий с одной стороны USB, с другой — разъем RJ-11 для подключения элементов сети 1-wire (элементы 1-wire мы можем вешать на стандартный телефонный кабель — дешево и сердито).
X10
Другая технология под названием Х10 использует для передачи данных метод частотного уплотнения в обычной электросети квартиры.Плюсы:
- Легка в установке
- Никаких дополнительных проводов в квартире
- Распространенный стандарт, много исполнительных элементов
- Относительно низкая стоимость и простота компонентов
- Не требует дополнительного электропитания
- Медленная передача данных
- Большинство элементов не поддерживает команду статуса (т.е. не узнать текущее состояние устройства)
- Дороже чем 1-wire
Будем считать, что с технологией управления электропитанием мы определились.
Едем дальше — видеонаблюдение
Ведь хочется иногда посмотреть, что творится дома, пока вы на работе, в отпуске, на даче, etc? У меня есть домашние питомцы и при длительном отсутствии хочется посмотреть на них и даже поговорить. Цели могут быть разными. Что нам для этого потребуется?
В первую очередь — компьютер. Он будет ядром, головой нашей системы «умный дом». Именно к нему мы подключим управление электропитанием наших домашних устройств посредством мастера сети 1-wire или Х10, к нему же мы подключим и камеры видеонаблюдения. В моем случае, я выбрал обычные простые web-камеры среднего качества. Подключаться все будет через USB. Ограничение на длину кабеля в 5 м, обходилось мной в виде покупки длинных активных USB кабелей, где возможно, и связкой кабелей через USB-хабы с внешним питанием (возможно, кто-то предложит другое решение — буду рад услышать). У меня вышло в итоге 4 веб-камеры для всех помещений квартиры.
Учим компьютер понимать нас и разговаривать
Для меня «умный дом» в первую очередь — это интерактивность. Для этого мы его научим разговаривать и понимать в свою очередь нас.Мои исследования показали, что достойный уровень распознавания речи в данный момент может дать только Google. Я думаю, все знакомы с его замечательным голосовым поиском и переводчиком, которые могут здорово упростить жизнь владельцу мобильного устройства. Народные умельцы вычислили, что, куда и как надо отправить, чтобы получить из звукового файла текст.
То же самое и с синтезом — я не стал сильно заморачиваться и воспользовался тем же Google. На мой взгляд, синтезированная речь на достаточно неплохом уровне.
Объединяем
Самым удобным интерфейсом управления умным домом и связкой ПО я счел веб-интерфейс. Координированием работы ПО будет заниматься специально написанный демон на perl
Подводим итоги
В этой небольшой статье я рассмотрел минимально необходимые, с моей точки зрения, компоненты нашего «умного дома». Тут нет технической реализации — только краткий теоретический обзор. В следующих статьях я по-шагово опишу каждый компонент системы, его техническую и программную реализацию.
Используемые материалы
- http://ab-log.hidden/smart-house — замечательный ресурс по созданию «умного дома»
- ru.wikipedia.org — куда-же без нее ;)
Первой жертвой нашего интереса станет система видеонаблюдения.
Что, зачем и почему
Как я уже писал, ядром нашей системы станет персональный компьютер. К нему мы подсоединим все наши системы и именно он будет всем этим управлять. Требования к железу исходят из необходимых задач, но для нас хватит и не шибко мощного. В моем случае, главное требование было бесшумность и маленький размер системного блока. Выбор пал на моноблок. Intel Atom — в качестве процессора и жесткий диск на SSD для уменьшения шума. Операционной системой выступает Ubuntu Linux. Выходит в достаточно приемлемые деньги. Выглядит примерно так:
Вернемся к нашим баранам. Как я уже писал, видеонаблюдение будем строить
на основе простеньких USB web-камер, дополнительной опцией которых
может выступать микрофон. Например, таких:
Софт
Подробности реализации программной части читайте на специализированном сайтеИтого
В этой статье мы научились получать изображение с наших камер и сохранять их в виде снимка раз в секунду в раздельных директориях.