Différences entre versions de « Ressources:Communication Bluetooth HC 05 »
m (Delphine moved page Projets:Communication Bluetooth HC 05 to Ressources:Communication Bluetooth HC 05) |
|||
(25 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
+ | [[File:hc-05_master_modeat.jpg|400px|right]] | ||
+ | |||
== Intro == | == 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). | ||
− | |||
− | |||
− | |||
Source:http://blog.zakkemble.net/getting-bluetooth-modules-talking-to-each-other/ | Source:http://blog.zakkemble.net/getting-bluetooth-modules-talking-to-each-other/ | ||
− | ====Configuration du HC-05 master (maître par défaut) comme esclave | + | ==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 22 : | 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| | + | [[File:hc-05_master_modeat.jpg|600px]] |
− | + | ====Configuration du module HC-05 comme esclave==== | |
Connecter l'arduino à l'ordinateur en USB. | Connecter l'arduino à l'ordinateur en USB. | ||
Ensuite, nous allons taper les commandes suivantes dans le moniteur série dans l'IDE Arduino | Ensuite, nous allons taper les commandes suivantes dans le moniteur série dans l'IDE Arduino | ||
− | * Réinitialiser les paramètres par défaut | + | * Réinitialiser les paramètres par défaut: |
<code>AT+ORGL</code> | <code>AT+ORGL</code> | ||
− | * Effacer les appareils apairés | + | * Effacer les appareils apairés: |
<code>AT+RMAAD</code> | <code>AT+RMAAD</code> | ||
− | * Configurer le mot de passe | + | * Configurer le mot de passe: |
<code>AT+PSWD=1234</code> | <code>AT+PSWD=1234</code> | ||
− | * Assigner le mode esclave | + | * Assigner le mode esclave: |
<code>AT+ROLE=0</code> | <code>AT+ROLE=0</code> | ||
− | * Récupérer l'adresse du module | + | * Récupérer l'adresse du module: |
<code>AT+ADDR?</code> | <code>AT+ADDR?</code> | ||
Ligne 48 : | 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> | ||
− | ==== | + | ===Configuration du HC-05 en maitre === |
− | + | ==== Schéma Mode AT ==== | |
− | [[File: | + | [[File:Hc-05 master modeat.jpg|600px]] |
− | |||
− | |||
− | + | ====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. | 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 132 : | Ligne 161 : | ||
Les modules sont maintenant configurés ! Ils devraient se connecter automatiquement. | 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 ( | + | 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. | ||
− | ===== | + | ===== 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. | |
+ | |||
− | + | [[category:Tutoriels]] | |
− | + | [[category:Réalisés]] |
Version actuelle datée du 28 juin 2022 à 10:07
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
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
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.