Vai al contenuto
PLC Forum


Modulo Bluetooth HC-06 non risponde a comandi AT


Troglonicro

Messaggi consigliati

Buonasera a tutti.

È un argomento stra-trattato nei forum Arduino, in qualche Blog ed Instructable, ma molti come me hanno dispositivi un po' diversi e non riescono a risolvere.

Il mio è uno ZS-040.

Come ha scritto Livio in un vecchio post, di questo HC-06 ve ne sono varie versioni.

Ho provato tutte le soluzioni proposte nei forum. A tratti ho ricevuto qualche segno di risposta AT. Qualche OK, qualche versione software (che non ho annotato).

Il modulo di per sé funziona.

Si identifica come HC-06.

Si accoppia, trasmette. Solo che essendo settato su un baudrate diverso da quello necessario, su Serial Bluetooth Terminal per android mi escono caratteri ascii illeggibili. 

Se metto lo stesso dispositivo terzo a  trasmettere verso una RS232 USB To TTL, allora serial usb terminal (qui il settaggio baudrate si fa da terminal),  riceve i dati correttamente.

Il mio e quello di molti altri è un problema di configurazione.

N.B. quando tento di configurare con comandi AT, il modulo non è accoppiato e il led lampeggia in continuazione. La circuiteria è corretta, con partitore di tensione. Ho seguito molto le istruzioni di McCurrey. 

HC-06 è di default in modalità configurazione. Però i miei (2)  moduli non rispondono ai comandi AT. Nelle varie prove, a tratti rispondeva solo se modificavo i settaggi della comunicazione. Gran parte sostengono che in AT mode si debba comunicare a 9600 baud e con No Ending Line. Ho avuto risultati a tratti solo derogando a queste prescrizioni.

Ora, dopo il riassunto di quanto ho appreso e provato, avrei una domanda precisa.

In questo vecchio post che indico sotto Walterword propone uno sketch.

 

https://www.plcforum.it/f/topic/178542-arduino1-porta-seriale/?tab=comments#comment-1301846

 

Il mio modulo ha solo 4 piedini.

Ha lo slot per il pin Key (con altro nome, ma è lui, come confermato dalla scheda di components101.com) e gli posso saldare un piedino.

Nello sketch si fa riferimento anche ad un pin5 RST. Li cosa ci devo collegare?

Finora ho provato lo sketch solo con Key collegato in modo volante e un OK in risposta mi fa ben sperare. Poi però non risponde ad ulteriori comandi.

Ho pensato che il pin 5 di Arduino dovesse essere collegato al pin reset sempre di Arduino, ma cosi non funziona.

 

P.S. sono un troglodita. Seguo istruzioni e man mano cerco di imparare. Non so niente.

 

Grazie anticipatamente

 

Link al commento
Condividi su altri siti


Walerwood ha proposto un ripetitore di seriale, niente di più.

Se hai i livelli corretti su TX e RX e sugli altri non dovresti avere problemi.

Io  ho un  convertitore USB / seriale + RS232 / TTL  + / TTL / 3,3V 

Link al commento
Condividi su altri siti

Grazie Max.

Dopo un post iniziale forse troppo lungo, ma teso a mostrare che credo di aver provato già tutto il possibile, sia nella maniera ortodossa che in alcune possibili varianti, riformulo la mia domanda.

Nello sketch sotto, il pin 5 come viene collegato a livello hardware?

Sono interessato alla configurazione del modulo, non al progetto complessivo di Waterworld che è fuori dalla mia portata. Grazie

/* con questo sketch e' possibile leggere e modificare i parametri del 
* modulo Bluetooth tramite comandi AT 
* va collegato il pin "Key" e mantenuto alto sul modulo Bluetooth per fare queste operazioni 
* terminale settato con nessun fine riga
*/
#include <SoftwareSerial.h>

#define RxD 11
#define TxD 12
#define RST 5
#define KEY 4

SoftwareSerial BTSerial(RxD, TxD);

void setup()
{
  
  pinMode(RST, OUTPUT);
  pinMode(KEY, OUTPUT);
  digitalWrite(RST, LOW);
  digitalWrite(KEY, HIGH);
  digitalWrite(RST, HIGH);
  
  delay(500);
  
  BTSerial.flush();
  delay(500);
  BTSerial.begin(9600);
  Serial.begin(9600);
  Serial.println("Comando AT :");

  BTSerial.print("AT\r\n");
  delay(100);

}

void loop()
{

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

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

}
Link al commento
Condividi su altri siti

Si, in teoria HC-06 è un modulo a 4 pin più scarno e meno programmabile di HC-05 che di pin ne ha 6.

Ma chissà quante versioni ibride esistono. E Walterword alla fine ha sentito l'esigenza di collegare anche gli altri pin...

Boh! Io alla fine ho provato lo sketch.

Se collego anche il D5 al RST di arduino uno, non succede niente. Appena tolgo questo ponte, sul serial monitor di Arduino vedo arrivare il messaggio "Comando AT :".

Nei tentativi precedenti, sempre senza ponte D5-RST, ottenevo la risposta OK al comando AT che manda dallo script.

ho provato a modificare il comando inviato in AT+VERSION e mi ha risposto "VERSION: 3.0-20170609". Mi piace che mi risponda. Ma lo fa una volta sola.

Se ripeto il tentativo, non risponde più.


 

Link al commento
Condividi su altri siti

È una domanda che mi sono posto, salvo non conoscere la sintassi esatta.

Se uso monitor seriale di Arduino con il settaggio adeguato mi aspetto che lo faccia di default.

Poi ho trovato sketch di configurazione che ne sottolineano l'importanza in un senso o nell'altro a seconda delle versioni firmware.

Non so se vi siano infinite varianti, ma da quello che leggo in alcuni forum, a parità di versione firmware qualcuno scrive che ci vogliono gli apici, altri no. In alcuni casi comando seguito da due punti, in altri comando seguito da uguale...

E infine Carriage Return + Line Feed (new line?) vs no ending line.

Hai una sintassi esatta da proporre per queste due ultime cose? Sugli uguale, due punti ed apici poi mi sbizzarrisco, ormai sto impazzendo.


 

Link al commento
Condividi su altri siti

Quote

Se uso monitor seriale di Arduino con il settaggio adeguato mi aspetto che lo faccia di default.

 

Non è detto, mi son trovato delle sorprese a volte.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Credo di esserci vicino. Ho trovato vari topic in cui si descrivono moduli uguali ai miei con il medesimo firmware.

Le indicazioni non sono univoche, (mah!) quindi serviranno diversi tentativi.

La sintassi dei comandi AT per il nuovo firmware è completamente cambiata. (Tipo anziché AT+BAUDx adesso vale AT+UART=velocità scritta per esteso,0,0 etc. Idem per i separatori e uso apici. Tutto nuovo e diverso).

Inoltre, qualcuno sostiene che anche diverse versioni della IDE Arduino possano necessitare di aggiustamenti diversi. Adesso che ci penso da quando ho iniziato a lavorarci ho anche fatto un aggiornamento ide proprio a metà.

Quello che mi lascia più perplesso è la non ripetibilità dei risultati a parità di parametri. Certe risposte ai comandi AT le ho viste una volta e poi mai più.

Vi sono sketch di scansione baudrate attualmente settato e non me ne trova nessuno. Boh! Prima o poi ci riuscirò.

Io il data sheet  originale della version 3.0 20170609 ancora non lo ho trovato, solo informazioni riportate.


 

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...