Arduino : Communiquer en bluetooth avec son pc

bluetooth_connections.jpg La connexion série de l'Arduino est très pratique pour communiquer avec un pc, mais son inconvénient est .. le câble USB. Comment faire pour communiquer à distance sans devoir s’encombrer d'un câble pour relier le module Arduino et le pc ? Tout simplement en utilisant un module Bluetooth pour remplacer la liaison USB.

Après quelques recherches j'ai opté pour le module Buesmirft Silver vendu par SparkFun qui me semblait avoir un bon rapport qualité prix. C'est donc avec ce module que je vais présenter la marche à suivre, cependant celle si ne devrait être guère différentes avec d'autre modules similaires.

1ere Étape : Les branchements

Pour relier le module Bluetooth à l'Arduino j'utilise le Protoshield de Sparkfun qui contient un connecteur permettant de brancher directement le Bluesmirf. Cependant il n'est pas très compliqué d’utiliser le Bluesmirf sans ce shield, il suffit de relier les pattes du module Blutooth comme ceci :

  • Bluesmirf GND ⇒ Arduino GND
  • Bluesmirf VCC ⇒ Arduino 5V
  • Bluesmirf TX-O ⇒ Arduino RX (0)
  • Bluesmirf RX-I ⇒ Arduino TX (1)

A la mise sous tension de l'Arduino la diode du module BT doit clignoter rouge.

2ème Étape : Programmer l'Arduino

Vous allez voir qu'en fait la programmation de l'Arduino ne diffère pas que l'on utilise la liaison série habituelle via USB ou le module bluetooth. Voici un exemple de programme qui permet d'allumer une diode branche sur le port 13 de l'Arduino lorsque l'on envoie un '1' sur la liaison série, et d'éteindre cette même diode lorsque l'on envois un '0'.

void setup()
{
  pinMode(13, OUTPUT);    
  Serial.begin(115200); //Initialize serial at 115200bps
}
 
void loop()
{
   while (Serial.available() == 0); // wait for character to arrive
   char c = Serial.read();
   if(c =='1') {
     digitalWrite(13, HIGH);   // set the LED on
   }
   if(c == '0'){
     digitalWrite(13, LOW);  // set the LED off
   }
   delay(500);
}

J'utilise ici une liaison série à 115200bps qui est le maximum supporté par le Bluesmirf Silver, si vous utilisez un autre module vous devrez peut être changer adapter le débit utilisé a celui supporté par votre module.

Attention : Lors de l'upload du programme sur votre carte il faut déconnecter le module bluetooth, en effet la liaison USB ne risque sinon de ne pas fonctionner correctement à l'upload du programme. Reconnectez le une fois le chargement effectué.

3ème Étape : Se connecter en Bluetooth à partir d'un pc (linux)

Pour me connecter au module bluetooth et communiquer avec l'arduino j'ai utilisé deux applications :

  • Blueman Manager : Un petit outil en GTK+ merttan de gerer les connection bluetooth du pc.
  • Putty : Pour ouvrir une liaison série avec l'Arduino.
sudo apt-get install blueman putty

Lancez blueman-manager. Le périphérique Bluetooth devrait apparaître dans la liste, ci ce n'est pas le cas cliquez sur rechercher.


Sectionnez le périphérique puis faites Intaller.


Indiquez le mot de passe 1234, (ou bien celui indiqué dans la documentation de votre module.) Puis cliquez sur suivant.


Une fois le périphérique installé et le mot de passe défini, effectuez un clic droit sur le périphérique correspondant à votre module et cliquez sur SPP pour activer la liaison série. Un message ”Serial port connected to /dev/rfcomm0” devrait apparaître : votre périphérique est associé et connecté. La diode du module bluesmirf doit être maintenant passé au vert pour indiquer que le module est connecté.


Vous pouvez maintenant lancer putty pour vous connecter en série sur /dev/rfcomm0 afin de communiquer avec votre Arduino. Une fois la console série ouverte tapez '1' pour allumer la diode ou '0' pour l’éteindre.

Bien sur putty n'est ici utilisé que pour tester la liaison série, dans de futurs projets je pense Utiliser Python ou Java pour communiquer sur cette liaison serie/bluetooth.

Quelques liens

- articles/diy/arduino/bluetooth.txt · Dernière modification: 2012/07/21 18:13 par bumblebee
© Fabrice DELLIER - Sauf mention contraire les elements de ce site sont sous double licence : Creative Commons by-sa & Art libre.
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki