Arduino, Bluetooth e comandi AT – Seconda parte #6

Arduino Bluetooth HC-05

In questo articolo ci inoltreremo nel reame della programmazione di BlueTooth Arduino attraverso i comandi AT: massima attenzione!

Sino ad ora abbiamo utilizzato un sistema di collegamento basato su connettori fisici. Ma esistono occasioni in cui è necessario trasmettere le informazioni via etere, senza disporre della potenza necessaria per collegare un dispositivo di rete locale, sia esso via cavo o wi-fi. Quando dobbiamo trasmettere nell’ambito di costruzioni protette dal Ministero dei Beni Culturali, o all’interno di strutture particolari come gli ospedali o gli ambulatori medici, la nostra abilità di “tirare due fili” tra gli apparati di trasmissione viene meno. E’ a questo punto che la trasmissione Bluetooth ci viene in aiuto.

Possiamo tranquillamente affermare che il Bluetooth sia il sostituto moderno della connessione seriale.

Breve storia del Bluetooth

Tecnicamente, il Bluetooth è uno standard tecnico-industriale di trasmissione dati per reti personali senza fili. Fornisce un metodo standard, economico e sicuro per scambiare informazioni tra dispositivi diversi attraverso una frequenza radio sicura a corto raggio in grado di ricercare i dispositivi coperti dal segnale radio entro un raggio di qualche decina di metri mettendoli in comunicazione tra loro. La specifica Bluetooth è stata sviluppata dalla Ericsson e in seguito formalizzata dalla Bluetooth Special Interest Group (SIG), un’associazione formata da Ericsson, Sony, IBM, Intel, Toshiba, Nokia e altre società.

Questo standard venne progettato con l’obiettivo di ottenere bassi consumi, un corto raggio d’azione (fino a 100 metri di copertura per un dispositivo di Classe 1 e fino a un metro per dispositivi di Classe 3) e un basso costo di produzione per i dispositivi compatibili. Lo standard doveva consentire il collegamento senza fili tra periferiche come stampanti, tastiere, telefoni, microfoni, ecc. a computer o PDA o tra PDA e PDA. In data 4 gennaio 2007 è stato superato il miliardo di dispositivi che utilizzano questa tecnologia.

Funzionamento della tecnologia

Bluetooth prevede di sincronizzare la maggior parte delle operazioni con un segnale di clock in tempo reale. Esso serve, ad esempio, a sincronizzare gli scambi di dati tra i dispositivi, distinguere tra pacchetti ritrasmessi o persi del protocollo. Due o più dispositivi collegati tra loro formano una piconet (un sisterma punto-punto) e i dispositivi all’interno di una piconet possono essere di due tipi:

  • master, è il dispositivo che all’interno di una piconet si occupa di tutto ciò che concerne la sincronizzazione del clock degli altri dispositivi (slave) e la sequenza dei salti di frequenza, inoltre nel caso di connessioni con altre piconet, esso può essere solo uno slave;
  • slave, sono unità della piconet sincronizzate al clock del master e al canale di frequenza, inoltre possono appartenere a più piconet contemporaneamente come slave attraverso l’uso di tecniche TDM (Time Division Multiplexing).

Nel nostro progetto provvederemo a configurare una tantum gli apparati come master e slave, in modo che all’accensione si riconoscano automaticamente e possano comunicare tra loro.

Bluetooth e sicurezza del collegamento

Le trasmissioni Bluetooth avvengono alla frequenza di 2,4 GHz in aria libera, e sono quindi più soggette ad un dirottamento verso dispositivi non autorizzati (hacking). Tuttavia occorre ricordare che il sistema, al fine di ridurre i disturbi in radiofrequenza, cambia la propria frequenza di trasmissione 1600 volte al secondo nel range dei 79 canali ricavati all’interno della propria gamma di trasmissione.

Inoltre, per rendere il collegamento tra un apparato master ed uno slave, è necessario condividere una chiave di sicurezza (il PIN) con lunghzza variabile tra i 4 ed i 16 caratteri alfanumerici. Il PIN viene richiesto dal master,  non viene mai ritrasmesso nelle comunicazioni con lo slave.

Occore infine ricordare che, trattandosi di un dispositivo a radiofrequenza, ogni sistema Bluetooth appartiene ad una determinata classe che ne rappresenta la potenza di trasmissione:

ClassePotenzaPortata
1100 mW100 m
22.5 mW10 m
31 mW1 m

Configurazione HC-05 e comandi AT

Il modulo ha un LED per la visualizzazione dello stato installato. Quando il LED lampeggia velocemente significa che il dispositivo è pronto per la connessione; quando lampeggia lentamente, la connessione è stabilita e quando lampeggia ogni 2 secondi, la board risulta cconfigurata in modalità AT.
Il dispositivo ha un regolatore integrato da 5 V a 3,3 V e un pulsante di commutazione.Come abbiamo ricordato, il sistema Bluetooth è assimilabile al protocollo seriale, e utilizza i comandi AT (ove AT sta per “ATtention”) per la propria configurazione, un po’ come si usava ai tempi dei voice modem. Il protocollo è abbastanza semplice, basato sulla trasmissione di stringhe in formato ASCII testuale. Una trattazione completa dei comandi AT ci porterebbe fuori tema, tuttavia chi è interessato potrà trovare il manuale per Arduino a questo link.

Configurazione hardware

Per poter intragire in configurazione con un Arduino occorre installare il modulo HC-05 secondo il seguente sketch:

HC-05 arduino nanp

Il partitore di tensione serve per mantenere la tensione di controllo entro i 3.3V.

Configurazione software

Le schede HC-05 andranno configurate una sola volta, e manterranno i parametri di configurazione (attribuzione master/slave, baud rate, password e così via) salvati ed accessibili ad ogni riattivazione. In questo modo potremo utilizzare i moduli come apparati plug and play.

Per entrare in modalità AT occorre rimuovere l’alimentazione, premere il tasto di configurazione e ricollegare l’alimentazione della scheda, senza rilasciare il tasto. Il LED inizierà a lampeggiare lentamente, confermando l’entrata della scheda in modalità AT. A questo punto, rilasciare il tasto.

Per uscire dalla modalità AT occore nuovamente rimuovere l’alimentazione dell scheda, o eseguire da terminale il comando AT+RESET.

Per inviare i comandi è possibile utilizzare il monitor seriale di Arduino opportunamente configurato.

Vediamo ora la sequenza delle operazioni necessarie alla configurazione.

 

Il software di configurazione

Lo sketch rappresentato ci servirà come programma di terminale per comunicare con il modulo HC-05 attraverso Arduino. Il monitor seriale dovrà essere configurato a 38400 baud con NL e CR attivi.

Una volta configurate le schede master e slave potranno riconoscersi e connettersi automaticamente quando saranno in prossimità l’una dell’altra, mentre tutti i programmi di trasmissione visti negli articoli precedenti continueranno a funzionare senza alcun problema, trasmettendo tuttavia le informazioni nell’etere aziché utilizzare i soliti cavetti.

Arduino HC-05

Considerazioni finali

E con questo articolo si conclude la serie dedicata alla configurazione e all’utilizzo della seriale di Arduino. Ora sta a voi che ci leggete mettere in pratica le modalità di approfondimento e sviluppo per creare nuovi ed interessanti progetti.

Come sempre, Moreware sarà felice di pubblicare gli articoli più interessanti e originali.

Link utili

 

Le puntate precedenti:

Join our groups on Telegram…

… and don’t forget our social channels!

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.