Создай самодельный iBeacon с малиновым пи

Нацеленность на конкретного пользователя, идущего по столичному центру, — это вещи антиутопического будущего, продемонстрированные, в частности, в фильме о меньшинствах Тома Круза. Но это не мрачное будущее: технологии уже здесь. Хотя он не требует быстрой идентификации с помощью сетчатки, он использует Bluetooth. Разработанный Apple, iBeacon был разработан для предоставления информации о местоположении пользователям iOS.

используя близость устройства для запуска персонализированного или отслеживания движений пользователя. Google также создал свою собственную универсальную спецификацию Beacons, хотя в настоящее время ее поддержка ограничена, так как разработчики справляются с ней.

Ий-RPI-mediaready

Неудивительно, что вы можете использовать Raspberry Pi в качестве iBeacon, добавив Bluetooth-модуль с низким энергопотреблением (BLE) USB. Что еще интереснее, мы можем использовать эту технологию и отказаться от футуристических методов рекламы в пользу использования дома.

Как работает iBeacon

Создать низкоэнергетический Bluetooth-передатчик, который приложения для интеллектуальных устройств могут обнаружить, не сложно, но как работает iBeacon?

Ая-поделка-pibeacon-ble2

BLE разработан специально для передачи на короткие расстояния, но с более низкими требованиями к мощности (батарея с одной батарейкой должна работать три года). Небольшие пакеты данных, известные как «s» (не в маркетинговом смысле), передаются маяком и используются для запуска действий в приложениях для смартфонов, например, для отображения коммерческого сообщения или для подсказки читателю выполнить действие.

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

Создайте свой собственный iBeacon с Raspberry Pi и Bluetooth-ключом

Чтобы использовать Raspberry Pi в качестве iBeacon, вам понадобится USB-адаптер Bluetooth. Однако вы не можете просто подключить любое старое USB-устройство Bluetooth. Вместо этого вам нужно будет использовать устройство BLE (Bluetooth с низким энергопотреблением), которое можно купить относительно дешево у Amazon или Adafruit. Вы можете запустить этот проект на стандартной установке Raspbian

Либо устанавливается обычным способом

или через NOOBS

,

(Если вам нужен ярлык для всего этого, образ PiBeacon — лучшая ставка от RadiusNetworks. Просто загрузите, запишите на SD-карту и загрузитесь.)

Однако перед подключением BLE самое время установить несколько библиотек:

sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev

Теперь все готово, вам нужно установить Bluez, стек Bluetooth для Linux.

sudo mkdir bluez
cd bluez
sudo wget www.kernel.org/pub/linux/bluetooth/bluez-5.11.tar.xz

Ий-поделка-pibeacon-code1

После загрузки Bluez должен быть собран.

sudo unxz bluez-5.11.tar.xz
sudo tar xvf bluez-5.11.tar
cd bluez-5.11
sudo ./configure --disable-systemd
sudo make

(Этот шаг может занять некоторое время. Иди и сделай чашку чая. Или испеки малиновый пирог.)

sudo make install

Вы почти готовы к работе. Выполните команду выключения, а затем, когда Pi выключен, подключите BLE.

sudo shutdown -h now

Трансляция ПиБекона

Чтобы настроить PiBeacon для вещания, сначала проверьте, что модуль BLE был обнаружен

hciconfig

Вы заметите, что если модуль обнаружен, его статус в настоящее время ВНИЗ.

Чтобы решить эту проблему, настройте устройство:

sudo tools/hciconfig hci0 up
sudo tools/hciconfig hci0 leadv 3
sudo tools/hciconfig hci0 noscanc

(Обратите внимание, что последняя строка отключает сканирование Bluetooth, поскольку это может вызвать проблемы.)

Повторите предыдущую команду для запуска hciconfig:

hciconfig

Теперь вы увидите, что устройство имеет статус UP RUNNING.

Как вы рекламируете с PiBeacon?

Ий-поделка-pibeacon-Ipad

Итак, у вас есть рабочий iBeacon, работающий на Raspberry Pi. Но как вы используете его, чтобы идентифицировать себя с близлежащими устройствами Bluetooth? Как объяснил Адафрут, маяку нужны рекламные данные для ввода. Они советуют вводить следующую строку с помощью команды hcitool:

sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 00 00 00 00 C8 00

Что находится в пакете данных?

Да, это длинная строка цифр и букв. Он написан в шестнадцатеричном формате, и хотя мы не видим его, строка разбита на разделы. Например, знак FF указывает, что будут следовать данные, специфичные для производителя, в данном случае 4C 00, который является идентификатором Apple. Эта строка может быть изменена соответствующим образом.

Давайте разберемся с этим:

Ая-поделка-pibeacon-данные

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

С пометкой FF мы видим 128-битный идентификатор, как объяснено выше, за которым следуют основные данные и второстепенные данные. Они идентифицируют местоположения или примечания в иерархической манере (старший первый, второстепенный второй). Наконец, TX Power помогает оценить расстояние.

PiBeacon, как и iBeacon, имеет три диапазона: непосредственный (локализованный до нескольких сантиметров), ближний (несколько метров) и дальний (около 10 метров). Любое измеренное расстояние является приблизительным, так как сигнал BLE ослаблен мебелью, дверьми и стенами.

Если вы планируете использовать технологию iBeacon, важно иметь уникальный идентификатор для вашего приложения. Вы можете использовать что-то вроде www.uuidgenerator.net или, если вы используете Mac, командную строку uuidgen Утилита сгенерирует уникальный идентификатор.

PiBeacon жив!

После этого PiBeacon теперь рекламируется. Все, что вам нужно сделать сейчас, это найти подходящее приложение iBeacon в магазине iOS, такое как Beacon Toolkit [Больше не доступно], чтобы обнаружить его, выбрав Слушать. Приведенная выше строка предоставляется в качестве UUID в приложении Beacon Toolkit. Можно использовать другие UUID, но они не будут работать с этим приложением: используйте немного более дорогой Beacon Toolbox ($ 4,99), который должен быть в состоянии идентифицировать большинство всех iBeacon в пределах диапазона.

Не хотите посвятить Raspberry Pi этой единственной задаче? Не беспокойтесь — вместо этого вы можете создать Arduino iBeacon, если у вас есть BLE-щит (который может быть в вашем стартовом наборе Arduino).

). Вот демо:

Чувствуете себя еще более предприимчивым? Электроника на 10 долларов и некоторые навыки пайки

также принесет вам DIY iBeacon.

Вопросы или комментарии? Оставь их ниже.

Ссылка на основную публикацию
Adblock
detector