Arduino Bluetooth HC-05

Ariecchice (dicono a Roma)…
Articolo veloce veloce, per vedere come collegare il modulo bluetooth HC-05 ad Arduino, ed in futuro collegare e scambiare dati con un altro dispositivo.
Articolo ispirato dal progettino di un collega.

    Materiale occorrente:

  • Naturalmente un Arduino;
  • E naturalmente un modulo HC-05
    (anche HC-06 va bene);
  • Una resistenza da 220 ohm; (facoltativa)
  • Un led; (facoltativo)

Collegamento

Il modulo HC-05, ha sei pin (KEY, RX, TX, VCC, GND, STATE):

  • KEY: serve a settare il modulo per la comunicazione tramite comandi AT. Per il nostro esempio non ci servirà;
  • RX e TX: i pin deputati allo scambio dei dati;
  • Vcc e GND: pin di alimentazione del modulo HC-05, da 3,3 a 6 Volt;
  • STATE: pin di output che passa dallo stato LOW allo stato HIGH quando il modulo è connesso. Ci attaccheremo un LED just for;

Qui di seguito lo schema dei collegamenti.

Collegamento HC-05 ad Arduino

Collegamento HC-05 ad Arduino

Il codice

Il codice è abbastanza semplice da capire. In sostanza, includiamo la libreria SoftwareSerial (dall’IDE di Arduino : Sketch->Inclusione Librerie->SoftwareSerial) utilizzata per creare una nuova porta di comunicazione seriale sul nostro Arduino. Di default la connessione seriale avviene tramite i pin 0 e 1, ed è sostanzialmente quella utilizzata dalla porta USB. Con la libreria SoftwareSerial, creiamo tramite software (da qui il nome) una nuova porta Seriale capace di trasmettere fino a 115200 bps. Il motivo di questa scelta, nasce dal fatto che vogliamo utilizzare la comunicazione seriale standard, come console lato pc per inviare e ricevere dati ad Arduino.
Come da schema dei collegamenti, ho voluto mettere sul pin STATE del modulo HC-05 un LED con in serie la sua resistenza da 220 ohm, per notificare visivamente lo stato “Connesso” del modulo. In realtà non servirebbe perchè l’HC-05 ha il suo LED onboard che lampeggia quando non connesso e diventa a luce fissa quando connesso. Ma io volevo testare il pin STATE e l’ho messo. Punto e basta! 🙂 .
Bando alle ciance eccoti il codice:

/*
 * Arduino Bluetooth HC-05 Base
 * Semplice programmino per vedere come Arduino scambia dati attraverso il modulo bluetooth HC-05
 *
 * Autore  : Andrea Lombardo
 * Web     : http://www.lombardoandrea.com
 * Post    : http://adf.ly/12267939/arduino-hc-05-base
 * Git     : https://github.com/AndreaLombardo/Arduino-HC-05_Base
 */ 

 //Includo libreria SoftwareSerial
 #include <SoftwareSerial.h>

//definisco pin RX e TX da Arduino verso modulo BT
#define BT_TX_PIN 12
#define BT_RX_PIN 11

//istanzio oggetto SoftwareSerial (il nostro futuro bluetooth)
SoftwareSerial bt =  SoftwareSerial(BT_RX_PIN, BT_TX_PIN);

void setup() {

  //definisco modalità pin
  pinMode(BT_RX_PIN, INPUT);
  pinMode(BT_TX_PIN, OUTPUT);

  //inizializzo comunicazione Seriale
  Serial.begin(9600);

  //inizializzo comunicazione Bluetooth
  bt.begin(9600);

}

void loop() {
  //se ci sono dati sul buffer della Serial
  while (Serial.available() > 0) {
    //mandali al modulo bluetooth
    bt.print(Serial.read());
  }

  //se ci sono dati sul buffer SoftwareSerial (il buffer del bluetooth)
  while (bt.available() > 0) {
    //mostrali nel Serial Monitor
    Serial.println(bt.read());
  }
}

Si ma… a chi lo colleghiamo sto bluetooth?

Come detto all’inizio dell’articolo, essendo ispirato al progettino di un collega, a darmi la dritta su come fare i test bluetooth è stato proprio lui. Esiste un App Android chiamata Bluetooth Electronics con un casino di funzionalità e tool a disposizione. Ambiente grafico molto carino e di facile utilizzo.
Se stai pensando di utilizzare questa App, continua a leggere, altrimenti vedi tu a chi vuoi collegarlo perché io non ne conosco altri 😉
Tornando a noi, dando per scontato il montaggio e l’upload del codice sul nostro Arduino, senza entrare nel dettaglio delle tante funzionalità messe a disposizione dall’app, una volta scaricata ed installata procedi come segue:

  • Attiva il bluetooth sul tuo cellulare e, anche se l’app lo consentirebbe (ma ogni tanto si incacchia), connettiti al modulo;
  • Se ti chiede un codice pin usa 1234;
  • Una volta eseguito il pair dei dispositivi, avvia l’app Bluetooth Electronics;
  • Seleziona un “Panel” vuoto e clicca su “Edit”;
  • Aggiungi nell’area di lavoro un “Terminal” ed una casella di “Input”, semplicemente trascinandoli;
  • Per questo esempio, non c’è bisogno di alcuna configurazione dei componenti aggiunti;
  • Torna alla schermata dei “Panel” e usa il bottone “Connect” in alto a destra per visualizzare i dispositivi Bluetooth;
  • Il modulo HC-05 dovrebbe comparire tra i dispositivi “Paired Devices”. Selezionalo e clicca su “Connect”;
  • Torniamo nuovamente nella schermata dei “Panel” e selezionando quello da noi creato, usiamo il bottone “Run” per mandarlo in funzione;
  • Dal nostro IDE Arduino, avviamo il Monitor Seriale, quindi scriviamo qualcosa e premiamo invio;
  • Facciamo la stessa cosa dal terminale presente nell’app android…

Se tutto è andato a buon fine, dovremmo vedere sui rispettivi terminali dei numeri, rappresentanti la versione (DEC) decimale dei caratteri ASCII inviati.
A questo punto nulla può più fermarci ahahahahah… usando dei semplici Switch Case è possibile dire ad Arduino, se ti arriva questo, fai questo, se ti arriva quest’altro fai quest’altro. Smanettando sull’app Bluetooth Electronic avrai modo di notare quante cose carine è possibile fare.
Di seguito un paio di screenshot dell’app:

Detto questo, buon montaggio e buon esperimento!

    Come sempre

  • Assicurati che tutti i collegamenti siano corretti;
  • Ricordati di impostare la porta COM del tuo Arduino;
  • Ricordati di impostare lo stesso baud rate del monitor seriale con quello specificato in Serial.begin()
  • E ricorda che io non mi assumo nessuna responsabilità per eventuali danni o disastri che causi 😀

Puoi clonare il progetto da GitHub o scaricare il file zip!

Approfondimenti

Prodotti Amazon

Ricerche che hanno riportato a questa pagina:
%d blogger hanno fatto clic su Mi Piace per questo: