top of page

Le shield Bluetooth développé par Seeedstudio présente quelques avantages non négligeables par rapport au module Bluetooth HC-06 :

  • il possède un module Bluetooth HC-05 pouvant fonctionner en maître ou en esclave.

  • il fonctionne sous 3,3 V et le pont diviseur pour abaisser la tension de la broche RX est incorporé.

  • il possède une série de broches permettant de configurer, grâce à deux cavaliers, les lignes RX et TX de la liaison série.

  • il possède un bouton reset.

  • il possède deux connecteurs "Grove" pour connecter un module numérique sur D8 et D9 et un module analogique sur A4 et A5.

​

 

​

LE SHIELD BLUETOOTH SEEEDSTUDIO V2.0

Ce shield utilise également la bibliothèque SoftwareSerial, comme le module Bluetooth HC-06.

Liste du matériel :

  • 2 Arduino Uno

  • 2 shields Bluetooth

  • 1 module bouton poussoir "Grove"

  • 1 module led "Grove"

  • 2 cordons "Grove"

Exemple :

Nous souhaitons allumer, grâce à une liaison Bluetooth, une led branchée sur une carte Arduino depuis un bouton poussoir branché sur une autre carte Arduino.

Programme 1 :​

/* Bluetooth_emetteur est un programme qui envoie l'état d'un bouton poussoir grâce à un module Bluetooth */

#define bouton 8                                   // affectation des broches
#define RX 2
#define TX 3

boolean etat;                                         // déclaration de la variable etat de type booleén

// 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
pinMode(bouton,INPUT) ;                    // la broche bouton est en entrée
Init_Bluetooth();                                   // configuration du module Bluetooth
}


void loop()
{
etat=digitalRead(bouton);                    // la variable etat prend la valeur de l'entrée bouton
Serial.print("Le bouton est ");              // on écrit dans le moniteur série
if (etat==HIGH)                                      // si etat est au niveau bas (bouton actif)
           {
           Serial.println("actif");                // on écrit dans le moniteur série et on va à la ligne
           }
  else
           {
           Serial.println("inactif");
           }
Bluetooth.print(etat);                            // on envoie sur la liaison Bluetooth la valeur de la variable etat
delay(10);
}


//procédure qui configure le module Bluetooth
void Init_Bluetooth()
{
Bluetooth.begin(9600);                             // initialisation de la liaison à 9600 bauds
Bluetooth.print("AT");                                // test de la communication
delay(400);
Bluetooth.print("AT+DEFAULT");              // remise en configuration d'origine du module
delay(2000);
Bluetooth.print("AT+NAMEMaitre");        // configuration du nom du module
delay(400);
Bluetooth.print("AT+ROLEM");                  // configuration du module en maitre
delay(400);
Bluetooth.print("AT+AUTH1");            
delay(400);    
Bluetooth.print("AT+CLEAR");                   // réinitialisation de l'adresse du module
delay(400);   
Bluetooth.flush();                                       // on attend que que toutes les données soient transmises
}

Programme 2 :​

/* Bluetooth_récepteur est un programme qui commande une led en fonction d'une consigne envoyée

grâce à une liaison Bluetooth */

#define led 8                                              // 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()
{
pinMode(led,INPUT) ;                                // la broche led est en sortie
Init_Bluetooth();                                         // configuration du module Bluetooth
}


void loop()
{
recevoir();                                                   // appel de la procédure recevoir
if (octet_recu==49)                                    // si octet reçu est 1 (49=code ASCII de 1)
    {
    digitalWrite(led,HIGH);
    }    
if (octet_recu==48)                                    // si octet reçu est 0 (48=code ASCII de 0)
    {
     digitalWrite(led,LOW);
    }
}


//procédure qui configure le module Bluetooth
void Init_Bluetooth()
{
Bluetooth.begin(9600);                            // initialisation de la liaison à 9600 bauds
Bluetooth.print("AT");                               // test de la communication du module
delay(400);
Bluetooth.print("AT+DEFAULT");             // remise en configuration d'origine du module
delay(2000);
Bluetooth.print("AT+NAMEEsclave");     // configuration du nom du module
delay(400);
Bluetooth.print("AT+PIN1234");              // configuration du code PIN du module
delay(400);
Bluetooth.print("AT+AUTH1");            
delay(400);    
Bluetooth.print("AT+CLEAR");                // réinitialisation de l'adresse du module
delay(400);   
Bluetooth.flush();                                    // on attend que que toutes les données soient transmises
}


//procédure qui lit les trames
void recevoir()
{
    if (Bluetooth.available())
    {
    octet_recu=Bluetooth.read();
    }
}

Commentaires

A la mise sous tension des deux ensembles, les led bleues des modules Bluetooth vont clignoter rapidement pendant l'appairage puis rester allumées lorsque les deux modules seront connectés.

bottom of page