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

Tutoriel complet du module Bluetooth Arduino et HC-05

Dans ce didacticiel Arduino Bluetooth, nous apprendrons comment utiliser le module HC-05 pour contrôler Arduino via la communication Bluetooth. Vous pouvez regarder la vidéo suivante ou lire le didacticiel écrit ci-dessous pour plus de détails.

Aperçu

Pour ce tutoriel, j'ai fait deux exemples, contrôler l'Arduino à l'aide d'un smartphone et contrôler l'Arduino à l'aide d'un ordinateur portable ou d'un PC. Afin de ne pas surcharger ce didacticiel, dans mon prochain didacticiel, nous apprendrons comment configurer le module Bluetooth HC-05 et établir une communication Bluetooth entre deux cartes Arduino distinctes en tant que périphériques maître et esclave.

Avant de commencer avec le premier exemple, contrôler un Arduino à l'aide d'un smartphone, regardons de plus près le module Bluetooth HC-05. En le comparant au module HC-06, qui ne peut être défini qu'en tant qu'esclave, le HC-05 peut également être défini en tant que maître, ce qui permet d'établir une communication entre deux cartes Arduino distinctes. Il existe plusieurs versions différentes de ce module, mais je recommande celle qui vient sur une carte de dérivation car de cette façon, il est beaucoup plus facile d'être connecté. 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.

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

  • Module Bluetooth HC-05 …………….
  • Carte Arduino ……………………………
  • Breadboard et Jump Wires ……… 

Schémas de circuit


Voici comment nous devons connecter le module à la carte Arduino.

Le module particulier que j'ai peut être alimenté de 3,6 à 6 volts, car il est livré sur une carte de dérivation qui contient un régulateur de tension. Cependant, le niveau de tension logique des broches de données est de 3,3 V. Ainsi, la ligne entre l'Arduino TX (Transmit Pin, qui a une sortie 5V) et le module Bluetooth RX (Receive Pin, qui ne prend en charge que 3,3V) doit être connectée via un diviseur de tension afin de ne pas brûler le module. D'autre part, la ligne entre la broche TX du module Bluetooth et la broche Arduino RX peut être connectée directement car le signal 3,3 V du module Bluetooth est suffisant pour être accepté comme une logique haute sur la carte Arduino.

Exemple de code source de communication Arduino Bluetooth

Nous sommes donc maintenant prêts à créer le code Arduino pour permettre la communication entre la carte Arduino et le smartphone. Nous allons faire un exemple simple, juste allumer et éteindre une LED mais ce sera assez bon pour comprendre la communication.

#define ledPin 7
int state = 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
 }

 if (state == '0') {
  digitalWrite(ledPin, LOW); // Turn LED OFF
  Serial.println("LED: OFF"); // Send back, to the phone, the String "LED: ON"
  state = 0;
 }
 else if (state == '1') {
  digitalWrite(ledPin, HIGH);
  Serial.println("LED: ON");;
  state = 0;
 } 
}Code language: Arduino (arduino)

Description : Nous devons d'abord définir la broche à laquelle notre LED sera connectée et une variable dans laquelle nous stockerons les données provenant du smartphone. Dans la section de configuration, nous devons définir la broche LED comme sortie et la régler tout de suite sur bas. Comme mentionné précédemment, nous utiliserons la communication série, nous devons donc commencer la communication série à un débit en bauds de 38 400, qui est le débit en bauds par défaut du module Bluetooth. Dans la section boucle avec la fonction Serial.available(), nous vérifierons s'il y a des données disponibles dans le port série à lire. Cela signifie que lorsque nous enverrons des données au module Bluetooth, cette déclaration sera vraie, donc en utilisant la fonction Serial.read (), nous lirons ces données et les mettrons dans la variable "state". Donc si l'Arduino reçoit le caractère '0' il éteindra la LED et en utilisant la fonction Serial.println() il renverra au smartphone, via le port série, la chaîne "LED :OFF". De plus, nous allons réinitialiser la variable "state" à 0 afin que les deux lignes ci-dessus ne soient exécutées qu'une seule fois. Notez ici que la variable "état" est un entier, donc lorsque nous recevons le caractère '0' qui vient du smartphone, la valeur réelle de la variable entière "état" est 48, ce qui correspond au caractère '0', selon l'ASCII table.. C'est pourquoi dans l'instruction "if" nous comparons la variable "state" à un caractère '0'. D'autre part, si le caractère reçu est '1', la LED s'allumera et la chaîne "LED :ON" sera renvoyée.

Maintenant, le code est prêt à être téléchargé, mais pour ce faire, nous devons débrancher les lignes TX et RX, car lors du téléchargement, l'Arduino utilise la communication série, de sorte que les broches RX (broche numérique 0) et TX (broche numérique 1) sont occupées. Nous pouvons éviter cette étape si nous utilisons les autres broches TX et RX de la carte Arduino, mais dans ce cas, nous devrons utiliser la bibliothèque SoftwareSerial.h pour la communication série.

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

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

Nous sommes maintenant prêts à connecter le smartphone au module Bluetooth et à l'Arduino. Ce que nous devons faire ici, c'est activer le Bluetooth et le smartphone trouvera le module Bluetooth HC-05.

Ensuite, nous devons coupler les appareils et le mot de passe par défaut du module HC-05 est 1234. Après avoir couplé les appareils, nous avons besoin d'une application pour contrôler l'Arduino. Il existe de nombreuses applications dans le Play Store à cet effet qui fonctionneront avec le code Arduino que nous avons écrit. Cependant, j'ai créé ma propre application personnalisée pour ce didacticiel à l'aide de l'application en ligne MIT App Inventor. Il s'agit d'une application géniale et facile à utiliser pour créer une application Android. Dans mon prochain didacticiel, vous trouverez un guide détaillé étape par étape sur la manière de créer votre propre application Android personnalisée pour votre projet Arduino.

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

Exemple de tutoriel Arduino Bluetooth Application Android

1 fichier(s) 1,38 Mo Télécharger

Avec le bouton de connexion, nous connecterons le smartphone au module Bluetooth et le texte d'état sous le bouton nous dira si nous avons réussi à nous connecter. En utilisant les boutons « Turn ON » et « Turn OFF », nous pouvons allumer et éteindre la LED. Le texte au-dessus des boutons est celui que l'Arduino renvoie au smartphone lorsqu'un bouton particulier est enfoncé.

Contrôler Arduino à l'aide d'un ordinateur portable ou d'un PC via la communication Bluetooth

Voyons comment nous pouvons contrôler l'Arduino via Bluetooth à l'aide d'un ordinateur portable ou d'un PC. Donc, nous devons d'abord coupler notre ordinateur portable au module Bluetooth HC-05 et nous pouvons le faire à partir des paramètres Bluetooth de l'ordinateur portable. L'ordinateur portable découvrira le module HC-05 et en utilisant le mot de passe « 1234 », nous couplerons les appareils.

Une fois que nous aurons couplé les appareils dans le Gestionnaire de périphériques pour ordinateur portable, sous Ports (COM et LPT), deux nouvelles entités apparaîtront nommées "Standard Serial over Bluetooth link". De là, nous pouvons voir le numéro de port COM du port série via lequel les appareils communiqueront.

Nous allons nous en tenir au même exemple que précédemment, en allumant et en éteignant une LED et en renvoyant une chaîne à l'ordinateur portable, nous utiliserons donc le même code Arduino que celui décrit précédemment.

Traitement du code source de l'IDE

Maintenant, en utilisant l'IDE de traitement, nous allons créer 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); // Starts the serial communication
  myPort.bufferUntil('\n'); // Defines up to which character the data from the serial port will be read. The character '\n' or 'New Line'
}
void serialEvent (Serial myPort){ // Checks for available data in the Serial Port
  ledStatus = myPort.readStringUntil('\n'); //Reads the data sent from the Arduino (the String "LED: OFF/ON) and it puts into the "ledStatus" variable
}

void draw(){
  background(237, 240, 241);
  fill(20, 160, 133); // Green Color
  stroke(33);
  strokeWeight(1);
  rect(50, 100, 150, 50, 10);  // Turn ON Button
  rect(250, 100, 150, 50, 10); // Turn OFF Button
  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); // Prints the string comming from the Arduino
  
  // If the button "Turn ON" is pressed
  if(mousePressed && mouseX>50 && mouseX<200 && mouseY>100 && mouseY<150){
    myPort.write('1'); // Sends the character '1' and that will turn on the LED
    // Highlighs the buttons in red color when pressed
    stroke(255,0,0);
    strokeWeight(2);
    noFill();
    rect(50, 100, 150, 50, 10);
  }
  // If the button "Turn OFF" is pressed
  if(mousePressed && mouseX>250 && mouseX<400 && mouseY>100 && mouseY<150){
    myPort.write('0'); // Sends the character '0' and that will turn on the LED
    stroke(255,0,0);
    strokeWeight(2);
    noFill();
    rect(250, 100, 150, 50, 10);
  }
}Code language: Arduino (arduino)

Description :  Nous devons inclure la bibliothèque Serial et créer un objet série afin d'activer la communication série, ainsi que définir une variable String pour l'état de la led. Dans la section de configuration, nous devons définir la taille de la fenêtre du programme et démarrer la communication série. En ce qui concerne le numéro de port COM, nous devons essayer l'un des deux numéros de port COM que nous avons précédemment remarqués dans le gestionnaire de périphériques. La ligne suivante définit la mise en mémoire tampon du port série et dans notre cas, c'est jusqu'à ce qu'il y ait une nouvelle ligne et en fait il y a une nouvelle ligne chaque fois que l'Arduino envoie la chaîne "LED :OFF" ou "LED ON" à cause du println( ) fonction. Ensuite, en utilisant la fonction serialEvent(), nous vérifions s'il y a des données disponibles dans le port série à lire. Si tel est le cas, en utilisant la fonction readStringUntil(), nous lirons ces données du port série qui ont été envoyées par l'Arduino et dans notre cas, il s'agit de la chaîne "LED :OFF" ou "LED :ON".

Dans la fonction principale draw(), qui se répète constamment, nous réalisons tous les graphiques et fonctions du programme. Nous devons donc d'abord définir la couleur d'arrière-plan, la couleur de remplissage, la taille et la couleur du trait et, à l'aide de la fonction rect(), nous dessinons les deux boutons. En utilisant la fonction text(), nous imprimons tout le texte, y compris la chaîne ledStatus provenant de l'Arduino. Il ne reste plus qu'à rendre les boutons fonctionnels. Donc, en utilisant la première instruction "if", nous limitons la zone du bouton "Activer", donc lorsque le bouton est enfoncé, le caractère "1" sera envoyé sur le port série à l'Arduino et cela allumera la LED. Les lignes suivantes sont utilisées pour mettre en surbrillance le bouton lorsqu'il est enfoncé. La même procédure s'applique au bouton "Éteindre".

Maintenant, le programme est prêt, donc lorsque nous cliquerons sur le bouton Exécuter, le programme activera automatiquement la communication Bluetooth entre l'ordinateur portable et l'Arduino. Le module Bluetooth HC-05 commencera à clignoter toutes les deux secondes, ce qui indique que le module est connecté et nous pourrons contrôler la LED à l'aide de notre ordinateur portable.

C'est tout pour ce tutoriel, mais n'oubliez pas de consulter mon prochain tutoriel où nous apprendrons comment configurer le module Bluetooth HC-05 et établir une communication Bluetooth entre deux cartes Arduino distinctes en tant que périphériques maître et esclave.

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


Processus de fabrication

  1. Tutoriel sur le verrouillage RFID Arduino
  2. Générateur d'ondes JX
  3. module GPS u-blox LEA-6H 02 avec Arduino et Python
  4. Un système de détection de chute basé sur Arduino, Windows et Azure
  5. Contrôle de voiture avec Arduino Uno et Bluetooth
  6. Tutoriel sur le capteur d'empreintes digitales Arduino
  7. Réveil ArduRadio
  8. Machine à café intelligente avec Arduino et Bluetooth
  9. Ordinateur portable Raspberry Pi et Arduino