Ressources:Communication Bluetooth HC 05

De wikiup
Sauter à la navigation Sauter à la recherche

Intro

Nous avons deux HC-05 qui sont maîtres par défaut. Il faut d'abord configurer les deux HC-05 (l'un en maitre et l'autre en esclave avant de pouvoir les faire communiquer.

Cette procédure se passe en mode commande (AT mode).

Nous allons d'abord configurer l'esclave puis le maître.

Pour cela, réaliser les deux montages (maître et esclave en mode AT).


Source:http://blog.zakkemble.net/getting-bluetooth-modules-talking-to-each-other/

Code à téléverser sur deux cartes Arduino

  • Avant de téléverser le programme sur la carte arduino, débrancher le module HC-05 de l'alimentation
  • Dans le moniteur série il faut mettre l'option “Les deux NL CR”
#include <SoftwareSerial.h>
 
SoftwareSerial BTSerial(10, 11); // RX | TX
  
void setup()
{
  pinMode (10, INPUT);
  pinMode (11, OUTPUT);//
 // pinMode(9, OUTPUT);  // this pin will pull the HC-05 pin 34 (key pin) HIGH to switch module to AT mode
 // digitalWrite(9, HIGH);
  Serial.begin(38400);
  Serial.println("Enter AT commands:");
  BTSerial.begin(38400);  // HC-05 default speed in AT command more
}
  
void loop()
{
  
  // Keep reading from HC-05 and send to Arduino Serial Monitor
  if (BTSerial.available())
    Serial.write(BTSerial.read());
  
  // Keep reading from Arduino Serial Monitor and send to HC-05
  if (Serial.available())
    BTSerial.write(Serial.read());
}

Configuration du HC-05 master (maître par défaut) comme esclave

Schéma Esclave Mode AT

On peut brancher le module HC-05 sur 5V (et pas 3V3).

Le key est connecté au 3.3V en mode AT

Hc-05 master modeat.jpg

Configuration du module HC-05 comme esclave

Connecter l'arduino à l'ordinateur en USB.

Ensuite, nous allons taper les commandes suivantes dans le moniteur série dans l'IDE Arduino

  • Réinitialiser les paramètres par défaut:

AT+ORGL

  • Effacer les appareils apairés:

AT+RMAAD

  • Configurer le mot de passe:

AT+PSWD=1234

  • Assigner le mode esclave:

AT+ROLE=0

  • Récupérer l'adresse du module:

AT+ADDR?

Une fois l'adresse récupérée, on peut configurer le maître.

Débrancher le module HC 05 de l'alimentation (broche VCC), déconnecter la broche KEY du 3.3 Volts et reconnecter le HC 05 à l'alimentation.

Schema Esclave Mode COM

Hc-05 slave modecom ok2.jpg


Configuration du HC-05 en maitre

Schéma Maître Mode AT

Hc-05 master modeat.jpg

Configuration du module HC-05 comme maître

Pour que le module maître se connecte au module esclave, il faut connaitre l'adresse du module esclave. Vérifier que le module esclave (en mode com) est alimenté et entrer les commandes suivantes pour la configuration du module maître.


  • Réinitialiser les paramètres par défaut

AT+ORGL


  • Effacer les appareils appairés

AT+RMAAD


  • Assigner le rôle de maître

AT+ROLE=1


  • Besoin de redémarrer après le changement de rôle

AT+RESET


  • Autoriser la connection à n'importe quelle adresse

AT+CMODE=1


  • Mode recherche - Standard, arrêter après 5 appareils trouvés, (ou) arrêter de chercher après 5 secondes :

AT+INQM=0,5,5


  • Assigner un mot de passe, doit être identique au module esclave:

AT+PSWD=1234


  • Lancer le profile SPP (nécessaire pour n'importe quel émission/réception bluetooth:

AT+INIT Note: Si cela dit Erreur:(17), cela signifie que c'est déjà chargé, dans ce cas poursuivre.


  • Commencer à chercher :

AT+INQ

Une petite liste de périphériques devrait apparaître, l'un d'eux devrait être le module esclave.

Le format de sortie est configuré ainsi: +INQ:address,type,signal

Le type peut être ignoré. Le signal sera 7FFF si le mode de recherche est en mode standard, en mode RSSI, vous aurez le chargement du même appareil mais avec des niveaux de signal différents, ce que vous ne souhaitez pas pour le moment.


  • Copier l'adresse des périphériques trouvés, par exemple 12: 3: 289431 et remplacez les deux points par des virgules - 12,3,289431. Pour savoir quel périphérique est le module esclave, vous devez interroger chaque adresse pour connaître son nom:

AT+RNAME? <address>

Remplacer <adress> par l'adresse du périphérique comme 12,3,289431

La réponse devrait être +RNAME:linvor si vous utilisez un module escalve standard ou +RNAME:HC05 si vous utilisez un module maître comme esclave (ce qui est notre cas pour ce projet). .


  • Maintenant que vous avez l'adresse du module esclave il faut l'appairer au maître :

AT+PAIR=<address>,<timeout> Note: Si vous souhaitez appairer le maître à votre téléphone, il faut paramétrer le <timeout> sur une durée suffisament longue pour avoir le temps d'entrer le mot de passe.


  • Relier l'adresse :

AT+BIND=<address>


  • Autoriser seulement à se connecter à l'adresse liée :

AT+CMODE=0


  • Et se connecter maintenant:

AT+LINK=<address>

Si cela fonctionne, la LED du module esclave doit rester allumée et la LED du module maître devrait clignoter comme une pulsation.

Les modules sont maintenant configurés ! Ils devraient se connecter automatiquement.

Passer en mode COM

Maintenant, si vous êtes entré en mode AT sur le module maître en connectant le 3.3V sur la broche KEY AVANT d'alimenter le module, vous devrez déconnecter le module de l'alimentation, déconnecter le KEY (ou même le connecter au Ground si pas suffisant), et le reconnecter à l'alimentation.

Si vous avez connecté le KEY PENDANT que le module était alimenté, il faudra juste déconnecter le KEY.

Schema Maître Mode COM

Hc-05 slave modecom ok2.jpg

Envoyer et recevoir des données en Mode COM

Si vous voulez avoir sur le même ordinateur les deux consoles série d'ouverte, il faut lancer deux instances de l'IDE d'Arduino, afin de tester la communication entre les deux sketchs (maitre et esclave). Ouvrez 2 consoles série et envoyer un message. Vérifier qu'il est bien reçu dans l'autre console. Cela doit fonctionner dans les deux sens.