iBeacon SDK op Android

ibeacon sdk

Mogelijke gebruiksscenario's en bedrijfsmodellen voor het baken dat locatiegebonden gebruikersinteractie mogelijk maakt, zelfs binnen gebouwen, worden momenteel fel besproken. In-store advertenties en kortingen, mobiele betalingen, navigatie, openbaar vervoer, lokalisatie in openbare gebouwen en musea en domotica zijn slechts de toppen van de ijsberg. En natuurlijk de alomtegenwoordige verzameling gegevens – nu nieuw en met nauwkeurige locatiegegevens. Voordat u meer leert over iBeacon-technologie, we zullen ook de iBeacon SDK in het artikel vermelden.

Wat is de hype?

Het door Apple ontwikkelde iBeacon-protocol op basis van Bluetooth Low Energy wordt ondersteund door verschillende apparaten. Het artikel legt iBeacons en Bluetooth Low Energy uit en gebruikt het voorbeeld van het ontwikkelen van een Android-app voor locatieafhankelijke boodschappenlijstjes om de locatieafhankelijke interactie van een app met iBeacons te tonen. De implementatie is gebaseerd op MOKOSmart iBeacon SDK.

iBeacon, Bluetooth 4.0, WERD, SLIM. Wot?

De basistechnologie voor iBeacon is Bluetooth. Bluetooth Low Energy (WERD), waarnaar vaak wordt verwezen als het Bluetooth Smart-marketinglabel, is opgenomen in versie 4.0 van de Bluetooth-standaard. BLE is niet achterwaarts compatibel met eerdere versies genaamd Bluetooth Classic. Bluetooth 4.0 specificeert dat apparaten die voldoen aan de norm een ​​of beide varianten moeten implementeren, d.w.z. Low Energy of Klassiek.

BLE is geïmplementeerd op bijna alle huidige smartphones zoals de iPhone 4+ en de Samsung Galaxy 3+. Een iPhone kan zowel functioneren als ontvanger van iBeacon-signalen als – in tegenstelling tot Android – heb een baken zelf. Android bevat BLE-stuurprogramma's vanaf API-versie 18, d.w.z. Android 4.3. Overigens, huidige computers zijn ook geschikt voor BLE. In Windows, echter, de chauffeurs zijn alleen aan boord vanaf Windows 8 en sinds medio 2011, BLE is beschikbaar op Apple-computers.

BLE blijft een verscheidenheid aan randapparatuur ondersteunen, zoals hartslagmeters en speelgoedhelikopters, thermometers, fitnessapparatuur en tandenborstels, Ja, tandenborstels en sportschoenen.

Interessant in verband met iBeacons is de Sensor

Tag van Texas Instruments, die naast zijn functie als iBeacon ook temperatuur kan meten, vochtigheid, druk, en versnelling. De sensortag wordt ook geleverd met een gyroscoop, een magnetometer, en twee hardwareknoppen. Het ideale apparaat om presentaties op afstand te bedienen tijdens het verzenden en weergeven van het vocht en de temperatuur van de handen van de spreker. Ik denk dat mijn volgende zandbakproject plankenkoorts zal zijn. U kunt een gedetailleerde lijst met apparaten vinden op de officiële Bluetooth-website.

GATT klaar

Het communicatiemodel dat door apparaten wordt gebruikt om gegevens uit te wisselen, wordt de GATT genoemd – Algemeen kenmerkprofiel. GATT definieert de rollen van de client en server. De client vraagt ​​via services gegevens op bij de server. Een service groepeert verschillende atomaire sleutel / waarde-paren, die kenmerken worden genoemd. Zowel services als kenmerken worden geïdentificeerd via UUID's en kunnen ook verdere beschrijvingen bevatten. Diensten en hun kenmerken worden gecatalogiseerd in de vorm van profielen; de specificatie definieert een hele reeks van hen uit de gezondheidszorg, sport en fitness en – in ons geval interessant – nabijheidssensor. De individuele profielen en hun diensten en kenmerken zijn te vinden in het Bluetooth-ontwikkelaarsportaal onder GATT-specificaties.

gatt ibeacon sdk

Ga naar het baken

Dus wat zijn iBeacons? iBeacon is een heel eenvoudige technologie (en een handelsmerk van Apple dat locatieafhankelijke interactie met applicaties mogelijk maakt. Een baken zendt een signaal uit dat kan worden ontvangen met BLE-compatibele apparaten en verwerkt door applicaties die erop zijn geïnstalleerd.Signaal bevat de identificatie van het baken en de ontvangststerkte. iBeacons zelf zijn, daarom – in tegenstelling tot onnauwkeurige verklaringen in de pers – niet in staat om inhoud te leveren of klantgedrag te volgen. Dit is de verantwoordelijkheid van de ontvangende applicaties en dus de ontwikkelaars.

iBeacon IRL

Grotere implementaties van iBeacons in Duitsland zullen waarschijnlijk nog lang op zich laten wachten, maar er zijn enkele voorbeelden uit de VS en Nederland. Bijvoorbeeld, Major League Baseball heeft uitgerust 28 stadions met iBeacons en gebruikt ze, onder andere, voor check-ins in de MLB-app “Bij het Ballpark”.

In het Rubenshuis in Antwerpen werd een showcase gerealiseerd, die achtergrondinformatie biedt zoals röntgenfoto's van schilderijen en geocachingspellen voor bezoekers.

Het beste voorbeeld qua grootte komt van Apple zelf. Over 250 Apple Stores zijn uitgerust met iBeacons. In combinatie met de Apple Store-app, locatieafhankelijke berichten worden naar kopers in de winkel gestuurd. Echter, de mogelijke interacties lijken momenteel vrij beperkt te zijn: Eerste beoordelingen melden slechts twee verschillende (en vrij algemeen) berichten die ze zouden hebben ontvangen. Speciale aanbiedingen of specifieke informatie over individuele producten in de buurt werden niet aangeboden.

Functionaliteit

iBeacon SDK gebruikt geen apart BLE-profiel, maar eerder Bluetooth-advertentiepakketten, d.w.z. broadcast-pakketten, die worden gebruikt om Bluetooth-apparaten te detecteren. Als u geïnteresseerd bent in de exacte structuur van het pakket, u kunt dit lezen, bijvoorbeeld, op de blog van Adam Warski.

Zo'n pakket wordt met regelmatige tussenpozen verzonden die via GATT kunnen worden geconfigureerd. Het bevat de UUID van het baken, die doorgaans vooraf is geconfigureerd door de fabrikant. Alle MOKOSmart bakens sturen dus dezelfde UUID. Grote en secundaire ID's worden ook gebruikt om de individuele bakens te identificeren. Grote ID's kunnen vertegenwoordigen, bijvoorbeeld, een filiaal van een winkel of een restaurant in een franchiseketen, de kleine ID's een enkele plank of een tafel.

Verder, de signaalsterkte is inbegrepen in het advertentiepakket, die kan worden gebruikt om de afstand van de ontvanger tot het baken te meten. Echter, je kunt hier geen hoge nauwkeurigheid verwachten, omdat het signaal kan worden gehinderd door ruimtelijke obstakels zoals meubels of mensen.

IBeacon SDK biedt twee concepten voor de interactie van een app met deze informatie: bereik- en regiobewaking. Bij het variëren, de afstand tot het baken wordt bepaald. Vanwege de hierboven genoemde onnauwkeurigheid, dit gebeurt in slechts drie fasen. “Onmiddellijk” is een afstand van enkele centimeters, “In de buurt” is een paar meter en “Ver” is een afstand van meer dan tien meter. Variëren is alleen mogelijk als de ontvangende app actief is.

Dit is niet nodig voor regiomonitoring. In deze modus, een inactieve app kan ook worden gewaarschuwd bij het betreden of verlaten van een regio die wordt gedefinieerd door een of meer bakens. Nu wordt duidelijk wat deze technologie aantrekkelijk maakt voor reclame en retail. In aanvulling op, voor de meeste bakens, de transmissiesterkte en het interval kunnen worden geconfigureerd om de levensduur van de batterij te optimaliseren op basis van lokale omstandigheden.

“De meeste bakens” impliceert dat er meer dan één fabrikant van iBeacons op de markt is. In feite, er zijn er nogal wat: MOKOSmart, Kontakt.io, Ijs, Ik waardeer jou, en Gimbal. Naast de hardware, deze fabrikanten bieden ook iBeacon SDK-service en cloudoplossingen voor het beheer van bakens. De hobbyisten onder ons kunnen met relatief weinig moeite zelf iBeacon-zenders opzetten met Raspberry Pi of Arduino.

Knipperende lijst

Laten we voor het implementatievoorbeeld uitgaan van de volgende situatie: De ontwikkelaar staat zaterdagochtend in de supermarkt. Er wachten hongerige kinderen thuis en 's middags is er een bakverkoop op school. Pas dan begint het weekend echt. Dus goede redenen om op te schieten. helaas, het boodschappenlijstje is lang en niet aangepast aan de indeling van de supermarkt. Of de supermarkt was uitgerust met iBeacons op de verschillende afdelingen, een boodschappenlijst-app kan de juiste vermeldingen markeren en het stressniveau van de (natuurlijk volledig fictief) ontwikkelaar.

Omdat onze app moet communiceren met Bluetooth, we hebben eerst BLUETOOTH- en BLUETOOTH_ADMIN-autorisaties nodig in het Android-manifest. Om de service aangeboden door de Estimote API te kunnen gebruiken om te communiceren met iBeacons, we moeten het ook bekend maken en de gedownloade API in onze libs / directory plaatsen.

Ons prototype bestaat uit een eenvoudig, vooraf ingevulde lijst en vooraf gedefinieerde regio's, d.w.z. afdelingen in onze supermarkt. Een lijstvermelding weet aan welke regio het is toegewezen. In ons voorbeeld, we wijzen slechts één baken toe aan elke regio. Het is ook mogelijk om een ​​lijst met bakens in één regio te combineren. De hoofdactiviteit is verantwoordelijk voor het herkennen van de huidige regio en het doorsturen van deze informatie naar een adapter, die verantwoordelijk is voor het markeren van de lijstitems. In aanvulling op, we voegen de optie toe om de actieve regio zonder bakens te selecteren om onze UI testbaar te maken zonder extra hardware.

In de activiteit staat op de methode Maken, we instantiëren een Beacon Manager van MOKOSmart voor onze app. We gebruiken een luisteraar voor de regiobewaking door de huidige regio bekend te maken aan onze adapter en het interval voor de baken-scans te definiëren. In het voorbeeld, we definiëren dat één seconde moet worden gescand en dan 250 ms moet wachten. Deze waarden worden relatief agressief gekozen om snelle resultaten in tests te krijgen. In werkelijkheid, de moeilijke balans tussen reactievermogen versus. Om te voldoen aan de levensduur van de batterij. In dit prototype, we vullen ook ons ​​boodschappenlijstje met dummywaarden. We starten of stoppen monitoring in de on () Start of onStop () methode van de hoofdactiviteit.

De ItemList

De adapter is geïmplementeerd als een afgeleide van android.widget.Array Adapter en overschrijft de get View () methode, die wordt opgeroepen voor elke regel die moet worden weergegeven. De titel van het item wordt geschreven in de eerste regel van de recensie die in de lay-out is gedefinieerd, in de tweede de toegewezen regio.

Zoals te zien is in Listing 1, de ingevoerde regio wordt overgebracht naar de adapter in de ingevoerde regio () callback van de MonitoringListener, die is toegewezen aan onze BeaconManager: itemlijst Adapter. segregatie (regio). Als u getView (), dit controleert of de regio van het item in de regel overeenkomt met de huidige regio. Als dit de zaak is, het kleurt de achtergrond van de lijn. Aanvullend of alternatief, men zou ook de items voor de huidige zone aan het begin kunnen zetten door de lijst te sorteren.

De code van de applicatie is duidelijk; het kost niet veel implementaties om iBeacon-signalen te ontvangen en deze in de app af te handelen. De iBeacon-concepten en monitoring worden in kaart gebracht in de MOKOSmart iBeacon SDK, zodat ze intuïtief kunnen worden gebruikt. De volledige broncode van de app is te vinden op GitHub.

Conclusie en vooruitzichten

We zagen dat interactie met iBeacons met behulp van de MOKOSmart iBeacon SDK eenvoudig is. Ik verwacht dus geen grote hindernissen in de implementatietechnologie, maar eerder in de inzet van de bakens en het afstemmen van het zendvermogen. Deze parameters hebben een directe invloed op het reactievermogen van de applicatie wanneer de locatie verandert. In elk geval, het balanceren zou moeilijk moeten zijn.

Voor bijzonder interessant, bijv. B.. op het gebied van domotica, Ik overweeg de combinatie van iBeacons met sensoren, zoals in de sensortag van Texas Instruments hierboven vermeld. Estimote zal ook mobiele bakens met bewegings- en temperatuursensoren op de markt brengen met Estimote Stickers. Eind oktober hadden de eerste previews voor ontwikkelaars moeten zijn opgeleverd 2014, maar tegen het einde van 2014.

Het valt nog te bezien of het toepassingsgebied "Indoor Navigation" met deze technologie robuust in kaart kan worden gebracht. Vanwege de gevoeligheid van het Bluetooth-signaal voor storingsfactoren, sterke verlichting met iBeacon-signalen van het overeenkomstige gebied en positieberekeningen met behulp van triangulatie met kamerplannen zouden nodig zijn. Passende oplossingen worden geboden door MOKOSmart (Indoor navigatie iBeacon SDK) en diverse andere fabrikanten zoals LabWerk, maar de auteur is niet op de hoogte van praktische rapporten.

Met de ontwikkeling van een app die communiceert met iBeacons, Er moet ook rekening worden gehouden met veiligheids- en gegevensbeschermingsaspecten. Vanwege de eenvoud van het signaal, iBeacon is vatbaar voor spoofing, die tijdens de ontwikkeling niet mag worden vergeten. Ook gegevens zoals de huidige locatie en het bewegingsprofiel die op basis van gebruikersgedrag kunnen worden verzameld, hebben een hoge behoefte aan bescherming.

MOKOSMART iBeacon SDK

ibeacon sdk-oplossing

 

Praat met een expert