pb avec module Bluetooth HC-06

Bonsoir,

J'ai fait l'acquisition de 2 modules Bluetooth http://www.amazon.fr/gp/product/B00CSKNUL6/ref=oh_details_o04_s00_i00?ie=UTF8&psc=1

J'arrive à me connecter dessus en BT, seulement, j'aimerai bien changer la config (code PIN et vitesse)

lorsque je fais un hditool scan, il apparait sous le nom HC-06.

Après avoir fait quelques recherches, il s'agit sans doute de modules linvor 1.8
http://www.tiny-labs.com/projects/electronics-projects/-part-hc-06-bluetooth-to-serial-adapter

J'ai passé l'aprem sur ces modules... à essayer les commandes AT au travers d'un arduino, d'un FTDI du genre là (https://www.sparkfun.com/products/9716), d'un cable USB/UART (USB to UART serial console cable)...

Dans tous les cas, le module ne répond pas.

J'ai tenté les commandes sans que le module soit connecté (la led rouge clignote vite), ou lorsqu'il est connecté (la led est fixe) au cas où.... Rien y fait...
quelqu'un à une idée ?

Merci :slight_smile:

vohu:
J'ai tenté les commandes sans que le module soit connecté (la led rouge clignote vite), ou lorsqu'il est connecté (la led est fixe) au cas où.... Rien y fait...
quelqu'un à une idée ?

Merci :slight_smile:

bonsoir
je me suis bien emm...er avec un HC-06 il y a quelques temps
de memoire ( eventuellement à verifier demain)

Commande AT seulement hors connection
et je crois me souvenir qu'il y avait un "truc gonflant"
les commandes AT ne doivent pas etre suivie de terminateur (CRLF) mais d'une "pause" dans la comm d'au moins une seconde pour prise en compte de la commande et renvoi de OK

Salut, merci pour ta réponse,

Concernant les pauses, elles étaient respectées. le sketch de config avait un "delay(2000)" et quand je le faisais à la main, avec putty, qtserialPort, gtkterm, minicom ou cutecom... j'ai dû attendre des fois bien plus que 1 seconde :(...

Pour le CRLF, le sketch utilisait la fonction Serial.print("AT") donc sans println, pas de CRLF..

J'avais bien lu qu'il fallait faire ça en mode déconnecté... mais j'ai quand même essayé... puisque rien ne fonctionnait...

J'ai même lu je ne sais plus trop où qu'il ne fallait pas croiser Rx-Tx, du coup, j'ai fait tous mes tests en double et en testant toutes les vitesses... J'ai perdu beaucoup de temps....

Voilà le code que j'utilisais en dernier... (il a pris pas mal de formes différentes dans la journée)

#include <SoftwareSerial.h> 
#define RxD 9  
#define TxD 8  
SoftwareSerial BTSerie(RxD,TxD);  
long baud[] = { 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1843200, 3686400};

void setup()  
{  
  Serial.begin(115200);  
  delay(500);  
  pinMode(RxD, INPUT);  
  pinMode(TxD, OUTPUT);

  int p = 5; //5 pour 9600
  Serial.print("\nVitesse : ");
  Serial.println(baud[p]);
  BTSerie.begin(baud[p]); 

  Serial.print("AT : ");   
  BTSerie.print("AT");
}

vohu:
Concernant les pauses, elles étaient respectées. le sketch de config avait un "delay(2000)" et quand je le faisais à la main, avec putty, qtserialPort, gtkterm, minicom ou cutecom... j'ai dû attendre des fois bien plus que 1 seconde :(...

Bonsoir vohu
J'ai repondu de memoire , parce que je me souviens m'etre bien "emmerdé" avec un HC-06 (changement de nom)
mais je n'ai pas mes notes sous la main aujourd'hui.
Je regarderais demain

Oui oui j'ai vu :blush: j'en ai profité pour te donner plus de détails, merci encore :slight_smile:

Tu as vu là : [Tuto] Méthode de configuration d un module Bluetooth Linvor - Tutoriels et cours - Arduino Forum

Il faut bien croiser Rx et Tx (liaison série).

Les commandes AT ne sont traitées par le module HC-06 que lorsque la Led rouge clignote, donc quand le module n'est pas appairé avec un autre dispositif bluetooth.
Sinon le module est transparent aux commandes et les renvoie vers sa sortie.

Je ne met pas les \r \n en fin de commande AT non plus.

Envoi une commande BTSerie.print("AT+VERSION"); pour récupérer le numéro de version du module.

vohu:
Oui oui j'ai vu :blush: j'en ai profité pour te donner plus de détails, merci encore :slight_smile:

bonjour
je viens de regarder
j'utilise terminal 1.9b et un petit programme arduino
la version qui m'est renvoyée est linvor 1.8
le set de commande AT est tres limité et il ressort de mes notes et d'un rapide test qu'il n'est pas possible de modifier la vitesse , ça ne renvoi pas d'erreur mais la vitesse reste fixée à 9600.
edit le changement de vitesse est bien pris en compte mais apres mise hors tension du module
le changement de nom du module lui est accepté

#include <SoftwareSerial.h>

SoftwareSerial mySerial(9, 8); // RX, TX

void setup()  
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.println("-----");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  delay(100);
  mySerial.print("AT+VERSION");
  
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

c'est dingue... ça marche pas. ni avec le terminal que tu m'a donné, ni avec ton sketch :frowning: j'y comprends rien...

Quand je connecte mon rn42 j'arrive à envoyer les commandes AT et pas avec celui-là...
Le pire c'est que ça fait ça sur mes 2 modules...

vohu:
c'est dingue... ça marche pas. ni avec le terminal que tu m'a donné, ni avec ton sketch :frowning: j'y comprends rien...

Quand je connecte mon rn42 j'arrive à envoyer les commandes AT et pas avec celui-là...
Le pire c'est que ça fait ça sur mes 2 modules...

bin là ... 8)

tu ne t'est pas planté sur la connection software serial ?
le RXD du HC06 sur 8 arduino
le TXD du HC06 sur 9 arduino

autre chose possible ton HC06 est peut etre déjà configuré pour une vitesse autre que 9600 ?
ton HC06 ressemble à ça vu de l'arriere ?

Voilà 2 captures :
http://cjoint.com/14jv/DAnugxAgzpA_bt-devant.resized.png
http://cjoint.com/14jv/DAnufo665yI_bt-arriere.resized.png
Concernant le brochage, j'ai réessayé toutes les vitesses entre 9600 et 115200 avec les 2 possibilités RX-TX =(

vohu:
Voilà 2 captures :
http://cjoint.com/14jv/DAnugxAgzpA_bt-devant.resized.png
http://cjoint.com/14jv/DAnufo665yI_bt-arriere.resized.png
Concernant le brochage, j'ai réessayé toutes les vitesses entre 9600 et 115200 avec les 2 possibilités RX-TX =(

a priori ce n'est pas un HC06 (pas de pin KEY sur HC06) , mais plutot un HC05
il y a une manip avec le pin key pour les commandes AT regarde ici ,

edit :
Il semblerait finalement que ce soit un module LC-05 et pas HC
http://www.lctech-inc.com/Hardware/Detail.aspx?id=25662aa3-0517-4d3d-960e-ff261d5ef28c
et que le module soit basé sur un HC-05 :grin:

pour rentrer en mode AT : pin34 = key (attention, ! 3.3V )

Enter to AT mode:
Way1: Supply power to module and input high level to PIN34 at the same time, the module will enter to
AT mode with the baud rate-38400.
Way2: In the first step, supply power to module; In the second step, input high level to PIN34. Then the
module will enter to AT mode with the baud rate-9600. Way1 is recommended.
Command structure: all command should end up with “\r\n” (Hex: 0X0D X0A) as the terminator.

Salut,

J'ai eu les mêmes problèmes avec le HC-06.
As-tu essayé d'alimenter le module en 3.3 V plutôt qu'en 5V ? Ca a débloqué le fonctionnement pour moi notamment pour la commande AT+NAMEnomdumodule

Bonjour,

Je suis débutante en arduino et j'ai un problème avec la connexion de mon module HC-06. Je l'ai relié à ma carte arduino et maintenant j'essaie de connecter une tablette ou un ordinateur via bluetooth au module. J'ai toujours la réponse suivante "la tentative de jumelage à échoué". Est-ce que quelqu'un pourrait m'aider ? Par avance, un très grand merci

flomat1:
Bonjour,

Je suis débutante en arduino et j'ai un problème avec la connexion de mon module HC-06. Je l'ai relié à ma carte arduino et maintenant j'essaie de connecter une tablette ou un ordinateur via bluetooth au module. J'ai toujours la réponse suivante "la tentative de jumelage à échoué". Est-ce que quelqu'un pourrait m'aider ? Par avance, un très grand merci

bonjour
Hors programme arduino
Tu dois pouvoir appairer ton module HC06 simplement alimenté par l'arduino (en 3.3V) avec ta tablette ou un smartphone
la led du HC06 passe de clignotement rapide à fixe.
le pin code usine est : 1234

Bonjour,

Merci pour cette réponse. Mais c'est toujours sans succès :frowning: Le module est juste alimenté sur du 3,3V et dès que j'essaie de jumeler un appareil, cela ne marche pas. Est-ce que c'est une question de version ? J'utilise des macs... Merci encore !

flomat1:
Bonjour,

Merci pour cette réponse. Mais c'est toujours sans succès :frowning: Le module est juste alimenté sur du 3,3V et dès que j'essaie de jumeler un appareil, cela ne marche pas. Est-ce que c'est une question de version ? J'utilise des macs... Merci encore !

il faut proceder par elimination
déjà :

  • tu vois le module HC06 enuméré sur ta tablette ?
  • le Code pin t'est demandé par la tablette ?

Alors il y a plusieurs cas :

  • sur mon mac, il apparait, je mets le code, il est indiqué "connecté" mais la lumière rouge ne s'arrete pas de clignoter et 1 ou 2 minutes après il apparait déconnecté
  • sur mon ipad, il n'est pas détecté

flomat1:
Alors il y a plusieurs cas :

  • sur mon mac, il apparait, je mets le code, il est indiqué "connecté" mais la lumière rouge ne s'arrete pas de clignoter et 1 ou 2 minutes après il apparait déconnecté
  • sur mon ipad, il n'est pas détecté

bonjour
Si la led ne devient pas fixe , ton module n'est pas appairé
si en plus tu ne le vois pas sur ton ipad , ce n'est pas bon signe
avec un petit replicateur de port serie comme ci-dessous ça donne quoi
en tapant simplement AT ?
(NB sur le serial monitor , mettre la terminaison à : "pas de fin de ligne")

#include <SoftwareSerial.h>
//
SoftwareSerial BTSerial(2, 3); // RX | TX
// RX arduino <--- TX cible
// TX arduino ---> RX cible


void setup()

{
  Serial.begin(9600); // vitesse serial monitor

  BTSerial.begin(9600);  // vitesse software serial NB ne pas depasser 57600
}

void loop()
{
  if (BTSerial.available()) Serial.write(BTSerial.read());

  if (Serial.available()) BTSerial.write(Serial.read());
}

Euh... je sais pas si je fais des grosses erreurs vu mes début mais quand je téleverse le code que tu as donné ça ne fonctionne pas (donc je ne peux même pas tester ce que tu m'as demandé...

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00