Как настроить смартфоны и ПК. Информационный портал

«Умный дом» собственными руками. Создание программы для умного дома

  1. Проблемы, возникающие на пути
  2. Что в активе

В завершающей части цикла статей о создании и конфигурировании микросервера, собранного своими собственными руками, я планировал написать о том, как я героически внедрил еще и систему класса «Умный дом» на технологической базе все того же микросервера. Ну а что из этого получилось, читайте ниже.

Для чего может быть нужен «Умный дом»?

Концепция «умного дома» появилась не вчера и даже не позавчера. Автоматизированное и автоматическое управление домашним хозяйством зародилось в умах людей еще в конце XIX века, когда на смену настоящим лошадиным силам пришли стальные машины в массовом порядке. И именно тогда человек задумался, а ведь можно же объединить все приборы домашнего обихода в единую систему и управлять ими как тому душе захочется. Хочешь включай свет в душе на втором этаже выключателем в сарае, а хочешь включай систему обогрева просто звонком по телефонному номеру.

В умах мечтателей рисовались идиллистические картинки того, как человек, приходя домой, наслаждается комфортом, а все домашние заботы выполняются сами собой. Эти чаяния были воплощены, в том числе, и в многочисленных художественных произведениях, начиная от неподражаемого Чарли Чаплина и заканчивая смелыми произведениями писателей-фантастов. И во многом они предвосхитили будущее развитие домашней техники и ее интеграцию в единые системы. Но история пошла не совсем так, как виделось многим.

В нынешних, непростых условиях «умный дом» должен выполнять примерно следующий набор функций, далеко не всегда обязательных, но и не ограничиваясь их рамками. Начнем с самого простого. Управление светом. Умный дом должен включать освещение, когда темно и он регистрирует присутствие человека. А в светлое время суток и когда в помещении нет никого, электроэнергия должна экономится, поэтому лампочки жечь почем зря система не должна. Следующей функцией, реализуемой относительно легко, можно смело назвать регулирование климата в помещениях. В зависимости от температуры, умный дом включает либо обогрев, либо кондиционирование. Ну и в идеале еще управляет влажностью, что особенно важно в зимний период, когда с влажностью в нашем климате как-то совсем плохо.

Умный дом, вполне разумно нагрузить еще и различными охранными функциями. Он должен уметь распознавать своего хозяина и отпугивать чужаков включая свет, бытовые приборы и всячески имитируя присутствие хозяев на объекте. Кстати получая сведения о местоположении своего хозяина, приличный умный дом, к его приходу домой успеет привести микроклимат к заданному состоянию. А в промежутках, когда дома никого нет, дом будет стараться экономить энергию, будь то газ или электричество, по максимуму.

Что еще? Пожалуй, умный дом должен уметь управлять бытовыми приборами, желательно без лишних телодвижений со стороны жильцов. Так, возможно, что для управления телевизором, музыкальным центром и автоматическим пылесосом можно было бы использовать единый пульт или же обойтись вообще без пультов, применяя голосовое управление или жесты. А заодно, некоторым владельцам хотелось бы иметь возможность получать какую-то историческую статистику. Например, как изменялась температура в кладовке в течение года или как коррелируют расход воды и включенный свет в ванной комнате на втором этаже.

А вот такие смелые идеи, как автоматическая готовка завтраков, обедов или ужинов, уборка постелей, глаженье и складывание одежды и прочий домашний неквалифицированный труд, похоже так пока и остаются пока фантазиями литераторов. Хотя время от времени кто-то и пытается решить эти задачи, но в массы они так и не идут. И навряд ли пойдут, пока на рынке не появится комплексное решение, позволяющее решить без головной боли проблему сразу, целиком. Даже автоматизированные холодильники, заказывающие продукты питания с доставкой, по мере их расходования, как-то не прижились. Ведь важен не только холодильник сам по себе, но и вся инфраструктура вокруг него. Продукты в упаковке и с бирками, служба доставки, а заодно и угадыватель пожеланий хозяев, которым вдруг завтра захотелось жаренных креветок на ужин, а не надоевшая брокколи.

Методы реализации концепции «Умный дом»

С технической точки зрения тут все просто. Каждый умный дом делится на центральный контроллер, хранящий и обрабатывающий логику событий, датчики, собственно генерирующие события и разнообразные исполнительные устройства обрабатывающие приказы центрального контроллера. Собственно, это и есть система умного дома. В некоторых же случаях, при большом желании, можно еще добавить и некий интерфейс для коммуникации с пользователем. Это может быть пульт или пульты управления, программа на телефоне или планшете, либо вообще отдельное рабочее место, как в сериале Star Track.

Датчики и исполнительные устройства могут быть самыми разнообразными. К датчикам можно отнести любое устройство, которое может что-то измерить, начиная от уровня освещенности и заканчивая местоположением главы семьи в пространстве вне дома. Последний, правда совсем не типичный датчик, но все равно он может генерировать определенные события, на которые центральный контроллер может реагировать. Все скучно, неинтересно и предсказуемо. Впрочем, у исполнительных устройств все аналогично. Они могут что-то коммутировать, например, электропитание, что-то подкручивать, например, регулятор подачи теплоносителя или что-то нажимать, типа кнопки открытия ворот гаража. По большому счету, все действия, выполняемые исполнительными устройствами, так или иначе выполняются человеком.

А вот в качестве центрального контроллера может выступать либо универсальный компьютер, снабженный интерфейсами для взаимодействия с периферией умного дома, либо же вообще отдельное узко специализированное устройство, спроектированное только и исключительно под эти задачи. Но даже такое устройство есть ни что иное, как компьютер.

Именно на этом этапе, я хочу сразу заметить, что датчики и исполнительные устройства как-то должны общаться с центральным контроллером. Они должны с ним соединяться, это раз, и пересылать потоки данных в понятном для всех сторон виде, это два. С точки зрения физической организации тут доступно два основных варианта: проводное соединение и беспроводное соединение по радиоканалу. Экзотику типа оптического взаимодействия или передачи данных и команд на перфокартах пневматической почтой мы не рассматриваем. Кстати радиоканал может быть реализован на вполне широком спектре радиочастот, хотя производители оборудования стараются все же ограничиться нелицензируемыми частотами, доступными для гражданского населения.

Проблемы, возникающие на пути

Если бы мы жили в идеальном мире, то у нас не было бы никаких проблем, за исключением одной. Нам было бы слишком скучно жить в таком мире. Поэтому на пути реализации системы умный дом встает множество, вполне преодолимых затруднений, которые наполняют наш мир красками радости бытия, разумеется только в случае их удачного преодоления. А о потенциальных проблемах можно говорить много, долго и нудно.

Прежде всего стоит начать именно с физической среды по обмену информацией между центральным контроллером и всей периферией. Если используется радиоканал, то в городской застройке он может работать очень нестабильно из-за сильно загруженного эфира, особенно с учетом того, что многие производители оборудования совершенно игнорируют необходимость наличия гарантированной доставки сообщений. Более того, радиообмен данными потенциально уязвим для злоумышленников, ведь его очень просто прослушать, а меры кодирования передач подвержены компрометации. И вот ладно, если это был сигнал от датчика температуры за окном. А если это была команда отопительной системе? Или замкам на входной двери?

Но и с проводным соединением датчиков и исполнительных устройств, не все так просто. Для них требуется прокладка кабелей. И пускай это будет всего один или два тоненьких проводочка, но все равно ради них придется бурить стены, снимать подвесные потолки портить красоту прошедшего ремонта. Как разумно было бы предположить - проводную систему умного дома нужно спроектировать еще до начала ремонта вашего, пока еще глупого, дома. А реализовать, разумеется, на стадии ремонта. Иначе жгуты свисающих проводов будут обеспечены.

Казалось бы, тут решением может быть беспроводное соединение, если особенно дом загородный и плотность радиопомех там минимальна, но не стоит забывать и о питании различных датчиков и устройств. Если некоторые, далеко не все, датчики можно запитать от сменных батарей, то вот с исполнительными устройствами будет все не так просто. Мощные электромоторы требуют подведенного электричества из розетки. И не будет ли вам обидно, что ваш дом замерз только потому, что в кране системы отопления вдруг внезапно сели батарейки? Поэтому даже с беспроводными системами вероятность необходимости мудрить с проводкой остается весьма высокой. И еще немного по батарейному снабжению энергией. Их нужно периодически менять, но делать это будет лень уже после второй итерации. Человеческий фактор как ни крути. По крайней мере мы должны жить, а не заниматься бесконечной заменой элементов питания во всевозможных гаджетах.

Кстати, некоторые исследователи работают в направлении добычи энергии для питания датчиков из окружающего устройства эфира. Так уже представлены публике действующие прототипы датчиков температуры, которые заряжаются от радиоволн Wi-Fi точек доступа, а затем, когда энергии накоплено уже достаточно, подключаются к сети Wi-Fi и отправляют показания исполнительному контроллеру. Плюсом такой системы как раз и является то, что не требуется ни проводов для передачи информации, ни для питания. Но, например, датчик содержания CO 2 в воздухе запитать от точки доступа уже не выйдет, поскольку сам датчик для проведения измерений должен нагреваться до высокой температуры, а на это требуется уйма энергии.

Но и это еще далеко не все проблемы встречающиеся на пути внедрения системы умного дома на практике. В силу неорганизованности рынка, многие игроки на нем были вынуждены разрабатывать собственные стандарты обмена данными между периферией умного дома. Так появились на свет устройства, которые несовместимы друг с другом. И пытаясь автоматизировать свой дом, его владелец становится заложником фирмы производителя, поскольку не может перейти на устройства другого изготовителя по причине отсутствия совместимости. И дело тут далеко не в номенклатуре устройств или их стоимости у одной компании. А что будет если она сойдет со сцены в то время когда системы умного дома должны работать десять и даже двадцать лет? Что делать через 15 лет, если вышел из строя центральный контроллер? Затевать новый ремонт и полностью менять систему умного дома? Вопрос остается без ответа.

Но тут появился свет в конце тоннеля. На свет таки появились и постепенно разрабатываются доступные стандарты. И если даже зайти на русскоязычную версию Википедии, то только там можно насчитать как минимум девять различных стандартов коммуникации. И это не считая фирменных стандартов. Разумеется, пройдет некоторое время, и производители так или иначе примкнут и усилят некоторые стандарты как, например, это произошло с форматами видеодисков (а были DVD, Video Disk, Blue Ray, HD DVD и прочие). Только вот упражняться они будут за счет потребителя (и всегда так было). И в случае ставки не на того жеребца, можно приплыть к некоторому диссонансу уже через пару лет, попытавшись добавить еще один датчик к системе.

А удобство использования? Вот есть кнопка на стене, нажимая на нее я получают четкое действие. Если вместо кнопки там будет дисплей, то вместо единичного нажатия, я, вполне резонно, ожидаю увидеть там меню, которое потребует от меня не только мысленных, но и моторных усилий в виде множества нажатий на экран или клавиатуру. Друзья, это удобно только в космических фантастических фильмах, где герои нажимают тучу кнопочек перед каждой дверкой. А в реальной жизни все должно быть быстро и четко.

В завершение этой сентенции, я хотел бы упомянуть еще об одной проблеме, про которую обычно забывают. По мере усложнении системы она становится все менее и менее надежной. Самая простая система, где присутствует только положительная или отрицательная обратная связь - наиболее надежная. Представьте связку из термостата и газового клапана. Чем выше температура, тем сильнее термостат закрывает газовый клапан понижая тем самым температуру. А если туже функцию поддержания заданной температуры возложить на неизмеримо более сложное устройство, например, на компьютер? UEFI, BIOS, микропроцессор, северный и южный мосты, оперативная память, дисковая подсистема, блок питания, операционная система, программа управления… Чем больше элементов, тем меньше надежность. Ведь даже в теории управления при дублировании систем контроля, при различии их показаний предпочтение отдается тому показанию, которое получено из более простой системы. А что будет если ваш супернавороченный умный дом просто зависнет где-нибудь посредине января?

Подбираемся к практической реализации

В процессе реализации проекта по микросерверу я долго размышлял, для каких целей я могу использовать концепцию «Умный дом» в приложении к своему дому. Эти размышления так или иначе приводили меня к решению, что централизованный умный дом мне не нужен. Система отопления замечательно регулируется промышленным контроллером отопительного котла с выносным блоком от Siemens. И делает он это замечательно. Простота контроллера не позволяет ему зависнуть в самый неудобный момент. И эта простота проверена годами. И даже когда вышел из строя один из температурных датчиков, отопление не пропало, хотя и работало по весьма чудному алгоритму. Что, впрочем, честно отображалось и на контроллере.

Следить за температурой в доме и управлять некоторыми устройствами мне помогает система Кситал . И в случае чего, это простая система, мне подаст соответствующий тревожный сигнал. Не о том, что у меня заклинил шаровой кран на управлении отопления, а о том, что в помещении под контролем опасно понизилась температура. И сообщит мне об этом в виде SMS-ки. Система работает несколько лет без сбоев. Что еще нужно?

Охраной занимается отдельная система, вызывающая в случае чего вооруженную поддержку, а заодно оповещает и меня о несанкционированном доступе. И интегрировать ее с чем-то еще не стоит явно. Включать и выключать свет по расписанию, конечно, здорово. Но там, где мне нужно включить свет, когда кто-то есть, работает совершенно автономный датчик движения с реле. Выключать свет на удалении можно при помощи проходных выключателей , как раз и разработанных для длинных коридоров или лестниц. Такой выключатель позволяет включать и отключать свет или другую нагрузку из любой точки, нужно только грамотно развести проводку. Надежнее решения не придумать. А с имитацией присутствия успешно справляются автономные таймеры, управляющие нагрузкой.

Конечно, я подумывал о дистанционном включении насоса для полива огорода, либо об автоматизированном управлении ставнями и жалюзи. Но для полива достаточно лишь радиореле, которое способно подключать или отключать нагрузку по сигналу с брелока. А от идеи с управлением ставнями пришлось отказаться лишь только как я прикинул, что придется сделать, сколько стен вскрыть и сколько кабеля проложить, лишь только для того, чтобы подвести электропитание в нужные места. Получалась почти половина ремонта.

Была у меня идея и по объемному мониторингу температуры по всему дому. Дескать хорошо бы иметь статистку и понимать, как меняется с течением времени температура в каждом отдельном помещении строения. И сравнивать ее с другими параметрами. С исследовательской точки зрения это конечно интересно, но на практике потребовалось бы реализовать сеть из нескольких десятков термических датчиков, соорудить интерфейсы для их подключения. Интересно, реализуемо, но усилия совсем никак не коррелируют с результатом, поскольку нет конечной цели для чего это делается.

И вот зачем портить надежно и стабильно работающую систему ради какой-то непонятной идеи? Зачем собственноручно понижать надежность системы, ошибка в которой приведет к весьма существенным затратам? Вот и мне показалось, что совсем незачем и лучше не нагружать микросервер функциями «Умного дома».

Что в активе

Тем не менее, я все же прошелся по самым доступным, если не по всем, системам для автоматизации домашнего быта на основе Ubuntu или совместимых систем. Представленный ниже текст сократит время на поиск чего-то интересного для реализации в своих проектах.

CCU.IO

Весьма продвинутый фронт-энд и контроллер бизнес-логики от какого-то немецкого инженера. За время написания статьи, продукт лишился своего собственного домена и переехал на GitHub . Но, всем при том, система заслуживает внимания, поскольку имеет русскоязычную документацию и форум.

Технологически система реализована на языке JavaScript и библиотеке Node.js, что автоматически означает очень гибкую возможность по реализации каких-то своих функций или изменению стандартных механизмов. Только для этого требуется быть программистом, чего явно не хватает многим, очень многим. Хотя конфигурировать систему могут и обычные пользователи, если ознакомятся с документацией.

Система предназначена не только для автоматизации дома, но может применяться как нечто для визуализации и автоматизации процессов, либо для помощи людям с ограниченными возможностями. Для реализации всего многообразия применений можно использовать уже разработанные дополнения, в том числе и для организации различных пользовательских интерфейсов.

CCU.IO взаимодействует с внешними системами, датчиками и исполнительными устройствами посредством драйверов. Мне удалось насчитать более тридцати драйверов для различных устройств, начиная от взаимодействия с базами данных MySQL и электронной почтой, и вплоть до управления умными лампами Phillips или подключения к ресиверам Onkyo. Среди поддерживаемого оборудования можно найти, разумеется, 1-Wire, HomeMatic и некоторые другие.

В целом CCU.IO - настоящий комбайн, который может делать почти все и работает на почти любом оборудовании, начиная с Windows и Linux и заканчивая различными одноплатными компьютерами.

Domoticz

А это уже чистая система , центральный контроллер, предназначенный для создания системы класса «Умный дом». Domoticz выпускается под эгидой Open Source, поэтому может модифицироваться и дорабатываться без особых затруднений, что очень важно когда первоначальному автору просто надоест ее поддерживать. Как и CCU.IO Domoticz работает на всем, начиная от Windows и Linux, и заканчивая всевозможными встраиваемыми устройствами.

Среди поддерживаемых устройств и протоколов я насчитал почти сорок наименований, хотя среди них встречались и такие редкости как Logitech Media Server или SolarEdge Inverter. Тем не менее, найти то с чем можно спарить Domotics можно без особого труда.

К одной из наиболее интересных возможностей я бы отнес наличие возможности графического построения логики процессов работы контроллера. Подобная возможность позволяет создавать обратную связь на различные события в системе без использования тяжкого труда разработчика.

В целом, система сформирована весьма цельной и достойна тщательного с ней знакомства. Я даже установил ее на один из своих NAS-ов и мониторил его температуру на протяжении полугода. Тольку от этого никакого не последовало.

Jarvis

Еще одни немцы с очень продвинутой в визуальном плане системой . Причем классической системой, управляющей жалюзи, светом, замками и температурой. Всем этим можно смело управлять с единого экрана, а заодно видеть текущее состояние конкретных элементов. Все сделано с немецкой паталогической тягой к порядку. Придраться абсолютно не к чему, единственное что саму систему ни скачать, ни как-то получить еще. Текущий статус проекта непонятен. Но как минимум стоит посмотреть на реализацию, слишком уж она хороша.

MajorDoMo

Еще один конструктор для создания контроллера умного дома, но уже от русскоязычных разработчиков. Система реализована на языке PHP, но допускает свою доработку, вернее доработку внутренней логики, на языке визуального построителя, JavaScript, Dart, Python или XML. Хотя, как разрабатывать логику на XML, лично мне не очень понятно.

Проект разрабатывается весьма активно, имеет обширную community и поддерживает порядка двух десятков различных систем и протоколов. Сам же MajorDoMo распространяется под открытой лицензией MIT, это значит систему можно свободно распространять и модифицировать как угодно, не стоит только забывать оставлять уведомления об авторстве. Систему однозначно стоит рассмотреть, возможно, как одного из главных кандидатов.

Оборудование

Что касается периферии, то тут с одной стороны все радужно, есть множество различных устройств от разных производителей, но с другой, если вспомнить о совместимости, то становится уже грустнее. Особенно, если учесть, что далеко не все что совместимо будет работать. Но что-то на рынке, тем не менее есть, на что стоило бы обратить внимание.

Белорусские товарищи разработали и активно продают свою систему класса умный дом F&Home . В систему входят как отдельные устройства, которые можно применять раздельно от всего, так и интегрирующие комплексы, позволяющие связывать все в единую систему.

Специалисты Z-Wave.me предлагают великое множество устройств для автоматизации домашнего дома. Разумеется, вся их продукция совместима с протоколом Z-Wave и может применяться в умных домах, построенных на указанной платформе. У ребят встречаются и настоящие редкости, например, адаптер для считывания оборотов вращения с механического счетчика электроэнергии. Что уже не мало, особенно в плане апгрейда существующей системы электропитания.

Итоги

И подходя к завершению повествования хочется подвести итог. Итог всему, что было сказано в рамках проекта «Домашний микросервер». Мое мнение таково - домашнему микросерверу быть. Это центр развлечений вашего дома и с течением времени он будет все больше и больше обрастать дополнительными функциями. А по прошествии расчетного времени использования, его заменит новый сервер, более производительный, более надежный и более энергосберегающий.

Получен ли какой-то зримый экономический эффект, если сравнить самосборный микросервер с готовыми комплектами? С одной стороны - да, оборудование и программы обошлись в вчетверо меньшую сумму, чем соразмерный по производительности «готовый» NAS или сервер. С другой, пришлось потратить изрядно времени на установку и настройку всего этого добра. А время ресурс ой какой дорогой.

А получилось ли расширить функционал, как планировалось в самом начале? А вот это да. В плане функциональности свобода была получена феноменальная. Созданный микросервер можно грузить любой задачей, и он справится.

Построить умный дом своими руками может быть тяжело человеку, который не имеет специального образования. Конечно, все можно сделать намного проще, купив готовые модули умного дома. Однако лучше создавать систему самостоятельно.

Что такое "умный дом"

Прежде чем начинать работу по самостоятельному созданию различных удобств, надо разобраться, что такое система умный дом и на что она способна.

Умный дом нельзя охарактеризовать двумя-тремя функциями. Для более короткого определения следует сказать, что в такой системе все коммуникации подключены к компьютеру и управляются с его помощью. Система тщательно отслеживает температуру в комнатах дома, наблюдает и фиксирует изображения с видеокамер. С помощью компьютерных технологий можно регулировать свет, температуру пола или батарей, включать различные электроприборы и многое другое.

Степень оснащенности дома различными модулями определяется подключенной комплектацией или же фантазией и творческими умениями мастера.

Почему лучше начинать обустройство такой системы в доме самостоятельно? Потому что при этом хозяин сам сможет регулировать различные модули, усложнять и модифицировать их. Он будет иметь на руках открытый код системы, который сможет исправлять по своему усмотрению. Готовые модули и комплекты не дают такой свободы действий. Они полностью зависят от компании-разработчика.

Еще один плюс самостоятельной разработки в том, что мастер не затратит больших средств ни на установку модулей, ни на ремонт. Если будет поставлен готовый комплект, то любая доработка будет стоить довольно дорого. В придачу, сам комплект тоже станет значительной статьей расходов.

То, что умеет система умный дом, во многом зависит от фантазии ее создателя.

С чего начинать

Начинать обустройство умного дома надо с самых основных вещей.

  1. Понадобится компьютер.
  2. Придется создать сайт своего дома, где будут отражаться различные функции.
  3. Надо будет установить специальный софт (программы). Для этого потребуется уточнить совместимость программного обеспечения с компьютером".
  4. Составить схему.
  5. Первые подключаемые функции могут быть самыми простыми. Начать можно с системы наблюдения за домом и контролем температуры в помещениях.

Детали обустройства

  1. Установка локального сервера на Linux.
  2. Настойка сервера Apache.
  3. С помощью Linux можно организовать систему видеонаблюдения. Для этого потребуется ZoneMinder.
  4. На Apache нужно создать сайт для умного дома.
  5. Для наблюдения можно установить различные сигнализации, USB - камеры. Также надо поставить датчики температуры и установить соответствующее ПО.

Это минимальный набор, с которого может начаться обустройство умного дома. Разобравшись в деталях таких операций, можно переходить к более сложным вещам. Для того чтобы недорого создать полноправную систему управления различными коммуникациями и функциями оборудования в помещениях дома, нет необходимости что-то изобретать. В интернете можно найти массу решений для создания комфорта и уюта.

Некоторые мастера уже давно выкладывают свои разработки и предлагают опробовать их пользователям.

Создание сайта своего дома может показаться одним из самых сложных пунктов. На самом деле готовый модуль сайта можно найти сегодня в интернете. Тем, кто хочет заняться разработкой самостоятельно, надо сделать следующее.

  1. Разобраться в php и научиться работать с MySQL.
  2. В основе системы управления функциями умного дома будут лежать различные скрипты. Их не надо разрабатывать, большинство из них доступны пользователям. Надо только понять последовательность установки.
  3. Скрипты будут регулярно работать и обновлять информацию о состоянии системы.
  4. Пригодится в работе также библиотека JQuery. С ее помощью можно даже создать отличный внешний вид сайта, не изучая каскадных таблиц стилей.
  5. Работу с базами данных можно облегчить, если использовать движок для управления сайтом.

Функции умного дома

Функции и возможности умного дома почти безграничны. Поэтому рассмотреть придется только некоторые из них.

Свет можно регулировать при помощи нескольких устройств. Например, для регулирования уровня освещенности можно установить диммеры. Такие устройства, правда, будут работать только в определенных случаях. Они не станут срабатывать в лампах дневного света.

Недостаток диммеров - постоянный легкий шумовой фон.

Выключатели устанавливаются на том месте, где обычно находятся выключатели света. С их помощью свет можно включать и выключать.

Бытовые приборы

Бытовую технику можно включать и выключать с помощью таких же выключателей, как и в случае с регулировкой света.

Не стоит делать все системы дома полностью автоматическими. Лучше оставить возможность обычного ручного управления. Иначе в случае неполадок придется потрудиться.

Наблюдение

Систему наблюдения можно оборудовать так, что за камерами, расположенными в доме, появится возможность следить даже с рабочего места. Это не очень сложно, систему видеокамер можно установить в качестве первой функции будущего умного дома. Суть такой технологии в том, что сигнал от камер передается на определенный компьютер. Данные с датчиков и камер можно получать даже на портативные устройства.

Одновременно с видеокамерами можно установить и датчики движения. Они будут работать по тому же самому принципу. Чтобы наладить ПО в компьютере, надо только скачать соответствующие модули с открытым кодом. Для того чтобы в будущем уметь регулировать и модифицировать код, придется немного разобраться в устройстве таких систем. Это проще, чем изучение программирования.

Желание и труд помогут преодолеть препятствия в освоении увлекательной науки по созданию умного дома. Надо только не бояться нового, и со временем появится даже увлеченность процессом.

Видео

Предлагаем вашему вниманию следующие видеоматериалы на тему создания умного дома:

4 октября 2011 в 19:06

«Умный дом» собственными руками

  • Компьютерное железо

Представьте картину: вы входите домой, автоматически включается свет и приятный женский (мужской, впрочем - кому как) голос приветствует вас. Вы небрежно бросаете фразу в сторону микрофона: «Дом, включи мой компьютер». Через несколько секунд слышите привычный шелест кулеров своего родного железного коня.

Будущее - сейчас

Все мы когда-нибудь видели подобные картины в зарубежных фантастических фильмах и мечтали: «Когда-нибудь такое будет и у нас». Спешу вас обрадовать - подобие увиденного можно реализовать уже сейчас и без гигантских затрат.

Небольшой экскурс в том, что сейчас называют «умный дом». Вот что скажет нам википедия:

«У́мный дом (англ. 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 мы можем вешать на стандартный телефонный кабель - дешево и сердито).

Другая технология под названием Х10 использует для передачи данных метод частотного уплотнения в обычной электросети квартиры.

Плюсы:

  • Легка в установке
  • Никаких дополнительных проводов в квартире
  • Распространенный стандарт, много исполнительных элементов
  • Относительно низкая стоимость и простота компонентов
  • Не требует дополнительного электропитания

Минусы:

  • Медленная передача данных
  • Большинство элементов не поддерживает команду статуса (т.е. не узнать текущее состояние устройства)
  • Дороже чем 1-wire

Х10 подойдет ленивым и тем, кто не желает по каким-то причинам тянуть дополнительные кабеля. Я попал в ту и другую категорию, поэтому мой выбор остановился на Х10 =)

Едем дальше - видеонаблюдение
Ведь хочется иногда посмотреть, что творится дома, пока вы на работе, в отпуске, на даче, etc? У меня есть домашние питомцы и при длительном отсутствии хочется посмотреть на них и даже поговорить. Цели могут быть разными. Что нам для этого потребуется?

В первую очередь - компьютер. Он будет ядром, головой нашей системы «умный дом». Именно к нему мы подключим управление электропитанием наших домашних устройств посредством мастера сети 1-wire или Х10, к нему же мы подключим и камеры видеонаблюдения. В моем случае, я выбрал обычные простые web-камеры среднего качества. Подключаться все будет через USB. Ограничение на длину кабеля в 5 м, обходилось мной в виде покупки длинных активных USB кабелей, где возможно, и связкой кабелей через USB-хабы с внешним питанием (возможно, кто-то предложит другое решение - буду рад услышать). У меня вышло в итоге 4 веб-камеры для всех помещений квартиры.

Учим компьютер понимать нас и разговаривать
Для меня «умный дом» в первую очередь - это интерактивность. Для этого мы его научим разговаривать и понимать в свою очередь нас.
Мои исследования показали, что достойный уровень распознавания речи в данный момент может дать только Google. Я думаю, все знакомы с его замечательным голосовым поиском и переводчиком, которые могут здорово упростить жизнь владельцу мобильного устройства. Народные умельцы вычислили, что, куда и как надо отправить, чтобы получить из звукового файла текст.
То же самое и с синтезом - я не стал сильно заморачиваться и воспользовался тем же Google. На мой взгляд, синтезированная речь на достаточно неплохом уровне.
Объединяем
Самым удобным интерфейсом управления умным домом и связкой ПО я счел веб-интерфейс. Координированием работы ПО будет заниматься специально написанный демон на perl

Подводим итоги

В этой небольшой статье я рассмотрел минимально необходимые, с моей точки зрения, компоненты нашего «умного дома». Тут нет технической реализации - только краткий теоретический обзор. В следующих статьях я по-шагово опишу каждый компонент системы, его техническую и программную реализацию.

Всем добрый день. В качестве хобби написал программу, которую можно использовать как часть системы “умный дом”. Чтобы сразу заинтересовать читателя, продемонстрирую некоторую малую часть сценариев использования ПО:



Вкратце:

1. Основная часть ПО - сервер, который крутится на ОС Windows, написан на C#;
2. Клиент на ОС Android, написан на Java;
3. Планируются клиенты на UWP и IOS, web-клиент.

Некоторые особенности ПО:

1. Конструктор сценариев. Создание сложных сценариев с циклами и условиями;
2. Работа с устройствами ZWave и Modbus;
3. Вложенность сценариев. Можно один сценарий использовать в другом в качестве процедуры;
4. Запуск удаленного сценария. В сценарии текущего сервера можно запускать сценарий удаленного;
5. Возможность добавлять в систему свою функциональность посредством создания модулей;
6. Запуск сценариев с помощью смартфона.

Конструктор сценариев

Программа позволяет создавать как сложный сценарий, так и одиночное действие.

Одиночное действие - это сценарий, который содержит только одно действие. В нем нет возможности создавать циклы и условия, а можно лишь “замапить” определенное действие на кнопку в UI клиента.

В качестве примера приведу свой способ их использования: создал категорию “Розетки”, в ней собрал все лампы, бытовой вентилятор, светильники, телевизор и компьютер. Теперь, чтобы включить одно из этих устройств, следует открыть клиент на андроиде, зайти в категорию “Розетки” и выбрать соответствующий пункт меню.

Обычно, одиночные действия использовать неудобно, так как различные устройства удобно запускать при каком-то условии или хотя бы не по одному. Именно для этого нужен “сложный сценарий”, о чем далее.

Конструктор сложного сценария позволяет создавать сценарии с циклами и условиями. Имеет два режима: просмотр и редактирование.

Пример сценария в режиме просмотра
Пример сценария в режиме редактирования





ЕСЛИ и ИНАЧЕ в конструкторе . В данных конструкциях можно создавать цепочки условий с логическими операторами НЕ, ИЛИ, И. Конструктор позволяет создавать группу условий и использовать операторы непосредственно с группой. Если условие остается пустым, то оно автоматом вычисляется как ложь.

Есть некоторое количество встроенных проверок (такие как проверка на дату, время и т.д.), а также некоторое количество в качестве подключаемых модулей.

Цикл ПОКА в конструкторе . Цикл состоит из условия и тела. Условие создается аналогично тому, как он создается в конструкции ЕСЛИ (группы условий, операторы НЕ, ИЛИ, И).


Основное окно конструктора сценариев



Также можно настроить следующие параметры сценариев:

Запуск извне (вкл/выкл), позволяет запретить или разрешить запуск сценария с другой машины или из клиента;
- Автоматический запуск сценария при старте системы;
- Выбор категории сценария, позволяет отображать в UI клиента пункт меню для запуска сценария в определенной категории.

Работа с устройствами ZWave и Modbus

На данный момент система поддерживает устройства ZWave (на основе openzwave) и Modbus RTU (на основе nmodbus).

ZWave - это беспроводной протокол связи, использующийся в домашней автоматизации. Для реализации протокола используются миниатюрные маломощные радиочастотные модули. Сейчас на рынке ZWave представлен довольно обширный перечень устройств, таких как ZWave лампочки, розетки, релейные модули, переключатели, замки, датчики температуры (влажности, движения, протечки), терморегуляторы, устройства управления кондиционером и т.д. Также распространены мультисенсоры - устройства, сочетающие несколько датчиков (например, датчик освещенности, присутствия, температуры, дверной датчик и т.д.), что весьма привлекательно с точки зрения финансовых затрат и расположения в помещении.

В моей программе модуль ZWave позволяет производить все стандартные операции с устройствами, такие как удаление, добавление устройств, сброс контроллера. Также можно использовать несколько ZWave контроллеров, конечный пользователь не увидит разницы. К примеру, можно осуществить снятие показаний температуры с датчика, который соединён с контроллером «А», и запустить кондиционер с помощью контроллера «Б». Тут нет ни каких ограничений, любое действие и проверка осуществляются стандартными способами и добавляются в конструкторе сценариев.



Рынок ZWave устройств достаточно широк. Имеется множество исполнительных устройств, таких как релейные модули, лампочки, устройства для работы с кондиционером, терморегуляторы, регуляторы теплого пола, розетки, переключатели. Так же существует множество датчиков: датчик открытия двери, температуры, датчик протечки, датчик присутствия и т.д. В качестве контроллера ZWave можно использовать USB stick.


Основное окно ZWave модуля


Окно выбора контроллера и операций с ним


Выбор узла (датчики, переключатели и т.д.)


Выбор параметра узла (включен/выключен, различные числовые параметры, такие как температура, влажность и т.д.)

Modbus - это проводной протокол, применяемый для связи между электронными устройствами, которые его поддерживают. В контексте нашей программы может быть полезен для работы с релейными модулями, для чего я его и использую у себя дома.

Вложенность сценариев

Вложенность сценариев используется для декомпозиции сценариев умного дома. Часто бывают такие ситуации, когда одно действие участвует во многих сценариях (например, отключение всех бытовых устройств может происходить по нажатию на пункт меню в программе, по сценарию выхода всех wi-fi устройств из сети, просто по таймеру), и поэтому каждый раз создавать (или править) одинаковый алгоритм в каждом из сценариев не представляется удобным. Для этого существует такое встроенное действие, которое позволяет запускать уже созданный сценарий в текущем. Также это может быть удобно, когда часто добавляются новые бытовые устройства (или другие частые изменения в алгоритме работы “умного дома”), для изменения работы всех сценариев достаточно будет изменить лишь один сценарий, который используется в них.

Запуск удаленных сценариев

Посредством запуска удаленных сценариев можно запускать сценарий одного сервера в сценарии другого. В качестве примера хочу привести мой вариант использования этого функционала: создал сценарий (на домашнем сервере) под названием “свет+мультимедиа”, который включает свет в помещении, запускает мой десктоп (используя WakeOnLan), включает тв, к которому подключен десктоп и ждет пока на нем (десктопе) запустится экземпляр нашей программы, затем запускает на ней сценарии “включить музыку” и “звук на 20 единиц” с помощью запуска удаленных сценариев.

Написание собственных модулей

Помимо того, что пользователь может создавать сложные сценарии штатными средствами, программа позволяет “расширять” ее пользовательскими модулями на C#. Все элементы действий и проверок в сценариях (такие как “Проверка по дате”, “Показать сообщение”, “Действие Modbus”, “Действие ZWave” и т.п.) это классы, унаследованные от ICustomAction и ICustomChecker. Следуя определенным правилам, любой пользователь может создать свой модуль, который может быть как очень простым (например, озвучивание текущей температуры воздуха за окном), так и сложным, за которым может крыться целый фреймворк. Достаточно наследоваться от интерфейсов ICustomAction или ICustomChecker, расставить несколько атрибутов, скомпилировать DLL и добавить в программу через вкладку “МОДУЛИ” (полная инструкция создания модулей).

Запуск сценариев с помощью смартфона

*пока только OS Android

Сценарии отображаются на главном экране и в категориях. Категория является виртуальной “папкой”. При запуске сценария обновляется статус соответствующей кнопки.

Экран настроек соединения
Экран с запуском сценариев





Помимо этого, есть возможность запускать сценарии из меню быстрого запуска на PC.
Меню быстрого запуска



В дальнейшем планируется клиент для UWP, IOS, web, а так же голосовой модуль для управления устройствами (планы на ближайшее будущее) и создания сценариев с помощью голоса (стратегические планы).

Видео напоследок:

P.S.: Если нашли ошибку в программе, то пожалуйста, перешлите её на

Действия домашней аппаратуры, которые она должна выполнить при определенных внешних условиях или при поступлении команды, называют сценарием. Его программирование подразумевает голосовое, пультовое управление и контроль с помощью цифровой аппаратуры.

Обзор возможностей по управлению

Сценарии настраиваются на защиту и помощь владельцу дома. Их разработка довольно долгая, но для большей функциональности умного дома следует очень тщательно подходить к этому вопросу.

Самые популярные сценарии

Запрограммированная модель «поведения» датчиков обычно срабатывает в отношении следующих факторов:

  • определенное время суток (включается свет, компьютер, отключается микроволновка и так далее);
  • датчики могут реагировать на движение и изменение температуры;
  • поступила команда на выполнение (она может быть отдана с телефона или ноутбука, в том числе в online-режиме, а также голосом или при помощи пульта).

Можно запрограммировать любую индивидуальную ситуацию, начиная от возвращения семьи домой и заканчивая отъездом в отпуск. Набирают популярность нестандартные сценарии:

  • уход за аквариумными рыбками и комнатными растениями;
  • подсушивание крыши и подъездов к дому;
  • наполнение и нагрев бассейна и сауны.

Отдельно создаются сценарии для обеспечения безопасности дома. Если посторонними совершена попытка проникнуть в помещение, система включает сигнализацию, оповещает владельца и охрану.

Проектировка и программирование системы

Создание умного дома состоит из следующих пунктов:

  1. Набросок общего плана. В нем подробно рассматривают этапы взаимодействия внутренних составляющих сценария с пользователем и между собой, а также отклик программы на нестандартные ситуации.
  2. Подбираются или пишутся с нуля драйвера для дома, и подходящий интерфейс. Не для каждого устройства производитель предлагает оригинальный драйвер, поэтому задача специалиста – его создать. Дополнительно идет написание различных модулей. Что касается интерфейса – обычно все устройства управления разбиваются на отдельные группы; за каждой дальнейшее программирование закрепляет свой интерфейс. Его можно установить для каждого пульта, но это будет неудобно в первую очередь для самого пользователя.
  3. Затем идет непосредственно программирование на основе предыдущих пунктов. Используя ранее логически выверенный проект, подготовленное для него программное обеспечение, специалисты приступают к написанию собственно программы сценария.
  4. Монтаж, тестирование, сдача в эксплуатацию.

Интерфейс для создания сценария управления умным домом

Но перед этим выбираются сценарии, которые в полной мере будут отвечать потребностям заказчика. Процесс создания умного дома долгий, настройка программного обеспечения и тестовый запуск потребуют немало времени.

Обычно фирмы, предоставляющие подобные услуги, включают в обслуживание абонента вторичное программирование системы, которая чем-то не устроила заказчика. Резервные копии создаются в обязательном порядке и сохраняются отдельно для каждого дома, чтобы в случае неполадок можно было все переустановить.

Лучшие статьи по теме