Présentation iBeacon (cocoaheads toulouse)
-
Upload
arnaud-boudou -
Category
Technology
-
view
6.158 -
download
4
description
Transcript of Présentation iBeacon (cocoaheads toulouse)
Présentation iBeacon
Arnaud Boudou 13/04/2023
13/04/2023 www.ekito.fr 2
• Arnaud Boudou
– Développeur Java / iOS chez ekito
– Twitter : @boudouarnaud
– Web (ekito) : http://www.ekito.fr/people?author_name=aboudou
– Web (perso) : http://goddess-gate.com/
Sommaire
• La localisation indoor• Qu’est-ce qu’iBeacon• Avec iOS• Limitations
13/04/2023 www.ekito.fr 3
La localisation indoor
• Positionnement géographique, les différentes méthodes :– Réseau cellulaire– Points d’accès WIFI– GPS
• Dans certains cas, ces solutions ne sont pas viables en intérieur
• Solution proposée par Apple : iBeacon
13/04/2023 www.ekito.fr 4
Qu’est ce qu’iBeacon ?
• iBeacon ≠ pomme au bacon• iBeacon = iBalise / iPhare• Émetteur radio basé sur la norme BLE (Bluetooth Low
Energy)• Faible portée : environ 10m, fonction de la puissance
d’émission• Forte autonomie, fonction de la puissance d’émission
13/04/2023 www.ekito.fr 5
Qu’est ce qu’iBeacon ?
• Techniquement :– Utilise un champ optionnel des paquets d’avertissement– Message sous la forme
02 | 15 | E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 | 00 00 | 00 00 | C8
• ID : toujours 0x02• Data length : taille du message en octets. Ici 0x15 (= 21 octets)• UUID : identifiant iBeacon (différent de l’identifiant Bluetooth)• Numéro major• Numéro minor• TX Power : niveau de puissance, utilisé pour « calculer » la distance entre
l’iBeacon et le périphérique iOS
13/04/2023 www.ekito.fr 6
Qu’est ce qu’iBeacon ?
• Les identifiants d’un iBeacon :– UUID : Identifiant semi-unique, pour une entreprise– Major : Identifiant d’un des locaux de l’entreprise– Minor : Identifiant d’un lieu précis du local précédent
• Exemple Apple Store– UUID identique pour l’ensemble des AS– Major en fonction d’un AS donné– Minor en fonction d’un rayon donné de l’AS correspondant
13/04/2023 www.ekito.fr 7
Compatibilité
• Compatibilité :– iOS 7 +
• iPhone 4S et suivants• iPad 3 et suivants• iPad mini et suivants• iPod Touch 5 et suivants
– OS X 10.9 + machines équipées en Bluetooth 4.0 (en émetteur)
– Android 4.3 + devices équipés en Bluetooth 4.0– Machines sous Linux avec BlueZ (en émetteur)
13/04/2023 www.ekito.fr 8
Avec iOS
• Dépend de CoreLocation (et non CoreBluetooth) :
NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:@"B9407F30-F5F8-466E-AFF9-25556B57FE6D"];
CLBeaconMajorValue major = 42176;
CLBeaconMinorValue minor = 34023;
NSString *regionIdentifier = @"com.example.identifier.ibeacon";
CLBeaconRegion *beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid
major:major minor:minor
identifier:regionIdentifier];
13/04/2023 www.ekito.fr 9
Avec iOS
• Deux types de méthodes– Dépendent de CLLocationManagerDelegate– Méthode de type « Ranging »– Méthode de type « Monitoring »
13/04/2023 www.ekito.fr 10
Avec iOS
• Méthode de type Ranging :– Uniquement quand l’application est active au premier plan– Permet de récupérer les informations de l’iBeacon détecté
• UUID• Major• Minor• RSSI• Distance• Accuracy
13/04/2023 www.ekito.fr 11
Avec iOS
• Une seule méthode
-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons
inRegion:(CLBeaconRegion *)region
Est appelée quand le statut d’un iBeacon à portée du iDevice change.
13/04/2023 www.ekito.fr 12
Avec iOS
• Méthodes de type Monitoring:– Fonctionnent aussi avec l’application en arrière plan– Doivent aussi fonctionner avec application arrêtée (d’après
Doc Apple), mais échec.– Permettent seulement de savoir quand on rentre ou sort
d’une région.
13/04/2023 www.ekito.fr 13
Avec iOS
• Deux méthodes
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
Est appelée quand l’iDevice rentre dans une région définie.
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
Est appelée quand l’iDevice sort d’une région définie.
13/04/2023 www.ekito.fr 14
Limitations
• Pour le moment, techno Apple-centrée (pas de support officiel pour les autres OS)
• UUID iBeacon ≠ UUID Bluetooth– Si un iBeacon propose des services Bluetooth, c’est à
l’application de faire le lien entre les deux
13/04/2023 www.ekito.fr 15
Ressources
13/04/2023 www.ekito.fr 16
• Salade de bacon à la pomme : http://www.elle.fr/Elle-a-Table/Recettes-de-cuisine/salade-de-bacon-a-la-pomme-549374
• Doc Apple : Ahem… (a.k.a. /dev/null, HTTP 404, etc.)• Gestion du monitoring en avant et arrière plan (point de vue
performances) : http://developer.radiusnetworks.com/2013/11/13/ibeacon-monitoring-in-the-background-and-foreground.html
• Un projet d’exemple pour le monitoring et ranging iBeacon : https://github.com/Ekito/TestBeacon
• Emetteur iBeacon pour OS X : https://github.com/lgaches/BeaconEmitter• Billet sir iBeacon, avec extraits de code et prototypes :
http://www.ekito.fr/people/?p=3698
Des questions ?
13/04/2023 www.ekito.fr 17
Plus d’informations
ekitoSARL au capital de 150 000 €RCS Toulouse 485 109 3001 place de la bourse 31000 [email protected] – www.ekito.fr
13/04/2023 www.ekito.fr 18
Laurent Blondon Responsable CommercialTél. : + 33 (0) 659 976 [email protected]
Copyright
13/04/2023 www.ekito.fr 19
• Vous êtes libres de :– Reproduire, distribuer et communiquer l’œuvre– Adapter l’œuvre– D’utiliser cette œuvre à des fins commerciales
• Selon les conditions suivantes :– Vous devez attribuer l’œuvre de la manière indiquée par
l’auteur de l’œuvre ou le titulaire des droits (mais pas d’une manière qui suggérerait qu’ils vous approuvent, vous ou votre utilisation de l’œuvre).
http://creativecommons.org/licenses/by/3.0/fr/