System mikrolokalizacji w oparciu o technologię ibeacons Karol Kempa Wydział Inżynierii Mechanicznej i Informatyki Kierunek Informatyka, Rok II, Stopień II {karol.kempa90@gmail.com} Streszczenie GPS jest obecnie powszechnie stosowany i nawigacja z jego użyciem stała się już standardem. Brakuje jednak odpowiednika, który można byłoby z powodzeniem zastosować wewnątrz budynków lub w otwartych przestrzeniach gdzie nie ma stałego zasilania. Odpowiedzią na tą potrzebę jest technologia ibeacons oraz moduły wyposażone w Bluetooth 4.0 umożliwiające w ten sposób stworzenie systemu mikrolokalizacji dla urządzeń mobilnych. 1 Wstęp Apple wraz z systemem ios7 wprowadziło nową technologię ibeacons[1] odpowiadającą za mikrolokalizację w miejscach gdzie system GPS zawodzi. Wykorzystane zostały w tym celu nadajniki Bluetooth umożliwiające rozgłaszanie danych, monitorowanie czy określenie odległości od modułów. W artykule zostanie opisana technologia ibeacons wraz z przykładowym zastosowaniem oraz istniejącymi implementacjami. 2 Technologia ibeacons 2.1 Co to jest ibeacons? ibeacons jest technologią służącą do stworzenia systemu mikrolokalizacji. Kluczem jest wykorzystanie nadajników Bluetooth Low Energy, które w porównaniu do klasycznego Bluetooth mają o wiele mniejsze zapotrzebowanie na, a co najważniejsze umożliwiają rozgłaszanie danych. Moduły mogą nawet nadawać dane w promieniu 70metrów. Moduł zbudowany jest z: 32bitowego procesora ARM Cortex M0 CPU, 256kB pamięci flash, akcelerometru, czujnika temperatury, 1
modułu 2.4 GHz Bluetooth 4.0 Smart, całość zasilana jest baterią Panasonic CR2450 620mAh. Schemat budowy zaprezentowany jest na Rysunku 1. Rys. 1: Budowa modułu ibeacons firmy Estimote[3] 2.2 Komunikacja Model nadawania zastosowany w Bluetooth 4.0 zastąpił poprzedni standard, w którym konieczne było parowanie dwóch urządzeń w celu komunikacji i wymiany danych. Zaletą wykorzystania Bluetooth Low Energy jest bardzo małe zapotrzebowanie na energię [Rys 2.], jednak związana jest z tym mała ilość rozgłaszanych danych. Każdy pakiet składa się z następujących pól: proximity UUID, major, minor, TxPower. Konkretne regiony, czyli obszary w którym moduły rozgłaszają pakiety, oznaczane są za pomocą pola UUID, natomiast do zapewnienia odpowiedniego kontekstu i szczegółowej identyfikacji przeznaczone są pola major i minor, dzięki którym można załadować odpowiednie dane z zewnętrznego źródła. Pole TxPower służy do modyfikacji siły sygnału każdego modułu. 2.3 Żywotność Zainstalowana bateria pozwala nawet do 2 lat pracy przy domyślnych ustawieniach i optymalnych warunkach otoczenia. W zależności od wymagań projektu możliwa jest zmiana 2
Rys. 2: Porównanie zapotrzebowania na energię Bluetooth i Bluetooth Low Energy odstępów pomiędzy kolejnymi pakietami z zakresu od 50ms do 2000ms, w celu częstszego lub rzadszego odświeżania danych, gdzie domyślną wartością jest 200ms. Częstotliwość jest znaczącym czynnikiem wpływającym na żywotność baterii. Ponadto idealną temperaturą otoczenia jest 23 C, natomiast poniżej -10 C i powyżej 60 C czas pracy znacznie spada. Ostatnim czynnikiem wpływającym na żywotność baterii jest siła nadawania syngału. 2.4 Lokalizacja Smartfon znajdujący się w obszarze modułu na bieżąco monitoruje siłę sygnału, która rozpatrywana jest w czterech strefach zależnie od odległości, Rys 3: Rys. 3: Pokrycie powierzchni unknown - poza obszarem nadawania 3
Moduł emituje sygnał we wszystkich kierunkach jednocześnie, tworząc w ten sposób kulę, zatem możliwe jest określenie dokładnej lokalizacji wykorzystując w tym celu przynajmniej trzy moduły oraz zagadnienie triangulacji. 2.5 ibeacons a istniejace technologie Technologię ibeacons można porównać na kilku płaszczyznach do następujących podobnych rozwiązań: GPS - Global Positioning System - system nawigacji satelitarnej, jednak jest niewystarczający w przypadku obiektów zamkniętych i budynków. NFC - Near Field Communication - rozwiązanie stosowane jedynie w urządzeniach z systemem Android, wyposażonych w odpowiednie moduły NFC realizujące komunikację między odpowiednimi znacznikami. Działa jedynie na bardzo małych odległościach, maksymalnie 20cm, co za tym idzie pokrycie powierzchni za pomocą tagów NFC jest bardziej skomplikowane logistycznie i droższe w porównaniu do stosowanych modułów ibeacons. Nie pozwala także na określenie odległości. WiFi - określenie lokalizacji na podstawie siły sygnału możliwe jest jedynie na urządzeniach z systemem Android, natomiast nie ma takiej możliwości w systemie ios. ibeacons łączy cechy tych technologii tworząc w ten sposób system: niezależny od platformy - dostępne odpowiednie biblioteki dla systemów ios, Android, Windows, dokładny i potrafiący pokryć dużą powierzchnię - także wewnątrz budynków, pracujący bardzo długo na jednej baterii. 2.6 Dostępność na urzadzenia Technologia ibeacons dostępna jest na urządzeniach z systemem ios7: iphone 4s i nowsze ipad 3 i nowsze ipad mini i nowsze ipod touch 5 i nowsze Google wprowadziło również API do obsługi Bluetooth LE od systemu Android 4.3. Dodatkowo urządzenia muszą być wyposażone w moduły Bluetooth 4.0. Do takich urządzeń należą między innymi: Samsung Galaxy S3, S4, S4 Mini, S5, Note 2 i Note 3, Google Glass, Nexus 7 (2013 wersja), Nexus 4, Nexus 5, Optimus G, 4X, G2 i nowsze, HTC One i Butterfly. 4
3 Projekt Ideą aplikacji było stworzenie interaktywnego przewodnika po muzeum, dostępnego na urządzenia mobilne z systemem ios oraz wykorzystującego mikrolokalizację opartą o nadajniki ibeacons. W założeniach system ma za zadanie: monitorować czy znajduje się w obszarze nadawania modułu z odpowiednim identyfikatorem, sprawdzać czy w obszarze znajduje się więcej niż 1 moduł, ustalać odległość od modułu, odpowiednio reagować na identyfikatory beaconów znajdujących się najbliżej użytkownika. Aplikacja na podstawie odnalezionych modułów najpierw zaprosi użytkownika do zwiedzenia muzeum gdy ten znadzie się w obszarze ich nadawania, a następnie automatycznie wykryje położenie użytkownika i przedstawi dodatkowe informacje o obiekcie, przy którym znajduje się zwiedzający. Projekt dla systemu ios7 wymaga jedynie biblioteki CoreLocation odpowiadającej za prawidłowe działanie mikrolokalizacji. W celu obsługi beaconsów na ios należy wykorzystać obiekt klasy CLLocationManager. Inicjalizacja tego obiektu wygląda następująco: / / i n i c j a l i z a c j a o b i e k t u o d p o w i e d z i a l n e g o za o d b i e r a n i e z d a r z e ń s e l f. beaconmanager = [ [ CLLocationManager a l l o c ] i n i t ] ; s e l f. beaconmanager. d e l e g a t e = s e l f ; / / o k r e ś l a n y j e s t UUID r e g i o n u i i d e n t y f i k a t o r, k t ó r y / / d o s t a r c z a i n f o r m a c j i NSUUID * uuid = [ [ NSUUID a l l o c ] i n i t W i t h U U I D S t r i n g : @" 8492 E75F 4FD6 469D B132 043FE94921D8 " ] ; s e l f. r e g i o n = [ [ CLBeaconRegion a l l o c ] initwithproximityuuid : uuid i d e n t i f i e r :@" ESTBeaconRegion " ] ; / / r o z p o c z ę c i e n a s ł u c h i w a n i a danego r e g i o n u [ s e l f. beaconmanager s t a r t M o n i t o r i n g F o r R e g i o n : s e l f. r e g i o n ] ; Metody odpowiedzialne za odpowiednie zdarzenia wejścia i opuszczenia regionu, a także zmianę położenia w danym regionie. ( void ) l o c a t i o n M a n a g e r : ( CLLocationManager *) manager d i d E n t e r R e g i o n : ( CLRegion *) r e g i o n { / / p r z y w e j ś c i u w r e g i o n w y ś w i e t l a n y j e s t komunikat oraz / / n a s t ę p u j e r o z p o c z ę c i e a k t u a l i z a c j i p o ł o ż e n i a u ż y t k o w n i k a [ s e l f s h o w E n t e r N o t i f i c a t i o n ] ; s e l f. beaconmanager s t a r t R a n g i n g B e a c o n s I n R e g i o n : r e g i o n ] ; } ( void ) l o c a t i o n M a n a g e r : ( CLLocationManager *) manager d i d E x i t R e g i o n : ( CLRegion *) r e g i o n { / / p r z y o p u s z c z e n i u r e g i o n u w y ś w i t l a n y j e s t komunikat oraz / / n a s t ę p u j e z a t r z y m a n i e a k t u a l i z a c j i p o ł o ż e n i a 5
} [ s e l f s h o w E x i t N o t i f i c a t i o n ] ; s e l f. beaconmanager s t o p R a n g i n g I n R e g i o n : r e g i o n ] ; ( void ) l o c a t i o n M a n a g e r : ( CLLocationManager *) manager didrangebeacons : ( NSArray *) beacons i n R e g i o n : ( CLBeaconRegion *) r e g i o n { / / z n a j d u j e m y n a j b l i ż s z y moduł i p r e z e n t o w a n e sa i n f o r m a c j e / / o danym o b i e k c i e CLBeacon * beacon = beacons. f i r s t O b j e c t ; i f ( CLProximityNear == beacon. p r o x i m i t y ) { [ s e l f p r e s e n t A d d i t i o n a l I n f o F o r N e a r e s t B e a c o n : beacon. major ] ; } } Prezentowana implementacja odpowiada za podstawowe działanie systemu mikrolokalizacji dla platformy ios. Pierwsza wersja aplikacji skupiać się będzie na dokładnym zbudowaniu mapy muzeum wraz z obiektami oraz wykorzystaniu triangulacji w celu określenia lokalizacji. W przyszłości przewidziane są dodatkowe moduły rozszerzające działanie aplikacji o elementy gier społecznościowych wykorzystujących lokalizację użytkownika w muzeum, a także narzędzia do analizy ruchu i przepływu użytkowników wewnątrz muzeum. 4 Podsumowanie Pomimo, że technologia ibeacons jest stosunkowo nowa, to zyskała już dużą popularność. Z powodzeniem została ona wdrożona już na największych stadionach sportowych[4], galeriach handlowych czy także personalizowanych ofertach reklamowych ograniczonych do wybranej lokacji. Niezaprzeczalnymi jej zaletami są m.in. łatwość w integracji modułów, implementacja dla urządzeń mobilnych czy możliwości lokalizacji gdzie inne systemy zawodzą. Technologia stanowi element łączący urządzenia mobilne w realnym świecie oraz krok ku realizacji idei Internet of Things[2]. Literatura [1] https://developer.apple.com/library/ios/documentation/userexperience/conceptual/ LocationAwarenessPG/RegionMonitoring/RegionMonitoring.html [2] http://en.wikipedia.org/wiki/internet_of_things [3] www.estimote.com [4] h t t p : / / mlb. mlb. com / news / a r t i c l e / mlb / home openers near mlbcom at the b a l l p a r k app g e t s u p d a t e?ymd=20140327& c o n t e n t _ i d =70214274& vkey=news_mlb 6