Différences entre versions de « Ressources:Communication Bluetooth HC 05 »

De wikilab
(Created page with "====== 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 f...")
 
 
(30 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
====== Intro ======
+
[[File:hc-05_master_modeat.jpg|400px|right]]
 +
 
 +
== Intro ==
 
Nous avons deux HC-05 qui sont maîtres par défaut.
 
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.
 
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).
+
Cette procédure se passe en mode commande (AT mode).  
  
 
Nous allons d'abord configurer l'esclave puis le maître.
 
Nous allons d'abord configurer l'esclave puis le maître.
Ligne 9 : Ligne 11 :
 
Pour cela, réaliser les deux montages (maître et esclave en mode AT).
 
Pour cela, réaliser les deux montages (maître et esclave en mode AT).
  
===== Schéma Esclave Mode AT =====
+
 
 +
Source:http://blog.zakkemble.net/getting-bluetooth-modules-talking-to-each-other/
 +
 
 +
==Code à téléverser sur les deux cartes Arduino==
 +
* <span style="color: red; ">Avant de téléverser le programme sur la carte arduino, débrancher le module HC-05 de l'alimentation . </span>
 +
* <span style="color: red; ">Dans le moniteur série il faut mettre l'option “Les deux NL CR” </span>
 +
 
 +
<pre>
 +
#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());
 +
}
 +
</pre>
 +
===Configuration du HC-05 master (maître par défaut) comme esclave===
 +
====Schéma Mode AT====
  
 
On peut brancher le module HC-05 sur 5V (et pas 3V3).
 
On peut brancher le module HC-05 sur 5V (et pas 3V3).
Ligne 15 : Ligne 53 :
 
Le key est connecté au 3.3V en mode AT
 
Le key est connecté au 3.3V en mode AT
  
[[File:hc-05_master_modeat.jpg|500px]]
+
[[File:hc-05_master_modeat.jpg|600px]]
  
===== Schéma Maître Mode AT =====
+
====Configuration du module HC-05 comme esclave====
[[File:Hc-05 master modeat.jpg|500px]]
+
Connecter l'arduino à l'ordinateur en USB.
  
====== Configurer deux HC-05 master : un maitre et l'autre esclave ======
+
Ensuite, nous allons taper les commandes suivantes dans le moniteur série dans l'IDE Arduino
Source:http://blog.zakkemble.net/getting-bluetooth-modules-talking-to-each-other/
 
  
=====Configuration du HC-05 (maître par défaut) comme esclave=====
+
* Réinitialiser les paramètres par défaut:
 
 
Réinitialiser les paramètres par défaut/Reset to defaults:
 
 
<code>AT+ORGL</code>
 
<code>AT+ORGL</code>
  
Effacer les appareils apairés/Clear any paired devices:
+
* Effacer les appareils apairés:
 
<code>AT+RMAAD</code>
 
<code>AT+RMAAD</code>
  
Configurer le mot de passe/Set PIN:
+
* Configurer le mot de passe:
 
<code>AT+PSWD=1234</code>
 
<code>AT+PSWD=1234</code>
  
Assigner le mode esclave/Slave mode:
+
* Assigner le mode esclave:
 
<code>AT+ROLE=0</code>
 
<code>AT+ROLE=0</code>
  
récupérer l'adresse du module/Get the address of the device:
+
* Récupérer l'adresse du module:
 
<code>AT+ADDR?</code>
 
<code>AT+ADDR?</code>
  
Ligne 44 : Ligne 79 :
 
<span style="color: red; ">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. </span>
 
<span style="color: red; ">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. </span>
  
==== Schema Esclave Mode COM====
+
===Configuration du HC-05 en maitre ===
 +
==== Schéma Mode AT ====
 +
[[File:Hc-05 master modeat.jpg|600px]]
  
[[File:hc-05_slave_modecom_ok2.jpg|500px]]
+
====Configuration du module HC-05 comme maître====
 
 
 
 
 
 
=====Configuration du HC-05 en maitre =====
 
 
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.
 
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.
  
Ligne 128 : Ligne 161 :
 
Les modules sont maintenant configurés ! Ils devraient se connecter automatiquement.
 
Les modules sont maintenant configurés ! Ils devraient se connecter automatiquement.
  
===== Sending data =====
+
===== 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 (voir le connecter au Ground si pas suffisant), et le reconnecter à l'alimentation.
+
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.
 
Si vous avez connecté le KEY PENDANT que le module était alimenté, il faudra juste déconnecter le KEY.
  
===== Maître Mode COM=====
+
===== Envoyer et recevoir des données en Mode COM=====
[[File:Hc-05 slave modecom ok2.jpg|600px]]
+
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.
 +
 
  
===== Envoyer et recevoir des données en Mode COM=====
+
[[category:Tutoriels]]
Si vous voulez avoir sur le même ordinateurs 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.
+
[[category:Réalisés]]

Version actuelle datée du 28 juin 2022 à 09:07

Hc-05 master modeat.jpg

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

Configuration du HC-05 en maitre

Schéma 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.

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.