Avant de chercher à faire communiquer deux modules HC-05 entre eux, ce qui implique la communication entre quatre machines, voir cinq, on va commencer par une expérience bien plus simples. On va se contenter d’impliquer trois machines dans l’équation. Comme montré en Fig.2 nous savons faire communiquer deux machines 1 et 2 entre elles depuis « toujours ». Sans que nous ne le sachions, ces deux machines disposent d’UART en interne. Dans cet exemple, le Maître est l’Ordinateur et
l’Esclave la carte Arduino. Deux programmes sont utilisés par 1 pour dialoguer. Soit l’IDE quand on déclenche un téléversement. Soit le Moniteur de l’IDE quand on désire afficher les données échangées sur l’écran de l’Ordinateur. Pour les téléversements nous n’avons rien de particulier à faire. Par contre, pour l’utilisation du Moniteur il faut que sur ce dernier et sur le programme d’Arduino les vitesses de transfert soient identiques. Pour l’Ordinateur on définit la vitesse en bas à droite de la fenêtre contextuelle du Moniteur. Pour Arduino c’est l’instruction Serial.begin(nnnn) du langage C++ qui initialise la vitesse de transmission en Bauds de la Ligne Série USB. Pour le format, nous n’avons pas besoin de le préciser, le compilateur s’en occupe à notre place.

Dialoguer avec le Moniteur de l’IDE et un module HC-05.
Cas le plus simple qui implique déjà trois machines qui vont devoir « blablater » entre elles. En effet, on constate bien sur la Fig.3 que trois machines sont en présence dans cette assemblée minimale. Dans cette configuration, c’est le logiciel P01 qui gère les échanges binaires entre l’Ordinateur et Arduino, et entre Arduino et le HC-05. Reste à parler le même langage, car c’est l’opérateur qui par l’entremise de la fenêtre de saisie du Moniteur devra « causer » avec monsieur Bluetooth. Le
langage contenu dans le HC-05 est défini sous le vocable AT et nous allons devoir apprendre un minimum cette syntaxe particulière mais pas compliquée du tout. Le mode AT est conçu pour modifier à convenance les paramètres du module Bluetooth. Pour établir un dialogue « AT » entre le Moniteur et le HC-05 il faut réaliser les étapes suivantes :
Pour l’étape 01) et 02) vous savez faire. Donc vous téléversez P01_Config_Minimal.ino.
03 Brancher électriquement le HC-05.
Réserver un chapitre alors qu’au maximum il n’y a que six broches à réunir à la carte Arduino me semble impératif, car j’ai observé un grand nombre de tutoriels sur Internet où les auteurs branchent directement RX et EN au +5Vcc ce qui est totalement contradictoire avec les informations contenues dans les notices d’application. Ces deux broches ne doivent recevoir que des états binaires dont le « 1 » est à +3,3V et non +5V. (Au début de mes expérimentations je n’avais pas étudié les
documents fournisseur et branché comme indiqué à tort sur le +5Vcc pour EN et directement sur D3 pour RX. En apparence les circuits qui ont subit ces surcharges n’ont pas été dégradés. Donc ça semble pardonner. Toutefois, pour des raisons de fiabilité et par rigueur comportementale on va respecter les directives techniques!) Pour ce qui est de EN, repérée parfois Key sur la sérigraphie du circuit imprimé, c’est immédiat puisqu’un module Arduino UNO ou NANO fournit directement du +3,3V sur l’une de ses broches d’exploitation. Par contre, pour la sortie binaire qui pilotera RX du HC-05 il faut impérativement, conformément au schéma de la Fig.4 utiliser un diviseur de tension en insérant deux résistances de valeurs normalisées ultra courantes. Comme nous sommes en phase expérimentale, il peut s’avérer utile d’installer un témoin binaire lumineux sous forme de la diode électroluminescente D associée à sa résistance de limitation de courant de 10kΩ. Le sens de branchement est celui de la Fig.4, car sur TX et RX de toutes les lignes séries, en général on est sur des logiques inversées pour pouvoir utiliser des transistors à collecteurs ouverts si plusieurs entités partagent la même ligne. (Ce n’est pas le cas ici ou la ligne est exclusive, mais pour les liaisons série, utiliser de la logique négative est un principe assez général.) Les branchements complets à effectuer entre le circuit Bluetooth et Arduino sont précisés en tête de listage de chaque démonstrateurs pour lesquels d’éventuels témoins logiques ne sont pas mentionnés. Pour cette première expérience, outre D on doit réaliser les liaisons suivantes :

04 Faire passer le module HC-05 en mode AT.
Pour des raisons opérationnelles évidentes, il faut que le protocole utilisé puisse permettre le dialogue entre machines quels que soient les paramètres internes actuels dans le module en cours d’utilisation. Hors nous n’avons aucune idée du format UART actuellement initialisé dans le module en test. C’est la raison pour laquelle une procédure AT impose :
• Une broche spécifique sur le circuit intégré lui imposant le mode AT. C’est EN la broche dédiée.
• Un format connu pour l’UART de façon à ce que l’on puisse utiliser des données correctes dans le programme qui sur Arduino, ou tout autre système du reste, va gérer le dialogue AT. Les concepteurs du circuit ont choisi 38400baud, 8 BITs de données, 1 BIT de STOP et pas de parité. Enfin dans ce mode le circuit se comporte en Esclave, c’est à dire qu’il ne retourne un ACR que s’il a reçu une donnée correspondant en principe à une commande AT. (ACR : ACcusé de Réception.)
Protocole pour forcer le HC-05 en mode AT :
• Effectuer les branchements précisés dans le chapitre précédent.
• Alimenter la carte Arduino. (La LED rouge du Bluetooth clignote toutes les 2 S.)
• Activer l’IDE et téléverser le démonstrateur P01_Config_Minimal.ino.
• Activer le Moniteur de l’IDE et l’initialiser au format de la Fig.5 en validant le passage au début de la ligne suivante avec NL et CR.
• Débrancher un court instant le +5Vcc qui va sur le module Bluetooth et le rebrancher. La LED rouge du module se met à clignoter toutes les deux secondes attestant ainsi du mode AT.
REMARQUE : Pour amorcer le mode AT. il faut parfois insister. Si au premiers tests le module ne répond pas correctement, recommencer la procédure.
06 Dialoguer en Bluetooth par des instructions AT.
Première phase, tester la communication entre les trois machines. Dans ce but nous allons envoyer des commandes avec rigueur, sans chercher à comprendre pour le moment ce qu’elles signifient et la nature des réponses. On apprendra à parler le langage AT dans le prochain chapitre. Le but de ses premières manipulations, c’est de s’assurer que les trois entités électroniques communiquent. Ce n’est qu’à cette condition que l’on pourra « discuter ». Surtout saisir avec rigueur exactement comme dans le didacticiel. Du reste, pour éviter les erreurs de frappe vous pouvez copier le texte dans le fichier.pdf et les coller dans la fenêtre contextuelle du Moniteur.

Avec ces quelques exemples dont on n’a pas encore compris les contenus, nous nous sommes assurés que le système dialogue correctement. On va vérifier que la transmission sur le Moniteur peut se faire à une cadence quelconque :

Maintenant que nous savons que les machines dialoguent correctement, il est temps de devenir bilingue et d’apprendre cet étrange langage pour le moins laconique que l’on nomme le mode AT.
La suite est ici.



