Применение технологии iBeacons для систем таргетированной рекламы
Методы позиционирования и навигации внутри помещения. Определение местоположения, используя синергетический эффект. Алгоритмы фильтрации шумов сигнала RSSI, формирование базы данных на сервере Firebase. Передача данных между сервером и приложением.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 16.09.2020 |
Размер файла | 4,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
«ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»
Факультет информатики, математики и компьютерных наук
Программа подготовки бакалавров по направлению
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
«Применение технологии iBeacons для систем таргетированной рекламы»
"Программная инженерия"
Потапкина Юлия
Нижний Новгород, 2020
Оглавление
Введение
Глава 1. Обзор предметной области
1.1. Методы позиционирования и навигации внутри помещения
1.1.1 Навигация с помощью сети Wi-Fi
1.1.2 Геомагнитное позиционирование
1.1.3 GSM-базовые станции операторов сотовой связи
1.1.4 Использование Bluetooth-маячков
1.1.5 Определение местоположения, используя синергетический эффект
1.2 Принцип работы Bluetooth - маячка
1.3 Bluetooth-маячки в розничной торговле
1.3.1 Технологии для работы с Bluetooth-маячками
1.3.2 iBeacon
1.3.3 Eddystone
1.4 Altbeacon
1.5 Обработка RSSI - сигнала и определение дистанции
1.6 Алгоритмы сглаживания и фильтрации шумов сигнала RSSI
1.7 Фильтр Калмана
Выводы по главе
Глава 2. Архитектура приложения и используемые технологии
2.1 Kotlin
2.2 Android StudioAndroid Beacon Library
2.3 Локальная база данных
2.4 Функциональные требования
2.5 Архитектура приложения
Выводы по главе
Глава 3. Детали реализации приложения
3.1 Проверка Bluetooth
3.2 Запуск процесса мониторинга
3.3 Фильтр Калмана
3.4 Отображение маяка в EditText, наследуемом от TextView
3.5 Формирование базы данных на сервере Firebase
3.6 Передача данных между сервером и мобильным приложением
Выводы по главе
Заключение
Список используемых ресурсов
Введение
Реклама стала неотъемлемой частью жизни современного человека. Каждый год реклама становится «умнее», применяя новые способы подхода к клиенту.Она использует сложные методы и настройки для поиска целевой аудитории в соответствии с указанными параметрами, характеристиками и интересами пользователей.Следует отметить, что большинство популярных социальных сетей и поисковых систем, таких как Instagram, Google и Yandex, теперь предоставляют возможности для целевой рекламы.
Однако недавние исследования в этой области показали, что целевая реклама касается вопросов конфиденциальности. Реклама настраивается путем анализа поведения потребителей с помощью онлайн-сервисов, которые могут рассматриваться как наносящие ущерб личной жизни пользователя.Кроме того, стоит отметить, что подбор подходящей аудитории не является однодневным процессом, это требует времени и усилий для анализа поведения потенциального клиента, что приводит к высоким затратам. И было бы несправедливо не упомянуть тот факт, что потребители меняют свое мнение, а также совершают покупки, в результате чего реклама становится бесполезной. firebase навигация шум сигнал
В этом проекте будет использоваться технология iBeacon для целевых рекламных систем. Это протокол для задач микронавигации и позиционирования который позволяет передавать данные между беспроводными устройствами.Целью данной работы является разработка мобильного приложения для решения задачиинформирования потенциального клиента, путем отправки уведомлений на его мобильное устройство с помощью маячков iBeacon. В исследовании будут рассмотрены следующие задачи:
• Изучить доступные технологии и решения для внутренней навигации;
• Рассмотреть примеры использования Bluetooth-маяков;
• Изучить структуру передаваемых маячками данных;
• Разработать алгоритм определения дистанции от передатчиков Bluetooth до пользователя;
• Разработать прототип мобильного приложения на ОС Android.
Работа состоит из трех глав. В первой будут рассмотрены существующие методы навигации внутри помещений, дана информация о передаваемых рекламных пакетах и методах обработки мощности сигнала. Во второй средства, используемые для разработки, и в третьей будут охвачены особенности реализации приложения.
Глава 1. Обзор предметной области
1.1 Методы позиционирования и навигации внутри помещения
В настоящее время существует несколько способов для навигации внутри помещений. Несмотря на то, что на открытой территории огромным преимуществом обладает система глобального позиционирования (GPS), то в закрытом пространстве уровень сигнала серьёзно искажается. Главным препятствием становится наличие стен и дверей, поэтому такой подход является неэффективным для внутренней навигации, вследствие чего необходимо рассмотреть другие варианты.
1.1.1 Навигация с помощью сети Wi-Fi
Данный вариант является наименее затратным по стоимости так как использует уже установленные заранее точки беспроводной сети. Мобильное устройство, попадая в зону действия нескольких точек отправляет запрос на сервер, который в свою очередь определяет местоположение пользователя. Минусом такого подхода является достаточно высокая погрешность точности навигации (в пределах 3-5 метров) и тот факт, что сервер получает информацию о mac- адресе устройства и использует его в дальнейшем для отслеживания передвижения. Однако сейчас многие устройства(в частности компании Apple) автоматически меняют свои mac-адреса для предотвращения рекламной слежки. Исходя из этого, скорее всего возникнет ситуация, когда один телефон будет «отмечаться» на сервере несколько раз под разными адресами, из-за чего может создаться эффект присутствия в одном месте нескольких мобильных устройств.
1.1.2 Геомагнитное позиционирование
Главным критерием для геомагнитного позиционирования являются геомагнитные аномалии, возникающие из-за неоднородности магнитного поля Земли. В 2012 году внедрением данной технологии занималась группа ученых университета Оулу (Финляндия). Позже эта система позиционирования получила название IndoorAtlas. Как заявляют ученые, данный метод остается невосприимчив к металлу или электропроводке и может быть использован как в высотных зданиях, так и в подземных строениях. Для обнаружения точек возникновения аномалий необходимо специальное программное обеспечение, точность обнаружения которого составляет примерно 2 метра. Главным недостатком системы является ее высокая сложность реализации и то, что локальное магнитное поле может изменяться под действием движущихся крупных металлических объектов. Конечно, мобильные устройства тоже являются движущимися объектами, однако их размер настолько мал, что изменения магнитного поля остаются практически незамеченными, чего не сказать о влиянии таких конструкций как лифты и эскалаторы.
1.1.3 GSM-базовые станции операторов сотовой связи
Местоположение пользователя определяется путем нахождения координат базовых станций сотовых сетей GSM. Так как мобильный телефон зачастую находится в зоне покрытия хотя бы одной станции, то благодаря множеству существующих приложений (например «Яндекс-Навигатор») совсем несложно установить её координаты. Существует мнение, что, зная местоположения нескольких точек можно достаточно точно определить координаты абонента. Однако, такой метод опирается на обязательное наличие дополнительного оборудования как на станциях, так и на телефоне абонента. При этом стоит отметить, что базовая станция регулярно отправляет запросы на мобильное устройство пользователя с целью установления факта его нахождения в сети GSM. В то время как телефон абонента отправляет запросы со своей стороны на станцию намного реже, обычно в случаях таких как регистрация в сети, переходе в зону покрытия другой базовой станции, отправки SMS, совершении исходящих и входящих звонков. Как правило периодичность запросов от телефона составляет примерно раз в полчаса-час. Несложно заметить, что для определения местоположения частота запросов должна увеличиться в разы и происходить как минимум раз в несколько секунд. Подобные запросы требуют больших затрат от батареи, следовательно уровень заряда абонента при таком методе будет тратиться совсем неэкономно. Ещё одним минусом является и то, что базовые станции находятся друг от друга на достаточно большом расстоянии (несколько километров), поэтому при попытке установить координаты местонахождения абонента будет получена лишь примерная зона, диаметром в пределах от 100 до 500 метров. Таким образом метод определения местоположения телефона используя базовые станции является неточным и очень энергозатратным.
1.1.4 Использование Bluetooth-маячков
Данная технология навигации внутри помещений использует Bluetooth - маячки, которые позволяют достаточно точно определить местоположение пользователя в здании, а в конкретном случае - в физическом магазине. Именно этот подход будет использоваться на протяжении всей работы. Подробная информация об этой технологии и протоколах взаимодействия будет рассмотрена далее.
1.1.5 Определение местоположения, используя синергетический эффект
Особенность данного подхода в том, что для решения задачи определения внутреннего местоположения используется не какой-либо один метод, а несколько, которые при совместном использовании дают достаточно точные результаты. Это достигается за счет того, что работают сразу несколько систем векторов, а значит и вероятность ошибок становится намного меньше. В 2013 году резидент «Сколково» SPIRITNavigationполучила грант в размере 1 млн$ на разработку гибридной системы навигации внутри помещений. В результате, используя технологии Wi-Fi, Bluetooth, GSM, LTE и добавив к этому собственные наработки приёмник демонстрировал результаты в 5 раз точнее многих мировых аналогов.Эффективность подхода не раз подтверждалась на уроне мировых рынков, вчастности, в Южной Корее на соревнованиях IPINв 2014 году и на конкурсе от компании Microsoft, проходящем в 2015 году в Сиэтле. В 2016 году стало известно, что технология была продана известному калифорнийскому разработчику. Следовательно, на данный момент, синергетический эффект безусловно является одним из самых точных и надежных методов, используемых для indoor-навигации, единственным минусом является дороговизна разработки.
1.2 Принцип работы Bluetooth - маячка
Маячками (или биконами от англ. «beacon»- маяк) являются небольшие передатчики, использующие технологию BluetoothLowEnergy (BluetoothLE), чаще всего применяющиеся для маркировки каких-либо локаций. Работа с ними напоминает работу с Wi-Fiточками. По всему периметру помещения устанавливаются передатчики, которые транслируют свой сигнал с определенной периодичностью, дистанция распространения сигнала в среднем составляет около 10 метров.С помощью биконов можно уведомлять посетителя магазина о проходящих акциях и давать актуальную информацию о товаре. Стоимость такого маячка, по данным на 2020 год составляет порядка 700-2000 рублей за единицу. Один маячок работает от батарейки и, как показывает практика, срок егослужбы колеблется от 6 месяцев до двух-трех лет, в зависимости от интенсивности работы, после чего батарейку можно заменить.
Рис 1. Устройство Bluetooth - маячка
Взаимодействие маячка с мобильным устройством происходит следующим образом. Ранее установленное пользователем приложение принимает сигнал и определяет координатымаячка (если его координаты указаны в базе), а также используя значение показателя мощности принимаемого сигнала может определить своё местоположение в здании. Помимо этого, приложение используется для рассылки сообщений и уведомлений на мобильное устройство. При этом важно, чтобы девайс пользователя был оснащен BLE-чипом, но в наше время эта проблема встречается все реже и реже. Практически все современные смартфоны и планшеты имеют данный чип. Ошибка точности измерений (при использовании подходящего алгоритма обработки сигнала) обычно колеблется в пределах нескольких десятков сантиметров. Очевидно, что такой разброс является вполне приемлемым для установления факта нахождения мобильного устройства около маячка.
1.3 Bluetooth-маячки в розничной торговле
В настоящий момент Bluetooth-маячки нечасто используются в розничной продаже. Однако, они могут стать отличным проводником в мире торговли между магазином и покупателем. С помощью биконов приложение может рассказать о товаре, прислав уведомление и предоставив интересующую клиента информацию, такую как характеристики, отзывы покупателей и фотографии. В свою очередь продавец может наблюдать за перемещением потенциальных клиентов в магазине, делая выводы о том, чем они в данный момент интересуются больше всего.
Далее будут рассмотрены несколько примеров магазинов, мероприятий и выставочных центров, которые использовали технологию передачи информации с помощью Bluetooth-маячков.
1. На стадионе Камп Ноу, находящемся в Барселоне, посетитель, установивший соответствующее приложение, может заказать билеты на ближайшие матчи или тур по музею.
2. Выставочный зал BMWWorld (Мюнхен)также использует маячки чтобы рассказать клиентам о последних своих нововведениях и разработках. В качестве контента предоставляются изображения с текстом и видеоролики.
3. В 2015 году Каннский фестиваль впервые опробовал приложение «TimeRose». Участник фестиваля, установивший приложение на часах AppleWatch, видел оповещение с единственным сообщением «TimeRose?» и кнопками принять/отклонить данное предложение. Если ответ был положителен, то с помощью маячков iBeaconорганизаторы находили пользователя и буквально за несколько минут приносили ему бокал шампанского. Подобный ход получил множество положительных отзывов, приятно удивив участников фестиваля.
4. На российском рынке технологию Bluetooth-маячков использовал Музей космонавтики. Летом 2018 года было запущено приложение, которое позволяло посетителю провести для себя экскурсию по экспонатам самостоятельно. Таким образом, человек мог останавливаться у объектов именно столько сколько хочет, не следуя за гидом, и используя интерактивную карту музея, получать информацию в виде файлов мультимедиа.
1.3.1Технологии для работы сBluetooth-маячками
На настоящее время на рынке есть несколько технологий для работы с Bluetooth-маячками. Среди них выделяют 3 самых часто используемых стандарта:
· iBeacon
· Eddystone
· AltBeacon
1.3.2 iBeacon
Одним из первых стандартов, определяющих формат сообщений BluetoothLowEnergy, стал iBeaconот компании Apple. Был выпущен в 2013 году и преимущественно ориентирован на розничную торговлю и мобильный маркетинг, а также применение его для решения задач внутренней навигации и позиционирования. Данный стандарт передает 1 пакет информации, размером 31 байт, состоящий из следующих блоков:
Рис 2. Структура iBeacon-пакета
Преамбула прокола состоит из данныхв шестнадцатеричном формате,она всегда выглядят они следующим образом для iBeacon- 0x0201061AFF004C0215.
1. 0х02106 - определяется как рекламный пакет BluetoothLowEnergy General Discoverable и BR / EDR. По сути, имеется в виду, что сигнал передается только в одностороннем порядке и сам Bluetooth - маячок не принимает в себя данных;
2. 0x1AFF извещает о том, что следующая информация имеет объем 26 байт и специфичны относительно производителя;
3. 0x004C - уникальныйидентификаторBluetoothSIG (SpecialInterestGroup) дляApple, обозначает зависимость данного маячка от компании;
4. 0x02 - сигнальный идентификатор, показывающий принимающим сигнал устройствам понять, что они обнаружили Bluetooth-маячок;
5. 0x15 - говорит о том, что последующая информация имеет объем 21 байт, из которых 16-UUID, 2-Минор, 2-Мажор, 1- значениемощности сигнала;
UUID (16 байт) - идентификатор уникальной группы маячков. Как пример, в одном торговом зале или магазине размещено несколько маяков. Все они будут иметь один и тот же идентификатор, так как принадлежат одной группе.
Major (2 байта) - значение, позволяет определить несколько маяков, принадлежащих одной группе. У этой группы маяков, имеющий один UUIDможет быть несколько подгрупп, которые отличаются данным беззнаковым значением.
Minor (2 байта) - также беззнаковое значение, позволяет определить уникальные элементы в подгруппе маячков.
TXPower (1 байт) - величина мощности маячка, показывает мощность сигнала на расстоянии 1 метра до считывающего устройства. Значение показателя устанавливается производителем на этапе изготовления и является константой. Измеряется в децибелах относительно 1-го милливатта(dBm).
Следующая таблица (Таблица 1) наглядно показывает пример определения маячка в розничном магазине одной торговой сети:
Таблица 1
City |
N.Novgorod |
Moscow |
Sochi |
||
UUID |
B96B3672-DF02-4421-8AA0-3E1D086B6AFD |
||||
Major-value |
11 |
12 |
13 |
||
Minor-value |
Gardening |
100 |
100 |
100 |
|
Cooking |
200 |
200 |
200 |
||
Clothing |
300 |
300 |
300 |
1.3.3 Eddystone
ТехнологияEddyStoneбылавыпущена компанией Google. В отличии от iBeaconданный стандарт имеет открытый протокол и поддерживается всеми устройствами вне зависимости от операционной системы. Также вместо одного пакета маячок EddyStoneмог транслировать до 3-х пакетов данных (на момент запуска в 2015 году), а с марта 2016 года до 4-х.
Рис 3. Структура Eddystone-пакетов
Eddystone-UID - данный формат используется для передачи уникальных идентификаторов маячка. Состоит из 16 байтов, из которых 10 занимает пространство имен, а 6 экземпляр. Имеет ту же значимость что и UUIDу iBeacon, может использоваться для обозначения определенной группы Bluetooth-маячков.
Eddystone-URL-транслируется URLзначение в сжатом формате. Устройство - приемник декодирует сигнал и получает URL-адрес на страницу в Интернете.
Eddystone-TLM -передает телеметрические данные о состоянии маячка. Например, уровень его заряда, напряжение и даже температуру. Также есть похожий формат Eddystone-eTLM, представляющий собой зашифрованный вариант пакета.
Eddystone-EID - маячок имеющий этот пакет передает зашифрованной идентификатор, размером в 8 байт, который генерируется случайным образом с помощью ключа. Смена идентификатора происходит спустя установленный промежуток времени, который варьируется от нескольких секунд до часов. Данный пакет данных используется для повышения безопасности использования маячков.
1.4 AltBeacon
Стандарт, разработанный американской компанией RadiusNetworks, занимающейся разработкой программного обеспечения. Был заявлен как альтернатива к закрытому стандарту iBeacon и обладаемый тем же функционалом. Структура передаваемого маячком пакета имеет следующийвид:
Рис. 4. Структура AltBeacon - пакета
Первые 2 байта информации устанавливаются не пользователем маячка, а стеком BluetoothLowEnergy. Длина AD равна 0x1B, а тип AD равен 0xFF, что будет указывать длину рекламного пакета данных и тип в качестве производственных данных соответственно. Все что идёт после устанавливается на усмотрение пользователя маячка. MFG ID -- объемом 2 байта является идентификатором производителя устройства. В большинстве случаев идентификатор MFG будет соответствовать документу с присвоенными номерами Bluetooth SIG (Special Interest Group).BeaconCodeразмером 2 байта - содержит в себе код передаваемого рекламного пакета. Самую объемную часть информации, 20 байт, содержит уникальный идентификатор маячка. Он может быть представлен также как и у iBeacon, то естьв виде 16 байт. Reference Signal Received Power размером в 1 байт - усредненное значение мощности входящих сигналов И последнее, MFG RSVD - специальное зарезервированное поле.
1.5 Обработка RSSI - сигнала и определение дистанции
Единственный индикатор, по которому можно определить расстояние до устройства, отправляющего радиосигнал, -- это RSSI (Received Signal Strength Indicator)или индикатор уровня принятого сигнала. Уравнение для RSSI в зависимости от расстояния выглядит следующим образом:
Рис 5. Уравнение RSSI
Где: P (d) -значение RSSI (дБм, децибелы на 1 милливатт), P(0) - уровень сигнала, измеренный на определенном расстоянии,n - коэффициент потери мощности сигнала, d - дистанция до маячка, d (0) - дистанция калибровки, на котором измеряетсямощность.
На практике, даже в случаях отсутствия препятствий до маяка, параметр RSSI случайным образом меняет свое значение, что затрудняет определение расстояния до передатчика без осуществления дополнительных математических вычислений.
1.6 Алгоритмы сглаживания и фильтрации шумов сигнала RSSI
Для устранения шумов применяются различные алгоритмы сглаживания значений:
1. Скользящая средняя или алгоритм скользящего среднего. В каждый момент замера значение равно среднему значению исходной функции. Так как с каждой следующей итерацией значение функции вычисляется заново, и в счёт идут последние измерения показаний, то и среднее будет «плавать» по временному ряду.
2. Авторегрессия скользящего среднего или ARMA (от англ. autoregressive moving-average model) - данная модель оценивает последние выборки чаще чем первоначальные. Данный подход приводит к меньшему отставанию от реальных данных, чем в предыдущем подходе.
3. Фильтр Калмана. Применяет прогностическую модель, с целью разделения данных на сигнал и шум, а также в дальнейшем сгладить шумовые помехи. Именно этот подход и будет реализован в работе.
1.7 Фильтр Калмана
Один из наиболее распространенных алгоритмов фильтрации данных это фильтр Рудольфа Калмана. Он использует рекурсивный алгоритм, состоящий из двух повторяющихся стадий: предсказания и корректировки. Из-за последовательного механизма алгоритма фильтр способен наблюдать за состоянием объекта в реальном времени.
Рис 6. Фильтр Калмана
Для предположения состояния системы в настоящий момент времени алгоритму достаточно знать лишь её состояние в предыдущий момент времени. Это получается вследствие того, что переменная F (динамика системы) равна единице, что указывает на то, что предполагаемое состояние системы будет совпадать с предыдущим, а переменная B (управляющее воздействие) равна нулю, ведь на входящий RSSI-сигнал нет никаких внешних влияний. Для предсказания ошибки ковариации необходимо знать ошибку в прошлый момент времени и определить Q (ковариацию шума процесса).
В процессе корректировки предполагаемых значений для начала вычисляется усиление Калмана. Переменная Н принимает значение 1, это состояние между всеми измерениями и текущим состоянием. Определить значение Q (шума) довольно сложная задача, однако можно подобрать его вручную. На этапе обновления системы все значения уже известны, добавляется только z(k) -которое обозначает только что замеренное состояние системы. Обновление ошибки происходит с учетом матрицы идентичности (переменная I) и на основе полученных выше данных.
Рис 7. Применение фильтра Калмана
Первоначальный вариант измерений показаний сигнала RSSI показывает наличие множества «скачков». Но после использования фильтра Калмана, получившиеся значения существенно приближены к реальным.
Выводы по главе
Были проанализированы существующие подходы для определения местонахождения пользователя внутри помещения, определены их преимущества и недостатки, а также рассмотрены примеры их использования. Таким образом, для данной работы наиболее подходящим является метод с применением маячков. Вследствие этого изучены три стандарта работы cBluetooth-маяками и разобраны пакеты передаваемых ими данных.А также изучены алгоритмы для обработки RSSI-сигнала и выбран наиболее точный метод определения дистанции между маячком и пользователем.
Глава 2. Архитектура приложения и используемые технологии
2.1 Kotlin
Языком программирования был выбран язык Kotlin, официально появившийся в 2016 году исозданный петербургской компанией JetBrains. В настоящий момент с релиза прошло 4 года, последней версией языка является версия 1.3.70. Исходный код с помощью JavaVirtualMachineкомпилируется в байт-код. Таким образом, отличительной особенностью является то, что он полностью совместим с Java, а следовательно, со всеми существующими java-библиотеками.Но несмотря на совместимость с JavaKotlinимеет множество отличий:
• Одним из примеров является отсутствие исключений, связано это с тем, что в Koltin нет условий дляchecked exception;
• Все типы не являются нулевыми по умолчанию;
• У Kotlinотсутствуют неприватные поля;
• Классы Kotlin, способны иметь один или несколько вторичных конструкторов, которые являются дополнением к первичному конструктору.
Подобным образом можно привести ещё множество дальнейших отличительных особенностей, однако в этой работе выбор Котлина в большей степени обуславливается новизной языка.
2.2 AndroidStudio
AndroidStudio - это комплекс программных средств, используемых разработчиками для создания и разработки программного обеспечения. Первая стабильная версия вышла в конце 2014 года, вследствие чего прекратилась поддержка Android Development Tools для Eclipse. Данная среда имеет очень много сходств со средой разработки IntelliJ IDEA, однако заявлена как официальное средство для разработки Android-приложений. Ранее предоставлялась возможность кодировать на таких языках как С++ и Java ипозже, с выходом Kotlin, в 2017 году было объявлено о поддержке его как третьего языка программирования под Android. AndroidStudioпозволяет создавать программные продукты не только для смартфонов и планшетов, а также и для «вещей», таких как умные часы, телевизоры и автомобили. Разработчики имеют возможность написать приложение под любую вышедшую версию Android и пользоваться шаблонами основных макетов и компонентов.В том случае, если проект содержит несколько модулей, можно запустить процедуру параллельной компиляции всех сразу.
2.3 AndroidBeaconLibrary
AndroidBeaconLibrary - библиотека, созданнаякомпаниейAltBeacon, ипозволяющая устройствам на платформе Android взаимодействовать с маячками точно так же как и устройства на платформе iOS. Последняя актуальная версия - 2.17, будет использоваться в работе. Первоначально библиотека разработана для маячков AltBeacon, однако сейчас возможна работа и с такими стандартами как Eddystoneи iBeacon. Она регулярно обновляется, сейчас уже возможна работа с последними версиями Android. Как заявляет производитель данную библиотеку используют уже более 16 тысяч мобильных приложений, среди них такие крупные компании как CocaCola, McDonald's, Disney, AirFranceи другие. Пользоваться библиотекой смогут пользователи всех устройств, имеющих версию Androidне менее 4.3, и поддерживающих технологию BluetoothLowEnergy. По статистическим данным Googleтакие требования захватывают порядка 97% устройств данной операционной системы. Использовать библиотеку можно в интегрированных средах разработки AndroidStudioи Eclipse.
2.4 Локальная база данных
Для небольшого мобильного приложения нет нужды поднимать свой собственный сервер. Хорошей альтернативой в этом случае выступает Firebase. Это частная американская компания, которая в 2014 году была поглощена компанией Google, занимающаяся предоставлением услуг облачного хранения данных. Данный сервис бесплатный, хоть и действует множество лимитов, для данного проекта функционала вполне достаточно. Firebaseпредоставляет несколько функций и сервисов:
Рис 8. Сервисы Firebase
RealtimeDatabase --база данных реального времени, все изменения, произошедшие в базе мгновенно отображаются у пользователей приложения. В бесплатной версии возможно до 100 одновременных подключений и 1ГБ памяти для базы.
Authentication -- возможность для пользователей привязать свои учетные записи (Facebook, Googleи т.д.) к приложению. Также поддерживается возможность анонимного входа в сеанс.
Storage -- хранилище для данных пользователя Firebase, в бесплатной версии ограничено 5 ГБ памяти и не более 1ГБ использования в день.
Hosting --развертывание мобильных и веб-приложений с помощью безопасной глобальной сети.
TestLabforAndroid -- «лаборатория» для тестирования приложения на различных устройствах с поддержкой Android. Ограничен не более 15-ю тестами в день для бесплатных аккаунтов.
CrashReporting -- сбор информации об ошибках в ходе работы приложения.
Notifications -- уведомления, присылаемые пользователю.
RemoteConfig -- сервис, позволяющий менять поведение приложения, меняя необходимые разработчику параметры прямо на сервере.
AppIndexing -- связка информации с веб-сайтов с внутренними страницами приложения.
AdMob -- популярный рекламный сервис, постоянно модернизирующийся и имеющий большое разнообразие форматов.
2.5 Функциональные требования
Прежде чем приступить к созданию приложения необходимо определить функциональные требования, которые оно должно выполнять в ходе работы. Таким образом, установлены следующие требования к программе:
• Проверка активности сервиса Bluetooth
• Запрос разрешения на определение местоположения устройства
• Демонстрация нового окна с актуальной информацией о товаре, при условии нахождения покупателя в зоне радиусом 1 метр от маячка
• Передаваемая информация должна содержать изображение, краткую характеристику товара и его стоимость
• Отображение информации о том, виден ли приложению маячок
• При нажатии кнопки ранжирования отображение уникального UUIDмаячка, его major иminor- значения и расстояние от маячка до пользователя
• Отображение уведомления при первичном фиксировании маячка уникальной группы
• Поиск маячков в фоновом режиме
• При уровне заряда мобильного устройства менее 60% запускается процесс экономии батареи
2.6 Архитектура приложения
В данной работе приложение использует паттерн Model-View-Presenter (MVP), который является производным шаблоном от MVC (Model-View-Controller). Он состоит из трёх частей: View, Presenterи Model, его схема имеет следующий вид.
Рис 9. Шаблон Model-View-Presenter
Model-- несет в себе данные для отображения, как локальные, так и серверные. Эта часть не взаимодействует с пользователем напрямую.
Для внешнего отображения информации пользователю используется View. Всю информацию он получает от Presenter, причем эта часть не содержит собственной логики, она лишь передает результат действий пользователя.
Presenter - имеет в себе всю бизнес-логику, то есть принципы и зависимости поведения объектов. Отвечает за перемещение данных, которые ввел пользовательи за своевременное обновление View, используя специальный интерфейс, когда в Model происходят какие-либо изменения. Является той самой связующей частью, которая помогает взаимодействовать View и Model.
Выводы по главе
В этой главе была определена среда разработки и выбран язык программирования. Рассмотрена библиотека для работы с Bluetooth-маячками и изучены возможности Firebase, которая будет использоваться в качестве сервера. Определены функциональные требования к программе и шаблон проектирования пользовательского интерфейса.
Глава 3. Детали реализации приложения
3.1 Проверка Bluetooth
При запуске приложение проверяет включен ли модуль Bluetoothна устройстве пользователя. Если же Bluetoothвыключен всплывающее окно просит активировать его и перезапустить приложение.
Рис 10 Уведомление Bluetooth
При этом, нужно учесть случай, когда мобильное устройство не будет поддерживать данную технологию. В этом случае пользователь получит сообщение о том, что модуль Bluetooth не найден и запуск приложения на его устройстве невозможен
.
Рис 11. Код проверки Bluetooth-модуля
3.2 Запуск процесса мониторинга
Как только маячок впервые оказывается в зоне видимости мобильного устройства, вызывается новая Activity, которая следит за его состоянием.
Рис 12. Запуск процесса мониторинга
3.3 Фильтр Калмана
Используя фильтр можно определить расстояние от маячка до устройства-приемника. После обработки входящего сигнала фильтр возвращает приближенное значение RSSI-сигнала.
Рис 13. Функция фильтра Калмана
На основании этого значения рассчитывается дистанция. Если сила сигнала сильнее чем TXPower, то это означает, что пользователь находится на расстоянии менее чем 1м от передатчика. С помощью заранее установленных констант происходит вычисление дистанции в метрах.
3.4 Отображение маяка в EditText, наследуемом от TextView
В момент, когда приложение увидело маячок его данные отображаются в TextView. Отображается приветствие, UUID, minorи majorзначения и дистанция от маячка до мобильного устройства.
Рис 14. Информация об обнаруженном маячке
3.5 Формирование базы данных на сервере Firebase
Структура в базе данных Firebaseимеет следующий вид, это сделано для того, чтобы быстро получать нужную информацию по запросу:
-- Корневая ссылка
-- Помещение 1
-- Название (Магазин №1)
-- Идентификатор помещения
-- Список маячков на территории
-- iBeacon_1
-- Идентификатор маячка
-- Характеристика товара
-- Цена
-- iBeacon_2
База данных содержит актуальную информацию о товарах, изображения, относящиеся к описанию товаров, хранятся облаке Storage
Рис 15. Облачное хранилище Firebase
3.6 Передача данных между сервером и мобильным приложением
Рис 16. Добавление приложения в Firebase
После получения мобильных идентификаторов приложения и их инициализации, а также установки FirebaseSDK, на сервере можно осуществлять передачу данных от сервера в приложение. Все ответы приходят в формате jsonи после десериализации становятся объектами plainobject с которыми можно продолжать работу.
Однако нелогично передавать рекламные данные сразу после обнаружения маячка мобильным девайсом. Ведь в таком случае может возникнуть ситуация «заспамленности» клиента, что только оттолкнет его от использования приложения в дальнейшем. Таким образом было наложено ограничение на рассылку информации о товаре. Приложение делает запрос на сервер только если пользователь находится в радиусе не более 1 метра от маячка, именно поэтому было важно достаточно точно определить расстояние между устройствами. Следовательно, при соблюдении условия дистанции, находясь у определенного маяка, покупатель видит на своём экране актуальное рекламное предложение.
Выводы по главе
В главе были приведены методы работы с клиентским приложением, прием и обработка RSSI- сигнала, описаны результаты работы с Bluetooth-маячками и серверной частью приложения.
Заключение
В ходе написания выпускной квалификационной работы были проанализированы способы определения внутреннего позиционирования в здании, рассмотрены их достоинства и недостатки, а также аргументирована актуальность использования Bluetooth-маячков не только как устройств для измерения местоположения, но и для рассылки информации о товаре потенциальному клиенту. При этом данный подход не нарушает границ личного пространства, запрашивая лишь текущее местоположение пользователя. Были изучены существующие протоколы работы с Bluetooth-маячками: iBeacon, Eddystoneи AltBeacon, а также примеры их использования в мире розничной торговли.Разобраны структуры передаваемых ими рекламных пакетов, какой объем информации они передают и какие значения будут полезными при использовании в программе.
Были рассмотрены несколько алгоритмов для обработки транслируемого маячками RSSIсигнала, самым эффективным вариантом из которых являлся алгоритм рекурсивного фильтра Калмана. Данный метод был использован для определения расстояния между передатчиком сигнала и принимающим устройством.
Разработанная в ходе работы программа состоит из двух частей - клиента, реализованного в виде мобильного приложения, и сервера, в качестве которого использован облачный сервис для хранения данных Firebase. Она может стать хорошим решением для информирования потенциального клиента с помощью отправки данных о тех товарах, которыми он заинтересован в данный момент времени, находясь в физическом магазине. Таким образом приложение позволит сократить разрыв между миром онлайн-покупок и магазинами розничной продажи.
Размещено на Allbest.ru
...Подобные документы
Разработка алгоритма фильтрации данных, полученных с систем спутниковой навигации с помощью GNSS-модуля. Анализ работы фильтра Калмана, его программная реализация под конкретную задачу. Выбор навигационных модулей для получения данных позиционирования.
дипломная работа [3,6 M], добавлен 12.01.2016Особенности создания учетных записей на файловом сервере. Разработка функциональной модели базы данных. Отчет по дугам модели. Сущность, атрибуты и связи информационной модели. Разработка базы данных в системе управления базами данных MS Access.
контрольная работа [2,3 M], добавлен 23.01.2014Назначение базы данных для обеспечения работы автобусного парка. Основные возможности админпанели. Выполняемые базой данных и приложением функции. Инфологическое моделирование данных. Описание разработанного web-приложения. Проектирование базы данных.
курсовая работа [2,2 M], добавлен 01.02.2013Разработка базы данных "Поставка и реализация продуктов питания". Применение базы данных. Цель инфологического проектирования. Выборка информации при помощи запросов. Подпрограммы, работающие на сервере и управляющие процессами обработки информации.
курсовая работа [326,0 K], добавлен 28.06.2011Виды жилищно-управляющих организаций. Базы данных и их классификация, структурные элементы: таблицы и запросы, формы и отчеты, экспорт и импорт данных. Определение требований к приложению, проектирование базы данных. Правила пользования приложением.
курсовая работа [374,5 K], добавлен 01.02.2015Определение базы данных и банков данных. Компоненты банка данных. Основные требования к технологии интегрированного хранения и обработки данных. Система управления и модели организации доступа к базам данных. Разработка приложений и администрирование.
презентация [17,1 K], добавлен 19.08.2013Формы представляемой информации. Основные типы используемой модели данных. Уровни информационных процессов. Поиск информации и поиск данных. Сетевое хранилище данных. Проблемы разработки и сопровождения хранилищ данных. Технологии обработки данных.
лекция [15,5 K], добавлен 19.08.2013Система управление базами данных, реляционная модель. Принципы взаимодействия между клиентскими и серверными частями. Трехуровневая модель технологии "клиент-сервер". Фрактальные методы сжатия больших объемов данных. Анализ концепции хранилища данных.
курс лекций [265,0 K], добавлен 05.06.2009Создание таблиц базы данных с помощью MS Access "Страны Азии". Форма базы данных и запросы к выборкам данных. Модификация структуры таблиц, создания связей между главными таблицами, редактирование данных и проектирование форм для реальной базы данных.
контрольная работа [723,9 K], добавлен 25.11.2012Логическая и физическая модели базы данных. Запрет на содержание неопределенных значений. Размещение базы данных на сервере. Реализация клиентского приложения управления базой данных. Модульная структура приложения. Основные экранные формы приложения.
курсовая работа [1,4 M], добавлен 13.06.2012Разработка реляционных баз данных. Обслуживание и применение сервисных средств. Применение языков запросов для создания приложений. Базы данных в корпоративных сетях. Автоматизация работы с базой данных. Объединение компонентов в единое приложение.
методичка [430,2 K], добавлен 22.11.2008Особенности написания базы данных на языках программирования C++, применимой для расписания занятий в университете. Этапы работы: ввод новой записи, изменение, просмотр базы данных, поиск данных. Алгоритмы, используемые в процессе выполнения проекта.
практическая работа [16,6 K], добавлен 12.06.2010Реализация приложения "Книжный магазин" средствами систем управления базами данных. Проектирование структуры базы данных, определение сущности и атрибутов. Логическое проектирование базы данных и реализация базы данных в СУБД Microsoft Office Access.
курсовая работа [7,8 M], добавлен 13.02.2023Проектирование базы данных "Менеджер". Выбор системы проектирования и реализации. Задачи, выполняемые приложением. Технические требования, предъявляемые к базе данных. Ее информационно-логическая структура. Основные принципы работы с приложением.
дипломная работа [2,5 M], добавлен 20.05.2013Основные понятия базы данных и систем управления базами данных. Типы данных, с которыми работают базы Microsoft Access. Классификация СУБД и их основные характеристики. Постреляционные базы данных. Тенденции в мире современных информационных систем.
курсовая работа [46,7 K], добавлен 28.01.2014Понятие и внутренняя структура базы данных как набора информации, потенциально необходимой в дальнейшем, плюс алгоритмы и программы, предназначенные для работы с этим набором. Принципы формирования базы данных, работа с основными таблицами и запросами.
презентация [974,8 K], добавлен 15.03.2015Характеристика системы управления базами данных Microsoft Access и инструментальных средств для создания локальной базы данных в сети с файловым сервером или приложения пользователя. Применение мастера для создания формы, изменение фонового рисунка.
курсовая работа [1,6 M], добавлен 12.03.2015Создание таблиц базы данных в режиме конструктора. Наименование и структура таблиц базы данных "Библиотека". Применение поля подстановок и создание фиксированного списка значений для полей. Схема связи между таблицами. Формирование и выполнение запроса.
контрольная работа [1,2 M], добавлен 24.07.2009Проектирование логической структуры базы данных методом нормальных форм, сущность связь. Сравнительный анализ спроектированной базы данных и базы данных существующих информационных систем. Выбор и обоснование состава технических и программных средств.
курсовая работа [3,0 M], добавлен 22.12.2014Создание базы данных для учета лекарственных средств и изделий медицинского назначения в аптеках стационаров. Требования к программному продукту. Способ организации данных. Начало работы с приложением. Экономическая эффективность внедрения разработки.
дипломная работа [2,6 M], добавлен 10.10.2015