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 в системе, которая не имеет права на ошибку вполне оправданно (почему - см. выше).