Utilizzare un modulo HT-05 per programmare Arduino via Bluetooth
Se colleghiamo un modulo Bluetooth alla porta seriale 0 di Arduino (pin 0 e 1) non potremmo più caricare uno Sketch tramite la porta USB, perché la porta risulterà occupata. Però, opportunamente configurato, il modulo HT-05 può essere utilizzato per inviare tramite Bluetooth uno Sketch ad Arduino. Questo ci potrebbe tornare utile se Arduino è messo in un luogo difficilmente accessibile (immaginatevi in una centralina meteo posta su un palo difficilmente raggiungibile).
Per iniziare occorrerà configurare opportunamente un modulo HC-05. Non potremmo usare i moduli HC-06 perché non dispongono del pin STATE.
Entrare in modalità AT come descritto nella pagina Arduino ed il Bluetooth.
Una volta entrati nella modalità AT dare i seguenti comandi (tra ” ” c’è la descrizione del comando che deve essere naturalmente omessa”);
AT+ORGL “Imposta il modulo alle impostazioni di fabbrica”
AT+NAME=XYZ “imposta il nome del modulo Bluetooth come XYZ, scegliete voi il nome, questo comando non è obbligatorio”
AT+PSWD=1234 “imposta il nuovo pin come 1234, è importante non utilizzare 1234 o 0000 perché il modulo resterà sempre acceso, quindi raggiungibile da tutti”
AT+ROLE=0 “imposta il modulo come SLAVE”
AT+POLAR=1,0 “imposta il funzionamento del led connesso a STATE”
AT+UART=115200,0,0 “imposta la velocità di connessione”
AT+INIT “inizializziamo il profilo SPP”
A questo punto il modulo è pronto per programmare il nostro Arduino!
Lo schema da utilizzare sarà il seguente:
Come condensatore utilizzate un elettrolitico da 10 μF con il polo negativo verso Arduino.
Adesso dobbiamo configurare il nostro PC per farlo comunicare con Arduino al posto del cavo USB.
Se il vostro PC non è dotato di adattatore Bluetooth io consiglio i vecchi moduli 2.1, su ebay si trovano per pochi euro.
Con Windows XP e Windows 10 questi adattatori sono auto-istallanti, per Windows 7 la cosa è un po’ più complicata, ma visto che ormai è un sistema obsoleto la guida si riferirà a Win10 (i passaggi, una volta installati i driver dell’adattatore Bluetooth, sono comunque simili per tutte le versioni di Windows).
Dopo che l’adattatore Bluetooth è stato correttamente installato sul vostro Pc cliccate sull’icona del Bluetooth..E cliccare su “Aggiungi un dispositivo Bluetooth”.
Si aprirà la schermata “Bluetooth e altri dispositivi”
Cliccare su “Aggiungi dispositivo Bluetooth o di altro tipo”
Si aprirà una finestra “Aggiungi un dispositivo”, cliccare su “Bluetooth Mouse, tastiere, penne….”
Così facendo si avvierà la ricerca del nostro modulo Bluetooth…
Cliccate sul nome del modulo Bluetooth, nel nostro caso “Robot-01”, ci verrà chiesto il PIN per connetterci, digitare quindi il nostro PIN e premere “Connetti”…
Se tutto è andato a buon fine il modulo sarà stato accoppiato al nostro sistema.
Cerchiamo “Gestione dispositivi” nella barra di ricerca..
Se guardate tra le porte COM saranno state aggiunte 2 nuove porte seriali Bluetooth (il numero varia in base alla vostra configurazione Hardware).Ora per caricare gli Sketch su Arduino selezionate la porta con il numero più grande, nel nostro caso COM8.
Adesso potrete trasferire il vostro Sketch via Bluetooth!
In pratica il modulo HC-05 è stato configurato in modo tale che quando ci colleghiamo via Bluetooth porta basso il suo pin STATE per un secondo, questo, tramite il condensatore posto in serie tra il pin STATE e quello di RESET dell’Arduino, farà resettare l’Arduino predisponendolo alla programmazione.
Da notare che il modulo così configurato non potrà più essere utilizzato per inviare dati ad Arduino diversi dallo Sketch, in quanto ogni volta che ci collegheremo al modulo HC-05 via Bluetooth resetterà l’Arduino anche se non inviamo successivamente lo Sketch (utile nel caso si voglia far ripartire l’Arduino).
Se dobbiamo inviare/ricevere dati diversi dallo Sketch dovremmo utilizzare un secondo modulo collegato ad un’altra seriale.
Inoltre prima di caricare il primo Sketch via Bluetooth assicurarsi che su Arduino non sia già stato caricato un altro Sketch che utilizzi la Seriale 0, per intenderci Serial.begin(xxxx), perché la programmazione via Bluetooth potrebbe non andare a buon fine, ne tanto meno caricatene uno che la utilizzi.