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.
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!
Commentati Recentemente