Notre Arduino peut communiquer avec d’autres équipements par Bluetooth par le biais d’un petit module HC-05 (Maitre/esclave).
Présentation du module :
Le module se présente sous cette forme :
Fonction des PIN du module HC-05 :
PIN | PIN NAME | FONCTION |
---|---|---|
1 | Enable / key | |
2 | VCC / +5V | Alimentation du module. A connecter à l’alimentation +5v |
3 : | GND | Pin à connecter au ground |
4 : | TX | Transmit Serial Data : Les données reçu en Bluetooth seront transmise par cette pin en donnée série |
5 : | RX | Receive Serial Data : Les données reçu sur cette pin seront transmise en Bluetooth |
6 : | STATE | |
7 | LED | Indique le status du module : Clignote une fois toute les deux secondes : Mode « COMMANDE » activé Led Clignotante : Mode « DATA » en attente de connexion Clignote 2 fois par seconde : Mode « DATA » Connexion réussi |
8 : | Buttons | Permet de passer du mode DATA au mode COMMANDE |
HC-05 Default Settings
Ci-dessous vous trouverez les paramètres par défaut pour se connecter et configurer le module.
Default Bluetooth Name: | “HC-05” |
Default Password: | 1234 or 0000 |
Default Communication: Slave | |
Default Mode: | Data Mode |
Data Mode Baud Rate: | 9600, 8, N, 1 |
Command Mode Baud Rate: 38400, 8, N, 1 | 9600, 8, N, 1 |
Il est tout à fait possible de s’en servir out-of-box en se connectant au SSID HC-05 et en utilisant le mot de passe 0000 ou 1234. mais dans ce tutoriel nous allons apprendre à modifier la configuration pour nos propres besoins.
Schéma de câblage pour la configuration de notre module :
Ci-dessous le schéma de câblage entre notre Arduino et son module Bluetooth pour pouvoir configurer notre module avant son utilisation
Après avoir compiler et téléverser le code ci-dessous sur notre Arduino, nous allons pouvoir procéder à la configuration de notre module HC-05.
#include <SoftwareSerial.h>
char message;
SoftwareSerial bluetooth(2, 3); // (RX, TX) (pin TX BT, pin RX BT)
void setup()
{
// Ouvre la voie série avec l'ordinateur
Serial.begin(9600);
// Ouvre la voie série avec le module BT
bluetooth.begin(9600); // En mode COMMANDE communication a 9600 Baud
Serial.println("AT COMMAND :");
}
void loop() // run over and over
{
if (bluetooth.available()) {
// Copie les datas reçu en Bluetooth dans la variable message
message = bluetooth.read();
// Envoi les datas contenu dans la variable message dans la console série
Serial.print(message);
}
if (Serial.available()) {
// Copie les data reçu dans la console série dans la variable message
message = Serial.read();
// Envoi les datas contenu dans la variable message au module Bluetooth
bluetooth.print(message);
}
}
Par défaut l’Arduino peut communiquer en série seulement par le biais de ses pins 1/2. La librairie SoftwareSerial va nous permettre d’utiliser des ports autres que le port 1 et 2 de l’Arduino comme port série.
Pour passer en mode configuration / paramétrage de notre module nous devons activer le mode COMMANDE :
- Débrancher la pin relié au 5v
- Maintenir le bouton pressé
- Rebrancher la pin relié au 5v
- Relâcher le bouton
La LED de votre module devrait maintenant clignoter seulement 1 fois toute les deux secondes. Cela indique que nous venons de passer en mode COMMANDE
Certain module ne dispose pas de bouton il peut être nécessaire de câbler la pin KEY du module sur le 5 volt pour activer le mode COMMANDE. Cela n’a pas été le cas sur le mien.
Nous validons que nous sommes en mode COMMANDE en ouvrant le moniteur série et en tapant la commande AT qui doit renvoyer OK dans le moniteur :
Configuration du module Bluetooth :
AT+NAME=HC05-SLAVE
AT+PSWD="2810"
AT+ROLE=0
AT+UART=9600,0,0
Une liste non exhaustive des commandes à connaitre :
COMMANDE | Fonction |
---|---|
AT | Vérifier la connexion avec le module |
AT+NAME : | Affiche nom du module |
AT+ADDR : | Affiche l’adresse du module |
AT+VERSION : | Affiche la version |
AT+UART : | Affiche la vitesse de connexion |
AT+ROLE: | Voir le rôle du module (1=master/ 0=slave) |
AT+RESET : | Redémarre le module. |
AT+ORGL : | Restaure la configuration d’usine |
AT+PSWD: | Affiche le mot de passe |
AT+BIND | Affiche l’adresse du module slave |
Une fois notre configuration terminer il suffit de débrancher et rebrancher la pin du 5v pour repasser en mode DATA
Communication entre un smartphone Android et un module HC-05 :
Maintenant que nous avons configuré notre module nous allons établir une communication entre un smartphone Android et un Arduino connecté au module HC-05 Bluetooth.
Sur Android nous allons utiliser l’application SerialTerminal pour communiquer en série via Bluetooth
Dans les paramètres de connexion Bluetooth de votre smartphone vous devriez voir afficher le nom de notre module que nous avons configuré « HC05-SLAVE ». Associez-vous avec il va vous demander le mot de passe que nous avons renseigné « 2810 »
Ouvrons maintenant l’application SerialTerminal sur notre Smartphone et envoyons un message à notre Arduino
Allumer une LED connecté en Bluetooth à notre Arduino
Nous allons maintenant essayer d’allumer une LED depuis notre téléphone.
Réalisons le petit montage suivant sur notre breadboard :
Et voici le code à téléverser sur votre Arduino
#include <SoftwareSerial.h>
int led = 8;
char incomingMessage = 0; // for incoming serial data
SoftwareSerial bluetooth(2, 3); // (RX, TX) (pin TX BT, pin RX BT)
void setup()
{
// INIT PIN OUT
pinMode(led,OUTPUT); // PIN LED ROUGE
Serial.begin(9600);// opens serial port, sets data rate to 9600 bps
// Ouvre la voie série avec le module BT
bluetooth.begin(9600);
}
void loop()
{
if (bluetooth.available()) {
// Copie les datas reçu en Bluetooth dans la variable message
incomingMessage = bluetooth.read();
// Envoi les datas contenu dans la variable message dans la console série
Serial.println(incomingMessage);
// }
if (incomingMessage == '0'){
digitalWrite(led,LOW); // Eteint la led
Serial.print(incomingMessage);
}
else if (incomingMessage == '1'){
digitalWrite(led,HIGH); // Allume la led
Serial.print(incomingMessage);
}
}
}
Depuis votre téléphone il vous suffit d’envoyer « 1 » pour allumer la led et 0 pour l’éteindre.
Source :
https://retroetgeek.com/arduino/configuration-du-module-hc-05-pour-arduino/ https://www.aranacorp.com/fr/votre-arduino-communique-avec-le-module-hc-05/ https://www.mataucarre.fr/index.php/2018/12/04/utiliser-un-module-bluetooth-hc-05-arduino-uno/