Bonjour à tous,
j'ai acheté un module bluetooth HC-05, j'ai trouvé des tutos pour le brancher sur une carte type arduino (la mienne est une Elegoo Mega 2560), j'essaie d'utiliser les commandes AT dans la fenêtre Serial mais rien ne s'affiche jamais. J'ai tout essayé: inverser les connexions RXD et TXD, changer le Baud rate, reset du module, rien n'y fait ! La led rouge clignote lentement sur le module, et c'est tout. Bien sûr le module n'est pas appairé (d'ailleurs le module "refuse" de s'appairer avec mon smartphone). C'est le 2eme module bluetooth que je teste et c'est toujours pareil...A devenir dingue !
Quelqu'un a une idée de ce qui peut bloquer ???
le code:
#include <SoftwareSerial.h>
SoftwareSerial hc05(2,3);
void setup(){
Serial.begin(9600);
hc05.begin(38400);
}
void loop(){
if (hc05.available()){
Serial.write(hc05.read());
}
if (Serial.available()){
hc05.write(Serial.read());
}
}
oui, j'ai essayé 3 applis différentes, à chaque fois je vois le module apparaitre dans la liste des appareils bluetooth, mais quand j'essaie de l'appairer, j'ai un message comme quoi le module refuse l'association...C'est bizarre il est détecté mais refuse de s'appairer !
Wabis:
oui, j'ai essayé 3 applis différentes, à chaque fois je vois le module apparaitre dans la liste des appareils bluetooth, mais quand j'essaie de l'appairer, j'ai un message comme quoi le module refuse l'association...C'est bizarre il est détecté mais refuse de s'appairer !
Bonsoir
Les HC05 de bases sont livrés en config "master"
lire ce doc qui m'a bien servi il y a qq années pour "jouer" avec des HC05 HC06
merci Artouste. Je crois que je l'avais déjà lu ce doc. Je l'ai bien relu. Mon problème de communication avec le Serial n'est pas résolu, par contre j'ai vu qu'un de mes essais de commande AT a marché car j'ai réussi à changer le nom du module (même si il ne répond jamais au Serial...), j'ai vu ça en le détectant sur mon téléphone ! Et donc, tu me rappelles fort justement qu'en mode master il ne risque pas de s'appairer, je vais essayer de changer son mode en esclave. Si j'y arrive, ça sera déjà ça je risque de pouvoir l'utiliser !
Je progresse: je peux changer le mode esclave/master, changer le nom du module. Bon il y a des trucs bizarres: si je mets AT+NAME=TEST, il le renomme =TEST plutôt que TEST. Du coup j'écris la commande AT+NAMETEST et ça marche il le renomme test. Est-ce que c'est un bug? Et surtout le module ne veut pas parler au Serial, il ne donne aucune info sur lui...
Ensuite, il refuse de s'appairer avec mon téléphone alors qu'il est en mode esclave, et que mon téléphone le voit. Quand je lance l'association j'ai un message de refus.
Bref je ne suis pas arrivé !
si quelqu'un a d'autres idées...
bonjour Wabis
stp est ce que tu as trouvé une solution? apparemment moi aussi mon téléphone détecte le module Bluetooth mais j'ai toujours ce message de refus d'association.
Bonjour,
Moi aussi je commence avec le BT.
Tu peux regarder mon topic.
Par defaut le baud est 9600.
Ajoute a ton setup
hc05.write("AT+RENEW")
C'est normal qu'il renome =test.
juste pour vous dire qu'il me semble assez incertains de tirer des généralités sur les commandes AT et sur les config par défauts des différents module HC en vente sur le net.
Je suis tombé sur au moins 3 configurations différentes :
certains nécessitaient un \n à la fin des commandes AT (saisie manuellement dans la console série), d'autre non.
certains avait une configuration par défaut à 9600 et d'autres à 19200
les commandes AT supportées n'étaient pas tout a fait identiques et leur résutats différents (comme sur l'exemple AT+NAME=truc dans lequel le = fait parti du nom ou pas).
Bref il faut tester chaque module individuellement.
Supercc a parfaitement raison.
Je pense:
1 il faut trouver le bon baud de tasmission. 2 savoir si le commandes on besoin de \r ou \n, tous les 2 ou aucun des 2.
3 Essayer la commande AT simple , le module "devrait"(entre " car on peut pas généraliser) repondre avec un "OK". Si c'est le cas ton programme arrive à envoyer les commandes et recevoir les réponses.
Si j'ai bien compris le problème, le module prend les commandes mais il n'y a rien dans le monitor serial comme retour?
J'essaye de t'aider car j'ai eu les mêmes problèmes que toi et avec l'aide de un membre j'ai réussi à comprendre un peu le BT.
Honnêtement, de ce que je m'en souviens, c'était il y a 2 ans, le bluetooth ce n''était pas évident à aborder. Après il y a peut-être d'autres manières de faire que celle que j'expose, mais bon j'expose mon expérience.
Je n'ai fait que gérer le cas d'un PC (sous Linux, je dis cela car du coup Android/Windows/IOS pas testé)) connecté à plusieurs modules HC 05/6 qui étaient tous en esclave (cf. par exemple Arduino et bluetooth (HC-06 ou HC-05), premier lien trouvé).
De mémoire, j'ai retenu que c'est le bordel dans le code tant qu'on a pas bien compris qu'on avait affaire (pour le même prix ;-)) à trois liaisons séries à gérer .... :
liaison série bluetooth : on ne contrôle pas sa vitesse, non, mais plein d'autres paramètres : le code pin, le nom, ...(commandes AT).
la liaison série entre le module BT et l'arduino. là c'est le bazar... Les nano, uno, ... non qu'un seul "vrai" port série. Vrai dans le sens ou il est géré par l'électronique et qu'il est performant. Malheureusement, il est utilisé par le port USB, donc tant qu'on a besoin du port USB (upload/debug) c'est mort. donc du coup on se rabat sur SoftwareSerial permettant de construire une liaison série "logicielle" utilisant 2 pins. Le problème avec SoftwareSerial (ou similaires) c'est que le débit est limité (je ne montais pas au dessus de 9600 bauds car sinon trop de pertes). Donc n'espérez pas de gros débit tant que vous n'êtes pas sur le vrai port série.
Enfin la troisième liaison série, la classique, l'USB par laquelle on télécharge le programme et par laquelle on debug. J'en parlais au point 2.
PS, regardez bien la doc de SoftwareSerial car les pins utilisable dépendent des cartes.
Après opérationnellement, toujours de mémoire, voila ce que je faisais :
j’établissais le contact. C'est le boxon ! . Il faut charger un programme qui recopie ce qu'il lit à partir de la console série (USB) sur la liaison SoftwareSerial, et vice versa. Ce programme se trouve facilement sur Internet. Du coup on peut discuter avec le module bluetooth (commandes AT) et on voit ce qu'il nous réponds. Cool -) et bien non car le problème c'est qu'on doit indiquer une vitesse à la liaison SoftwareSerial identique à celle d'usine du module bluetooth (9600, 19200, ???). Donc si cela ne marche pas du premier coup (cf. le point dessous) il faut changer la vitesse de SoftwareSerial ( fixée à 9600 par exemple) dans le programme, le recompiler, le re télécharger et re tester ce qui suit ....
Bon mais comment sait-on qu'on a trouvé la bonne vitesse ? Et bien là devinez, ... c'est le souk ;-). Dans qu'elle langue AT parle-t-il ? La langue AT ne me semble pas bien "normalisée" cf le poste précédent. Mais en effet je crois (à vérifier) que la commande AT toute seule doit renvoyer OK . Le problème c'est que pour certains modules il faut taper les 2 lettres AT (dans la console série) et ATTENDRE (1 ou 2 sec) surtout SANS taper Entrée sinon cela fonctionne pas. Dans d'autres modules c'est plus classique on tape normalement AT puis Entrée, sauf que (j'allais oublié) certains n'aiment pas le CR/LF mais que le LF (ou vice versa). Le CR/LF versus le LF est la manière dont on termine la ligne et se configure dans la fenêtre de la console série .
Ouf... reste à configurer ce que vous voulez (éviter de changer la vitesse avec laquelle il communique ou pensez à adapter votre programme en conséquence ;-)).
Si je me souviens de tout ça que j'ai été gravement traumatisé
Voila, bon courage à vous
PS : Si vous avez la possibilité, testez le Wifi sur ESP
Edit : @Wabis, les cartes arduino Mega ont 4 ports séries, tu n'as pas à t'embêter avec SoftwareSerial, branche le module bluetooth sur le 2nd port série c'est bien mieux et plus simple à configurer je pense.