Utiliser le profil GATT du Bluetooth Low Energy avec votre carte Intel Edison

Par:
Intel IoT

mar, 27/10/2015 - 14:22

Introduction
Ce guide vous expliquera comment utiliser le profil GATT, en entrant en liaison avec le Texas Instruments SensorTag en Bluetooth* Low Energy.

Préalable
Vous devez avoir assemblé votre carte Intel® Edison, l’avoir mise à jour de la dernière version du firmware, la connecter en série et connecter la carte au Wi-Fi*. Si vous avez besoin d’aide pour réaliser ces étapes, veuillez vous référer aux Guides de mise en route.

Installer Gatttool
Le TI SensorTag, comme de nombreux autres appareils Bluetooth, utilise le profil GATT (Generic Attribute Profile) pour communiquer avec votre ordinateur et vos autres appareils. Gatttool est un outil inclus dans la suite logicielle BlueZ, mais n’est pas installé par défaut sur la carte Intel Edison. Pour l’installer, téléchargez et compilez BlueZ 5.24 en vous connectant en série à votre carte Intel Edison et en entrant les commandes suivantes :

root@edison: cd ~

root@edison: wget https://www.kernel.org/pub/linux/bluetooth/bluez-5.24.tar.xz –  no-check-certificate

root@edison: tar -xf bluez-5.24.tar.xz

root@edison: cd bluez-5.24

root@edison: ./configure --disable-systemd –disable-udev

root@edison: make

root@edison: make install

Pour pouvoir lancer gatttool depuis n’importe où, ajoutez ce qui suit au chemin d’accès :

root@edison: export PATH=$PATH:~/bluez-5.24/attrib/

Scanner et trouver des appareils BLE avec bluetoothctl

  1. Commencez par activer le Bluetooth sur la carte Intel Edison.
    root@edison: rfkill unblock bluetooth
  2. Lancez bluetoothctl.
    root@edison: bluetoothctl
  3. Enregistrez un agent et configurez-le par défaut.
    [bluetooth]# agent KeyboardDisplay
    [bluetooth]# default-agent
    [bluetooth]# scan on
  4. Si le SensorTag n’apparaît pas durant le scan, cliquez sur le bouton d’appariement sur le côté du SensorTag. Une fois que vous avez trouvé l’adresse MAC du SensorTag, vous pouvez éteindre le mode scan et quitter.
    [bluetooth]# scan off
    [bluetooth]# quit


L’adresse MAC du SensorTag est en surbrillance.

Utiliser gatttool pour lire les données du capteur

gatttool peut désormais être utilisé pour lire les données du capteur du SensorTag.

  1. Lancez gatttool en mode interactif en utilisant l’adresse MAC que vous avez obtenue à l’étape précédente.
    root@edison: gatttool -b 34:B1:F7:D5:15:38 -I
  2. Connectez-vous à l’appareil, allumez le capteur de température en attribuant la valeur 01 à la variable 0x29, et lisez la valeur de la température à l’entrée 0x25.
    [34:B1:F7:D5:15:38][LE]> connect
    [34:B1:F7:D5:15:38][LE]> char-write-cmd 0x29 01
    [34:B1:F7:D5:15:38][LE]> char-read-hnd 0x25

Les valeurs des variables correspondant aux capteurs de température sont consultables dans la table d’attributs du SensorTag.

La valeur de sortie est sous la forme de deux valeurs 16-bit non signées. Pour convertir ces valeurs en température lisible, elles doivent être traitées par un script qui utilise l’algorithme de conversion décrit dans le wiki du SensorTag.

Téléchargez le script Python* pour interpréter les données du capteur

  1. Une solution pour créer un tel script est d’utiliser le langage de programmation Python* et le module pexpect. Par exemple, vous pouvez télécharger le script en Python depuis GitHub et l’utiliser pour lire les valeurs de température à partir du SensorTag.
    root@edison: wget https://github.com/msaunby/ble-sensor-
    pi/archive/master.zip -–no-check-certificate
    root@edison: unzip master.zip
    root@edison: cd /ble-sensor-pi-master/sensortag
  2. Ouvrez sensortag_test.py avec vi.
    root@edison: vi ./sensortag_test.py
  3. Changez la ligne 62 de
    tool.expect('\[CON\].*>')
    en
    tool.expect('Connection successful')
  4. 4.    Une fois l’édition faite, enregistrez et quittez en appuyant sur Echap et entrez :
    :wq

Installer pip et les modules Python requis

Pour lancer le script Python en utilisant pexpect, pexpect doit être installé, ce qui est plus facile à faire avec Pip. Pip n’est pas installé sur la carte Intel Edison par défaut, et n’est pas inclus dans le dépôt opkg officiel. Toutefois, Pip est dans le dépôt non officiel de la carte Intel Edison, compilé par Michael Hirsch. Voici un extrait de son guide d’utilisation du dépôt non officiel disponible ici.

  1. Utilisez vi pour éditer le fichier base-feeds.conf.
    root@edison: vi /etc/opkg/base-feeds.conf
  2. Entrez :
    src/gz all http://repo.opkg.net/edison/repo/all
    src/gz edison http://repo.opkg.net/edison/repo/edison
    src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
  3. Appuyez sur Echap et entrez :
    :wq
  4. Mettez opkg à jour et installez Python
    root@edison: opkg update
    root@edison: opkg install python-pip
  5. >Installez setup-tools pour Pip
    root@edison: wget
    https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
    -–no-check-certificate -O - | python>

Lancer le script Python et lire la température

Vous êtes maintenant prêt à lancer le script de température. Depuis le dossier /ble-sensor-pi-master/sensortag, entrez la commande suivante.

root@edison: ./sensortag_test.py 34:B1:F7:D5:15:38

La sortie devrait être similaire à la capture d’écran ci-dessous.

Ressources
En cas de besoin, vous pouvez consulter le guide de démarrage Edison. Rendez-vous également sur la zone des développeurs Intel IoT pour découvrir l’ensemble des outils de développement.
Edison Software Downloads
Guide Installation IDE
Article Original

Article offert par la zone des développeurs Intel