Tutoriel basique d’usage du module bluetooth HC-06 avec Arduino.
L’objectif de cet article est celui de relier un module bluetooth à notre plaque Arduino et pouvoir communiquer avec un téléphone portable par le biais d’une application informatique. On commencera par le connecter au portable et ensuite, on vera comment configurer ce module HC-06.
Table de matières:
Comment connecter le module HC-06 à un portable Android.
Ce module a quatre pins:
- VCC, source d’alimentation, fil rouge.
- GND, connecté au pin GND de la plaque Arduino, fil noir.
- TX, transmission des données, fil vert.
- RX, réception des données, fil orange.
Code basique pour connecter notre module et se servir du moniteur série d’Arduino:
void setup(){
Serial.begin(9600); // configuration par défaut à 9600
}
void loop(){
if (Serial.available()){
char donnee=Serial.read();
Serial.print("Donnée reçue: ");
Serial.println(donnee);
}
}
Sur les plaques Arduino, les broches 0 (RX) et 1 (TX) sont partagées avec le USB, pourtant, il faudra éviter que le module soit connecté à ces broches ou on aura des problèmes pour télécharger le code vers la plaque.
Pour relier le portable avec le module bluetooth on se servira de l’application Arduino Bluetooth Controller, disponible sur Google Play.
Le premier pas consiste en appairer le dispositif portable Android avec le module. Pour cela il est nécessaire d’activer le bluetooth du portable et chercher le dispositif (le module) pour le relier au mobile. Il nous demandera, alors, un nom (par défaut: HC-06) et un mot de passe (1234).
Nous lançons l’application Arduino bluetooth controller déjà installée, et on se connecte en « terminal mode« . On teste en envoyant un petit texte. Ce texte devrait apparaître sur le moniteur série de la plaque Arduino à la fois que le dispositif devrait aussi nous dire que les données ont été reçues.
Comment connecter le module HC-06 utilisant la bibliothèque SoftwareSerial.
Pour le code ci-dessus nous avons utiliser les pins 0 (RX) et 1 (TX) de la plaque mais si on préfère utiliser autres connexions pour laisser libre la communication avec le PC, on peut le faire avec la bibliothèque SoftwareSerial.
Code:
#include <SoftwareSerial.h>
SoftwareSerial BT(4,2);
void setup(){
Serial.begin(9600);
BT.begin(9600);
}
void loop(){
if (BT.available()){
Serial.write(BT.read()); // les données reçues par le port BT sont envoyées au moniteur série
}
if(Serial.available()) {
BT.write(Serial.read()); // les données reçues par le moniteur série sont envoyées au port BT
}
}
On insère la bibliothèque et avec l’instruction SoftwareSerial() on lui indique quels pins on utilisera pour établir la communication avec le module.
Dans la fonction setup() on commence la communication avec le moniteur et le port BT.
Dans la fonction loop() on a deux if(). Le premier, vérifie si la communication à travers le port BT (celui du portable) est établie et envoie les données au moniteur série, tandis que le deuxième if(), teste si la communication vient du moniteur série et envoie les données au portable.
Comment changer la configuration du module HC-06, nom et mot de passe.
Pour changer la configuration par défaut du module HC-06 on se servira du schéma antérieur et du code suivant:
#include <SoftwareSerial.h>
SoftwareSerial BT(4,2);
void setup(){
Serial.begin(9600);
Serial.println("Enter AT commands:");
BT.begin(9600);
}
void loop(){
if (BT.available())
Serial.write(BT.read());
if (Serial.available()){
String S = GetLine();
BT.println(S); // Si avec cela le bluetooth ne marche pas éliminer le saut de ligne, remplacer par BT.print(S);
Serial.println("---> " + S);
}
}
String GetLine(){
String S = "" ;
if (Serial.available()){
char c = Serial.read(); ;
while (c != '\n'){
S = S + c ;
delay(25) ;
c = Serial.read();
}
return( S ) ;
}
}
Il est important de savoir quelle est la version du module pour connaître la syntaxe des commandes. Pour obtenir la version du firmware on doit tapez AT+VERSION, tout en majuscules et sans espaces, sur la fenêtre du moniteur série de l’IDE Arduino et avec l’option de nouvelle ligne sélectionnée.
Connaissant la version de notre module on saura quelle syntaxe utiliser. Dans ce cas c’est la version 3.0.
Liste des commandes pour la version 1.8:
- AT -> essaye communication des commandes AT.
- AT+NAMEmonbluetooth -> change le nom du module par « monbluetooth ».
- AT+PIN0000 -> modifie le mot de passe par 0000 (par défaut: 1234).
- AT+BAUD4 -> sélectionne la vitesse de connexion, le 4 correspond à 9600 bit/s.
Liste de commandes pur la version 3.0:
- AT -> essaye communication des commandes AT.
- AT+NAME:monbluetooth -> change le nom du module.
- AT+PSWD: »0000″ -> change le mot de passe.
- AT+UART:9600,0,0 -> choisit la vitesse de connexion.