Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Communiquer en BLE: Les pièges à éviter !

Communiquer en BLE: Les pièges à éviter !

Slides de notre Tools in Action sur Bluetooth Low Energy et Andoid à Devoxx France 2016.

Alexis DUQUE

April 20, 2016
Tweet

More Decks by Alexis DUQUE

Other Decks in Programming

Transcript

  1. #DevoxxFR #TIA_BLE @Rtone_Dev2M Communiquer en BLE : Les pièges à

    éviter ! Alexis Duque @alexis0duque Fabien Grenier @fabgrenier @Rtone_Dev2M 1
  2. #DevoxxFR #TIA_BLE @Rtone_Dev2M Qui sommes nous ? 2 Responsable de

    l’équipe Cloud&Mobile Développeur Java/Web full stack “Le handball c’est la vie.” Fabien GRENIER @fabgrenier RTONE Alexis DUQUE @alexis0duque RTONE Tech lead soft embarqué (vrai) Développeur full stack “Nan, la course à pied c’est mieux.”
  3. #DevoxxFR #TIA_BLE @Rtone_Dev2M Qui sommes nous ? 3 Just Dev

    It ! Fondé en 2007 par 3 ingénieurs Expert en conception d’objets connectés 3 équipes hard, soft embarqué et Cloud&Mobile Projets B2C et B2B De la Startup aux grands groupes Accompagnement complet du CdC à l’industrialisation
  4. #DevoxxFR #TIA_BLE @Rtone_Dev2M Roadmap 4 • Bluetooth Low Energy ?

    • Quelles différences avec le Bluetooth ? • Pourquoi tant de difficultés ? • Le BLE en Actions !
  5. #DevoxxFR #TIA_BLE @Rtone_Dev2M Bluetooth Low Energy 5 2010 : Bluetooth

    Core Specification v4.0 for low power device Mais ne remplace pas le Bluetooth : à ne pas mettre à toutes les sauces !
  6. #DevoxxFR #TIA_BLE @Rtone_Dev2M Spécificités Faible bande passante : ~50 kbps

    Faible latence (~10ms) et protocole “non connecté” Chip radio presque toujours OFF Très petits paquets : MTU de 20 octets
  7. #DevoxxFR #TIA_BLE @Rtone_Dev2M Parler à son objet 11 Client Write

    Request Server Confirmation Client Write Command Server
  8. #DevoxxFR #TIA_BLE @Rtone_Dev2M Parler à son objet 12 Client Indication

    Server Confirmation Client Notification Server
  9. #DevoxxFR #TIA_BLE @Rtone_Dev2M Avant de commencer, des rappels ... Scanner

    les périphériques à portée Se connecter utilisant l'adresse MAC ou l’UUID Explorer les services et caractéristiques disponibles Sauvegarder les handles, pour les réutiliser ! Ecrire, Lire ou s’abonner aux notifications Ne pas oublier de (bien) se déconnecter 22
  10. #DevoxxFR #TIA_BLE @Rtone_Dev2M Step 1 : Permissions android.permission.BLUETOOTH android.permission.BLUETOOTH_ADMIN android.permission.ACCESS_COARSE_LOCATION

    android.permission.ACCESS_FINE_LOCATION 24 android.permission.BLUETOOTH android.permission.BLUETOOTH_ADMIN
  11. #DevoxxFR #TIA_BLE @Rtone_Dev2M Step 4 : Inspecter les services 27

    Battery Service 0000180F HRM Service 0000180D Battery Characterstic 00002A19 HRM Characterstic 00002A37 Sensor Characterstic N N R R W R W
  12. #DevoxxFR #TIA_BLE @Rtone_Dev2M A suivre ... Bluetooth 4.2 • Bande

    passante x2.5 • Sécurité renforcée • Retrocompatibilité Android N Web Bluetooth API & Physical Web 32
  13. #DevoxxFR #TIA_BLE @Rtone_Dev2M Les derniers tips ... Utiliser un Nexus

    pour le développement puis tester sur un maximum de marque Éviter tant que possible le bonding et chiffrement protocolaire, préférer un chiffrement applicatif cf . https://lacklustre.net/bluetooth/Ryan_Bluetooth_Low_Energy_USENIX_WOOT.pdf 33
  14. #DevoxxFR #TIA_BLE @Rtone_Dev2M Questions ? Alexis Duque - [email protected] Fabien

    Grenier - [email protected] www.rtone.fr https://github.com/alexisduque/tia-ble-devoxx16.git
  15. #DevoxxFR #TIA_BLE @Rtone_Dev2M Venez voir notre Quickie sur le VLC

    ! Des LEDs pour remplacer votre routeur WIFI ? Par Alexis Duque Vendredi 12:25 - 12:40 Salle Neuilly 253