что такое bluetooth маячок
Device Lab от Google: маячки с технологией Eddystone
Маячки это простые передатчики, используемые для маркировки важных мест и объектов. Обычно, приложение может определить с помощью маячка местоположение пользователя с погрешностью до нескольких десятков сантиметров, что позволяет использовать его для наиболее точной геолокации, а благодаря стандарту Eddystone, маячки научились рассылать и URL.
Сейчас в мире можно выделить три наиболее популярных стандарта маячков:
Eddystone, также как и iBeacon от Apple или AltBeacon от Radius Network, дает разработчикам возможность поставлять информацию, связанную с местоположением, прямо на мобильные устройства пользователей (также, как и другие устройства,
Название Eddystone произошло от известного маяка Eddystone Lighthouse, который располагается в Ла-Манше.
Eddystone-UID — 16-байтовый идентификатор, который состоит из 10-байт namespaceId и 6-байт instanceId.
Eddystone-URL — транслирует URL. Любой длинный URL можно сократить с помощью Google URL Shortener или любого другого сервиса сокращения ссылок, что бы поместится в ограниченный 18 байтами Advertisment packet. После декодирования, URL может быть использован любым клиентом с доступом к интернету. Eddystone-URL является основой Physical Web (о котором речь пойдет дальше) и позволяет легко обнаруживать и взаимодействовать с окружающим нас умными устройствами и сервисами.
Eddystone-TLM — телеметрия, доступны такие данные как напряжение аккумуляторной батареи, температура устройства, количество отправленных пакетов с момента включения и время с момента включения.
Краткий обзор значительных новводений в мире Bluetooth-маячков
Основное применение для Bluetooth маячков является решение проблемы определения местоположения внутри помещений. Иногда, банального нахождения в радиусе сигнала достаточно. Иногда, нужно применять фильтр Калмана. Спектр контекстов применения тоже широк, и варьируется от использования в продажах (англ.) до помощи (англ.) людям с ограниченными зрительными возможностями.
За последние пару недель, два из крупнейших игроков на этом рынке выпустили новые устройства, которые значительно расширяют возможности для разработки решений на основе данной технологии. Примечательно то, что обе фирмы имеют видение, которое выходит за рамки применения данной технологии в смартфонных приложениях.
К сожалению, данные события прошли незаметно мимо Хабра. Под хабракатом, попытка вашего покорного слуги заполнить данный пробел.
Kontakt.io
Две недели назад Контакт провели презентацию (англ.) новой линейки устройств. Пожалуй, самое значительное нововведение в сам маячок, стало добавление NFC. Скромно. Но ведь не зря же фирма широко рекламировала данное мероприятие по всем своим каналам?
Ответ становится очевиден, после ознакомления с девайсом под названием Gateway и карточным маячком.
Карточный маячок имеет скромные габариты, всего 2мм толщина. По-мимо самого модуля BLE так же встроен RFID, с возможностью добавить NFC. Длительность работы батареи — 8 месяцев.
Gateway выступает в роли независимого хаба для маячков находящихся в радиусе его действия. В том числе, и карточного. С его помощью можно проводить сбор данных, а так же задать команды на основе неких переменных. Например, если маячок обнаружен/потерян, то нужно отправить push уведомление.
Подробнее познакомиться со спецификацией устройств и оставить предзаказ можно по ссылке.
Теперь, я хочу привести к вашему вниманию устройство под название Mirror (зеркало). Это первый видео маячок в мире. Как же именно он работает? Как и упоминалось ранее, данное устройство тоже не нуждается в присутствии смартфона. На основе SDK можно создать приложения для телевизоров со слотами HDMI и USB (источник питания для маячка). На борту устройства также присутствует модуль WiFi.
В промо-видео в качестве примера используется показ маршрута в аэропорте, а так же показ индивидуализированных предложений в магазинах. Примечательно то, что в первом случае естественно, необходим телефон. Во втором же, достаточно установить BLE стикер от той же фирмы на сам товар.
Заключение
Обе фирмы представили очень интересные устройства. Это служит глотком свежего воздуха на фоне скептицизма, который витал вокруг данной технологии в последнее время.
Направленный Bluetooth-маяк (iBeacon) и полный мобильный факап
Инверсия — великая вещь! Изобрети что-то одно, а потом возьми и выверни его наизнанку, получишь не менее интересный результат. Я сначала провернул такое с одной штукой, и только потом увидел, что в ТРИЗ (теория решения изобретательских задач) есть такой прием «инверсия или обратная аналогия». Век живи, век учись.
Но это все теория, а практика ставит всё на свои места.
Маяки Bluetooth Low Energy или iBeacon теперь не что-то из ряда вон. Их можно встретить на вокзалах, в аэропортах, в музеях и в торговых центрах. Как радио-инженер я участвовал в проектировании маяков и, в особенности, антенн к ним. Дело это, по-началу интересное, потом становится скучным. Нечем выделиться, ничего особо нового не изобретешь. И тут меня осенило!
Я взял свой пеленгатор (раз и два) и посмотрел на него с обратной стороны. А что, если сделать его маяком? Здесь нужно напомнить читателю, что этот пеленгатор состоит из двух антенн: одна с плавной диаграммой направленности, другая с резко меняющейся.
Это срез диаграммы направленности. В 3D она выглядит так:
Пеленгатор «наводит фокус» по разнице уровней этих двух антенн. Если интересно подробно, то можно посмотреть на Github.
Приведём небольшие фрагменты кода с логикой работы пеленгатора:
Получаем уровни с обеих антенн. Полученные уровни требуется усреднить, а после этого посчитать разницу. На самом деле это не разница сигналов, а их отношение. Но если измерять в децибелах, то будет разница.
Обработка «разницы». Если уровни на обеих антеннах различаются «сильно», то мы с некоторой точностью (плюс минус лапоть) направлены на источник. Чему равно это «сильно» на данный момент определяется методом научного тыка экспериментально.
А теперь ИНВЕРТИРУЕМ!
Пусть на одну антенну будет излучаться маяк iBeacon с одним номером, а на другую — с другим. Тогда на мобильном устройстве можно измерить уровни обоих маяков и по разнице определить насколько близко оно находится к фокусу антенн маяка. Получается позиционирование по направлению прихода волны.
В стандарте Bluetooth версии 5 даже анонсирован похожий способ высокоточного позиционирования — Angle of Departure. До точного описания этого способа они еще не дошли, обещают в следующих версиях.
В рафинированном виде работу можно проиллюстрировать роликами: раз и два.
В приложении устанавливает порог по разнице уровней, по которому определяется, что мобильное устройство находится в воображаемом конусе с осью, совпадающей с нормалью к плоскости антенны.
Сам маяк выглядит так:
А вот рендеры внутренностей:
Красавец, не правда ли?! Внутри антенна, как в пеленгаторе WiFi, и Bluetooth SoC nRF51822. Но все было тщетно.
Далее история переходит в факап, который заключается в том, что это работает на смартфоне Nexus 5 и найти другой гаджет, работающий хотя бы так же, оказалось не очень просто. Нет, они есть, Samsung Galaxy S7, Lenovo Phab 2 Pro, и на этом список пока заканчивается. Больше «хороших» гаджетов найти у друзей и знакомых не удалось. Из «плохих» можно отметить Samsung S4 mini.
Конечно, был проверен маяк. Он излучает пакеты на две антенны по очереди с минимальным интервалом. Маленький интервал нужен, чтобы измерения относились к моментам времени, отстоящим друг от друга незначительно. Иначе нельзя будет соотнести их друг с другом.
Был записан лог с Bluetooth-снифера с использованием чудесного WireShark. Анализ лога показывает, что излучается все правильно, временные интервалы и уровни в норме. Осциллограф тоже не показал ничего неучтенного на выходе маяка.
Тем не менее, на большом числе гаджетов работает плохо. Проблема в потерях измерений. В Android-приложение была встроена диагностика приема пар пакетов. Показателем качества был сделан процент парных пакетов. Так вот, показатель от 80 до 100 наблюдался лишь на некоторых гаджетах. На остальной протестированной выборке мобильных устройств показатель был от 20 до 60. В движении соотношение уровней измерялось неточно. Была попытка скомпенсировать это увеличением частоты излучения пакетов, но это результата не дало. Что-то внутри Андроида препятствует нормальным измерениям.
Исходники всего этого безобразия доступны на Github.
Есть небольшая надежда, на то, что на iOS ситуация может быть лучше. По крайней мере однороднее на спектре мобильных устройств.
Есть также надежда, что найдется специалист, который поймет в чем проблема и подскажет решение.
А мне сейчас очень жаль, что эта идея не работает.