Buongiorno, ho da poco ricevuto un modulo bluetooth HC-06, ma nonostante io abbia usato sia le porte seriali fisiche sia quelle create con SoftwareSerial non risponde a qualsiasi comando AT.
Come "ponte" uso un Arduino Uno, non avendo un USB to TTL
Come baudrate ho impostato sul seriale 9600 con nessun fine riga. La cosa strana è che si connette al mio cellulare Android (so che vi è l'incompatibilità Ifogna), ho provato anche a usare questo sketch, che dovrebbe ripetermi quelo che gli scrivo in terminale, ma mi risponde con lettere e simboli casuali (segno solitamente di errato baudrate)
String message;
void setup()
{
Serial.begin(9600); //set baud rate
}
void loop()
{
while(Serial.available())
{//while there is data available on the serial monitor
message+=char(Serial.read());//store string from serial command
}
if(!Serial.available())
{
if(message!="")
{//if data is available
Serial.println(message); //show the data
message=""; //clear the data
}
}
delay(5000); //delay
}
Helpatemi pleaze
EDIT: Ho riavviato per la centesima volta e lo sketch sopra di eco funziona!
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX | TX
void setup()
{
pinMode(9, OUTPUT); // ***
digitalWrite(9, HIGH);
Serial.begin(9600);
Serial.println("Enter AT commands:");
BTSerial.begin(38400); // HC-05 default speed in AT command more
}
void loop()
{
// Keep reading from HC-05 and send to Arduino Serial Monitor
if (BTSerial.available())
Serial.write(BTSerial.read());
// Keep reading from Arduino Serial Monitor and send to HC-05
if (Serial.available())
BTSerial.write(Serial.read());
}
attenzione a dove ho messo i *** ; se il tuo HC-06 ha il pin KEY esposto (uno dei 6 o 4) lo devi connetere li...se non hai il pin KEY non ha significato; in questo ultimo caso se hai il micro bottone devi tenerlo premuto prima di connettere i 5 volt al pin Vcc; se non hai nemmeno il micro bottone devi collegare il pin 9 di arduino (secondo lo sketch) al pin 34 del modulo HC-06.
Il pin 34 del modulo, tenendo questo con quella specie di onda quadra (antenna) verso l'alto, è la microsaldatura in alto a destra.
Attenzione che il modulo di solito ha baud rate 38400 di default e devi user il .write() per inviare comandi non il print().
void setup()
{
pinMode(9, OUTPUT); // ***
digitalWrite(9, HIGH);
Serial.begin(9600);
Serial.println("Enter AT commands:");
BTSerial.begin(38400); // HC-05 default speed in AT command more
}
void loop()
{
// Keep reading from HC-05 and send to Arduino Serial Monitor
if (BTSerial.available())
Serial.write(BTSerial.read());
// Keep reading from Arduino Serial Monitor and send to HC-05
if (Serial.available())
BTSerial.write(Serial.read());
}
attenzione a dove ho messo i *** ; se il tuo HC-06 ha il pin KEY esposto (uno dei 6 o 4) lo devi connetere li...se non hai il pin KEY non ha significato; in questo ultimo caso se hai il micro bottone devi tenerlo premuto prima di connettere i 5 volt al pin Vcc; se non hai nemmeno il micro bottone devi collegare il pin 9 di arduino (secondo lo sketch) al pin 34 del modulo HC-06.
Il pin 34 del modulo, tenendo questo con quella specie di onda quadra (antenna) verso l'alto, è la microsaldatura in alto a destra.
Attenzione che il modulo di solito ha baud rate 38400 di default e devi user il .write() per inviare comandi non il print().
Almeno io ho fatto così per il mio HC-05.
Grazie mille per la risposta tempestiva! Facendo una ricerca su internet ho scoperto che l'HC-06 dovrebbe essere gia programmato per l'AT Mode. è comunque possibile che il baudrateche mi hai indicato sia quello giusto.
Ora faccio delle prove con lo sketch che mi hai scritto e ti dico.
Purtroppo non succede nulla, apparte la scritta "Enter AT commands". Ho scoperto però che quando uso il programma di eco che ho scritto nel primo post se collego tutto al pc, apro il monitor seriale e invio una qualsiasi parola con il monitor bluetooth, la parola mi compare casuale sia sul monitor seriale sia s quello bluetooth.
Questo non succede quando provo a far partire arduino da powerbank esterno: Apro il seriale bluetooth, mi connetto, mando un messaggio e Boom, mi viene risposto con la stessa parola.
Probabilmente succede ciò per un interferenza tra monitor seriale e bluetooth.
mmm ... se ricordo bene la procedura per i comandi AT negli HC-06 è DIVERSA da quella degli HC-05 (che state descrivendo) ...
... allegato il datasheet del HC-06 ... studiatevi bene il cap. 9 !
Allora...chiedo scusa per le info NON correte che ho dato...sto "studiando" ora l'argomento e ne ho lette tante ed ho sicuramente fatto confusione...il KEY del HC-05 è il 34 mentre dell'HC-06 è il 26.
L'HC-06 può "gestire" i comandi AT solo se NON già accoppiato ad altro dispositivo BT...e dovrebbe andare in automatico in AT mode quando, appunto, non accopiato.
Ovviamente i comandi sono ridotti rispetto all'HC-05.
Molto probabilmente, lo dico per me, la confusione mi è nata leggendo che di HC-06 c'è sia in versione slave che master...
ORSO2001:
... L'HC-06 può "gestire" i comandi AT solo se NON già accoppiato ad altro dispositivo BT...e dovrebbe andare in automatico in AT mode quando, appunto, non accopiato ...
... non solo , ma devi spedirgli "AT" entro 1 secondo dall'alimentazione e devi continuare a trasmettergli AT con periodo massimo di 1 secondo per mantenerlo in modalità AT ! (... stando al datasheet. Come ho già detto in altre discussioni, io non li uso, trovo molto più comodi e flessibili gli HC-05).