Arduino Bluetooth module HC-06
Module Bluetooth HC-06 et Arduino
Module Bluetooth HC-06 et Arduino
Composants utilisés
• 1 module bluetooth HC-06 en mode Maître
• 1 carte Arduino UNO
• 1 plaquette breadboard de prototypage
• Câbles de branchement Dupont mâle / mâle
• 1 alimentation 9V (transformateur avec prise jack)
Principe de fonctionnement
Le module bluetooth HC-06 ajoute une fonction de communication par bluetooth à votre carte Arduino. Il peut ainsi communiquer sans fil à moyenne distance avec n'importe quel autre dispositif bluetooth (ordinateur, téléphone mobile, second module bluetooth sur une autre carte Arduino ).
Caractéristiques
• Module de type JY-MCU / HC-06 Master
• Paramétrage par défaut du port série: 9600, N, 8, 1.
• Le baudrate est paramétrable de 4800 à 1382400 (par commande AT, uniquement si le module n'est pas associé, et maxi 115200 pour pouvoir l'utiliser avec une carte Arduino).
• Alimentation de 3.3 à 5V DC
• LED indicatrice : statut de connexion.
• Fonctionnement bluetooth sur la bande 2.4 GHz, modulation GFSK.
• Le module est appairé avec un mot de passe (1234) modifiable.
Détails techniques du module
• PIO8 est branchée sur une cathode de LED avec une résistance de 470 Ohm en série. Le moins de la LED se branche à la masse . Utilisé pour indiquer l'état de fonctionnement du module selon le type de clignotement de la LED après mise sous tension.
• PIO9 est utilisé pour contrôler la LED de contrôle qui indique l'appariement . Elle reste éclairée en continu quand l'appariement est réalisé.
• PIO11, pin d'état du module . HIGH -> réponse à une commande AT ; LOW ou flottant-> statut de fonctionnement régulier.
• Avec un circuit de reset intégré, le reset est automatiquement activé à la mise sous tension.
Câblage à réaliser
Module HC-06 (4 pins) --> Arduino
• VCC –> +5V
• GND –>GND
• TXD –> Pin 0 (RX) vert
• RXD –> Pin 1 (TX) noir
Important
• Il faut croiser Rx et Tx entre le module et l'Arduino.
• L'utilisation de Pin0 et Pin1 sur la carte Uno ne permet pas d'utiliser le serial monitor du PC en même temps, ni de téléverser (donc penser à débrancher ces 2 fils pour téléverser le code par le câble USB).
Sinon, utiliser par exemple TxD=pin10, RxD=pin11.
Le code d'émission de données bluetooth pour l'Arduino CODE:
//********************************************************
// Module de communication BlueTooth HC-06 avec Arduino
// Rolland 11 01 2014
//
// Programme de démo, le module HT-06 envoie des nouvelles données
// chaque seconde au PC
//
//******************************************************** int counter = 0; unsigned long time;
void setup() {
Serial.begin(9600); //Module bluetooth par défaut 9600, N, 8, 1 pinMode(13, OUTPUT); //Led 13 de témoin OK
}
void loop() { digitalWrite(13, HIGH); // LED 13 ON
delay(100);
digitalWrite(13, LOW); // Off
Serial.print("Test module HC-06 bluetooth ");
Serial.print(++counter); Serial.print(" " ); time = millis(); Serial.println(time); delay(1000); //Un envoi de données par seconde
}
Installation du côté de votre PC
S'il l'ordinateur pas pourvu d'origine d'une connectivité blutooth, lui ajouter un petit dongle Bluetooth sur un port USB et installer le driver correspondant.
Vérifier que le bluetooth du PC est présent et actif :
Avec Windows7 : Ordinateur / Propriétés système / Gestionnaire de périphériques / Cartes réseau / Périphérique bluetooth.
L'icône bluetooth doit se trouver dans la barre en bas de l'écran.
Montage du module avec Arduino
Brancher le module HC-06 sur la breadboard. L'Arduino est alimenté en 9V par sa prise jack. La led rouge du module clignote rapidement quand il n'est prêt mais pas appairé. Elle est stable quand il est jumelé à un autre dispositif bluetooth.
Cliquer sur le PC l'icône bluetooth et choisir le menu "Ajouter un périphérique".
Le PC reconnaît "HC-06 bluetooth", le choisir dans la liste et l'apparier.
Choisir "Entrer le code de couplage du périphérique" (qui n'a pas de clavier) et taper 1234.
Le PC valide ce périphérique et l'ajoute "Votre périphérique et prêt à être utilisé". Le mot de passe par défaut pourra être modifié ensuite.
Le module apparaît dans la liste des dispositifs bluetooth disponibles (avec le téléphone mobile, le GPS, et divers autres bluetooth situés à proximité de l'ordinateur).
Dans ses "Propriétés" le module a un "Service : Port série SPP" (Serial Protocol via Bluetooth), par exemple ici "COM 12" (c'es un port Com virtuel).
Port COM13 = Entrant, et COM 12 = Sortant.
Bien noter le numéro du port utilisé pour la suite.
Console série sur l'ordinateur
Pour que le PC puisse communiquer par bluetooth avec le module, il lui faut une console série.
Dans les dernières versions de Windows comme Vista et Win7, "WindowsTerminal" n'est plus disponible. On peut le récupérer d'un vieux XP, ou installer gratuitement une autre console : Putty, ou Termite par exemple.
Lancer et régler le logiciel PUTTY Télécharger Putty.
Dans son menu Category / Session/ Basic Options, configurer COM12, serial, 9600 bauds.
Dans le menu Category / Serial/ paramétrer Serial line to connect = COM12, speed = 9600 baud, data bits=8, stop bit=1, parity=none, Flow Xi=on/Xoff.
Puis lancer l'écoute sérielle avec Open.
Le module en mode maître cherche automatiquement le module esclave et se connecte.
La led du module bluetooth passe en allumé constant, il est alors connecté : Module -> Ordinateur
On récupère ainsi les données exportées par le module.
Dans Category / Session / Login on peut choisir Session loggin = all session output, pour récupérer en fichier texte les données envoyées par le module blutooth (enregistrées dans le fichier ).
Lancer et régler le logiciel Termite 3.0
On peut aussi utiliser le logiciel Termite 3.0 de CompuPhase qui permet d'envoyer et de recevoir des données de communication RS232 (série).
Son interface plus agréable présente une coloration différente pour les données transmises (bleu) et reçues (vert).
L'interface est de type "programme de Chat". En bas de l'écran de Termite, la barre permet de taper des commandes.
Des plugins permettent l'horodatage des messages reçus, un fichier INI mémorise la configuration du port série de Termite, etc
Réglages
Dans le Menu Settings, commencer par paramétrer le port série (port = Com 12, baud=9600, 8data, 1 stop, no parity).
Le logiciel sur le PC reçoit les données du module bluetooth et les affiche en vert (avec horodatage si on l'a activé).
Envoi de commandes AT au module Bluetooth
Une fois connecté (led allumée fixe), le module est en mode "transparent", et n'accepte plus les commandes AT. Ces commandes sont alors transmises directement au microcontrôleur.
Les commandes AT sont à envoyer avant l'appariement.
Ne pas les terminer par \r \n (retour chariot, nouvelle ligne) avec ce module HC-06.
Ce code Arduino envoie des commandes AT et affiche la réponse du HC-06 sur le monitor série du PC.
CODE:
//**********************************************
// Module bluetooth HC06 envoi de commandes AT
// et affichage de la réponse du module
// D'après
//
//
//***********************************************/*
#include //Software Serial Port
#define RxD 10 //Pin 10 pour RX (pin0=serial) vert
#define TxD 11 //Pin 11 pour TX, on peut changer noir
SoftwareSerial BTSerie(RxD,TxD);
void setup()
{
Serial.begin(9600); //115200 si on veut delay(500);
Serial.println("Bonjour - Pret pour les commandes AT");
// Configuration du bluetooth pinMode(RxD, INPUT); pinMode(TxD, OUTPUT); BTSerie.begin(9600); //57600 delay(500);
BTSerie.print("AT+VERSION"); //Demande le N° de version delay(1000);
// BTSerie.print("\n");
}
void loop()
{
char recvChar;
//On lit caractere par caractere sur le BTSerie et on affiche sur le Terminal Serie if (BTSerie.available()) { recvChar = ();
Serial.print(recvChar);
}
// Serial.write(()); if (Serial.available()) { recvChar = (); BTSerie.write(recvChar);
}
}
Commande de Test :
• AT Réponse : ATOK
• Version du module : AT+VERSION, Réponse : linvorV1.8 pour notre module.
• Changer la vitesse :AT+BAUD4 (4 pour 9600, 5 pour 19200, 6 pour 38400, 7 pour
57600)
La modification du baud rate prend effet seulement après redémarrage du module.
• Changer le nom : AT+NAMEnom
• Changer le mot de passe :AT+PINnnnn