1 дек. 2010 г.

Использование сенсорных сетей при построении систем "умный дом".

При создании системы "умный дом" рано или поздно придется решать проблему обеспечения устойчивой, надежной и главное недорогой связи между всеми устройствами, входящими в "умный дом". Конечно, можно использовать "по старинке" проводную связь, но даже в случае какого-нибудь 1-Wire, объем прокладываемых проводов может быть значительным. А если какой-нибудь из проводов будет перебит, порван или прокушен домашним животным, то смерть если не всей системы, то хотя бы какой-то ее части будет гарантирована (а если все дублировать, то дом будет напоминать логово паука).
Решение данной проблемы лежит на поверхности - нужно использовать беспроводную связь! Но тут сразу появляется ряд вопросов, требующих разрешения...
Во-первых, стандартов беспроводной связи сейчас придумано великое множество. Для наших целей подойдет что-нибудь не особо быстрое - мы же не собираемся гонять фильмы между дверным замком и настенным выключателем; компактное и потребляющее очень мало энергии - каждые два дня лазать под потолок, чтобы сменить батарейку у сдохшего контроллера датчика освещенности, мягко говоря утомительно. Еще как нельзя кстати будет шифрование, контроль за подключающимися устройствами и прочие вещи - если система начинает "беситься" из-за шуточек кульхацкера Васи под окном, то такая система никому не нужна.
Сюда, как раз подходят различные стандарты передачи данных для сенсорных сетей - потребляют мало энергии, могут быть защищены от постороннего вмешательства. Тот же датчик освещенности или выключатель света в комнате вполне можно рассматривать как сенсор (устройство с ограниченной функциональностью), а главный контроллер системы "умный дом" как координатор сети. Кроме того, протяженность такой сети может быть достаточно большой за счет того, что сенсоры "помогают" друг другу с передачей сигнала - усиливают и ретранслируют его.
Стандартов таких, придумано великое множество - ZigBee, Z-Wave (http://www.z-wave.ru/), One-Net и другие... Правда, с Z-Wave в России все печально - в нем используется частота, которая находится в полосе частот, подлежащих регистрации. Конечно, мощность излучателей маленькая, могут и не поймать, но все же лучше не рисковать...
С One-Net все несколько веселее:
В России при использовании трансиверов в системах охранной радиосигнализации диапазон 865…868 МГц также не требует лицензирования (ссылка)
Непонятно, каким боком система "умный дом" относится к охранной радиосигнализации - ведь, например, охрана дома лишь одна из множества возможностей, реализуемых системой. Кроме того, непонятно - нужна ли лицензия для создания систем охранной радиосигнализации или нет.
C ZigBee дело обстоит несколько проще - он использует радиодиапазон, разрешенный для использования в России без получения лицензии (2.4 ГГц). Но тут встает уже другая проблема - спецификация ZigBee доступна лишь при условии некоммерческого использования. Если планируется коммерческое использование или разработка (коммерческая и/или некоммерческая, устройств или ПО - из текста на вики не совсем понятно, как и из англоязычных источников), то нужно вступить в ZigBee Alliance, что мне совсем не хочется делать. Кроме того, наличествуют проблемы совместимости между ZigBee и лицензией GPL, что совсем печально...
По идее, если купить уже готовый ZigBee-модуль и гонять через него данные с помощью GPL-ной программы, использующей API, предоставленное производителем, то вступать в ZigBee Alliance не надо. Но этот вопрос требует уточнения - кто понимается под разработчиком - человек, использующий уже готовый ZigBee модуль в своих приложениях или человек, который сидит, например в TI, и пишет прошивки для ZigBee-модуля, чтобы тот работал?
На Западе системы "умный дом" с сетью на основе ZigBee разрабатывает компания Embisys - проект называется iHabitat. Еще, исследования в области применения сенсорных сетей в "умных домах" ведутся в исследовательском институте CEESAR (Center of Excellence for Embedded Systems Applied Research).


Теперь, поговорим немного о самом "умном доме". Тема данной статьи совпадает с темой моей дипломной работы, поэтому реализовать что-то реально работающее жизненно необходимо.
Вначале надо определиться, что вообще нужно от подобной системы? Я выделил для себя ряд задач, которые было бы неплохо отдать на откуп "умному дому":
  • Контроль за состоянием окружающей среды внутри и снаружи дома (для начала температура и все такое прочее...)
  • Управление освещением (можно использовать и X10, но он сильно заточен под электрооборудование и электрическую сеть дома, да и имеет свои недостатки, которых лишено беспроводное решение. Можно попробовать распотрошить модуль X10 и воткнуть в него ZigBee-трансивер, но цена устройств пугает)
  • Контроль доступа в помещение (в моем случае - в комнату в коммуналке) - либо по ключу, либо будут какие-нибудь датчики движения.
  • Слежение за статусом мест общего пользования (тоже актуально для коммуналки)
  • Возможно будет реализован простенький климат-контроль
  • Согласование работы исполнительных механизмов с расписанием пользователя - если по данным Google-календаря пользователь уже давно не дома и вернется он не скоро - нет смысла держать включенным освещение и поддерживать заданную температуру.
  • Работа с системой связи - поскольку проводного телефона давно нет, а мобильник относится к проприетарному и сильно закрытому ПО и железу, то под системой связи будет пониматься Skype, Jabber, E-mail и т.д. (возможна передача звука по сенсорной сети, также попробую прикрутить синтез и распознавание речи)
  • Работа с системой водоснабжения - автоматическая подача воды по расписанию, установка нужной температуры и т.п. (если меня не пристрелят остальные жильцы коммуналки)
  • Если осилю - контроль за энергопотреблением.
  • Будет удаленный доступ - либо по SMS, либо через Интернет.
  • Всякие маленькие радости наподобие умного будильника и прогноза погоды в постель.
  • Если не будет лень - пожарная сигнализация.
Естественно, надо еще обдумать все эти пункты, написать ТЗ и только после этого начинать усердно паять, выбирать топологию сети и писать исходный код.

К счастью, сердце системы уже есть - это отладочная плата с Линуксом на борту. Я выбирал ее не только "для поиграться", но и с прицелом на создание в будущем системы "умный дом" на ее основе. Плата будет не только главным контроллером, но еще и главной управляющей консолью всей системы, благо прикрутить к ней какой-нибудь сенсорный экран от StarterKit не составляет труда.

P.S. Можно почитать про реализацию системы "умный дом" на форуме iXBT. Попутно можно насладиться людьми, уверяющими, что использование обычного PC вместо специализированного контроллера вполне оправданно, ибо "опыт показывает, что PC не ломаются по несколько лет, Windows не глючит" и вообще - использование PC в системе, которая не имеет права на ошибку вполне оправданно (почему - см. выше).

14 комментариев:

  1. А зачем использовать сенсорные сети? Чем не подойдёт передатчик типа wifi или bluetooth, проводов нету. Да, передатчик должен быть в центре дома, и должен добивать до всех частей дома, но нет необходимости динамически строить топологию сети. Узким местом это дело не будет, так как большого трафика у нас нет. Надёжность? Вопрос тонкий, какие у тебя соображения по этому поводу?

    ОтветитьУдалить
  2. Рюкзак, дело в том что приемопередатчиков должно быть много - десятки штук. Делать это на блютуз и тем более на wifi крайне расточительно.
    Возможно, имеет смысл обратить внимание на камешки CC2530 от TI. Они дешевы, достаточно производительны, экономичны + к ним предоставляется бесплатно для коммерческого использования Z-Stack (без исходников, к сожалению). С другой стороны древнее 8051 ядро дает о себе знать, иногда в очень неожиданных ситуациях :)

    ОтветитьУдалить
  3. @Ryukzak, еще не стоит забывать, что стандарты, на которых основаны сенсорные сети, заточены под снижение энергопотребления трансивером - например, он включается только в моменты передачи данных. Насколько мне известно, в стандартах для wifi или bluetooth нет специальных оговорок на тему снижения энергопотребления. А как я уже писал, лазать каждые пару дней куда-то, чтобы сменить батарейку - утомительно.
    Кроме того, в случае WiFi, канал с огромной, для наших целей, пропускной способностью будет зря простаивать. Как и в случае с блютус, только там канал не особо большой.

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

    Насчет надежности. Если в сенсорную сеть ввести второй маршрутизатор, который будет передавать данные координатору, то маршрутизатор может сам стать координатором, в случае отказа главного. Причем, насколько мне известно, это реализовано именно на уровне протокола ZigBee. Чтобы сотворить такое с WiFi или Bluetooth, придется немного поизвращаться.
    Насчет сравнения надежности радиопередающих модулей Wifi\ZigBee\etc мне ничего не известно...
    P.S. Если один удаленный от базовой станции модуль получает помощь по передаче сигнала только от второго модуля, который ближе и второй модуль выйдет из строя, то первый модуль не сможет ничего передать, хоть он и работоспособен. В случае в WiFi или Bluetooth подобная авария невозможна.
    Но, ИМХО, в квартире подобные ситуации тоже невозможны.))

    ОтветитьУдалить
  4. интересно! спасибо за статью. Не знал про сенсорные сети, хоть сам и плотно интересуюсь системами "Умный дом". Прочитал что устройства для таких сетей не дешевы и прожорливость велика. (из статьи журнала "Хакер"). И эти отладочные платы штука не дешевая. Я все думал про устройства типа ipad есть не столько дорогие до 10 т.р. и на их основе сделать "Умный дом" для андроида написать прогу которая будет все контролировать.

    ОтветитьУдалить
  5. Сам трансмиттер для сенсорной сети жрет весьма мало энергии - это прописано даже в самом стандарте. Стоимость одного ZigBee-модуля - в районе 1000 рублей. Стоимость отладочной платы - примерно 2000-5000 рублей.
    Черт, похоже я разорюсь на одних трансмиттерах...((

    ОтветитьУдалить
  6. 2 kryksyh
    Речь шла не обязательно о тех протоколах, что перечислил я. Вопрос был больше, почему не централизованная сеть, которая, как мне кажется, может выйте дешевле (все клиенты могут быть потупее, чем в случае сенсорной сети. Нет нужды в нескольких "полудурках". Центральный передатчик может иметь высокую мощность, что в условие квартиры/дома может покрыть всю територию, а если использовать такой передатчик в сенсорной сети, то перестаёт быть сенсорной, как мне кажется.)
    2 h0rr0rr_drag0n
    Опять же, с чего ты взял что нет централизованных протоколов, заточенных на енергосбережение? К тому же, нет нужды тратить енергию на "мониторинг" состояния сети.
    Помогать в передачи друг другу означает (утрирую), что вместо одного клиента батарейку кушает несколько. А в условиях дома, поставить один мощный, центральный передатчик с питанием от сети вряд ли является проблемой.
    И снова про надёжность. Разве "умный дом" это мишенкритикал система? Как мне кажется, нет, соответственно если оно и упадёт, то ничго страшного. А у меня роутер работает у же более полугода без нареканий.

    ОтветитьУдалить
  7. Ага, как я понял - ты уже поднимаешь вопрос топологии сети, которая будет использоваться у меня? Этот вопрос я еще не прорабатывал. Но если будет нужно - можно и существующие ZigBee-передатчики заставить работать по топологии "звезда" - все это тоже прописано в стандарте. Будет и централизация и все такое прочее.

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

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

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

    ОтветитьУдалить
  9. про wifi я тоже думал он везде есть. только вот доп. датчики к примеру движения или влажности я по моему не видел.

    ОтветитьУдалить
  10. ИМХО, сенсорные сети используют не только в этих случаях. Если я правильно понимаю, сенсорную сеть имеет смысл использовать если нужно получать данные от кучи разбросанных по объекту датчиков (ну или отдавать команды исполнительным механизмам). Как раз, как и в "умном доме" - куча раскиданных по "периметру" датчиков и механизмов.

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

    ОтветитьУдалить
  11. @edgi
    Посмотри вот тут:
    http://megachip.ru/catalog.php?open_code=14#code_14

    Датчиков движения на сайтах электронных компонентов я не видел. Но на сайтах, посвященных продажам компонентов для "умных домов" они есть - http://ieprof.ru/shop/CID_249.html и http://www.rif.su/folder/244 например...

    ОтветитьУдалить
  12. Месяц назад в билдах появилась частота RU. 

    ОтветитьУдалить
  13. Опс, немного поспешил. Появилась частота RU в ZWave билдах

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

    ОтветитьУдалить