top of page

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 VIl 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.

bottom of page