Moduli Bluetooth HC-05

Blog Image

Moduli Bluetooth HC-05

  • Monti Cecilia
  • November 17, 2020

Moduli Bluetooth HC-05
Se vogliamo far comunicare 2 schede Arduino con moduli Bluetooth è necessario configurare i moduli in modo che possano trasmettere dati tra loro.

In particolare è necessario configurare uno di questi come MASTER e l’altro come SLAVE e per farlo possiamo utilizzare i comandi AT.Vediamo innanzitutto come collegare il modulo bluetooth ad Arduino per metterlo nella modalità programmazione. Li collegheremo uno alla volta e li imposteremo uno come modulo MASTER e l’altro SLAVE.

Come si vede dall’immagine abbiamo connesso i PIN RX e TX ai pin 11 e 10 di Arduino in modo da lasciare liberi i PIN RX e TX di Arduino per utilizzare la connessione seriale con il PC. Per fare ciò abbiamo utilizzato la libreria SoftwareSerial che ci permette di utilizzare i pin 10 e 11 per la comunicazione con il modulo bluetooth.Abbiamo quindi collegato il pin KEY del modulo bluetooth al pin 9 di Arduino.Colleghiamo il PIN GND del modulo bluetooth con il PIN GND di Arduino, mentre lasciamo per un attimo scollegato il PIN Vcc.
Carichiamo quindi lo sketch seguente sul nostro Arduino.
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX | TX
void setup(){  pinMode(9, OUTPUT);  // this pin will pull the HC-05 pin 34 (key pin) HIGH to switch module to AT mode  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());}
Questo sketch ci permette di eseguire dei comandi AT sul modulo bluetooth e leggere le risposte.
Una volta caricato lo sketch su Arduino eseguiamo dei comandi AT per impostare il primo dei 2 moduli bluetooth come SLAVE:

  • apriamo il monitor seriale del programma Arduino
  • assicuriamoci che sia impostato il valore “Both NL & CR” e la velocità di connessione a 9600
  • quando resettiamo Arduino (aprendo il monitr seriale Arduino si resetta), dovremmo vedere apparire sul monitor seriale la scritta: “Enter AT commands:”
  • connettiamo il PIN Vcc del modulo bluetooth al PIN 5Vdi Arduino, dovremmo vedere il led di Arduino lampeggiare lentamente (ogni circa 2 secondi)
  • scriviamo nel monitor seriale il comando AT e premiamo INVIO (bottone Send del monitor seriale)
  • scriviamo quindi il comando AT+ROLE=0; questo configurerà il modulo bluetooth come SLAVE. Per verificare il comando appena eseguito digitiamo AT+ROLE? e dovremmo vedere restituito: +ROLE:0
  • ora eseguiamo il comando AT+BIND= e premiamo INVIO. In questo modo rimuoviamo qualunque binding esistente. Per verificare eseguiamo il comando AT+BIND? e dovremmo ottenere: +BIND:0:0:0
  • eseguiamo quindi il comando AT+ADDR? per ottenere l’indirizzo MAC del nostro modulo (avrà la forma 2837:3:92); segnamoci questo indirizzo perchè ci servirà nella programmazione del modulo master

Scolleghiamo il primo modulo bluetooth senza togliere tutti i collegamenti su Arduino in quanto ci serviranno per programmare il secondo modulo.
Per impostare il secondo modulo bluetooth eseguiamo invece i seguenti comandi:

  • apriamo il monitor seriale del programma Arduino
  • assicuriamoci che sia impostato il valore “Both NL & CR” e la velocità di connessione a 9600
  • quando resettiamo Arduino (aprendo il monitr seriale Arduino si resetta), dovremmo vedere apparire sul monitor seriale la scritta: “Enter AT commands:”
  • connettiamo il PIN Vcc del modulo bluetooth al PIN 5Vdi Arduino, dovremmo vedere il led di Arduino lampeggiare lentamente (ogni circa 2 secondi)
  • scriviamo nel monitor seriale il comando AT e premiamo INVIO (bottone Send del monitor seriale)
  • scriviamo quindi il comando AT+ROLE=1; questo configurerà il modulo bluetooth come MASTER. Per verificare il comando appena eseguito digitiamo AT+ROLE? e dovremmo vedere restituito: +ROLE:1
  • ora eseguiamo il comando AT+BIND=2837,3,92 sostituendo l’indirizzo MAC che abbiamo segnato precedentemente e premiamo INVIO. Questo forzerà il nostro modulo master a connettersi automaticamente all’altro nostro modulo. Eseguendo il comando AT+BIND? dovremmo vedere restituito 2837:3:92.

A questo punto quando accenderemo i 2 moduli questi si connetteranno tra di loro indipendentemente da quale accendiamo per primo. Tutto quello che ti servirà per utilizzarli è aprire una connessione seriale e comunicare attraverso di essa.

Condividi questo post