- PVSM.RU - https://www.pvsm.ru -

Как делать из Intel Edison и Galileo iBeacon-маяки

С использованием технологии Bluetooth Low Energy, которую ещё называют Bluetooth Smart, можно создавать iBeacon [1]-маяки. Маяк периодически оповещает окружающие устройства о своём присутствии, а устройства, оснащённые соответствующими приложениями, определяют расстояние до маяка и выполняют некие действия. Если подобная система установлена в музее, смартфон посетителя может показать ему дополнительные сведения об экспонатах, основываясь на положении человека в выставочном зале. По той же схеме можно организовать, например, предоставление скидок в магазинах и любые другие варианты взаимодействия с пользователем, которые предусматривают его присутствие в некоторой области пространства.

Как делать из Intel Edison и Galileo iBeacon-маяки - 1 [2]

Сегодня мы расскажем о том, как создать iBeacon-приложение для Intel Galileo и Intel Edison. Приложение информирует окружающих о присутствии платы, которая выглядит для них как BLE-маяк. Принять сигнал можно, например, с помощью программы для смартфона, которая способна обнаружить присутствие маяка и измерить расстояние от него до мобильного устройства. Готовый код приложения «BLE iBeacon», предназначенного для Edison и Galileo, можно найти здесь [3].

Этот пример демонстрирует применимость технологии BLE iBeacon для идентификации местоположения BLE-маяка (в данном случае – платы Edison или Galileo) относительно мобильного устройства. Если вас интересуют особенности создания проекта, в том числе – подробные технические сведения, загляните сюда [4]. Наша разработка протестирована на Intel Edison с установленной платой расширения Arduino.

Обратите внимание на то, что так как здесь мы используем Bluetooth Low Energy, необязательно, чтобы мобильное устройство и маяк были подключены к одной и той же Wi-Fi-сети. В то же время, плата и компьютер, на котором запущена среда разработки Intel XDK IoT Edition, должны быть подключены к одной и той же сети.

Предварительные требования

Для успешного освоения этого руководства ваше рабочее место должно соответствовать следующим требованиям:

  • У вас должен быть компьютер с установленной Intel XDK IoT Edition и подключённой к нему IoT-платой. Если вам нужно пошаговое руководство по организации среды разработки, посмотрите этот [5] материал.
  • Плата должна быть подключена к той же беспроводной сети, что и компьютер. Подробности о подключении читайте здесь [6].
  • Плата должна иметь Bluetooth-модуль.
  • У вас должно быть устройство, например – смартфон на iOS [7] или Android, которое поддерживает стандарт Bluetooth Low Energy. Вот [8] список подходящих устройств.

Как делать из Intel Edison и Galileo iBeacon-маяки - 2

Intel Edison

Создание нового проекта с поддержкой BLE iBeacon

Здесь мы расскажем о том, как использовать примеры кода для создания проекта, который позволит плате оповещать окружающие устройства о своём присутствии с использованием BLE.

  1. Запустите Intel XDK IoT Edition.
  2. В левой верхней части окна программы щёлкните по вкладке Projects.
  3. Щёлкните по кнопке Start a New Project.
    Как делать из Intel Edison и Galileo iBeacon-маяки - 3

    Создание нового проекта в Intel XDK IoT Edition

  4. В группе Internet of Things Embedded Applications щёлкните по пункту Templates.
    Как делать из Intel Edison и Galileo iBeacon-маяки - 4

    Переход к выбору шаблона приложения

  5. В левой части окна щёлкните по значку (BLE) BLE-iBeacon. После этого щёлкните по кнопке Continue.
    Как делать из Intel Edison и Galileo iBeacon-маяки - 5

    Выбор шаблона

  6. Введите имя проекта в поле Project Name, затем щёлкните по кнопке Create. Новый проект будет создан и открыт в XDK.
    Как делать из Intel Edison и Galileo iBeacon-маяки - 6

    Создание проекта

Включение BLE на плате

Здесь мы расскажем о том, как включить BLE на плате. Для того, чтобы выполнить нижеприведённые шаги, нужно будет подключиться к плате, используя средства закладок SSH Terminal или Serial Terminal, которые имеются в Intel XDK IoT Edition. Вот несколько полезных ссылок с подробностями о том, как организовать в XDK терминальное подключение к плате по последовательному порту.

  • Если вы пользуетесь Intel Edison, загляните сюда [9].
  • Если разрабатываете для Intel Galileo, вот набор руководств для разных ОС: Windows [10], Mac OS X [11], Linux [12].

После того, как подключение будет установлено, сделайте следующее:

  1. В SSH-сеансе, или при подключении через терминал, исполните эти команды:
    rfkill unblock bluetooth 
    hciconfig hci0 up

  2. Введите следующую команду для того, чтобы открыть файл base-feeds.conf в текстовом редакторе vi [13].
    vi /etc/opkg/base-feeds.conf

  3. Добавьте в этот файл следующее:
    src/gz all http://repo.opkg.net/edison/repo/all
    src/gz edison http://repo.opkg.net/edison/repo/edison
    src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32

    Сохраните изменения и выйдите из редактора.

  4. Для того, чтобы пакет Bleno [14] для Node.js мог правильно работать, введите следующие команды:
    rfkill unblock bluetooth
    killall bluetoothd
    hciconfig hci0 up

Выгрузка приложения BLE-iBeacon Node.js на плату

Здесь рассмотрим сборку, выгрузку на плату и запуск приложения, которое позволяет устройству работать с BLE-модулем.

  1. В нижней панели инструментов Intel XDK IoT Edition щёлкните по значку Upload Как делать из Intel Edison и Galileo iBeacon-маяки - 7 для выгрузки проекта на плату.
  2. Щёлкните по значку Run Как делать из Intel Edison и Galileo iBeacon-маяки - 8 для запуска проекта.

Если в консоли, расположенной в нижней части окна программы, выводится сообщение о том, что невозможно обнаружить MRAA, вы должны будете обновить библиотеку MRAA на плате. Для того, чтобы это сделать, щёлкните по значку Manage your daemon/IoT device Как делать из Intel Edison и Galileo iBeacon-маяки - 9 в правой нижней части окна, затем выберите пункт Update libraries on board.

Тестирование

Если приложение удалось запустить на плате – это пол дела. Проект нужно протестировать с использованием смартфона и подходящего мобильного приложения, рассчитанного на работу с BLE iBeacon-устройствами. В подобных приложениях обычно имеется команда, которая может называться Locate Beacon (Обнаружить маяк). Она позволяет находить маячки, расположенные поблизости и рассчитывать расстояние до них. Вот пара подходящих приложений: одно для iOS [15] и ещё одно – для Android [16].

Выводы

Мы рассказали о том, как, пользуясь возможностями Bluetooth Low Energy, сделать из Intel Edison или Intel Galileo iBeacon-маячок, который способен оповещать о своём присутствии устройства, расположенные неподалёку от него. Мы видим несколько вариантов использования предлагаемого решения. Первый, рассчитанный на небольшие и учебные проекты, предусматривает использование платы в роли конечного устройства. Ещё один вариант заключается в создании на основе Edison или Galileo прототипа крупной системы коммерческого назначения. Если прототип оправдывает ожидания, универсальные платы можно заменить специализированными маячками, а Edison и Galileo использовать для новых экспериментов.

Автор: Intel

Источник [17]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/blog-kompanii-intel/138728

Ссылки в тексте:

[1] iBeacon: http://www.ibeacon.com/what-is-ibeacon-a-guide-to-beacons/

[2] Image: https://habrahabr.ru/company/intel/blog/303670/

[3] здесь: https://github.com/gomobile/iotapp-template-ble-ibeacon

[4] сюда: https://github.com/gomobile/iotapp-template-ble-peripheral#design-considerations

[5] этот: https://software.intel.com/node/afe1630d-fc66-4cfe-8786-98b690d09dcc

[6] здесь: https://software.intel.com/node/afe1630d-fc66-4cfe-8786-98b690d09dcc#connect-board

[7] iOS: https://support.apple.com/en-us/HT202880

[8] Вот: http://www.bluetooth.com/Pages/Bluetooth-Smart-Devices-List.aspx

[9] сюда: https://software.intel.com/en-us/setting-up-serial-terminal-intel-edison-board

[10] Windows: https://software.intel.com/en-us/articles/getting-started-with-the-intel-galileo-board-on-windows#putty

[11] Mac OS X: https://software.intel.com/en-us/articles/getting-started-with-the-intel-galileo-board-on-mac#terminal

[12] Linux: https://software.intel.com/en-us/articles/getting-started-with-the-intel-galileo-board-on-linux#terminal

[13] текстовом редакторе vi: http://www.cs.colostate.edu/helpdocs/vi.html

[14] Bleno: https://github.com/sandeepmistry/bleno

[15] iOS: https://itunes.apple.com/us/app/locate-for-ibeacon/id738709014?mt=8

[16] Android: https://play.google.com/store/apps/details?id=com.radiusnetworks.locate&hl=en

[17] Источник: https://habrahabr.ru/post/303670/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best