AMBIENT INTELLIGENCE
tech days•
2015
#mstechdays techdays.microsoft.fr
Bluetooth Low Energy dans
les applications Windows
Stéphane Sibué (GUYZMO)
stephane.sibue@guyzmo.fr
@codeppc
@Guyzmo73
tech.days 2015#mstechdays
Stéphane Sibué, directeur Technique chez
Développement d’applications mobiles pour Android, iOS ...
tech.days 2015#mstechdays
Papa de quelques apps Windows Phone :
Radio Meuh
Tempo
Big Contacts
Cérébro
Free Bubbles
The Voi...
tech.days 2015#mstechdays
Les objets connectés
Le Bluetooth Low Energy
Station Météo basé sur un SensorTag
L'application S...
tech.days 2015#mstechdays
Existent depuis 25/30 ans
Evolution naturelle des objets
5 « ingrédients » de base :
• Des humai...
tech.days 2015#mstechdays
Technique de transmission sans fil créée par Nokia sous forme d’un standard
ouvert basé sur Blue...
tech.days 2015#mstechdays
Importante normalisation (Bluetooth Developer Portal)
https://developer.bluetooth.org
Organisati...
tech.days 2015#mstechdays
Les services
Bluetooth Low Energy dans les applications Windows
tech.days 2015#mstechdays
Les caractéristiques
Bluetooth Low Energy dans les applications Windows
tech.days 2015#mstechdays
https://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.b...
tech.days 2015#mstechdays
Station météo réalisée avec un SensorTag (Texas Instruments)
Température
Humidité
Pression atmos...
tech.days 2015#mstechdays
IR Temperature Service : F000AA00-0451-4000-B000-00000000000
Bluetooth Low Energy dans les appli...
tech.days 2015#mstechdays
IR Temperature Service : F000AA00-0451-4000-B000-00000000000
Data : F000AA01-0451-4000-B000-0000...
tech.days 2015#mstechdays
Humidity Service : F000AA20-0451-4000-B000-00000000000
Bluetooth Low Energy dans les application...
tech.days 2015#mstechdays
Humidity Service : F000AA20-0451-4000-B000-00000000000
Data : F000AA21-0451-4000-B000-0000000000...
tech.days 2015#mstechdays
Barometer Service : F000AA40-0451-4000-B000-00000000000
Bluetooth Low Energy dans les applicatio...
tech.days 2015#mstechdays
Barometer Service : F000AA40-0451-4000-B000-00000000000
Data : F000AA41-0451-4000-B000-000000000...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
Affiche :
La température courante en °C
La pre...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
La pression atmosphérique permet de déterminer...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
Version Windows Phone 8.1
Application universe...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
Version Windows 8.1
Application universelle
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
95% du code identique
Application universelle
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
95% du code se trouve dans le
Projet « Shared ...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
Définir les services utilisés par l’applicatio...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
Windows.Devices.Bluetooth.GenericAttributeProf...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
On indique quel service on souhaite récupérer ...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
private async Task<GattDeviceService> GetDevic...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
A partir du « GattDeviceService » on récupère ...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
protected GattCharacteristic GetCharacteristic...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
On ne peut écrire qu’un train d’octets qui doi...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
using System.Runtime.InteropServices.WindowsRu...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
using System.Runtime.InteropServices.WindowsRu...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
On ne peut lire qu’un train d’octets qui est f...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
Le système peut déclencher un événement lorsqu...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
Voir code « Init » dans « SensorBase »
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
« SensorBase »
Classe de base de gestion des c...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
« BarometerSensor » Capteur de pression
« Humi...
tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
© 2015 Microsoft Corporation. All rights reserved.
tech days•
2015
#mstechdays techdays.microsoft.fr
Bluetooth Low Energy ...
Prochain SlideShare
Chargement dans…5
×

Bluetooth Low Energy dans les applications Windows

875 vues

Publié le

Le Bluetooth Low Energy est un des protocoles clé de l'Internet des objets. Montres, bracelets, ampoules et autres portes clés l'exploitent à merveille. Venez en comprendre ses principes, son fonctionnement et sa mise en oeuvre au sein d'une application Windows Universelle au travers d'un exemple très simple que vous pourrez reproduire chez vous à moindre frais. Nous développerons une station météo connectée avec l'application mobile qui l'accompagne.

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
875
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
42
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Bluetooth Low Energy dans les applications Windows

  1. 1. AMBIENT INTELLIGENCE tech days• 2015 #mstechdays techdays.microsoft.fr
  2. 2. Bluetooth Low Energy dans les applications Windows Stéphane Sibué (GUYZMO) stephane.sibue@guyzmo.fr @codeppc @Guyzmo73
  3. 3. tech.days 2015#mstechdays Stéphane Sibué, directeur Technique chez Développement d’applications mobiles pour Android, iOS et Windows. Formations aux développeurs sur ces 3 plateformes. www.guyzmo.fr Bluetooth Low Energy dans les applications Windows
  4. 4. tech.days 2015#mstechdays Papa de quelques apps Windows Phone : Radio Meuh Tempo Big Contacts Cérébro Free Bubbles The Voice The Light Bluetooth Low Energy dans les applications Windows
  5. 5. tech.days 2015#mstechdays Les objets connectés Le Bluetooth Low Energy Station Météo basé sur un SensorTag L'application Station Météo Connexion à un service Connexion à une caractéristique Ecriture d'une caractéristique Lecture d'une caractéristique Activation des notifications Architecture de l'application Bluetooth Low Energy dans les applications Windows
  6. 6. tech.days 2015#mstechdays Existent depuis 25/30 ans Evolution naturelle des objets 5 « ingrédients » de base : • Des humains • Des objets • Des écrans pour les interactions • Le cloud pour le stockage et l’intelligence • De la connectivité Bluetooth Low Energy dans les applications Windows
  7. 7. tech.days 2015#mstechdays Technique de transmission sans fil créée par Nokia sous forme d’un standard ouvert basé sur Bluetooth qu’il complète sans le remplacer. Un des protocoles clés de l’Internet des objets Basé sur le Bluetooth « classique » Débit 1 Mb/s Consomme 10x moins Latence de connexion et de transfert réduite Bluetooth Low Energy dans les applications Windows
  8. 8. tech.days 2015#mstechdays Importante normalisation (Bluetooth Developer Portal) https://developer.bluetooth.org Organisation en services normalisés Chaque service possède de 1 à n caractéristiques Les services et les caractéristiques sont identifiés par des UUID Les caractéristiques possèdent des descripteurs Bluetooth Low Energy dans les applications Windows
  9. 9. tech.days 2015#mstechdays Les services Bluetooth Low Energy dans les applications Windows
  10. 10. tech.days 2015#mstechdays Les caractéristiques Bluetooth Low Energy dans les applications Windows
  11. 11. tech.days 2015#mstechdays https://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.battery_service.xml Service Battery Service 0x180F (0000180F-0000-1000-8000-00805F9B34FB) Caractéristique Battery Level 0x2A19 (00002A19-0000-1000-8000-00805F9B34FB) Type uint8 min=0, max=100 Format % Bluetooth Low Energy dans les applications Windows
  12. 12. tech.days 2015#mstechdays Station météo réalisée avec un SensorTag (Texas Instruments) Température Humidité Pression atmosphérique = Petite station météo http://www.ti.com/tool/cc2541dk-sensor Bluetooth Low Energy dans les applications Windows
  13. 13. tech.days 2015#mstechdays IR Temperature Service : F000AA00-0451-4000-B000-00000000000 Bluetooth Low Energy dans les applications Windows
  14. 14. tech.days 2015#mstechdays IR Temperature Service : F000AA00-0451-4000-B000-00000000000 Data : F000AA01-0451-4000-B000-00000000000 Config : F000AA02-0451-4000-B000-00000000000 Bluetooth Low Energy dans les applications Windows
  15. 15. tech.days 2015#mstechdays Humidity Service : F000AA20-0451-4000-B000-00000000000 Bluetooth Low Energy dans les applications Windows
  16. 16. tech.days 2015#mstechdays Humidity Service : F000AA20-0451-4000-B000-00000000000 Data : F000AA21-0451-4000-B000-00000000000 Config : F000AA22-0451-4000-B000-00000000000 Bluetooth Low Energy dans les applications Windows
  17. 17. tech.days 2015#mstechdays Barometer Service : F000AA40-0451-4000-B000-00000000000 Bluetooth Low Energy dans les applications Windows
  18. 18. tech.days 2015#mstechdays Barometer Service : F000AA40-0451-4000-B000-00000000000 Data : F000AA41-0451-4000-B000-00000000000 Config : F000AA42-0451-4000-B000-00000000000 Calibration : F000AA43-0451-4000-B000-00000000000 Bluetooth Low Energy dans les applications Windows
  19. 19. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows Affiche : La température courante en °C La pression atmosphérique en hPa Le degré d’humidité en % Application universelle
  20. 20. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows La pression atmosphérique permet de déterminer un type de temps : < 980 Tempête 980 à 1000 Pluie ou vent 1000 à 1030 Variable 1030 à 1050 Beau temps >1050 Très sec Application universelle
  21. 21. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows Version Windows Phone 8.1 Application universelle
  22. 22. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows Version Windows 8.1 Application universelle
  23. 23. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows 95% du code identique Application universelle
  24. 24. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows 95% du code se trouve dans le Projet « Shared » Seule « MainPage.xaml » est Propre à chaque plateforme. Application universelle
  25. 25. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows Définir les services utilisés par l’application Dans « Package.appxmanifest » Application universelle
  26. 26. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows Windows.Devices.Bluetooth.GenericAttributeProfile
  27. 27. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows On indique quel service on souhaite récupérer (filtre) On ne sélectionne que les devices porteur de ce service qui sont de type SensorTag (le premier qui se présente dans notre exemple) A partir de là on a un « GattDeviceService » qui est le point d’entrée vers les caractéristiques du service
  28. 28. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows private async Task<GattDeviceService> GetDeviceService(Guid wService) { var wFilter = GattDeviceService.GetDeviceSelectorFromUuid(wService); var wDevices = await DeviceInformation.FindAllAsync(wFilter); foreach (var wDevice in wDevices) { if (wDevice.Name == "TI BLE Sensor Tag") { // On a trouvé un SensorTag return await GattDeviceService.FromIdAsync(wDevice.Id); } } return null; }
  29. 29. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows A partir du « GattDeviceService » on récupère la caractéristique grâce à son UUID La fonction retourne une collection, dont on tire le 1er élément s’il est présent On obtient un objet de type « GattCharacteristic »
  30. 30. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows protected GattCharacteristic GetCharacteristic(GattDeviceService deviceService, Guid characteristicUUID) { var characteristics = deviceService.GetCharacteristics(characteristicUUID); if (characteristics.Count > 0) { return characteristics[0]; } else { return null; } }
  31. 31. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows On ne peut écrire qu’un train d’octets qui doit être fourni sous la forme d’un buffer de type « IBuffer » On prépare les données (on peut s’aider du « DataWriter » pour ça) On écrit le train d’octets en utilisant la méthode asynchrone « WriteValueAsync » qui retourne le résultat de l’écriture
  32. 32. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows using System.Runtime.InteropServices.WindowsRuntime; public virtual async Task<bool> StartSensor() { if (pConfigurationCharacteristic != null) { var status = await pConfigurationCharacteristic.WriteValueAsync((new byte[] { 1 }).AsBuffer()); return (status == GattCommunicationStatus.Success); } return false; }
  33. 33. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows using System.Runtime.InteropServices.WindowsRuntime; public virtual async Task<bool> StartSensor() { if (pConfigurationCharacteristic != null) { DataWriter writer = new DataWriter(); writer.WriteByte(1); var status = await pConfigurationCharacteristic.WriteValueAsync(writer.DetachBuffer()); writer.Dispose(); return (status == GattCommunicationStatus.Success); } return false; }
  34. 34. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows On ne peut lire qu’un train d’octets qui est fourni sous la forme d’un buffer de type « IBuffer » On peut s’aider du « DataReader » pour récupérer les données dans les bons types Voir méthode « Init » du BarometerSensor
  35. 35. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows Le système peut déclencher un événement lorsque la valeur d’une caractéristique change. Il faut que la caractéristique le permette. Il faut activer la notification pour en bénéficier (et pas seulement s’abonner à l’événement).
  36. 36. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows Voir code « Init » dans « SensorBase »
  37. 37. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows « SensorBase » Classe de base de gestion des capteurs Code…
  38. 38. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows « BarometerSensor » Capteur de pression « HumiditySensor » Capteur d’humidité « TemperatureSensor » Capteur de température Héritent tous de « SensorBase » Architecturés pour le binding XAML Code…
  39. 39. tech.days 2015#mstechdaysBluetooth Low Energy dans les applications Windows
  40. 40. © 2015 Microsoft Corporation. All rights reserved. tech days• 2015 #mstechdays techdays.microsoft.fr Bluetooth Low Energy dans les applications Windows

×