Одна из особенностей формата фестиваля Chaos Constructions - большое количество людей, пришедших чтобы пообщаться с единомышленниками и коллегами, в сочетании с отсутствием практических возможностей обнаружить друг друга в зале и познакомиться.
Хотя мы стараемся создавать поводы (семинары, выставка различных компьютеров и самоделок, real-time конкурсы), этого далеко недостаточно - люди чаще узнают друг о друге уже после фестиваля - по отчетам в блогах и фотографиям с комментариями. Даже зная о том, что человек с которым хотелось бы общаться - присутствует на фестивале, найти его в зале, не зная в лицо - трудновыполнимая задача.
Незадолго до CC'2011 появилась идея технического решения этих проблем. Вкратце суть такова: можно создать систему, которая отслеживает где, примерно, находится каждый человек в зале (по его телефону или выдаваемой на входе радиочастотной метке). Далее, любой желающий добровольно может зарегистрироваться, указав свои интересы в виде тэгов ("demoscene", "hack", "spectrum", "music" и т.п.). Можно указать и другие характеристики - имя, ник, фотографию. Взависимости от технологии регистрация осуществляется с наших терминалов, либо на личных компьютерах посетителей.
На информационном экране постоянно, а на большом периодически демонстрируется план зала, на котором видны посетители с их характеристиками. Тоже самое доступно на страничке сайта фестиваля (с возможностью фильтровать карту по отдельным тэгам, к примеру). Таким образом, можно в реальном времени видеть, где находятся посетители со сходными интересами или конкретные люди, с которыми хотелось бы познакомиться в реальной жизни.
Помимо этого, появляется масса возможностей для организации новых конкурсов, облегчается работа организаторов (можно видеть, кто из оргкомитета или помощников где в данный момент находится).
С точки зрения практической реализации задуманного, рассматривались следующие технологии:
- RFID читалки и метки. Активные метки (с батареей, пример) имеют слишком высокую стоимость (т.к. потребуется не менее 500-700 меток). Теоретически подходят пассивные UHF метки, которые читаются на расстоянии 2-7 метров. Но цена многоканальных читалок слишком высока (около 100 тыс. руб и выше). С учётом того, что их понадобится около десятка, стоимость решения выходит за разумные пределы. Тем не менее, у технологии есть серьезные преимущества - параллельно решается проблема с билетами и контролем входа-выхода и не надо учитывать особенности устройств посетителей (как в случае с идентификацией по телефонам). Исследуется вопрос изготовления самодельных активных меток и приёмников. Текущая оценка такого решения: Стоимость 2.4 ГГц метки при тираже до 1000 штук - от 50р за штуку. Стоимость приёмника, ретранслирующего получаемые от меток данные по Wi-Fi на центральный сервер - 1500-2000р за штуку (потребуется около десятка).
- Различные идентификаторы в видимом и инфракрасном диапазоне. К примеру, метки на плечо со светодиодом, мигающем на определенной частоте. Датчики расположены на потолке/фермах. Технология представляется нереалистичной т.к. сомнительно, что посетители согласятся использовать подобные метки и, кроме того, их цена будет незначительно ниже активных радиочастотных.
- Сотовая связь, телефоны. Использование фемтосот+триангуляция, либо самодельные решения фиксирующие излучаемые телефоном сигналы приёмниками во многих точках помещения. Вопрос исследуется.
- Wi-Fi, телефоны. Wi-Fi часто отсутствует в телефоне. Точки, через которые на фестивале обеспечивается доступ в Интернет обычно разных моделей, имеют непредсказуемые характеристики. Сигнал слишком мощный, чтобы идентифицировать устройства по простому наличию или отсутствию их в зоне действия точки. Использование направленных антенн дорого и потребует точной настройки и проверки, что в условиях 1-2 дневной подготовки фестиваля нереалистично. Специализированные решения - труднодоступны и дороги. Из плюсов технологии - наличие информации о сила/качестве сигнала, возможность параллельно использовать точки для доступа в сеть.
- Bluetooth, телефоны. Среди преимуществ - небольшой радиус действия, дешевизна адаптеров, наличие BT в большинстве телефонов, простота программного решения. Недостатки: отсутствие стандартного способа получить данные об силе сигнала (RSSI), требование к посетителям включить в телефоне постоянный discovery (не все телефоны это умеют). Теоретическая уязвимость к действиям злоумышленников (в случае, если посетители проигнорируют предупреждение организаторов не отвечать на запросы pairing'a).
Учитывая, что до CC'2011 оставалось очень мало времени, для эксперимента было выбрано наиболее понятное с точки зрения реализации и гибкое в сложных условиях фестиваля решение - на основе использования Bluetooth адаптеров и определения местоположения владельца телефона просто по доступности его сигнала для одного из нескольких адаптеров, размещенных в разных частях зала.
Первоначально планировалось разместить в зале несколько ноутбуков, в каждый воткнуть USB хаб, от него 5 метровые USB кабели с USB Bluetooth адаптером в конце каждого. Довольно быстро обнаружились препятствия:
- Windows не умеет работать более чем с одним BT адаптером (за исключением специфических ситуаций с одновременной установкой разных драйверов). Поскольку софт клиентской части был написан под Win32, пришлось исходить из варианта 1 адаптер на 1 ноутбук.
- Дальность действия BT адаптеров (было опробовано несколько разных моделей, все Class 2) оказалась больше предполагаемой. Взависимости от модели обнаруживаемых телефонов, она доходила до 20 метров. Пришлось ограничивать мощность сигнала, обматывая адаптер алюминиевой фольгой. Одновременно отпал вариант с включением адаптера через USB кабель, т.к. кабель работал как антенна.
В итоге, в системе функционировало 5 "узлов" - ноутбуков с адаптерами . Они обеспечивали 4 зоны обнаружения (оргзона, выставка, геймзона, семинары), плюс один отладочный, без фольги (за помощь в настройке спасибо srpspb и artegor).
На каждом ноутбуке работала программа, которая каждые 20 секунд опрашивала BT адаптеры на предмет обнаруженных поблизости BT устройств со включенным discover и получала от них:
- OUI идентификатор (аналог MAC)
- COD (Class Of Device)
- Tag Name (модель телефона или строка, заданная его владельцем).
(Теоретически, на получение списка видимых устройств требуется 10 секунд, причем за один цикл может быть опознано не более 32 устройств. На практике такого количества на одном адаптере достигнуто не было)
Полученные данные простым HTTP запросом пересылались на единый сервер, где сохранялись в базе.
Веб клиент циклически получал (html, js, json) с сервера информацию по наличию в последние 60 секунд устройств на каждом узле и отображал список поверх фоновой карты помещения. Для неизвестных устройств отображались последние две цифры OUI. Для известных - ник владельца телефона (соответствие вносилось в базу вручную).
С учётом примитивности решения, система работала довольно неплохо. В первый день тестирование шло на организаторах, во второй об этом было объявлено в новостях на сайте (что добавило десяток-другой человек). За два дня работы было зафиксировано 154 уникальных устройства (OUI) со включенным bluetooth discovery.
Отмечу несколько моментов:
- Зависимость данных от мощности BT конкретных телефонов. В частности, 1-2 старых телефона иногда были видны практически со всех узлов.
- Человек находящийся на границе зон выглядит находящимся сразу в двух зонах. Понятно, что это решается увеличением числа узлов.
- Некоторые люди уходя, оставляют телефоны на столе (к счастью, редкая привычка).
- Опасения всяческих экранирований и переотражений сигнала оказались необоснованными. Существенно это не влияло (за исключением попыток засунуть адаптер за здоровый металлический огнетушитель).
- Убеждения некоторых людей, что включенный BT очень быстро разряжает аккумулятор (для некоей усреднённой модели телефона уменьшение времени работы несущественно).
- Несколько неожиданно, что смартфонов среди IT'шников на фестивале не так много, как можно было бы предположить. Довольно часто используются обычные телефоны типа "только звонить"
- Телефонов с уже включенным (без просьб) BT среди IT'шников значительно меньше, чем можно обнаружить в общественных местах типа метро. Вероятно, это объясняется двумя вещами: 1) IT'шники используют для перекачки файлов и для знакомств другие технологии 2) IT'шники больше осведомлены об уязвимостях в Bluetooth и повышенном потреблении телефона.
- Как выяснилось, в ряде современных телефонов невозможно включить BT discovery на неограниченный срок - он автоматически отключается либо при засыпании телефона (IPhone), либо через несколько секунд или минут (отдельные реализации Android'a). Доходит до того, что в одной прошивке CyanogenMod пункт "Infinite" есть, а в другой уже нет. Со старыми телефонами все было проще. Этот пункт - основная причина, ограничивающая практическое использование технологии.
В итоге, идея с Bluetooth может быть эффективно использована только для целей организации - т.е. в условиях, когда число отслеживаемых людей невелико, ввиду чего им несложно выдать отдельные метки (самодельные, в виде старого телефона, других BT устройств).
Предположительно, сопоставимое по цене решение на основе самодельных меток и приёмников будет давать большую точность и значительно удобнее в развёртывании и эксплуатации.
Приёмлимого по стоимости решения, которое можно было бы использовать для всех посетителей - пока не найдено.