ThingLocator - Lokalisierung von Dingen des Alltags per ... › vs-wiki › images › 9 › 9a ›...

19
ThingLocator Lokalisierung von Dingen des Alltags per Android-App Burak Selcuk, Alexander Krenz Hochschule RheinMain, Informatik Master 03.02.2016 Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 1 / 19

Transcript of ThingLocator - Lokalisierung von Dingen des Alltags per ... › vs-wiki › images › 9 › 9a ›...

  • ThingLocatorLokalisierung von Dingen des Alltags per Android-App

    Burak Selcuk, Alexander Krenz

    Hochschule RheinMain, Informatik Master

    03.02.2016

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 1 / 19

  • Gliederung

    1 Einleitung

    2 Konzept

    3 Umsetzung

    4 Demo

    5 Fazit

    6 Anhang

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 2 / 19

  • Einleitung

    Idee

    Dinge werden mit Beacons ausgestattet und sind somit

    ”netzwerkfähig“

    Smartphone als Sensor um Beacons als Dinge zu speichern und somitzu lokalisieren

    Kommunikation zwischen App und Beacon über Bluetooth LowEnergy

    mittels Constraints, das Erscheinen und Entfernen von Beaconsauswerten

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 3 / 19

  • Einleitung

    Ziel

    Umsetzung von:

    einer Android-App zum Verwalten und Lokalisieren der persönlichenDinge / Beacons

    eine REST-Schnittstelle zur Anfrage der Einhaltung von Constraints

    einem Webinterface zum Verwalten der Beacons und Constraints

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 4 / 19

  • Konzept

    Konzept: Architektur

    Internet

    Dinge Smartphones

    Apache mit PHPServer

    REST Schnittstelle SQLite

    Datenbank

    Constraint-Eingabe

    Abbildung: Architektur Konzept

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 5 / 19

  • Konzept

    Konzept: App

    Auflistung der Beacons in der Umgebung

    Speichern der Beacons als ”persönliches Ding”

    Lokalisierung über Distanz-Klassen anhandRSSI-Werte

    Server-Anfrage bei Wechsel derDistanz-Klassen

    Benachrichtigung falls ein Constraint verletztwurde

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 6 / 19

  • Umsetzung

    iBeacon Advertisement

    Was wird empfangen?

    iBeacon Advertisement Data

    iBeacon Prefix (9 bytes) (fixed)

    Proximity UUID(16 bytes)

    Major(2 bytes)

    Minor(2 bytes)

    TxPower(1 byte)

    Abbildung: Struktur des Advertisement

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 7 / 19

  • Umsetzung

    Lokalisierung

    Problem: Wie sollen die Beacons mit BLE lokalisiert werden?

    wie Apple iBeacon in Klassifikationen aufteilen:unmittelbar, nah, fern, unbekannt

    hier: unmittelbar bis 1m, nah bis 3m, fern bis 7m, darüber unbekannt

    Standard-Option: Distanz-Berechnung anhand RSSI-Wert undTxPower-Wert

    weitere Option: eigene Distanz-Werte für Klassen einstellen

    weitere Option: nur RSSI-Werte für Distanz Klassifizierung benutzenund einstellen

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 8 / 19

  • Umsetzung

    Scan Ablauf

    nein

    ja

    nein

    ja

    ja

    nein

    scanStart() alle x Sekunden

    scanCallback()

    Beacon bekannt?

    RSSI-Wert aktualisieren

    Distanz neu berechnen &

    einstufenoldLocation != newLocation

    neues "unbekanntes"

    Beacon erstellen

    REST-Request an Server

    Constraint verletzt?

    Benachrichtigung am Smartphone

    Abbildung: Ablauf beim Empfangen eines Advertisement

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 9 / 19

  • Umsetzung

    Server-Aufbau

    Apache-Webserver mit PHP

    REST-Schnittstellen über Slim Framework

    HTTP-Request über POST

    HTTP-Response im JSON-Dateiformat

    NotORM Framework für SQLite

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 10 / 19

  • Umsetzung

    Schnittstellen DefinitionRequest

    Hinzufügen von Beacons /insert-beacon

    device id, beacon uuid, major, minor, name, location

    Löschen von Beacons /delete-beacon

    device id, beacon uuid, major, minor

    Constraint abfrage /beacon-state-change

    device id, beacon uuid, major, minor, rssi, location

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 11 / 19

  • Umsetzung

    Schnittstellen DefinitionResponse

    Constraint Abfrage /beacon-state-change

    {"constraint_violated": true oder false,

    "violated_constraints":[

    {"constraint_id": constraint_id,

    "message": message

    },{"constraint_id": constraint_id,

    "message": message

    }]

    }

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 12 / 19

  • Umsetzung

    Constraint für ein BeaconBeispiel

    Device

    B1 = Schlüssel

    Location NEAR

    Abbildung: Beispiel Szenario für 1 Beacon

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 13 / 19

  • Umsetzung

    Constraint für zwei BeaconBeispiel

    Device

    B1 = Schlüssel

    Location NEAR

    B2 = Dieb

    Location >= => UNKNOWN

    Abbildung: Beispiel Szenario für 2 Beacon

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 14 / 19

  • Umsetzung

    Constraint DatenbankSchema

    Constraint

    idPS

    device_id

    beacon_uuid

    const_type

    const_location

    Constraint_Relation

    idPS

    device_id

    b_first_uuid

    b_first_const_id

    b_second_uuid

    b_second_const_id

    relation_type

    message

    Abbildung: Schema für Constraint

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 15 / 19

  • Demo

    Demo

    Demo

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 16 / 19

  • Fazit

    Fazit

    Entwickeln mit Bluetooth LE unter Android praktisch durchintegrierte API

    RSSI-Wert stark schwankend, Distanz Berechnung sehr ungenau

    Planung der Constraint Implementierung relativ spät gestartet

    Probleme mit SQLite bei häufigen Anfragen (DELETE währendSELECT)

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 17 / 19

  • Fazit

    Fragen

    Fragen?

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 18 / 19

  • Anhang

    LokalisierungUmsetzung

    Quellcode von iBeacon Lokalisierung nicht verfügbar

    Nutzung der Android Beacon Library Distanz Berechnung:

    d = 0, 89976 × (r/t)7,7095 + 0, 111

    d = Distanz, r = RSSI, t = TxPower

    Ansatz: Anhand Reihe von Messdaten zwischen RSSI und DistanzAusgleichungsrechnung durchführen

    praktisch jedes Beacon zuerst kalibrieren um individuelle Parameterfür Berechnung zu erhalten

    Burak Selcuk, Alexander Krenz ThingLocator 03.02.2016 19 / 19

    EinleitungKonzeptUmsetzungDemoFazitAnhang