Modulo bluetooth HC05

Ciao!

oggi vedremo come collegare e utilizzare il modulo bluetooth HC05 con Arduino

questo modulo permette di comunicare in modo semplice con dispositivi dotati di bluetooth, come smartphone e pc, ma a differenza del modulo HC06, è possibile settarlo come master per comunicare anche con un altro modulo simile.

Io l'ho acquistato su Amazon dal venditore HiLetgo per pochi Euro.

Per testarlo è sufficiente alimentarlo, per comodità l'ho collegato direttamente all'Arduino come vedete qui sotto









Utilizzando poi un terminale bluetooth è possibile comunicare con il modulo, io ho utilizzato l'app "Bluetooth Terminal" da uno smartphone Android, ma ce ne sono moltissime allo scopo.
Una volta avviata l'app vedrete il modulo HC-05 nella lista (se non è presente, dovrete collegarvici prima dalle impostazioni del bluetooth, la password di default è 1234).

E' però probabile che il modulo appaia nella lista ma che non riusciate a stabilire un collegamento,
questo perchè a volte questi moduli vengono impostati come Master, e quindi sono loro che cercano di collegarsi ad altri moduli.
Per il nostro scopo invece vogliamo renderlo Slave.

Ecco come fare per modificare il modulo HC-05 e farlo passare da Master a Slave

Per prima cosa è necessario entrare in modalità AT, per farlo, ho utilizzato un convertitore USB-TTL collegandolo al modulo bluetooth in questo modo:


Prima di alimentare il tutto è necessario tenere premuto il pulsantino presente sul modulo HC-05.

Poi è necessario inviare alcuni comandi AT dal pc al modulo bluetooth, per fare ciò ho utilizzato il software Terminal v1.9b che potete scaricare dal link.

Una volta avviato il programma, dovrete selezionare la porta COM corretta (nel mio caso COM7) ed impostare la velocità a 38400 baud.



Mettete la spunta su "CR = CR + LF"
Inviando al modulo il messaggio AT esso risponderà OK.





Inviamo ora il comando per impostare il modulo come slave

AT+ROLE=0

Se il modulo risponderà OK, sarà stato configurato come slave ed accetterà le connessioni in ingresso.
Per verificare l'impostazione è possibile inviare

AT+ROLE

il modulo risponderà l'impostazione attuale (0 = slave, 1 = master)

Per conoscenza questa è la lista di tutti i comandi AT (o qui)

Passiamo ora al test di comunicazione con il modulo,
collegatelo come nello schema di inizio pagina.


Ora che è tutto pronto, caricate questo semplice sketch, ricordatevi di tenere scollegato il modulo bluetooth durante il caricamento altrimenti l'IDE vi darà errore.



  1. void setup ()
  2. {
  3.   Serial.begin(9600);
  4.   pinMode (13, OUTPUT);
  5. }
  6. void loop ()
  7. {
  8.   char c = Serial.read();
  9.   if (c == 'H')
  10.   {
  11.     digitalWrite (13, HIGH);
  12.   }
  13.   if (c == 'L')
  14.   {
  15.     digitalWrite (13, LOW);
  16.   }
  17. }

Ora con l'app "Bluetooth Terminal" collegatevi al modulo,
inviando H il led presente sul vostro Arduino si accenderà, con L lo spegnerete.

Vi lascio due link utili (in inglese), il primo è per effettuare il collegamento tra 2 moduli,
il secondo può essere utile nel caso vogliate cercare di capire quanto è distante un modulo da un altro.

pairing: https://howtomechatronics.com/tutorials/arduino/how-to-configure-pair-two-hc-05-bluetooth-module-master-slave-commands/

rssi: https://electronics.stackexchange.com/questions/98160/how-to-get-rssi-of-bluetooth-specfically-hc-05

Questo è tutto, per qualsiasi domanda lascia pure un commento!
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!



9 commenti:

  1. Ciao Daniele grazie per il tutorial !!!, ti chiedo un'informazione, per ora non riesco a modificare il baudrate del modulo HC05 che e' a 9600 , ho intenzione di usarlo al posto del cavo usb su una cnc che sto costruendo basata su arduino uno con s.w. GRBL , ed UGS i due sw prima lavoravano a 115200 , lavorando a 9600 in che problemi posso imbattermi????
    sul forum di arduino un signore mi ha detto che con il modulo bluetooth HC05 il massimo baudrate stabile e'38400......

    RispondiElimina
    Risposte
    1. Ciao Ivan, molto interessante il tuo progetto, se poi ti andrà di condividerlo sarei ben lieto di pubblicarlo. Per il bluetooth dipende, per cosa viene usato? Se viene usato per controllare in tempo reale la macchina potrebbe essere troppo lento. Bisogna provare o leggerne nella documentazione di GRBL

      Elimina
  2. Ciao Ivan una domanda, una volta configurato il bluetooth dopo senza la schada arduino posso utilizzarlo da un app del telefono tipo che gli dò dei comandi?

    RispondiElimina
    Risposte
    1. Ciao, si ci sono app generiche dove scrivi i comandi testuali. Cerca "bluetooth terminal" nello store

      Elimina
  3. il mio modulo riporta sui pin RX e TX: level 3.3 V. Collegando VCC al pin 5v di Arduino non ci sono problemi? Grazie

    RispondiElimina
    Risposte
    1. Si potrebbero esserci problemi, dovresti mettere in mezzo un level shifter, oppure fare un partitore di tensione

      Elimina
  4. Grazie Daniele. Ottima spiegazione chiara e utile.
    Come dovrei fare invece per far si che sia il modulo h5 ad inviare il segnale al cell per scattare una foto? grazie
    Giuseppe

    RispondiElimina
  5. salve daniele.il serial monitor non mi da alcuna risposta. come posso fare?

    RispondiElimina
  6. buongiorno Daniele, una domanda che per me è molto importante, si possono utilizzare semplicemente 2 moduli BT hc-05 come master e slave per rendere wireless una comunicazione seriale? nel caso di specie, una tastiera filare a bottoni che invia al massimo 9 comandi singoli, ovvero non in simultanea ad una piccola telecamera pan tilt? purtroppo non conosco i parametri di comunicazione, ho provato con putty varie configurazioni, ma non sono approdato a nulla, è un progetto di lavoro per me, accetterei anche commenti privati, grazie

    RispondiElimina

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post