Blog

Commander ses maquettes Arduino à l'aide du Bluetooth

05 octobre 2017 - 08:57

 

Le module Bluetooth HC-06

On trouve le module Bluetooth HC-06 sur Internet autour de 4-5€. C'est un accessoire indispensable si l’on souhaite communiquer sans fil (avec par exemple un smartphone ou une tablette en Bluetooth) avec une carte Arduino.

Le module HC-06 est différent du module HC-05, autre grand classique dans le monde merveilleux d’Arduino. C’est un module "esclave" contrairement au HC-05 qui est un module "maître". On ne pourra donc pas faire communiquer deux carte Arduino en utilisant deux modules HC-06 mais par contre, on peut très bien établir une liaison Bluetooth entre un smartphone et une carte Arduino équipée de ce module HC-06.

Lorsqu'il vous est livré, il possède déjà des paramètres par défaut. Son nom (ou id) est ainsi HC-06 et le mot de passe pour s'y connecter est 1234. Pour des raisons de sécurité, il est donc conseillé de changer ces paramètres. Et cela est encore plus recommandé si, comme moi, vous utilisez plusieurs modules Bluetooth en simultanée dans la classe avec vos élèves.

Le branchement

Attention, ce montage n'est valable que pour un montage définitif. En effet, il est recommandé d'utiliser d'autres pins que 0 et 1 pour la communication entre la carte Arduino et le module car lorsque les pins 0 et 1 sont reliées à une carte, il n'est plus possible de faire de transfert de programme entre la carte Arduino et l'ordinateur. Pour l'exemple ici, nous prendrons les pins 10 et 11.

Attention également à bien relier la pin 10 (RX) de l'Arduino à la pin TX du module et la pin 11 (TX) de l'Arduino à la pin RX du module.

Paramétrage du module

Code Arduino :

//Ajout de la librairie pour configurer d'autres ports que les ports 0 et 1
//comme port série
#include <SoftwareSerial.h>

//Configuration des ports 10 et 11
SoftwareSerial hc06(10,11);

void setup(){
 Serial.begin(9600);
 Serial.println("");
 Serial.println("----------------------------------------------");
 Serial.println("Tester les commandes AT (protocole Seriel Bluetooth):");
 hc06.begin(9600);
}

void loop(){
 //Si on reçoit un message en provenance du Smartphone
 if (hc06.available()){
   Serial.write(hc06.read());
 }
 
 //Si on reçoit une commande textuelle de l'utilisateur de l'ordinateur
 if (Serial.available()){
   hc06.write(Serial.read());
 } 
}

Une fois les branchements faits et le code uploadé sur l'Arduino avec l'application, ouvrez votre moniteur série dans Outils. Vous devriez voir apparaître la phrase : Tester les commandes AT (protocole Seriel Bluetooth).

Réglez votre moniteur série sur "Pas de fin de ligne", "9600 Bauds".

Attention : Il arrive que certains modèles de HC-06 soient en réalité des HC-05 transformés. Vous pouvez le savoir en lisant le code écrit au dos du module. S'il est écrit "ZS-040", alors c'est un HC-05. Il faut donc dans ce cas, choisir "Les deux, NL et CR" pour le moniteur série.

Testez si tout est ok en tapant AT. Vous devriez avoir comme réponse : OK.

Pour changer le nom de votre module, tapez AT+NAME suivi du nom que vous désirez (sans espace, ex : AT+NAMEHC-06_1). Si tout est ok, vous verrez s'inscrire : OKsetname.

Attention : Si votre module a une version 3 (AT+VERSION pour le savoir), il faudra rajouter un = dans votre commande soit AT+NAME=nouveaunom.

Pour changer le mot de passe c'est le même principe sauf que vous taperez AT+PIN suivi de votre mot de passe (ex: AT+PIN1234). Si tout est ok, vous verrez s'inscrire : OKsetPIN.

Utilisation du module Bluetooth avec Blocky@rduino

Ajoutez les blocs "Bluetooth divers" pour commencer dans "configurer les blocs". Dans variables, créez la variable "valeur". Reproduisez ensuite le code ci-dessous :

Comme vous pouvez le voir ci-dessus, on commence par initialiser le module Bluetooth sur les pins 10 et 11 comme précédemment.

On demande ensuite à enregistrer toute valeur reçue par la carte dans la variable valeur.

Enfin, on compare la valeur reçue avec des si. Si la valeur vaut 1, on allume la LED de la carte Arduino. Si la valeur vaut 0, on éteint la LED de la carte Arduino.

Utilisation du module Bluetooth avec App Inventor

Dans App Inventor, pour commencer il faut ajouter un client Bluetooth dans la partie "Designer".

Ce service se place en dessous de votre application (physiquement à l'écran) et se trouve dans la catégorie « connectivité ». Faites glisser/déposer le « client Bluetooth » sur l’écran, le service se place tout seul en bas de l'application.

Il faut ensuite ajouter un bouton (pour la déconnexion) et un sélectionneur de liste (pour la connexion). On renomme ces éléments bouton_deconnecte et bouton_connecte. Bien entendu, on masque par défaut le bouton_deconnecte.

On ajoute enfin deux boutons qu'on nommera bouton_ON et bouton_OFF pour commander l'allumage de la LED de la carte Arduino.

On se rend ensuite dans la partie "Blocs" où on reproduit le code ci-dessous :

Le bouton connecte (avant prise) permet d'afficher la liste des appareils Bluetooth disponibles à proximité.

Le bouton connecte (après prise) établit la connexion entre l'appareil mobile et le module Bluetooth et affiche le bouton deconnecte en remplacement du bouton connecte.

Le bouton deconnecte ferme la connexion entre l'appareil mobile et le module Bluetooth et réaffiche le bouton connecte en remplacement du bouton deconnecte.

Le bouton ON envoie le nombre 1 via Bluetooth.

Le bouton OFF envoie le nombre 0 via Bluetooth.

Vous pouvez maintenant imaginer de nombreux montages utilisant ce module Bluetooth pour Arduino en modifiant le code à votre guise.