Arduino : Module HC-05 | Communication de deux Arduino en Bluetooth

Pour faire suite au premier billet sur le module bluethooth HC-05 il est aussi possible de configurer les modules HC-05 en mode Maitre ou Esclave, pour connaitre le role il faut entrer AT+ROLE, vous obtiendrez un rôle en retour, ici j’ai +ROLE:0 , il y a 3 rôle ,0 pour esclave, 1 pour maitre ( permet de se connecter automatiquement à un esclave )

Configuration du module esclave

Pour le mode esclave, vous pouvez changer le nom en tapant AT+NAME=HC05-Slave et choisir les paramètres de communication et le mot de passe que vous voulez. Il faudra vous assurer qu’ils sont les mêmes que pour le module maître.

AT retourne OK
AT+NAME=HC05-SLAVE
AT+UART=9600,0,0
AT+ROLE=0
Entrez AT+ADDR pour obtenir l’adresse du module esclave (dans notre cas, +ADDR:98d3:32:21450e)

Attention la commande AT+ADDR ne donne pas l’adresse complète

Pour le module esclave, vous pouvez aussi utiliser un module HC-06.

Configuration du module maître

Pour le mode maître, vous devez modifier le role du module et choisir les même paramètres de communication que pour le module esclave

AT retourne OK
AT+NAME=HC05-MASTER
AT+UART=9600,0,0
AT+ROLE=1
Vous devez enregistrer l’adresse du module esclave pour que le module maître puisse s’appairer: AT+BIND=98d3,32,21450e (remplacez les deux points « : » par des virgules « , »)

Allumage d’une LED connecté en Bluetooth à notre Arduino

Schéma câblage Arduino Émetteur
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(2, 3); // (RX, TX) (pin TX BT, pin RX BT)
char outgoingMessage = 0;

void setup()
{
    // Ouvre la voie série avec l'ordinateur
    Serial.begin(9600);
    // Ouvre la voie série avec le module BT
    bluetooth.begin(9600);
    
    Serial.println("Taper 0 eteint la led | Taper 1 allume la led");
}

void loop() {
    if (Serial.available()) {
// Copie les datas reçu en Bluetooth dans la variable message
        outgoingMessage = Serial.read();
        Serial.println(outgoingMessage);
// Envoi les datas contenu dans la variable message dans la console série
        bluetooth.print(outgoingMessage); 
    }
}

Schéma câblage Arduino Récepteur
#include <SoftwareSerial.h>
int led = 8;
char incomingMessage = 0; // for incoming serial data
SoftwareSerial bluetooth(2, 3); // (RX, TX) (pin TX BT, pin RX BT)

void setup() 
{
  // INIT PIN OUT
  pinMode(led,OUTPUT); // PIN LED ROUGE
  Serial.begin(9600);// opens serial port, sets data rate to 9600 bps
  // Ouvre la voie série avec le module BT
  bluetooth.begin(9600);
}

void loop() 
{
   if (bluetooth.available()) {
//     Copie les datas reçu en Bluetooth dans la variable message
        incomingMessage = bluetooth.read(); 
//     Envoi les datas contenu dans la variable message dans la console série
        Serial.println(incomingMessage); 
//    }
    
  if (incomingMessage == '0'){
    digitalWrite(led,LOW);
    Serial.print(incomingMessage);
  }
  else if (incomingMessage == '1'){
    digitalWrite(led,HIGH);
    Serial.print(incomingMessage);
  }
 }
}

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.