- Что такое BLE и Bluetooth Beacon?
- Как технология BLE работает и используется с маячками?
- Что такое маяк Eddystone?
- Требования
- Настройка Raspberry Pi для Eddystone Beacon
- Оптимизация мощности передаваемого сигнала путем калибровки мощности Tx
- Применение радиомаяка Eddystone Bluetooth
Bluetooth - одна из революционных технологий для беспроводной передачи данных, управления другими устройствами, создания систем домашней автоматизации и т. Д. Но задумывались ли вы, что Bluetooth также можно использовать для трансляции любой информации на близлежащие устройства, чтобы отображать важную информацию? оформление заказа и т. д. Существует протокол, разработанный Google для выполнения задачи, который можно легко развернуть в Raspberry Pi, чтобы сделать его передатчиком Bluetooth Beacon.
В этом руководстве мы узнаем о BLE (Bluetooth Low Energy) и Bluetooth-маяке, а также установим Bluetooth-маяк Eddystone в Raspberry Pi для трансляции URL-адреса. Raspberry Pi очень легко превратить в Bluetooth-маяк, так как он имеет встроенный Bluetooth.
Что такое BLE и Bluetooth Beacon?
Bluetooth Low Energy, как указывает название потребляет меньше энергии, чем классический Bluetooth. Это достигается путем отправки данных при необходимости с заранее определенными периодическими обновлениями. Но в отличие от классического Bluetooth он не используется для передачи файлов или музыки. Устройство BLE работает с Bluetooth V4.0 и может работать с низким энергопотреблением в качестве сервера или клиента, что делает BLE идеальным выбором для маяков, умных часов, фитнес-браслетов и т. Д. Классический Bluetooth, с другой стороны, - это просто старый добрый Протокол Bluetooth, который мы используем для передачи файлов и других данных. Почти все устройства BLE имеют связанную с ним классическую функцию Bluetooth. Ранее мы подробно объясняли BLE с помощью ESP32.
Маяки Bluetooth:
Маяки - это аппаратные устройства, которые транслируют некоторые сообщения на расположенные поблизости электронные устройства и действуют как широковещательные устройства. Эта технология позволяет портативным устройствам выполнять некоторые действия, когда они находятся в непосредственной близости от радиомаяка. Теперь маяки могут быть реализованы с использованием BLE и классического Bluetooth. Поскольку большинство смартфонов и других электронных устройств совместимы с BLE и могут использоваться в качестве приемника маяка, реализация маяка BLE более эффективна по сравнению с классическим маяком Bluetooth для снижения энергопотребления.
В среднем маяк с низким энергопотреблением Bluetooth может передавать сигналы BLE на расстояние 80 метров.
Как технология BLE работает и используется с маячками?
BLE - это технология с низким энергопотреблением, которая предназначена для связи на короткие расстояния и предпочтительнее там, где время автономной работы является более важным фактором, чем высокая скорость передачи данных. Передача данных в этом сообщении только односторонняя. Маяк BLE передает небольшие пакеты данных через равные промежутки времени. Эти пакеты данных принимаются и декодируются приложением сканера маяков, установленным на смартфонах. Эти полученные данные запускают такие действия, как продвижение продукта или отправка сообщения.
В радиомаяке Bluetooth идентификационный номер передается им 10 раз в секунду по каналам BLE. Затем этот идентификационный номер принимается устройством с поддержкой Bluetooth и распознается приложением сканера маяков, он связывает его с действием, например, загрузкой приложения или фрагмента контента, хранящегося в облаке, и отображает его на смартфоне.
Что такое маяк Eddystone?
Eddystone - это протокол, разработанный Google, который позволяет передавать односторонние сообщения на устройства BLE. Фрейм Eddystone-URL формирует основу Physical Web, которая помогает обнаруживать веб-контент в окружающей среде. Beacon может транслировать четыре типа данных с использованием протокола Eddystone. Вот они:
- Eddystone-URL для трансляции URL-адресов
- Eddystone-UID для идентификаторов радиобуев
- Eddystone-TLM для передачи телеметрии радиомаяка, такой как температура устройства, уровень заряда батареи и т. Д.
- Eddystone-EID для безопасности.
Существуют также другие типы маяков, такие как iBeacon, который предназначен для устройств с поддержкой iOS, но Eddystone предназначен только для устройств Android. Также обратите внимание, что Google прекратил поддержку уведомлений о ближайшем окружении, теперь пользователю нужно будет установить специализированное приложение для сканирования маяков, которое будет показывать транслируемый контент.
В этом руководстве мы будем использовать Raspberry Pi в качестве маяка Eddystone и сосредоточимся на трансляции URL-адреса с использованием URL-адреса Eddystone, чтобы любой мог легко получить доступ к транслируемой информации с помощью своих устройств Android.
Требования
Здесь для создания этого Bluetooth-маяка нужен только Raspberry Pi. Это должен быть Raspberry Pi 2 или новее с установленным Raspbian Jessie или более новым OD.
Здесь мы будем использовать SSH для доступа к Raspberry Pi на ноутбуке. Вы можете использовать подключение к VNC или удаленному рабочему столу на ноутбуке или подключить Raspberry pi к монитору. Узнайте больше о настройке Raspberry Pi без монитора здесь.
Настройка Raspberry Pi для Eddystone Beacon
Настроить транслятор Eddystone на Raspberry Pi очень просто. В нем задействовано всего 3 команды.
Это можно сделать, настроив HCI (интерфейс хост-контроллера), доступ к которому можно получить с помощью команды hciconfig. Чтобы проверить, что можно сделать с помощью этой команды, введите следующую команду в терминале.
hciconfig -h
1. Во-первых, мы должны включить устройство Bluetooth на Raspberry Pi, используя команду ниже.
sudo hciconfig hci0 вверх
2. Теперь мы должны настроить Bluetooth на «рекламировать и не подключать» устройство, используя команду ниже.
sudo hciconfig hci0 leadv 3
3. Вышеупомянутые команды заставляют устройство запускать службу вещания, теперь просто введите данные маяка в следующей команде, которая содержит другую информацию о кадрах и URL-адрес в шестнадцатеричном формате. Выполните приведенную ниже команду, чтобы начать вещание маяка.
sudo hcitool -i hci0 cmd 0x08 0x0008 1c 02 01 06 03 03 aa fe 14 16 aa fe 10 00 02 63 69 72 63 75 69 74 64 69 67 65 73 74 07 00 00 00
Эта команда будет транслировать URL-адрес
Чтобы проверить транслируемое сообщение на свой смартфон, загрузите Physical Web App или Beacon scanner на свой смартфон Android и запустите сканирование. Вы увидите транслируемую ссылку в приложении, как показано ниже. Щелкните ссылку, чтобы перейти на веб-сайт и открыть его в браузере.
Теперь давайте разберемся с шестнадцатеричной кодировкой сообщения. В таблице ниже мы дали объяснение каждого значения, присутствующего в коде:
Значение |
Описание |
---|---|
0x08 |
#OGF = Поле группы операций = Группа команд Bluetooth = 0x08 |
0x0008 |
#OCF = Поле команды операции = HCI_LE_Set_Advertising_Data = 0x0008 |
1c |
Длина. Шестнадцатеричный 1c преобразуется в 23 десятичного числа, что является количеством следующих байтов. |
02 |
Длина |
01 |
Значение типа данных флагов |
06 |
Данные флагов |
03 |
Длина |
03 |
Полный список значений типа данных 16-битных UUID службы |
аа |
16-битный UUID Eddystone |
fe |
16-битный UUID Eddystone |
14 |
Длина. Шестнадцатеричное число 14 преобразуется в десятичное число 15, которое представляет собой количество следующих за ним байтов. |
16 |
Значение типа данных службы данных |
аа |
16-битный UUID Eddystone |
fe |
16-битный UUID Eddystone |
10 |
Тип кадра = URL |
00 |
TX Power (необходимо откалибровать) |
02 |
Схема URL (http: // = 0x02) |
63 |
'c' в шестнадцатеричном формате |
69 |
'i' в шестнадцатеричной системе |
72 |
'r' в шестнадцатеричном формате |
63 |
'c' в шестнадцатеричном формате |
75 |
'u' в шестнадцатеричной системе счисления |
69 |
'i' в шестнадцатеричной системе |
74 |
't' в шестнадцатеричном формате |
64 |
'd' в шестнадцатеричной системе счисления |
69 |
'i' в шестнадцатеричной системе |
67 |
'g' в шестнадцатеричном формате |
65 |
'e' в шестнадцатеричной системе |
73 |
's' в шестнадцатеричной системе |
74 |
't' в шестнадцатеричном формате |
07 |
.com (.com = 0x07) |
00 |
|
00 |
|
00 |
Чтобы транслировать любой настраиваемый URL-адрес с помощью Raspberry Pi Bluetooth Beacon, просто преобразуйте символы URL-адреса в шестнадцатеричные с помощью любого онлайн-инструмента и введите его в приведенную выше команду. Максимальное количество передаваемых символов - 16, если URL-адрес слишком длинный, сократите его, используя любые службы сокращения URL-адресов, такие как bitly.com, а затем поместите данные в приведенную выше таблицу.
Преобразование каждого символа в шестнадцатеричный эквивалент очень громоздко и требует много времени. Чтобы облегчить вашу работу, есть калькулятор команд URL-адресов Eddystone, где вам просто нужно ввести URL-адрес, который вы хотите транслировать, и вы получите свою команду вот так.
Bluetooth-маяк теперь транслирует URL-адрес и работает нормально, но есть еще одна вещь, которую нужно откалибровать, это мощность Tx, которая является одним из значений в приведенной выше команде для получения точного расстояния до Bluetooth-маяка.
Оптимизация мощности передаваемого сигнала путем калибровки мощности Tx
В кадре Eddystone передаются несколько компонентов, и мощность Tx является одним из них, который определяет силу сигнала. Расшифровывая силу сигнала, приемник определяет расстояние до радиовещательной станции Beacon. Значение мощности Tx может находиться в диапазоне от -12 до 10. Нам нужно найти значение методом проб и попаданий, чтобы получить точное расстояние. Для этого настройте значение мощности Tx в команде сообщения Eddystone и поместите смартфон на расстоянии 1 м с открытым приложением Beacon scanner. Теперь начните вводить значения мощности Tx в команду от 0 до отрицательных значений. Не забудьте преобразовать десятичные значения в шестнадцатеричный десятичный формат, для этого используйте инструменты онлайн-конвертера значений для легкого декодирования и возьмите последние две цифры преобразованного значения. В моем случае шестнадцатеричное значение - f4. Проверьте расстояние в приложении сканера, отрегулируйте значения, пока оно не покажет примерно 1 м, и после этого вы должны использовать транслятор URL-адресов Eddystone с точным расстоянием.
Применение радиомаяка Eddystone Bluetooth
Вот некоторые из вариантов использования маяка BLE:
- Розничная торговля с поддержкой BLE: эту технологию можно использовать для привлечения покупателей в непосредственной близости от магазинов путем рекламы интересных предложений и распродаж.
- События с включенным маячком BLE: его можно использовать для простой регистрации на мероприятиях и на стадионах с простой проверкой платежей.
- Маяки BLE в недвижимости: вы можете получить всю информацию о недвижимости, доступной рядом с вами, и можете забронировать ее в одно касание.
Есть много других приложений, которые вы можете придумать и реализовать в соответствии с требованиями.
Таким образом, Raspberry Pi можно использовать для трансляции любого сообщения или URL-адреса, преобразовав его в Bluetooth-маяк с помощью Eddystone. Посмотрите демонстрационное видео ниже.
/>