Post on 03-Feb-2021
transcript
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