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.

Cortesemente, prima di inserire i commenti leggi il regolamento

Permanent link to this article: http://www.mauroalfieri.it/elettronica/hc-05-at-command.html

20 comments

1 ping

Skip to comment form

    • Antonio on 3 aprile 2017 at 22:07
    • Reply

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

    1. 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?

    • Nino on 20 giugno 2017 at 14:07
    • Reply

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

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

    • Maurizio on 27 febbraio 2018 at 10:12
    • Reply

    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. 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.

    • davide on 4 marzo 2018 at 14:21
    • Reply

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

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

    • Gabriele on 17 aprile 2018 at 22:15
    • Reply

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

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

    • roberto on 7 maggio 2018 at 23:38
    • Reply

    ciao! spiegazione interessante, se possibile desidererei sapere se questo modulo può essere usato in maniera indipendente… mi spiego….. ho una montatura eqautoriale della celestron, una cg5 un po’ vecchiotta, la sua pulsantiera ha un ingresso seriale tx-rx- gnd a cui collegando un cavo o seriale diretto da pc o usb-seriale da notebook, si può comandare a distanza la stessa usando un planetario sul pc, nel mio caso ho mac ed uso equinox con cui posso fare molte cose, dall’inseguimento a far scattare la macchina fotografica, ma lo spostamento del telescopio sui vari oggetti nel cielo avviene al momento attraverso una connessione via filo… un cavo usb- serial…. viste le micro dimensioni della schedina ho visto che potrebbe essere alloggiata ed alimentata dentro la pulsantiera stessa, e mi chiedevo se questo modulo hc-05 può lavorare da solo, gli do corrente, lo collego alla porta seriale della pulsantiera ed in teoria….. dovrei comandare il tele da bluetooth! eliminando un cavo… che non è poco tra tutti quelli che servono per una serata fotografica! grazie a chi mi risponderà! un saluto Roberto.

    1. Ciao Roberto,
      non ho compreso come vuoi utilizzare questo modulo, considera che è un bluetooth seriale.

    • Roberto on 8 maggio 2018 at 20:57
    • Reply

    grazie per la risposta intanto….. cerco di spiegarmi meglio…. ho un telescopio con il goto, la cui pulsantiera ha una porta seriale per poter dialogare con un pc sia per l’aggiornamento firmware che per il comando del puntamento, a me interessa il puntamento del telescopio verso gli oggetti della volta celeste, attraverso un planetario che è installato sul pc ( io ho mac ed uso Equinox ma è molto efficiente anche Stellarium) ci si può collegare alla pulsantiera del telescopio attraverso un cavo seriale, a questo punto interviene per il collegamento un cavo usb- seriale che ho e funziona egregiamente, si connette alla porta della pulsantira e da pc seleziono un oggetto e con i suoi comandi fa puntare il telescopio… fin qui nulla di eclatante, il fatto di aver scoperto queste schedine ( ho la hc-06, hc-05, hm10, hm17…. una bella sfilza!) miè balenata l’idea di inserirla denrto la pulsantiera stessa al fine di evitare un cavo penzoloni tra pc e telescopio, ho visto che ci comandano pure le stampanti 3d, stampanti laser e chissà quant’altro e mi è sembrato fattibile usarla come interfaccia per il mio telescopio, ora la ho settata slave, baud 9600,0,0 ed ho cambiato il nome e la pass (0000) si connette al pc, il programma la rileva e fa il collegamento, ma il programma o la scheda o la programmazione…. non so… a quanto pare non riesce a connettersi al telescopio, i collegamenti che ho fatto però sono diretti tx->rx rx->tx gnd a gnd dell’alimentazione… sbaglio qualche cosa?? per quello la mia domanda era se è possibile usare questa hc-05 da sola….grazie per la possibile risposta….

    1. Ciao Roberto,
      quando scrivi ” il programma la rileva e fa il collegamento” a quale programma ti riferisci?

        • Roberto on 9 maggio 2018 at 14:29
        • Reply

        il planetario, il programma che permette lo spostamento del telescopio, o Stellarium o Equinox , ma anche altri… nelle impostazioni rilevano la porta (seriale??) bluetooth, quando tentano di collegarsi al telescopio, si vede la scheda che smette di lampeggiare, l’indicatore Bluetooth sul mio mac indica il collegamento… in teoria il collegamento tra scheda e computer avviene….ma a quanto pare la trasmissione dei dati non avviene…. credo…..

          • Roberto on 10 maggio 2018 at 13:42
          • Reply

          forse qui mi riesco a far capire meglio… a scrivere non è facile! https://youtu.be/7d7lcQ60UQ4

          1. Ciao Roberto, vedi il mio commento precedente.

        1. Ciao Roberto,
          potrebbe essere un problema di baud rate, devi controllare quale sia la velocità attesa dal telescopio e quale quella impostata sui moduli.

    • Antonio on 1 giugno 2018 at 18:33
    • Reply

    Ciao, ho problemi con il modulo hc-05, non mi invia risposte com’è possibile ??

    1. Ciao Antonio,
      cosa intendi per “non mi invia risposte com’è possibile ??” sei riuscito a collegartici? La velocità di connessione è corretta?

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

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.