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

Maîtriser le Bluetooth Arduino : Tutoriel module HC-05 pour contrôle Smartphone et PC

Dans ce tutoriel Arduino Bluetooth, nous allons apprendre à utiliser le module HC-05 pour contrôler Arduino via communication Bluetooth. Vous pouvez visionner la vidéo suivante ou lire le tutoriel écrit ci-dessous pour plus de détails.

Présentation

Pour ce tutoriel, j'ai fait deux exemples : contrôler l'Arduino avec un smartphone et contrôler l'Arduino avec un ordinateur portable ou un PC. Pour ne pas surcharger ce tutoriel, dans le prochain nous apprendrons à configurer le module Bluetooth HC-05 et à faire une communication Bluetooth entre deux cartes Arduino séparées en maître et esclave.

Avant de commencer avec le premier exemple, regardons de plus près le module Bluetooth HC-05. Comparé au module HC-06, qui ne peut être configuré qu'en esclave, le HC-05 peut être configuré en maître, ce qui permet une communication entre deux cartes Arduino séparées. Il existe plusieurs versions de ce module, mais je recommande celui qui vient sur une carte d'extension (breakout board) car c'est beaucoup plus facile à connecter. Le module HC-05 est un module Bluetooth SPP (Serial Port Protocol), ce qui signifie qu'il communique avec l'Arduino via la communication série.

Schéma de câblage

Voici comment connecter le module à la carte Arduino.

Le module que j'ai peut être alimenté de 3,6 à 6 volts car il est sur une carte d'extension qui contient un régulateur de tension. Cependant, le niveau de tension logique des broches de données est 3,3 V. Donc, la ligne entre l'Arduino TX (broche d'émission, sortie 5 V) et le module Bluetooth RX (broche de réception, qui ne supporte que 3,3 V) doit être connectée via un diviseur de tension pour ne pas griller le module. En revanche, la ligne entre la broche TX du module Bluetooth et la broche RX de l'Arduino peut être connectée directement car le signal 3,3 V du module Bluetooth suffit pour être accepté comme un niveau haut logique sur l'Arduino.

Code source exemple communication Bluetooth Arduino

Nous sommes prêts à faire le code Arduino pour activer la communication entre la carte Arduino et le smartphone. Nous ferons un exemple simple, juste allumer et éteindre une LED, mais ce sera suffisant pour comprendre la communication.

#define ledPin 7
int state = 0;
void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.begin(38400); // Débit par défaut du module Bluetooth
}
void loop() {
  if (Serial.available() > 0) {
    state = Serial.read();
  }
  if (state == '0') {
    digitalWrite(ledPin, LOW);
    Serial.println("LED: OFF");
    state = 0;
  } else if (state == '1') {
    digitalWrite(ledPin, HIGH);
    Serial.println("LED: ON");
    state = 0;
  }
}

Description : On définit d'abord la broche à laquelle notre LED sera connectée et une variable pour stocker les données venant du smartphone. Dans le setup, on définit la broche LED en sortie et on la met à l'état bas. Comme mentionné, on utilisera la communication série, donc on démarre la communication série à 38400 bauds, qui est le débit par défaut du module Bluetooth. Dans la boucle, avec Serial.available() on vérifie s'il y a des données disponibles dans le port série à lire. Cela signifie que quand on enverra des données au module Bluetooth, cette condition sera vraie, puis avec Serial.read() on lit cette donnée et on la met dans la variable « state ». Si l'Arduino reçoit le caractère '0', il éteint la LED et avec Serial.println() il renvoie au smartphone, via le port série, la chaîne « LED: OFF ». De plus, on remet la variable « state » à 0 pour que les deux lignes ci-dessus ne s'exécutent qu'une seule fois. Notez que la variable « state » est un entier, donc quand on reçoit le caractère '0' du smartphone, la valeur réelle de l'entier « state » est 48, qui correspond au caractère '0' selon la table ASCII. C'est pourquoi dans le « if » on compare la variable « state » à un caractère '0'. Inversement, si le caractère reçu est '1', la LED s'allume et la chaîne « LED: ON » est renvoyée.

Le code est prêt à être téléversé, mais pour cela il faut débrancher les lignes TX et RX car pendant le téléversement l'Arduino utilise la communication série, donc les broches RX (broche numérique 0) et TX (broche numérique 1) sont occupées. On peut éviter cette étape si on utilise les autres broches TX et RX de l'Arduino, mais dans ce cas il faudra utiliser la bibliothèque SoftwareSerial.h pour la communication série.

Article connexe : Comment configurer et appairer deux modules HC-05 Bluetooth en Maître et Esclave | Commandes AT

Connexion du smartphone au module Bluetooth HC-05 et à l'Arduino

Nous sommes prêts à connecter le smartphone au module Bluetooth et à l'Arduino. Il faut activer le Bluetooth et le smartphone trouvera le module HC-05.

Ensuite, il faut appairer les dispositifs et le mot de passe par défaut du module HC-05 est 1234. Après l'appairage, il faut une application pour contrôler l'Arduino. Il y a beaucoup d'applications dans le Play Store pour cet usage qui fonctionneront avec le code Arduino qu'on a écrit. Cependant, j'ai créé ma propre application personnalisée pour ce tutoriel en utilisant l'application en ligne MIT App Inventor. C'est une application formidable et facile à utiliser pour construire des applications Android et dans mon prochain tutoriel, vous trouverez un guide détaillé étape par étape pour construire votre propre application Android personnalisée pour votre projet Arduino.

Vous pouvez télécharger l'application que j'ai faite pour cet exemple ici :

Arduino Bluetooth Tutorial Example Android App (1 fichier, 1,38 Mo)

Avec le bouton de connexion, on connecte le smartphone au module Bluetooth et le texte d'état sous le bouton nous dit si on a réussi à se connecter. En utilisant les boutons « Turn ON » et « Turn OFF », on peut allumer et éteindre la LED. Le texte au-dessus des boutons est celui que l'Arduino renvoie au smartphone quand un bouton particulier est pressé.

Contrôler Arduino avec un ordinateur portable ou PC via communication Bluetooth

Voyons comment contrôler l'Arduino via Bluetooth en utilisant un ordinateur portable ou un PC. D'abord, il faut appairer notre ordinateur portable au module Bluetooth HC-05, ce qu'on fait depuis les paramètres Bluetooth de l'ordinateur. L'ordinateur découvrira le module HC-05 et avec le mot de passe '1234' on appariera les dispositifs.

Une fois les dispositifs appairés, dans le Gestionnaire de périphériques de l'ordinateur, sous Ports (COM et LPT), deux nouvelles entités apparaîtront nommées « Standard Serial over Bluetooth link ». D'ici, on peut voir le numéro de port COM du port série par lequel les dispositifs communiqueront.

On reste sur le même exemple qu'auparavant, allumer et éteindre une LED et renvoyer une chaîne à l'ordinateur, donc on utilisera le même code Arduino que précédemment.

Code source Processing IDE

Maintenant, en utilisant l'IDE Processing, nous allons faire un programme pour contrôler l'Arduino. Voici le code source.

import processing.serial.*;
Serial myPort;
String ledStatus = "LED: OFF";
void setup() {
  size(450, 500);
  myPort = new Serial(this, "COM5", 38400);
  myPort.bufferUntil('\n');
}
void serialEvent(Serial myPort) {
  ledStatus = myPort.readStringUntil('\n');
}
void draw() {
  background(237, 240, 241);
  fill(20, 160, 133);
  stroke(33);
  strokeWeight(1);
  rect(50, 100, 150, 50, 10); // Bouton Turn ON
  rect(250, 100, 150, 50, 10); // Bouton Turn OFF
  fill(255);
  textSize(32);
  text("Turn ON", 60, 135);
  text("Turn OFF", 255, 135);
  textSize(24);
  fill(33);
  text("Status:", 180, 200);
  textSize(30);
  textSize(16);
  text("Program made by Dejan Nedelkovski,\n www.HowToMechatronics.com", 80, 320);
  text(ledStatus, 155, 240);
  // Si bouton "Turn ON" pressé
  if (mousePressed && mouseX > 50 && mouseX < 200 && mouseY > 100 && mouseY < 150) {
    myPort.write('1');
    stroke(255, 0, 0);
    strokeWeight(2);
    noFill();
    rect(50, 100, 150, 50, 10);
  }
  // Si bouton "Turn OFF" pressé
  if (mousePressed && mouseX > 250 && mouseX < 400 && mouseY > 100 && mouseY < 150) {
    myPort.write('0');
    stroke(255, 0, 0);
    strokeWeight(2);
    noFill();
    rect(250, 100, 150, 50, 10);
  }
}

Description : Il faut inclure la bibliothèque Serial et créer un objet série pour activer la communication série, ainsi que définir une variable String pour l'état de la LED. Dans le setup, on définit la taille de la fenêtre du programme et on démarre la communication série. Pour le numéro de port COM, il faut essayer l'un des deux numéros de port COM qu'on a remarqués dans le gestionnaire de périphériques. La ligne suivante définit la mise en tampon du port série et dans notre cas c'est jusqu'à ce qu'il y ait une nouvelle ligne ; en fait, il y a une nouvelle ligne chaque fois que l'Arduino envoie la chaîne « LED: OFF » ou « LED: ON » à cause de la fonction println(). Ensuite, avec la fonction serialEvent() on vérifie s'il y a des données disponibles dans le port série à lire. Si c'est le cas, avec readStringUntil() on lit cette donnée du port série qui a été envoyée de l'Arduino, dans notre cas la chaîne « LED: OFF » ou « LED: ON ».

Dans la fonction draw() principale, qui se répète constamment, on fait tous les graphismes et fonctions du programme. On définit la couleur de fond, la couleur de remplissage, la taille et la couleur du trait, et avec rect() on dessine les deux boutons. Avec text() on affiche tous les textes, y compris la chaîne ledStatus qui vient de l'Arduino. Il reste à rendre les boutons fonctionnels. Avec le premier « if », on délimite la zone du bouton « Turn ON », donc quand le bouton est pressé, le caractère '1' sera envoyé sur le port série à l'Arduino et allumera la LED. Les quatre lignes suivantes servent à surligner le bouton quand il est pressé. La même procédure s'applique pour le bouton « Turn OFF ».

Maintenant le programme est prêt. Quand on cliquera sur le bouton d'exécution, le programme activera automatiquement la communication Bluetooth entre l'ordinateur portable et l'Arduino. Le module Bluetooth HC-05 se mettra à clignoter toutes les deux secondes, indiquant que le module est connecté, et on pourra contrôler la LED avec notre ordinateur portable.

C'est tout pour ce tutoriel, mais n'oubliez pas de consulter mon prochain tutoriel où nous apprendrons à configurer le module Bluetooth HC-05 et à faire une communication Bluetooth entre deux cartes Arduino séparées en maître et esclave.

N'hésitez pas à poser vos questions dans la section commentaires ci-dessous et n'oubliez pas de consulter ma collection de projets Arduino.

Processus de fabrication

  1. Créer un verrou RFID sécurisé avec Arduino – Guide étape par étape
  2. JX Wave Generator – Générateur DDS compatible Arduino avec affichage OLED
  3. Module GPS u-blox LEA‑6H 02 : guide d'intégration Arduino et Python
  4. Système avancé de détection de chutes avec Arduino, Windows IoT et Azure Cloud
  5. Contrôle à distance d'une voiture avec Arduino Uno et Bluetooth : Guide pas à pas
  6. Enregistreur de Données Environnementales Arduino avec Carte SD et RTC
  7. ArduRadio : Réveil Radio FM DIY Basé sur Arduino
  8. Cafetière intelligente Arduino avec contrôle Bluetooth et surveillance de température
  9. Construire un Ordinateur Portable Raspberry Pi 3 & Arduino : Guide Pas à Pas