Points à développer:

  • Le Bluetooth et le module HC-05
  • Communication entre HC-05 et Arduino
  • Code complet pour le test de notre HC-05

Le Bluetooth et module HC-05

Afin de bien débuter, voyons d’abord à quoi ressemble le Bluetooth et découvrons de quoi est composé le nouveau module que nous allons utiliser.

Qu’est ce que le Bluetooth ?

Le Bluetooth est un protocole de communication sans fil. Il a vu le jour à la fin des années 1990 et n’a vraiment percé que dans les années 2000. Il a subi de nombreuses révisions et évolutions pour atteindre aujourd’hui la version 4.1 depuis la fin 2013.
À l’origine, la société Ericsson cherchait à développer un moyen d’utiliser une voie série sans passer par un fil. Petit à petit, ses utilisations se sont étendues pour atteindre ce que l’on connait aujourd’hui, un moyen de connecter sans fil de nombreux appareils, allant d’une Arduino et sa voie série à un ordinateur, ou pour utiliser un casque audio ou encore une manette de jeu sur une console de salon.

Rentrons un peu dans le détail. Ce protocole est un cousin du Wi-Fi. En effet, ils respectent tous deux une même spécification IEEE et utilisent la même gamme de fréquences : 2.4 GHz (tout comme les téléphones portables et le zigbee par exemple). C’est une communication bidirectionnelle, deux modules peuvent communiquer ensemble en même temps. Le comportement utilisé est « maître/esclave ». Un esclave pourra parler avec un seul maître, mais un maître pourra dialoguer avec plusieurs esclaves.
Pour son utilisation, elle se passe en plusieurs étapes :

  1. Le maître se met en mode « reconnaissable »
  2. L’esclave trouve le maître et demande à s’y connecter
  3. Le maître accepte la connexion
  4. Les périphériques sont alors appairés (ou associés)
  5. La communication peut commencer

Ensuite, selon le type de composant que vous utilisez (une oreillette Bluetooth, une manette de jeu-vidéo etc) la communication pourra se faire selon un protocole ou un autre. Dans notre cas cela consistera simplement en une liaison série. Au final, nous aurons donc le même fonctionnement qu’une liaison série habituelle mais toute la partie « filaire » de la communication sera englobée dans des trames Bluetooth gérées par le module. C’est totalement transparent pour nous (ou presque). Faisons donc un peu plus connaissance avec « HC-05 », le petit module Bluetooth si pratique.

Présentation du module Bluetooth HC-05

Comme expliqué plus tôt, le module utilisé se nomme HC-05 et est trouvable assez facilement pour quelques FCFA à YoupiLab. Il est aussi gros que le pouce et est en fait un montage d’un module Bluetooth sur un petit PCB. Cela permet de s’affranchir de certaines contraintes comme la soudure du module (qui est très délicate), la conversion 5V -> 3.3V, la régulation de l’alimentation (3.3V de nouveau) ou encore l’ajout de LEDs de signal.

Tout cela est déjà intégré ! Alors que trouvons-nous sur ce petit module ? Tout d’abord, un ensemble de broches. VCC et GND pour l’alimentation (5V), Rx/Tx pour la communication. On y voit aussi une broche « Key » qui servira à envoyer des commandes de configuration au module (nous y reviendrons plus tard). La dernière broche nommée « Led » permet de brancher une LED pour obtenir un signal sur l’état du module.

Communication entre HC-05 et Arduino

Maintenant que le module est connecté, il est temps de le mettre en œuvre avec notre Arduino ! Pour garder les choses simples, nous allons simplement faire une connexion qui permet de renvoyer tout sur la voie série de l’ordinateur. Tout le long de ce tutoriel, seul le mode « esclave » sera utilisé mais le mode « maître » n’est pas beaucoup plus compliqué à atteindre.

Par ailleurs, nous allons émuler une voie série ! Ainsi, nous allons pouvoir utiliser deux broches numériques classiques pour créer une voie série par dessus. C’est une méthode assez habituelle de contournement, c’est équivalent à trouver une solution logicielle à un problème matériel.
Pour mettre en œuvre cela il y a deux écoles : Coder la nouvelle voie série soi-même ou utiliser une librairie existante. Nous allons donc utiliser une bibliothèque existante qui a été codée par des professionnels et testée par des milliers de personnes à travers le monde : SoftwareSerial.

Utiliser la bibliothèque

Pour mettre en œuvre cette bibliothèque c’est assez simple. Il va tout d’abord falloir l’inclure dans vos projets. Au choix, soit en cliquant sur :

Ou  alors en ajoutant la ligne suivante en haut de votre programme :

Le code au complet pour tester notre HC-05

Explication du code

#include

Une fois que la bibliothèque est là, il nous faudra l’utiliser. Cette bibliothèque nous donne accès à un objet nommé…SoftwareSerial . On peut donc créer une instance de cet objet en écrivant :

SoftwareSerial mySerial(11, 10);

Rx et Tx seront les numéros des broches sur lesquelles sont connectées les broches d’émission/réception de votre module bluetooth. Par exemple nous avons la broche Rx du module branchée sur la pin 10 de l’Arduino et la broche Tx reliée a 11. J’ai donc dans mon programme :
Une fois cela fait, tout est prêt ! En effet, cette bibliothèque offre les mêmes fonctions que la voie série habituelle, la seule différence sera qu’au lieu d’utiliser.

Serial
mySerial

, comme on peut le voir dans le listing ci-dessous

mySerial.begin(speed);// démarre la voie série à la vitesse speed

mySerial.available(); // retourne le nombre de caractère à lire

mySerial.read(); // retourne le prochain caractère reçu

mySerial.write(val); // envoie le char « val » sur la voie série

Notre module fonctionnant par défaut en 9600 bauds, nous allons pouvoir le préparer en écrivant :

#include <SoftwareSerial.h>

mySerial(11, 10);

void setup()

{

mySerial.begin(9600);

}

Puis afin de tester tout cela, nous allons faire un petit code qui se contentera de faire un « echo » entre la voie série liée à l’ordinateur et celle liée au module bluetooth. Ainsi, chaque fois qu’un caractère/texte sera reçu sur la voie série de l’un, il sera renvoyé sur la voie série de l’autre. Notre Arduino servira alors de relais/adaptateur entre l’USB de l’ordinateur et le module Bluetooth. Ce petit programme vous donne alors tout ce qu’il faut savoir pour faire vos premières applications avec.

#include <SoftwareSerial.h>

mySerial(11, 10);  // (RX, TX) (pin Rx BT, pin Tx BT)

void setup() {

// Ouvre la voie série avec l’ordinateur

Serial.begin(9600);

// Ouvre la voie série avec le module BT

mySerial.begin(9600);

}

void loop()

{

if (mySerial.available())

{

Serial.write(mySerial.read());

}

if (Serial.available())

{

mySerial.write(Serial.read());

}

}

NB : Software

Windows10

Arduino 1.6.9

Merci pour votre attention !

Les détails ne sont pas renseignés

0.00 average based on 0 ratings

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Course Features

  • Duration : 10 week
  • Max Students : 1000
  • Enrolled : 3
  • Re-take Course : 100
  • Assessments : Self
Price :
Gratuit

Rating

Average Rating: 0.00

Star
0%
Star
0%
Star
0%
Star
0%
Star
0%