- Matériaux nécessaires
- Schéma
- Configuration initiale des modules HC05
- Test de communication Bluetooth Arduino vers Arduino
Les modules Bluetooth HC-05 sont les modules Bluetooth incontournables pour tout projet Arduino! Il est facile de se connecter et de coder dans l'IDE Arduino. Dans la plupart des projets, nous nous connectons généralement au HC05 à un Arduino et l'utilisons pour communiquer sans fil avec un autre appareil intelligent comme un téléphone mobile. C'est assez simple et nous avons construit de nombreux projets intéressants avec lui comme un robot contrôlé par Bluetooth, une commande vocale Bluetooth, une domotique Bluetooth, etc. Cependant, avez-vous déjà eu besoin de connecter deux HC-05 ensemble? Ce n'est pas aussi simple de connecter un HC05 à un smartphone, il y a quelques étapes supplémentaires impliquées. Ce tutoriel vous guidera tout au long de ce processus. Allons-y!
Matériaux nécessaires
- 2x Arduino (n'importe quel modèle fera l'affaire; j'utilise un Arduino Uno R3 et un Arduino Nano)
- 2 modules Bluetooth HC05
- Planche à pain
- Fils de cavalier
- 2x résistance 1kΩ
- 2x résistance 2,2kΩ
Schéma
Ceci est le schéma de circuit de base. Câblez 2 de ces circuits, un pour le maître et un pour l'esclave. Pour les connexions, tout ce que nous faisons ici est de connecter le HC05 à l'Arduino. La broche du récepteur (Rx) du HC05 fonctionne sur la plage 0V à 3,3V et l'Arduino fonctionne sur la plage 0V à 5V. Nous allons donc utiliser des résistances (R1 et R2) pour créer un diviseur de tension afin de réduire la sortie 5V de l'Arduino à 3,3V, afin de ne pas endommager le module HC05.
J'utilise 1kΩ pour R1 et 2,2KΩ pour R2, mais vous pouvez utiliser n'importe quelle valeur de résistance tant que le R2 est environ le double de la valeur de R1 (R2 ≈ 2R1). De même, répétez le circuit pour le maître et l' esclave, le circuit Bluetooth Arduino maître et Arduino esclave Bluetooth circuit sont affichés ci - dessous.
Configuration initiale des modules HC05
Il s'agit de l'étape supplémentaire requise pour connecter deux modules HC05 ensemble. Nous devons modifier certains paramètres à l'intérieur du module Bluetooth HC05, pour ce faire, nous devons entrer dans le mode de commande AT du module HC05 et lui envoyer des commandes via le moniteur série de l'IDE Arduino. Pour ce faire, nous devons écrire un code Arduino pour envoyer des commandes via le moniteur série au HC05.
Le code pour configurer le module HC05 se trouve en bas de cette page, l'explication du code est la suivante
Ajoutez la bibliothèque SoftwareSerial à ce code.
#include < SoftwareSerial.h>
Définissez les numéros de broche d'émission (Tx) et de réception (Rx). J'utilise la broche 2 pour Tx et la broche 3 pour Rx.
#define tx 2 #define rx 3
Donnez un nom à la connexion Bluetooth (ici j'utilise configBt), puis indiquez à la bibliothèque SoftwareSerial quelle broche est Tx et quelle broche est Rx. La syntaxe est bluetoothName (Rx, Tx);
SoftwareSerial configBt (rx, tx); // RX, TX
Afin de configurer le module Bluetooth, l'Arduino doit lui envoyer des commandes à une vitesse de transmission de 38400 bauds. De même, nous définissons la vitesse de transmission de la connexion Bluetooth sur 38400 bauds. Réglez la transmission (Tx) sur la broche de sortie et la réception (Rx) sur la broche d'entrée
void setup () { Serial.begin (38400); configBt.begin (38400); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
À l'intérieur de la boucle pour toujours, nous avons la partie principale du code. L'idée ici est d'envoyer tout ce qui est tapé dans la zone de texte du moniteur série au HC05 via la broche Tx de l'Arduino. Affichez ensuite tout ce qui est émis par le HC05 sur le moniteur série.
void loop () {if (configBt.available ()) // si le HC05 envoie quelque chose… { Serial.print (configBt.readString ()); // impression dans le moniteur série} if (Serial.available ()) // si le moniteur série sort quelque chose… {configBt.write (Serial.read ()); // écrire sur la broche Tx d'Arduino}}
Téléchargez d'abord ce code dans l'Arduino connecté au module maître HC05. Après avoir téléchargé le code, branchez le câble d'alimentation Arduino. Appuyez sur le bouton du HC05 et maintenez- le enfoncé. Branchez maintenant le câble d'alimentation Arduino tout en maintenant le bouton sur le HC05. Très bien, vous pouvez maintenant relâcher le bouton du HC05. C'est ainsi que vous passez en mode AT du HC05. Pour vérifier si vous avez bien fait cela, assurez-vous que le voyant rouge du HC05 clignote environ toutes les secondes (clignotement lent!). Normalement, avant que le HC05 ne soit connecté à un appareil Bluetooth, sa lumière rouge clignote à une fréquence très élevée (clignotement rapide!).
Ensuite, ouvrez le moniteur série (le bouton du moniteur série est en haut à droite de l'IDE Arduino). Dans le coin inférieur droit de la fenêtre Moniteur série, si vous ne l'avez pas déjà fait, assurez-vous que vous définissez le paramètre de fin de ligne sur «Les deux NL et CL» et la vitesse de transmission sur 38400. Maintenant, tapez AT dans le moniteur série, si tout se passe bien, vous obtiendrez un «OK» du HC05 affiché dans la fenêtre du moniteur série. Toutes nos félicitations! Vous êtes connecté avec succès au mode de commande AT du module HC05.
Maintenant, entrez les commandes suivantes dans le tableau ci-dessous pour configurer le module maître HC05:
COMMANDE (entrez-le dans le moniteur série et appuyez sur Entrée) |
RÉPONSE (réponse de HC05, affichée sur le moniteur série) |
Fonction (que fait cette commande?) |
À |
D'accord |
Tester |
AT + CMODE? |
D'accord |
Vérifiez le CMODE ou le mode de connexion ----------------------------- CMODE: 0 est l'esclave 1 est maître |
AT + CMODE = 1 |
D'accord |
Réglez le CMODE sur 1 lors de la configuration du maître HC05 |
AT + ADDR? |
+ ADDR: FCA8: 9A: 58D5 D'accord * C'est l'adresse de mon maître HC05. Votre adresse sera différente! |
Renvoie l'adresse du HC05, notez-la car nous en aurons besoin plus tard! |
Ensuite, connectez votre ordinateur à votre autre HC05, l'esclave:
COMMANDE (entrez-le dans le moniteur série et appuyez sur Entrée) |
RÉPONSE (réponse de HC05, affichée sur le moniteur série) |
Fonction (que fait cette commande?) |
À |
D'accord |
Tester |
AT + CMODE? |
D'accord |
Vérifiez le CMODE ou le mode de connexion ----------------------------- CMODE: 0 est un esclave 1 est maître |
AT + CMODE = 0 |
D'accord |
Réglez le CMODE sur 0 lors de la configuration de l' esclave HC05 |
À + BIND = FCA8,9A, 58D5 * Remplacez le ":" dans l'adresse du maître HC05 par "," * Ici, j'utilise l'adresse du maître HC05 que j'ai noté dans le tableau précédent. Vous devez utiliser l'adresse de votre maître HC05! |
D'accord |
Définition de l'adresse du maître HC05 auquel cet esclave HC05 se connectera automatiquement au démarrage |
AT + BIND? |
+ LIEN: FCA8: 9A: 58D5 D'accord * C'est l'adresse de mon maître HC05. Votre adresse sera différente! |
Vérifiez l'adresse de liaison de votre esclave. Si elle correspond à l'adresse de votre master HC05, vous êtes prêt à partir! |
Test de communication Bluetooth Arduino vers Arduino
Tout d'abord, alimentez les modules HC05 maître et esclave. Après la mise sous tension et quelques secondes se sont écoulées, regardez le voyant rouge sur les modules HC05.
Vitesse de clignotement de la lumière rouge |
Ce que cela veut dire |
Clignotant à une fréquence très élevée (clignotement rapide!) |
Pas bon! Cela signifie que vos modules HC05 ne se connectent pas entre eux! Il est temps de dépanner! |
Clignotant à basse fréquence (clignotement lent!) |
Agréable! Vous l'avez fait! Mais nous devons encore faire une autre vérification juste pour être sûr que cette configuration fonctionne! Passez! |
Une fois que vos voyants rouges clignotent à basse fréquence (clignotement lent!), Vous pouvez être sûr que vos deux HC05 sont connectés l'un à l'autre, mais nous n'avons pas testé si les données peuvent être envoyées dans les deux sens entre le maître et l'esclave. Après tout, c'est l'objectif principal ici.
Téléchargez le code ci-dessous sur l'un des Arduinos, c'est le code pour tester l'émetteur (Tx), encore une fois le code complet pour l'émetteur et le récepteur se trouve au bas de cette page.
Suite au code précédent, nous ajoutons la bibliothèque SoftwareSerial à ce code et définissons les numéros de broches de transmission (Tx) et de réception (Rx). Ensuite, nous nommons la connexion Bluetooth et transmettons les numéros de broches Tx et Rx à la bibliothèque.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Dans la fonction de configuration, nous définissons à nouveau le débit en bauds pour le moniteur série Arduino et le Bluetooth. Voyez-vous la différence ici par rapport au code précédent? Nous utilisons une vitesse de transmission de 9600 bauds. Il s'agit du débit en bauds de communication prédéfini par défaut du module Bluetooth HC05 lors de la communication avec d'autres appareils Bluetooth. Notez donc que 38400 bauds sert à configurer le HC05 avec des commandes AT et que 9600 bauds est la vitesse de transmission par défaut du module HC05. Enfin, comme avant, nous configurons la broche Tx comme sortie et la broche Rx comme entrée.
void setup () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
À l'intérieur de la boucle éternelle, tout ce que nous faisons est de transmettre une valeur aléatoire de «123» via le HC05.
boucle vide () {bt.write (123); }
Téléchargez ce code sur l'autre Arduino, c'est le code pour tester la réception (Rx):
Exactement les mêmes que les codes précédents, nous configurons la bibliothèque SoftwareSerial.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Le code dans la fonction de configuration est exactement le même que le code pour tester la transmission (Tx).
void setup () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Dans la boucle éternelle, nous avons juste besoin de recevoir ce que nous envoyons de l'Arduino émetteur. Si le tampon de réception a reçu des données du HC05, affichez tout ce qui est reçu sur le moniteur série.
void loop () {if (bt.available ()> 0) { Serial.println (bt.read ()); }}
Après avoir téléchargé les codes respectifs sur chaque Arduino, ouvrez le moniteur série sur l'Arduino récepteur. Assurez-vous de choisir le débit en bauds comme 9600 et la ligne se terminant par Newline dans le moniteur série. Si tout fonctionne correctement, vous devriez voir 123.
Remarque: si vous avez connecté les Arduinos émetteurs et récepteurs au même ordinateur portable, assurez-vous de choisir le bon port COM sous TOOLS> PORT. Vous devez être connecté au port COM de l'Arduino récepteur.
Si tout se passe bien, permutez les modules HC05 pour vous assurer que la communication peut avoir lieu dans les deux sens et NOUS SOMMES FAIT!