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



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

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

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

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


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

  • У вас должен быть компьютер с установленной Intel XDK IoT Edition и подключённой к нему IoT-платой. Если вам нужно пошаговое руководство по организации среды разработки, посмотрите этот материал.

  • Плата должна быть подключена к той же беспроводной сети, что и компьютер. Подробности о подключении читайте здесь.

  • Плата должна иметь Bluetooth-модуль.
  • У вас должно быть устройство, например – смартфон на iOS или Android, которое поддерживает стандарт Bluetooth Low Energy. Вот список подходящих устройств.


Intel Edison

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


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

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


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

  4. В группе Internet of Things Embedded Applications щёлкните по пункту Templates.


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

  5. В левой части окна щёлкните по значку (BLE) BLE-iBeacon. После этого щёлкните по кнопке Continue.


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

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


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

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


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

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

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

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

    rfkill unblock bluetooth 
    hciconfig hci0 up

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

    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 для Node.js мог правильно работать, введите следующие команды:

    rfkill unblock bluetooth
    killall bluetoothd
    hciconfig hci0 up

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


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

  1. В нижней панели инструментов Intel XDK IoT Edition щёлкните по значку Upload для выгрузки проекта на плату.

  2. Щёлкните по значку Run для запуска проекта.

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

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


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

Выводы


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

Комментарии (14)


  1. x893
    20.06.2016 15:49

    Будет продолжение про изготовление BLE Central на этой чудо-плате?


  1. dmitry_ch
    20.06.2016 16:13
    +1

    Если подобная система установлена в музее, смартфон посетителя может показать ему дополнительные сведения об экспонатах, основываясь на положении человека в выставочном зале.

    У всех подобного рода изобретений одна проблема: чтобы они работали, софт на смартфоне/планшете должен быть установлен и постоянно работать.

    Вспомните QR-коды: сколько лет прошло после появления технологии, а даже новые телефоны почти никогда не несут в себе встроенного приложения для чтения этих кодов. Маркетологи всего мира спят и видят, как они обвешают BT-маячками все торговые точки Земли, и как у человека реклама их точки закроет весь экран, но нужно ли это пользователям?

    Для узких применений — чем не полезная штука? А для массового внедрения особо и не хочется видеть в работе. Ну да, еще одно подтверждение, что BT умеет работать. Ну да, опять вертеть головой, откуда прилетел сигнал. Но даже в музее старый добрый вариант (на экспонате висит его номер, вбиваем номер хоть в приложение, хоть на сайт — и читает, что хотим) ничем не хуже маячков…


    1. Rumlin
      20.06.2016 17:59

      C QR кодами в музее проще — QR reader (Штрих сканер) скорее всего будет предустановлен/встроен.


      1. achekalin
        21.06.2016 02:10

        На «своем» телефоне? Ой сомневаюсь!

        А даже если и будет — use case очень дурной получается: группа посетителей музея по очереди, небыстро и ругаясь на качество распознавания, сканит QR, чтобы — что? Чтобы попасть на страницу с описанием?! Вот им только в музее не хватало стоять и таращиться в музее в текст. То же можно и рядом с экспонатом повесить, как часть таблички.

        Звука там тоже не сделать, «по ссылке», т.к. не у всех с собой наушники.

        P.S. А однажды кто-то умный меняет QR на свой, и получает посетителей к себе на сайт )


        1. Rumlin
          21.06.2016 08:38

          Для примера:
          image

          Из любопытства распознавал коды в Ялте. В основном ссылка на Википедию, редко на собственный сайт объекта — такое увидел у музеев и церквей.


          1. dmitry_ch
            21.06.2016 08:48

            А это пример чего? QR-ридер в телефоны не встроен (даже во многие новые), какой-то особенной необходимости ставить (кроме как у гиков) его нет. Получаем «в среднем по больнице», что его нет. Так что в музее нечем QR читать, если только не поставить приложение руками и специально.

            Мне кажется, встрой Apple в QR-ридер iPhone, завтра же всякие Самсунги сделали бы то же самое. Но — увы!

            А QR на таком указателе — ужас! Предлагается остановиться (судя по полосе — там нельзя, но многие так и делали) и снять его телефоном?

            И еще аспект: QR не сама в себе технология, это, по большей части (для нашего разговора) именно ссылка (хотя в идее он может многое). Т.е. на телефоне должен быть и браузер, и интернет, и все уже настроено и работать, автономно получить информацию, только прочтя QR — можно бы, но обычно так не делают. Ладно когда я в родном городе/стране (зависит от мобильного плана). А если я за границей, где открытие страницы из Википедии (не всегда полезной) будет стоить мне (за счет цены трафика) заметных денег?

            Ну и про подмену QR на свой, уводящий на свой сайт, уже писали.


            1. Rumlin
              21.06.2016 10:08

              Указатели в большинстве случаев установлены на тротуарах, в парках, пешеходных зонах. В данном случае тротуар так же есть и вообще это то, что мной нагуглилось сразу. Некоторые QR были в рамке на зданиях параллельно с текстовой аннотаций.

              Пример из Дербента с поддержкой МТС.
              image
              Конкретно в Ялте был бесплатный WiFi на набережной. Наконец операторы мобильной связи могут сделать бесплатным трафик, наподобие В Анголе на всю катушку используют бесплатный трафик Wikimedia


              1. dmitry_ch
                21.06.2016 10:30

                Да-да, знаю я этот бесплатный трафик :) Трафик на wikimedia — бесплатен, а трафик DNS, трафик загрузки баннеров (которые порой оператор встраивает в страницы), трафик загрузки кодов Гугл-Аналитикс и прочих — он внезапно не бесплатен. В роуминге каждый QR изучить окажется очень даже заметным для кошелька.

                Даже там, где Wifi бесплатный, он совсем не безгемморойный — надо зарегаться, надо просмотреть рекламу, надо предоставить персональные данные, а прошел 100 метров, зацепился за следующую точку той же бесплатной сети — что-то не срослось, и повторяй процесс заново.

                А если серьезно, то я не понимаю смысла ваших примеров. Я видел и вижу такие коды во многих городах, как установленные городскими властями, так и сторонними, имеющими деньги на PR, компаниями (МТС как пример). От основных вопросов, что я выше задал:
                1. Не у всех штатно стоит QR-читалка (а сами поставят ее только гики), есть инет, есть даже браузер — т.е. прочесть QR действие совсем не тривиальное для многих.
                2. Нет гарантии, что QR-коды не подменены злоумышленником.
                3. Нет просто и надежно работающего интернета во всей зоне установки QR-кодов.

                Фактов установки QR много, а скоро будет много и фактов установки BT-маячков. Но и та, и другая технология требует дефолтной поддержки в телефонах, притом удобной для самого неподготовленного юзера. Скажем, простому юзеру куда проще использовать Viber, чем Skype, потому что привязка идет по номеру телефона. А еще проще использовать SMS, потому что поддержка SMS есть везде, а Viber надо ставить. Были бы QR настолько встроенными, как SMS — цены бы им не было.

                P.S. В музее же, да еще при плохом освещении, да еще в толпе экскурсантов, да без интернета — QR вроде и к месту, но по факту бесполезен. Его и правда, можно заменить на мобильное приложение имени музея (которое по бесплатному wifi можно скачать на входе в музей), в котором будет поле для ввода номера экспоната (как с клавиатуры, так и через QR и любые другие альтернативные методы ввода), а приложение уже будет знать что делать (скажем, голосом в наушниках расскажет, а не просто откроет браузер со страницей).


                1. Rumlin
                  21.06.2016 11:31

                  Всё так — «настолько встроенными». Пока не существует ничего более доступного, чем табличка с текстом перед экспонатом.

                  С мобильным приложением еще сложнее — надо поддерживать весть зоопарк устройств и ОС, чтобы 90% пользователей могли воспользоваться. Более экономичным был бы внутренний Web сервер музея со страничками о каждом экспонате. А там или QR или меню «Зал-Экспонат» или ввод некого ID, нанесенный у экспоната. Внутренний сервер решает вопрос подмены QR кода или DNS.


                  1. dmitry_ch
                    21.06.2016 11:34

                    Ну вот мне только в телефоне веб-сервера не хватало, чтобы в музей сходить. Будто бы нет другого способа отдать информацию, кроме как запустить софта на 2 Гб весом (браузер + веб-сервер + обвеска в виде sql-сервера и сервера приложений, а то программеры не все умеют компактно писать) :)


                    1. Rumlin
                      21.06.2016 12:48

                      Имелся ввиду внутренний WEB и DNS серверы музея. Любые запросы браузеров телефонов, подключенных к WiFi музея, перенаправляются на единственный Web сервер сети — сервер музея. В принципе можно на каждый зал поставить свою беспроводную точку, при переключении на которую будет автоматически подменяться стартовая страница Web сервера.


              1. dmitry_ch
                21.06.2016 10:39

                Добавлю обратный пример:

                image

                вот вроде люди постарались, а пользы — ноль (я бы через рельсы прыгать, чтобы распознать код, не стал бы).

                А вот дилемма музея:

                image

                к экспонатам (а по сути — и к их табличкам) нельзя подходить вплотную, в то время как сканирование требует именно близкого расстояния. А «волшебного» распознавания (повел телефоном примерно в сторону QR-кода, а телефон мгновенно и 100%-точно распознал) я не видел. Стоять по полминуты перед вазой, как на иллюстрации выше, конечно забавно, но попробуйте погуляйтесь по любому мало-мальски наполненному музею в таком режиме — вы запомните только свой телефон, а не экспонаты. Впрочем, кто-то и в рестораны ходит не за едой, а чтобы выложить фоточки ее в инстаграмме, так что это уже дело личное )

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


                1. Rumlin
                  21.06.2016 11:33

                  Тут проблема конкретного места установки QR. Можно продублировать в более доступных местах.


                  1. dmitry_ch
                    21.06.2016 11:42
                    +1

                    Я с тем же успехом могу предложить не квадратные коды вешать, а пятиугольные, или в виде трубочки — пока мы не уверены, что многие (т.е. не 5%, а 75%) посетители музея имеют установленным и привыкли пользоваться читалкой для любого вида меток, метки считаем бесполезными.

                    Пока один прибор всегда наготове — глаза. Поэтому таблички с текстом универсальны. Других вариантов маловато (

                    На Intel не надо смотреть, они придумывают и придумывают, у них работа такая. Не все хорошо получается (вспомним гениальный разъем USB, который, почему-то, на практике почти всегда включается в девайс с 3-й попытки!), но они не унывают.

                    QR — (относительно) стары. Но не стали легко применимыми за столько лет. Может, это уже критерий применимости?

                    Что по ссылке с кода откроется — вообще вопрос, мы его не трогаем (404 или страница на китайском как вариант).