Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Comment configurer et coupler deux modules Bluetooth HC-05 en tant que maître et esclave | Commandes AT

Dans ce didacticiel Arduino, nous apprendrons comment configurer et coupler deux modules Bluetooth HC-05 en tant qu'appareils maître et esclave. Vous pouvez regarder la vidéo suivante ou lire le didacticiel écrit ci-dessous.

Aperçu

Dans mes deux tutoriels précédents, nous avons déjà appris comment connecter le module Bluetooth HC-05 à l'Arduino et établir une communication entre un smartphone Android et l'Arduino. Dans ces tutoriels, nous avons utilisé le module Bluetooth HC-05 avec sa configuration par défaut, en tant qu'appareil esclave.

Configuration du module Bluetooth HC-05 – Commandes AT

Pour ce tutoriel, nous devons configurer les deux modules. Pour ce faire, nous devons passer en mode de commande AT et voici comment nous allons procéder. Nous devons d'abord connecter le module Bluetooth à l'Arduino comme les schémas de circuit expliqués dans les tutoriels précédents. Ce que nous devons faire en plus, c'est connecter la broche "EN" du module Bluetooth à 5 volts et également commuter les broches TX et RX sur la carte Arduino.

Ainsi, la broche RX de l'Arduino doit être connectée à la broche RX du module Bluetooth, via le diviseur de tension, et la broche TX de l'Arduino à la broche TX du module Bluetooth. Maintenant, tout en maintenant le petit bouton sur la broche "EN", nous devons alimenter le module et c'est ainsi que nous entrerons dans le mode de commande. Si le voyant du module Bluetooth clignote toutes les 2 secondes, cela signifie que nous sommes entrés avec succès dans le mode de commande AT.

Après cela, nous devons télécharger un croquis vide sur l'Arduino, mais n'oubliez pas de déconnecter les lignes RX et TX lors du téléchargement. Ensuite, nous devons exécuter le moniteur série et sélectionner "À la fois NL et CR", ainsi que le débit "38400 bauds" qui est le débit en bauds par défaut du module Bluetooth. Nous sommes maintenant prêts à envoyer des commandes et leur format est le suivant.

Toutes les commandes commencent par "AT", suivi du signe "+", puis d'un et se terminent soit par le "?" signe qui renvoie la valeur actuelle du paramètre ou le signe "=" lorsque nous voulons entrer une nouvelle valeur pour ce paramètre.

Configuration esclave

Ainsi, par exemple, si nous tapons simplement "AT" qui est une commande de test, nous devrions obtenir le message "OK". Ensuite, si nous tapons "AT + UART?" nous devrions récupérer le message qui montre le débit en bauds par défaut qui est de 38400. Ensuite, si nous tapons "AT+ROLE?" on va récupérer un massage "+ROLE=0" qui signifie que l'appareil Bluetooth est en mode esclave. Si nous tapons « AT+ADDR ? » nous allons récupérer l'adresse du module Bluetooth et elle devrait ressembler à ceci :98d3:34:905d3f.

Nous devons maintenant noter cette adresse car nous en aurons besoin lors de la configuration du périphérique maître. En fait, c'est tout ce dont nous avons besoin lors de la configuration de l'appareil esclave, pour obtenir son adresse, bien que nous puissions modifier de nombreux paramètres différents comme son nom, son débit en bauds, son mot de passe d'appariement, etc., mais nous ne le ferons pas pour cet exemple.

Configuration principale

Ok maintenant passons à autre chose et configurons l'autre module Bluetooth en tant qu'appareil maître. Nous allons d'abord vérifier le débit en bauds pour nous assurer qu'il s'agit du même 38400 que l'appareil esclave. Ensuite, en tapant «AT+ROLE=1», nous définirons le module Bluetooth comme périphérique maître. Après cela, en utilisant "AT+CMODE=0", nous définirons le mode de connexion sur "adresse fixe" et en utilisant la commande "AT+BIND=", nous définirons l'adresse du périphérique esclave que nous avons précédemment noté.

Notez ici que lors de l'écriture de l'adresse, nous devons utiliser des virgules au lieu des deux-points. Notez également que nous aurions pu sauter l'étape précédente si nous avions saisi "1" au lieu de "0" dans la commande "AT+CMODE", ce qui permet au maître de se connecter à n'importe quel appareil dans sa plage de transmission, mais c'est une configuration moins sécurisée. Vous trouverez ici une liste complète des commandes et des paramètres :HC-05 AT Commands List

Néanmoins, c'est tout ce dont nous avons besoin pour qu'une configuration de base des modules Bluetooth fonctionne en tant qu'appareils maître et esclave et maintenant si nous les reconnectons en mode normal, données, et réalimentons les modules, en quelques secondes le maître se connectera à l'esclave. Les deux modules commenceront à clignoter toutes les 2 secondes indiquant une connexion réussie.

Exemple de communication entre deux modules Bluetooth HC-05

Ok, nous sommes maintenant prêts à faire l'exemple pratique de ce tutoriel. Voici les schémas du circuit. Nous utiliserons un potentiomètre, au niveau du maître, pour contrôler un servomoteur au niveau de l'esclave. Et inversement, on utilisera un bouton poussoir, chez l'esclave, pour commander une LED chez le maître.

Vous pouvez obtenir les composants nécessaires pour ce didacticiel Arduino sur l'un des sites ci-dessous :

  • Module Bluetooth HC-05 …………….
  • Carte Arduino ……………………………
  • Servomoteur…………………………….….
  • Potentiomètre……………..………..…….
  • 3x résistances de 220 Ohms…………………
  • Breadboard et Jump Wires ……….

Codes sources Arduino

Description : Nous devons donc d'abord définir les broches et certaines variables nécessaires au programme. Dans la section de configuration, au niveau du maître, nous définissons la broche LED comme sortie et la réglons tout de suite au niveau bas, ainsi que la communication série à un débit de 38400 bauds. De même, sur l'esclave, nous définissons la broche du bouton comme entrée, définissons le servo auquel la broche est connectée et démarrons la communication série avec le même débit en bauds.

Dans la section boucle, dans les deux codes, avec la fonction Serial.available() nous vérifierons s'il y a des données disponibles dans le port série à lire et en utilisant la fonction Serial.read() nous lirons et stockerons les données dans le "état variable. Ainsi, si le maître reçoit le caractère "1" qui est envoyé par l'esclave lorsque l'état du bouton est haut ou que le bouton est enfoncé, la LED s'allume. Sinon, si le caractère est '0', la LED sera éteinte.

En ce qui concerne le contrôle du servomoteur, d'abord au niveau du maître, nous lisons la valeur du potentiomètre et la mappons dans une plage appropriée pour le servo de 0 à 255. Cette valeur est envoyée à l'esclave qui l'utilise pour faire tourner le servomoteur en conséquence. C'est tout ce dont nous avons besoin et voici la démonstration de l'exemple.

Code maître :

/*
 * How to configure and pair two HC-05 Bluetooth Modules
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 * 
 *                 == MASTER CODE ==
 */

#define ledPin 9

int state = 0;
int potValue = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.begin(38400); // Default communication rate of the Bluetooth module
}

void loop() {
 if(Serial.available() > 0){ // Checks whether data is comming from the serial port
    state = Serial.read(); // Reads the data from the serial port
 }
 // Controlling the LED
 if (state == '1') {
  digitalWrite(ledPin, HIGH); // LED ON
  state = 0;
 }
 else if (state == '0') {
  digitalWrite(ledPin, LOW); // LED ON
  state = 0;
 }
 // Reading the potentiometer
 potValue = analogRead(A0);
 int potValueMapped = map(potValue, 0, 1023, 0, 255);
 Serial.write(potValueMapped); // Sends potValue to servo motor
 delay(10);
}Code language: Arduino (arduino)

Code esclave :

/*
 * How to configure and pair two HC-05 Bluetooth Modules
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 * 
 *                 == SLAVE CODE ==
 */
 
#include <Servo.h>
#define button 8

Servo myServo;
int state = 20;
int buttonState = 0;

void setup() {
  pinMode(button, INPUT);
  myServo.attach(9);
  Serial.begin(38400); // Default communication rate of the Bluetooth module
}

void loop() {
 if(Serial.available() > 0){ // Checks whether data is comming from the serial port
    state = Serial.read(); // Reads the data from the serial port
 }
 // Controlling the servo motor
 myServo.write(state);
 delay(10);
 
 // Reading the button
 buttonState = digitalRead(button);
 if (buttonState == HIGH) {
   Serial.write('1'); // Sends '1' to the master to turn on LED
 }
 else {
   Serial.write('0');
 }  
}Code language: Arduino (arduino)

C'est tout et si vous rencontrez des problèmes, n'hésitez pas à demander de l'aide dans la section des commentaires ci-dessous.


Processus de fabrication

  1. Récapitulatif :Comment Bluetooth LE et XLE sont l'avenir du suivi et de la surveillance des actifs
  2. Comment Bluetooth + Ultrasons =meilleure précision RTLS et moindre coût
  3. Comment vérifier et étalonner un capteur d'humidité
  4. Comment fabriquer une voiture contrôlée par Bluetooth Arduino
  5. Machine à café intelligente avec Arduino et Bluetooth
  6. Robot de prélèvement et de placement contrôlé par Bluetooth
  7. Comment configurer NeoPixels avec Vixen Lights et Arduino
  8. Comprendre l'acier à outils et comment il est fabriqué
  9. Comment faire la distinction entre une scie à ruban et une scie circulaire ?