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

Guide pas à pas : Configurer et appairer deux modules Bluetooth HC-05 en Maître et Esclave avec commandes AT

Dans ce tutoriel Arduino, nous allons apprendre à configurer et appairer deux modules Bluetooth HC-05 en tant que dispositifs Maître et Esclave. Vous pouvez visionner la vidéo suivante ou lire le tutoriel écrit ci-dessous.

Présentation

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

Configuration du module Bluetooth HC-05 – Commandes AT

Pour ce tutoriel, nous devons configurer les deux modules. Pour cela, il faut passer en mode commande AT. Voici comment procéder. D'abord, connectez le module Bluetooth à l'Arduino selon le schéma expliqué dans les tutoriels précédents. En plus, il faut connecter la broche « EN » du module Bluetooth à 5 volts et inverser les broches TX et RX sur la carte Arduino.

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 », il faut alimenter le module. C'est ainsi qu'on entre en mode commande. Si la LED du module Bluetooth clignote toutes les 2 secondes, cela signifie qu'on a réussi à entrer en mode commande AT.

Après cela, il faut téléverser un sketch vide sur l'Arduino, mais n'oubliez pas de déconnecter les lignes RX et TX pendant le téléversement. Ensuite, lancez le Moniteur Série et sélectionnez « Both NL and CR » ainsi que « 38400 baud » qui est le débit par défaut du module Bluetooth. Nous sommes maintenant prêts à envoyer des commandes, dont le format est le suivant :

Toutes les commandes commencent par « AT », suivi du signe « + », puis un <Nom du paramètre> et se terminent soit par le signe « ? » qui retourne la valeur actuelle du paramètre, soit par le signe « = » quand on veut entrer une nouvelle valeur pour ce paramètre.

Configuration de l'esclave

Par exemple, si on tape juste « AT » (commande de test), on doit recevoir « OK ». Ensuite, si on tape « AT+UART? », on doit recevoir le message indiquant le débit par défaut qui est 38400. Si on tape « AT+ROLE? », on reçoit « +ROLE=0 » ce qui signifie que le dispositif Bluetooth est en mode esclave. Si on tape « AT+ADDR? », on reçoit l'adresse du module Bluetooth, qui ressemble à ceci : 98d3:34:905d3f.

Il faut noter cette adresse car on en aura besoin pour configurer le maître. En fait, c'est tout ce dont on a besoin pour configurer l'esclave, à part obtenir son adresse. Bien qu'on puisse changer de nombreux paramètres comme son nom, son débit, son mot de passe d'appairage, etc., on ne le fera pas pour cet exemple.

Configuration du maître

Passons maintenant à la configuration de l'autre module Bluetooth en tant que maître. D'abord, on vérifie le débit pour s'assurer qu'il est le même 38400 que l'esclave. Ensuite, en tapant « AT+ROLE=1 », on définit le module Bluetooth comme maître. Après cela, avec « AT+CMODE=0 », on règle le mode de connexion sur « adresse fixe » et avec « AT+BIND= » on définit l'adresse de l'esclave qu'on a notée précédemment.

Notez que lors de l'écriture de l'adresse, il faut utiliser des virgules au lieu des deux-points. Notez aussi qu'on aurait pu sauter l'étape précédente si on avait entré « 1 » au lieu de « 0 » dans la commande « AT+CMODE », ce qui ferait que le maître se connecte à n'importe quel dispositif dans sa portée de transmission, mais c'est une configuration moins sécurisée. Vous pouvez trouver une liste complète des commandes et paramètres ici : Liste des commandes AT HC-05.

C'est tout ce dont on a besoin pour une configuration de base des modules Bluetooth pour qu'ils fonctionnent en maître et esclave. Maintenant, si on les reconnecte en mode normal (mode données) et qu'on réalimente 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 HC-05 Bluetooth

Nous sommes maintenant prêts à réaliser l'exemple pratique de ce tutoriel. Voici le schéma de câblage. Nous utiliserons un potentiomètre, côté maître, pour contrôler un servomoteur côté esclave. Et inversement, nous utiliserons un bouton poussoir côté esclave pour contrôler une LED côté maître.

Codes sources Arduino

Description : D'abord, on définit les broches et quelques variables nécessaires. Dans le setup, côté maître, on met la broche LED en sortie et on la met à l'état bas immédiatement, ainsi qu'on démarre la communication série à 38400 bauds. De même, côté esclave, on met la broche bouton en entrée, on définit le servomoteur sur sa broche et on démarre la communication série avec le même débit.

Dans la boucle, dans les deux codes, avec Serial.available() on vérifie s'il y a des données disponibles dans le port série à lire, et avec Serial.read() on lit et stocke la donnée dans la variable « state ». Donc si le maître reçoit le caractère '1' envoyé par l'esclave quand l'état du bouton est haut (bouton pressé), la LED s'allume. Sinon si le caractère est '0', la LED s'éteint.

Pour le contrôle du servomoteur, d'abord côté maître, on lit la valeur du potentiomètre et on la mappe dans une plage adaptée au 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 on a besoin et voici la démonstration de l'exemple.

Code Maître :

/* Configuration et appairage de deux modules HC-05 Bluetooth
 * par Dejan Nedelkovski, www.HowToMechatronics.com
 * == CODE MAÎTRE == */
#define ledPin 9
int state = 0;
int potValue = 0;
void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.begin(38400);
}
void loop() {
  if (Serial.available() > 0) {
    state = Serial.read();
  }
  // Contrôle de la LED
  if (state == '1') {
    digitalWrite(ledPin, HIGH);
    state = 0;
  } else if (state == '0') {
    digitalWrite(ledPin, LOW);
    state = 0;
  }
  // Lecture du potentiomètre
  potValue = analogRead(A0);
  int potValueMapped = map(potValue, 0, 1023, 0, 255);
  Serial.write(potValueMapped); // Envoie potValue au servomoteur
  delay(10);
}

Code Esclave :

/* Configuration et appairage de deux modules HC-05 Bluetooth
 * par Dejan Nedelkovski, www.HowToMechatronics.com
 * == CODE ESCLAVE == */
#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);
}
void loop() {
  if (Serial.available() > 0) {
    state = Serial.read();
  }
  // Contrôle du servomoteur
  myServo.write(state);
  delay(10);
  // Lecture du bouton
  buttonState = digitalRead(button);
  if (buttonState == HIGH) {
    Serial.write('1'); // Envoie '1' au maître pour allumer LED
  } else {
    Serial.write('0');
  }
}

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

Processus de fabrication

  1. Bluetooth LE vs XLE : La nouvelle génération du suivi et de la surveillance d'actifs
  2. Combiner Bluetooth et ultrasons pour un suivi de localisation temps réel précis et rentable
  3. Vérifier et calibrer votre capteur d'humidité pour des mesures précises
  4. Construire une voiture Arduino pilotée par Bluetooth : Guide DIY complet
  5. Cafetière intelligente Arduino avec contrôle Bluetooth et surveillance de température
  6. Kit robot pick-and-place piloté par Bluetooth : Arduino UNO + bras 2 DoF et châssis voiture intelligente
  7. Configurer des NeoPixels avec Vixen Lights et Arduino : Guide étape par étape
  8. Acier à outils démystifié : composition, fabrication et applications industrielles
  9. Scie à ruban vs scie circulaire : différences clés expliquées