Connessione bluetooth tra Arduino e Android

Creazione programma lato Arduino

Benvenuti in questo nuovo tutorial, In questa nostra nuova puntata andremo a imparare come creare un collegamento tra il nostro smartphone (Android) e la nostra scheda Arduino. Non vi nascondo che alle prime volte che usavo questo codice spesso mi dava qualche problema, ma non spaventatevi, dopotutto questo codice una volta capito è molto semplice.

Inoltre ricordo che per funzionare tutto ciò necessitiamo di un modulo bluetooth come il modulo HC-05
.

Visto che siamo in un tutorial di Arduino partiamo subito con il lato di codice che lo riguarda. Inanzitutto dobbiamo dichiarare la libreria Softwareserial,

questa libreria ci permette di creare delle connessioni seriali su Pin digitali, inoltre ci permette di creare più connessioni con un baud di 115200.

Proseguiamo con andare a dichiarare la funzione costruttrice e come parametro gli passiamo 2 valori, che sono rispettivamente RX e il TX della nostra comunicazione.

Come precedentemente detto, possiamo usare anche dei Pin digitali come se fossero di comunicazione, purtroppo non tutti i Pin sono accettati. (Link per scoprire quali Pin sono accettati).

Tutto questo noi lo andremo a fare nella parte globale del nostro sketch, ma ora ci incentreremo nelle singole funzioni. Startiamo (Gergo personale sinonimo di partiamo) con la funzione setup.

Nel setup andiamo semplicemente a dichiarare dei Pin per la key(o Wakeup) e il btLed. Il Pin key serve generalmente per entrare in AT mode (entrare in AT mode e i comandi) così da poter configurare il nostro modulo bluetooth. Invece il Pin assegnato alla variabile btLed è un Pin che verrà collegato a un led che si accenderà ogni qualvolta che la nostra scheda riceverà delle informazioni tramite bluetooth.

Inoltre creiamo una comunicazione seriale a un baud 38400 (ma la si può creare a differenti baud), sia per il monitor seriale che per la comunicazione bluetooth.

Passando alla funzione loop la logica è molto semplice, viene fatto un controllo sulla variabile myserial ovvero sul bluetooth controllando se è disponibile.

Se il bluetooth risulta disponibile significa che sta ricevendo delle informazioni, di seguito Arduino accende il led sopra citato ed entra in un ciclo while per acquisire il valore ricevuto, questo succede perché il nostro bluetooth riceve byte per byte l’ informazione, di seguito ricostruisce il comando (o stringa) ricevuta facendo una somma di caratteri.

la seconda If presente nella nostra funzione serve per inviare dei comandi tramite la nostra scheda. questa if viene utilizzata principalmente per mandare comandi AT per configurare il modulo , ma può essere utiliazata anche per mandare dei parametri al nostro dispositivo.

Questo codice è utilizzabile con bluetooth come HC-05, costruito per ricevere e inviare stringe, ma anche con moduli bluetooth come XS3868, costruito per l’invio e il controllo della musica.

Creazione programma lato Android

In questa seconda pagina andremo a a creare l’ applicazione Android per comunicare con la nostra scheda. Nello specifico vedremo come comunicare con il modulo bluetooth e quali modifiche andranno fatte nei vari file creati dal nostro IDE.

Per creare la nostra applicazione useremo, come ambiente di sviluppo, l’ IDE ufficiale di mamma google ovvero Android Studio (Download Android Studio).

Una piccola premessa non faró vedere come creare un nuovo progetto con questo IDE, visto che parto dal presupposto che le basi di questo software già le conosciate.

Inanzitutto creiamo un nuovo progetto in android studio e lo creiamo con la Blank Activity (con la schermata vuota).

una volta creato il progetto, andiamo nel file di configurazione chiamato AndroidManifest.xml e qui andremo aggiungere le seguenti righe all’interno del tag manifest.

Queste righe danno i permessi alla nostra applicazione per poter interagire con il modulo bluetooth che è presente sul nostro dispositivo.

Ora passiamo all’interfaccia e inseriamo un toggleButton all’interno della nostra app. questo button ci permetterà di connettere in nostro dispositivo con il modulo bluetooth collegato ad Arduino o a una scheda equivalente.

Una volta che abbiamo posizionato il toggleButton andiamo nel file MainActivity.java e dichiariamo le seguenti librerie

di seguito dentro la classe andiamo a dichiarare le seguenti variabili

Ora per connetterci al bluetooth creiamo un evento del toggle button dentro la funzione onCreate, l’evento in questione è il setOnClickListener.

Tutte le spiegazioni di quello che fa questa funzione è scritto nei commenti tra il codice, ma ora vi faccio vedere come scrivere qualcosa nello stream di connessione tra i bluetooth. Tutto si basa su una funzione molto semplice, essa dovrà essere richiamata qual’ora, una volta connesso il bluetooth, si vogliano trasferire delle informazioni.