Communiquez avec le code Arduino depuis votre téléphone Android par Bluetooth SPP (Serial Port Profile) sur Intel Edison

Par:
Intel IoT

lun, 19/10/2015 - 17:37

Dans l’environnement Arduino, il est aisé d’accéder au Bluetooth SPP comme un port série, et d’interagir  avec la ligne de commande envoyée depuis ce port série Bluetooth. De nombreux projets Arduino ont utilisé cette méthode pour permettre le contrôle à distance de leurs projets. Pour faire la même chose  avec Intel® Galileo, vous deviez ajouter des shields Bluetooth ou des kits Bluetooth. Désormais, le Bluetooth étant nativement pris en charge par Intel® Edison, vous pouvez utiliser le module Edison avec la carte Arduino Breakout : AUCUN shield Bluetooth additionnel n’est nécessaire !

Prérequis :

  • Un téléphone ou une tablette Android* disposant d’une connexion Bluetooth.
  • Connectez votre carte Intel® Edison à un réseau Wi-Fi*, reportez-vous à Débuter avec la technologie Intel® Edison. Attribuez un nom à votre Edison, par exemple : monedison.
    • Protocole SCP avec un ordinateur hôte connecté au même réseau
    • Établir un terminal avec votre carte par port série ou par SSH.

Contexte :

Connecter la carte Intel® Edison à votre téléphone Android* avec le profil SPP (Serial Port Profile) explique comment connecter votre carte Edison à un téléphone Android* en SPP, cependant, vous ne pouvez pas obtenir une entrée en SPP dans votre code Arduino. Dans Se connecter à Intel® Edison depuis Android* en Bluetooth* LE (BLE), vous trouverez une méthode pour accéder au Bluetooth via  code Arduino, mais un shield ou un kit Bluetooth reste  nécessaire.

Dans la mesure où nous avons le Bluetooth intégré, pourquoi ne pas s’en servir ? e vous propose une bibliothèque exemple pour ce faire .

Une façon efficace de communiquer entre Arduino et Linux avec Intel® Edison est d’utiliser mmap(). Reportez-vous à Communication efficace entre Arduino* et processus natifs Linux. Cependant, il n’est pas facile d’utiliser la mémoire partagée entre les processus python et les processus Arduino.

J’ai donc choisi le tube nommé comme méthode simple d’implémenter une communication interprocessus entre les processus sketch d’Arduino et les processus de service python Bluetooth SPP.

Mise en place du service Bluetooth Edison :

1. Téléchargez le fichier bluetooth-service.tar.gz

2. Copiez bluetooth-service.tar.gz dans /home/root/Bluetooth et décompressez-le

1

mkdir /home/root/bluetooth

2

cd /home/root/bluetooth

3

mv /home/root/bluetooth-service.tar.gz ./

4

tar -xvf bluetooth-service.tar.gz

3. Copiez bluetooth-spp-pin.service dans /lib/systemd/system/

1

cp bluetooth-spp-pin.service /lib/systemd/system

4. Activez le service système

1

systemctl enable bluetooth-spp-pin

5. Redémarrez votre appareil

1

reboot

6. Revérifiez le service

1

systemctl status bluetooth-spp-pin

Mise en place du sketch Arduino Edison :

1. Téléchargez la bibliothèque Intel-Edison-BT-SPP-Library.zip.

2. Décompressez dans l’emplacement de vos bibliothèques Arduino, par exemple C:\Users\username\Documents\Arduino\libraries, vérifiez-la dans votre IDE Arduino, Fichier->Préférences->Répertoire Sketchbook

3. Redémarrez votre IDE Intel® Arduino de version 1.6.0 ou plus récent

4. Ouvrez l’exemple bt_test avec Fichier->Exemples->Bibliothèque de Pilotes Intel Edison BT SPP

5. Vérifiez et Envoyez le sketch dans votre Edison

6. Ouvrez le Serial Monitor pour vérifier la sortie une fois que nous aurons envoyé quelque chose dessus.

Mise en place pour votre téléphone :

1. Téléchargez et installez une application Bluetooth SPP depuis le Play Store. Par exemple : BLE_SPP_PRO.

2. Allumez le Bluetooth sur votre téléphone et connectez-vous au module Edison

3. Entrez le code PIN, par défaut le 8888, n’hésitez pas à le changer ensuite à la ligne 70 de bluetooth-pin-service.py

4. Connectez-vous à votre Edison dans l’application, par exemple : monedison

5. Envoyez quelque chose à votre Edison, vous devriez voir le résultat dans le Serial Monitor de l’IDE Arduino

Conclusion :

Vous avez à présent un appareil PIN Bluetooth fixe qui prend en charge le SPP. Vous pouvez donc vous y connecter très facilement, exactement comme vous vous connectez à votre enceinte Bluetooth. Le Bluetooth fonctionne automatiquement après le démarrage, et vous n’avez pas à apparier l’appareil avec le terminal. Vous pouvez accéder au Bluetooth SPP dans votre code Arduino, traitez-le comme un appareil en série et connectez-vous à votre projet Edison avec votre téléphone Android à l’aide de l’application Bluetooth SPP. Cela signifie que vous pouvez contrôler à distance vos projets Edison pour faire tout ce que vous souhaitez. À partir de ce projet, vous pouvez développer de nombreuses applications intéressantes avec la fonction Bluetooth intégrée à Intel® Edison. Amusez-vous, et partagez vos projets avec nous !

Étapes suivantes :

Jusqu’ici, nous avons seulement implémenté une méthode pour envoyer des commandes depuis votre appareil Bluetooth SPP vers Edison. Vous pouvez ajouter des FIFO additionnels pour envoyer des commandes depuis Edison vers votre appareil Bluetooth SPP. Puisqu’il s’agit de FIFO, vos applications sous Linux peuvent aussi envoyer des commandes vers l’environnement Arduino par cette méthode. C’est une façon vraiment simple et facile d’augmenter encore les possibilités d’interagir avec Arduino. Par exemple, vous pouvez traiter les données audio sous Linux, et envoyer la commande à Arduino avec ce FIFO. Ou vous pouvez obtenir un Tweet depuis Node.js ; puis envoyer le fichier JSON au code Arduino pour interagir avec vos shields Arduino existants. Désormais, tout est connecté ! Vous pouvez également écrire votre propre application Bluetooth SPP sous Android pour encore plus d’interactions !

Ressources

Pour davantage de ressources, visitez la page Ressources développeur Intel® Edison ainsi que la zone des développeurs Intel IoT

Edison Software Downloads

Edison Getting Started

Article Original

Article offert par la zone des développeurs Intel