«

»

Lug 13

Stampa Articolo

HC-05 AT command

Puoi leggere nell’HC-05 At Command alcuni dei comandi utili per “ri-programmare” il tuo modulo.

hc-05 AT command mode connect

Uno dei moduli bluetooth più utilizzati con Arduino è l’HC-05, complice il suo basso costo e la semlicità di utilizzo.

Il vero problema che potresti avere è che tutti i moduli sono impostati in fabbrica con il medesimo pin “1234” che espone le tue applicazioni al rischio di accesso indesiderato e bloccante.

Come sai infatti il modulo HC-05 esegue il paring, associazione, solo con un dispositivo alla volta per cui se qualcuno si connette al tuo progetto prima di te potrebbe impedirti la connessione fino a quando non rilascia la connessione.

Ma i comandi AT non ti servono solo per variare il codice pin di accesso come leggerai in questo articolo ma riguardano anche il ruolo e la velocità di comunicazione del dispositivo.

HC-05 At Command mode

I comandi AT da utilizzare li ho trovati in questo link in una pagina stile wiki. In questo articolo ne userò alcuni che ho provato.

Inizia dai collegamenti per i quali puoi seguire questo semplice schema:

hc-05 serial connecrion

in cui il modulo bluetooth hc-05 è collegato ad un convertitore USB-Seriale, anche se diverso da quello realmente da me utilizzato, è il più simile presente in Fritzing.

Altra piccola differenza tra lo schema e il mio collegamento “reale” è il microswitch che ti agevola nel portare il modulo in modalità comandi ( command mode ), cosa che io ho eseguito usando un cavetto da breadboard direttamente al pin 34 del modulo:

hc-05 AT command mode connect

indifferentemente da come colleghi il pin 34 è importante che questo pin sia connesso al pin VCC ( +5v ) al momento dell’alimentazione.

Portando il pin 34 del modulo HC-05 a Vcc in fase di alimentazione del modulo ottieni che il led invece di lampeggiare velocemente inizia a lampeggiare con una frequenza di circa 2sec che ti indica la modalità comandi sul monitor.

In questa condizione puoi collegarti con un terminale seriale al modulo hc-05 at command ed impartire tutti i comandi che ti servono per la nuova configurazione.

Siccome l’IDE arduino ha il monitor seriale come terminale seriale puoi usarlo per programmare l’HC-05 AT Command impostando come velocità di connessione 38400 ed entrambi i caratteri di controllo:

hc-05 AT command mode serial setting

a questo punto se tutto è collegato in modo corretto puoi procedere con il primo comando:

hc-05 AT command mode

la cui risposta è un semplice “OK”:

hc-05 AT command mode serial response

che ti conferma di aver eseguito correttamente l’accesso al modulo e la connessione via seriale.

Secondo comando che puoi utilizzare è AT+VERSION? che chiede al modulo la versione del firmware presente:

hc-05 AT command mode version

la cui risposta nel mio caso è stata:

hc-05 AT command mode version response

Terzo comando che puoi utilizzare ti restituisce l’indirizzo hw del modulo:

05 hc-05 AT command mode address

la cui risposta, nel modulo che ho utilizzato per l’esperimento è stata:

hc-05 AT command mode address response

Quarto HC-05 AT commend che puoi utilizzare è AT+NAME? con cui chiedi di visualizzare il nome con cui vedrai il dispositivo bluetooth sul computer o smartphone:

hc-05 AT command mode name

La risposta, anche se già la conosci, è:

hc-05 AT command mode name response

ma puoi comunque usare questo stesso comando per cambiare il nome del dispositivo; ecco come:

hc-05 AT command mode name set

la cui risposta è solo un “OK” per dirti che il comando è stato recepito:

hc-05 AT command mode name set confirm

se vuoi controllare l’impostazione puoi usare nuovamente il comando AT+NAME?

hc-05 AT command mode name get

ed otterrai:

hc-05 AT command mode name get response

da cui vedi subito che il nome del device è cambiato da HC-05 a “Mauro”, nel mio caso.

Un altro HC-05 AT command è AT+ROLE? che ti permette di sapere il ruolo ( Master o Slave ) in cui si trova il modulo al momento in cui lo interroghi:

hc-05 AT command mode role

la risposta è, come puoi vedere nella tabella riportata nei comandi at ( 0- Slave 1-Master 2-Slave-Loop ) come puoi immaginare il tuo modulo sarà configurato come:

hc-05 AT command mode role response

al momento della produzione.

Se volessi eleggere il tuo modulo a Master potresti impostarlo con questo comando AT+ROLE=1

Tornando ai comandi utili è giunto il momento di cambiare il pin usato come password, prima verifica il pin attuale:

hc-05 AT command mode pin

la risposta sarà il pin che già conosci:

hc-05 AT command mode pin response

ma puoi cambiarla con il comando AT+PSWD=nuovo_pin come nella schermata seguente:

hc-05 AT command mode pin set

a cui riceverai solo una conferma con il solito “OK”, per verificarla puoi utilizzare di nuovo il comando AT+PSWD?

hc-05 AT command mode pin set response

il nuovo pin “0000” è impostato, certo non è più sicuro di quello precedente ma serve solo come esempio per spiegare come si imposta un nuovo pin.

Ultimo comando che potrebbe servirti riguarda la velocità di comunicazione seriale quando il modulo sarà in modalità di lavoro e quindo NON in HC-05 AT Command, che rimarrà sempre a 38400 anche se la velocità di lavoro cambia, diversamente da come hai visto sul modulo HC-06 nell’articolo dedicato a quel modulo.

Con il comando AT+UART? puoi chiedere al modulo di indicarti il valore correntemente impostato:

hc-05 AT command mode uart

la risposta potrebbe essere simile alla seguente:

hc-05 AT command mode uart response

che come noti è differente dal modello hc-06 in quanto espressa in baud_rate,bit,parità anche questi ultimi due valori possono essere cambiati:

hc-05 AT command mode uart set

e la risposta sarà il consueto “OK”, per cui puoi verificare il valore impostato con il medesimo comando di interrogazione:

hc-05 AT command mode uart response

Infine non ti resta che provare come viene visto il dispositivo bluetooth hc-05 at command dal computer o dal tuo smartphone:

new name scan bluetooth

Ora non ti resta che modificare tutti i nomi e pin dei device bluetooth che intendi utilizzare sui tuoi progetti ed associarli ai tuoi dispositivi di controllo preferiti.

Permalink link a questo articolo: http://www.mauroalfieri.it/elettronica/hc-05-at-command.html

10 comments

1 ping

Vai al modulo dei commenti

  1. Antonio

    non c’è un comando per rendere nn visibile il nome del hc-05?
    è anche una sicurezza

    1. Mauro Alfieri

      Ciao Antonio,
      intendi un comando che renda invisibile il bluetooth o che ti permetta di cambiarlo in modo che sia differente da quello di default?

  2. Nino

    Salve Mauro,
    si può collegare ad arduino nano invece del converitore(che non ho ) e come?
    Grazie
    Nino

    1. Mauro Alfieri

      Ciao Nino,
      si puoi farlo. Segui gli articoli su come collegare un dispositivo seriale ad arduino, non cambia con il nano.

  3. Maurizio

    Ciao Mauro,

    sto provando senza successo a fare uno sketch con il quale un modulo hc-05 impostato come master cerca i mac address dei dispositivi bluetooth nei dintorni, ma non funziona.
    Secondo te è possibile realizzarlo o no?

    1. Mauro Alfieri

      Ciao Maurizio,
      la funzione scan non l’ho mai provata, tuttavia ti direi che è possibile magari mettendo il centrale come slave e gli altri come master in modo da eseguire la scansione dal centrale.

  4. davide

    ciao è possibile usare l’ hc-05 per far diventare un amplificatore con i fili… bluetooth… e come?

    1. Mauro Alfieri

      Ciao Davide,
      non ho mai esplorato le possibilità audio dell’HC-05, probabilmente non ne possiede.

  5. Gabriele

    Se avessi una scheda master hc 05,
    quante schede potrei abbinare come slave?

    1. Mauro Alfieri

      Ciao Gabriele,
      io ho provato un solo slave connesso ad ogni singolo master.

  1. Lemontech Bluetooth shield AT - Mauro Alfieri Elettronic Domotica

    […] « HC-05 AT command […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>