Le module Bluetooth HC-06 permet d'établir une liaison Bluetooth (liaison série) entre une carte Arduino et un autre équipement possédant une connexion Bluetooth (Smartphone, tablette, seconde carte Arduino, etc...). Le module HC-06 est un module "esclave" contrairement au module HC-05 qui est "maître". Un module "maître" peut demander à un autre élément Bluetooth de s'appairer avec lui alors qu'un module "esclave" ne peut recevoir que des demandes d'appairage.
Ces deux modules peuvent être configurés grâce à des commandes AT (ou commandes Hayes).
LE MODULE BLUETOOTH HC-06
Programme :
/* HC-06 Config est un programme qui permet de configurer le module Bluetooth*/
// Création d'une liaison série sur les broches 2 et 3
#include <SoftwareSerial.h> // appel de la bibliothèque
SoftwareSerial HC06(2, 3); // RX, TX
void setup()
{
HC06.begin(9600); // initialisation connexion série Bluetooth à 9600 bauds
Serial.begin(9600); // initialisation liaison série à 9600 bauds
Serial.println("Entrer la commande AT:");
}
void loop()
{
// si le HC-06 transmet, on écrit le message dans le moniteur série
if (HC06.available())
{
Serial.write(HC06.read());
}
// si on écrit dans le moniteur série, on transmet le message dans le module HC-06
if (Serial.available())
{
HC06.write(Serial.read());
}
}
Exemple 1 :
Nous souhaitons configurer le module HC-06 (changement de nom et de code). Le module HC-06 ne doit pas être appairé et sa led doit clignoter.
Liste du matériel :
-
1 Arduino Uno
-
1 plaquette d'essai
-
1 module Bluetooth HC-06
-
1 résistance 1KΩ
-
1 résistance 2,2 KΩ
Câblage :
Le module HC-06 (comme les modules XBee) peut communiquer avec la carte Arduino via la liaison série (broches numériques N°0 et N°1) mais le moniteur série ne peut plus être utilisé. C'est pour cette raison qu'il est préférable d'utiliser la bibliothèque SoftwareSerial intégrée d'office dans l'IDE Arduino. Ses principales fonctions sont :
-
SoftwareSerial HC06(broche_RX, broche_TX) où broche_RX et broche_TX représente les broches de la liaison série créée. Cette fonction permet de créer l'objet.
-
HC06.begin(baud) où baud représente la vitesse de transmission. Cette fonction permet d'initialiser l'objet.
-
HC06available() indique le nombre d'octets reçus.
-
HC06.read() lit l'octet présent dans le buffer de la liaison série.
-
HC06.print() envoie tout ce qu’il y a entre les parenthèses sous forme d’octets donc en ASCII.
-
HC06.write(octet) envoie l'octet.
Dans l'univers Arduino, le module Bluetooth HC-06 est principalement utilisé dans des applications nécessitant une communication sans fil.
La tension d'alimentation de ces modules doit être comprise entre 3,3 et 5 V, mais la broche RX ne peut recevoir qu'une tension maximale de 3,3 V. Il faudra prévoir un pont diviseur de tension pour ramener la tension 5 V délivrée par la carte Arduino pour ne pas endommager la broche RX du module Bluetooth.
Câblage :
Liste du matériel :
-
1 Arduino Uno
-
1 plaquette d'essai
-
1 module Bluetooth HC-06
-
1 led
-
1 résistance 1KΩ
-
1 résistance 2,2 KΩ
-
1 résistance 330 Ω
Exemple 2 :
Nous souhaitons allumer une led grâce à une application Android (App Inventor ou Bluetooth Electronics) installée sur un smartphone.
Programme :
/* Bluetooth_led est un programme qui pilote une led depuis une application */
#define led 7 // affectation des broches
#define RX 2
#define TX 3
word octet_recu; // mot qui reçoit les trames émises
// Création d'une liaison série
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(RX,TX);
void setup()
{
Serial.begin(9600); // initialisation liaison série à 9600 bauds
bluetooth.begin(9600); // initialisation connexion série Bluetooth à 9600 bauds
pinMode(led,OUTPUT) ; // la broche led est en sortie
}
void loop() {
recevoir(); // appel de la procédure recevoir
if (octet_recu==49) // si octet reçu est 1 (49=code ASCII de 1)
{
Serial.println("Led allumee");
digitalWrite(led,HIGH);
}
if (octet_recu==48) // si octet reçu est 0 (48=code ASCII de 0)
{
Serial.println("Led eteinte");
digitalWrite(led,LOW);
}
delay(200);
}
//procédure qui lit les trames de la tablette
void recevoir()
{
if (bluetooth.available())
{
octet_recu=bluetooth.read();
}
}
Application Bluetooth Electronics :
-
Lancer l'application
-
Cliquer sur "Edit" pour créer l'interface
-
Déposer un interrupteur ("Switches") sur l'interface puis cliquer sur "Edit"
-
Mettre le champ "Turn On Text" à 1
-
Mettre le champ "Turn Off Text" à 0
-
Cliquer sur "OK"
-
Cliquer sur "Connect" pour connecter le module HC-06 (il faut au préalable l'appairer avec la tablette ou le smartphone)
-
Sélectionner le module HC-06 et cliquer sur "Connect"
-
Cliquer sur "Done" pour revenir aux interfaces
-
Sélectionner l'interface
-
Cliquer sur "Run" pour faire fonctionner l'interface
-
Pour modifier la vitesse de transmission du module, taper AT+BAUD4 (4 pour 9600, 5 pour 19200, 6 pour 38400, 7 pour 57600, 8 pour 115200), le module répond OK9600.
Commentaires :
-
Pour tester la communication, taper AT dans le moniteur série et le module doit répondre OK
-
Pour modifier le nom du module, taper AT+NAMENom_du_module (sans espace), le module répond OKsetname.
-
Pour modifier le code PIN du module, taper AT+PINcode (sans espace), le module répond OKsetPIN.