Gateway Bluetooth-XBee


Da circa un anno sto "giocando" con i moduli MaxStream (ora DiGi) XBee, radiomodem economici operananti in banda ISM (i soliti 2.4GHz di WiFi e Bluetooth) particolarmente efficaci per comunicazioni a corto raggio e a basso consumo.

xbee.jpeg

I moduli XBee sono ben noti a chi utilizza Arduino, grazie all’XBee Shield che consente di dotare Arduino Diecimila di questa comoda interfaccia wireless.

xbee_shield.png

Uno dei vantaggi principali di questi moduli è che essi permettono la comunicazione punto-punto o punto-multipunto (cosa non fattibile con i moduli Bluetooth in circolazione) in maniera estremamente rapida, avendo tempi di discovery e di join molti brevi. Alcune versioni inoltre, se equipaggiate con antenne opportune, consentono di coprire oltre 1km in spazio aperto. Apposite interfacce XBee-USB consentono di collegare gli XBee ad un PC e la comunicazione si gestisce attraverso una comune connessione seriale (standard o USB-Serial).

Lavorando con Arduino è facile prendere familiarità con gli XBee e mettere su una piccola rete in grado di connettere tanti dispositivi in modo estremamente rapido. Sembra, però, che ad oggi non esista alcun cellulare che disponga di un modulo simile (o compatibile) a bordo, dunque vien meno la possibilità di avere accesso diretto a questo tipo di rete direttamente da device mobile.

Poiché sia per Bluetooth che per XBee si tratta di connessioni seriali, è facile predisporre un piccolo circuito che svolga le funzioni di gateway tra le due reti: un modulo XBee "standard" e un modulo Bluetooth server (seriale) e le rispettive connessioni seriali incrociate tra loro, un piccolo regolatore di tensione che fornisca l’alimentazione necessaria a far funzionare i due moduli.

bt-xbee_gateway_small.png

Il primo prototipo è estremamente semplice. Il modulo XBee è montato su un adattatore XBee Simple Board sviluppato dall’italiana Droids, che fornisce un regolatore di tensione a 3.3V e un layout dei PIN compatibile con le breadboard (2.54mm). Il modulo può essere alimentato con una tensione massima di 12V e la tensione di 3.3V in uscita dal regolatore di tensione (con cui è alimentato il modulo XBee) è disponibile per eventuali device esterni, con un assorbimento massimo di circa 300mA (che si riducono a 100mA se si utilizzano moduli XBee Pro). Utilizzando questa tensione, si alimenta un modulo Bluetooth Sena Parani ESD200, ai cui terminali RX-TX sono connessi i terminali TX-RX del modulo XBee.

gateway_prototype1.jpg

Una batteria a 9V e una piccola breadboard completano il circuito, costituito da 4 fili e un connettore di alimentazione.

La modalità di utilizzo è inevitabilmente monodirezionale: il terminale mobile, dotato di client Bluetooth, si connette al modulo Bluetooth del gateway; quest’ultimo, attivata la connessione, dirige il traffico della seriale RFCOMM verso il modulo XBee, che a sua volta lo inoltra sulla rete wireless. Analogamente, i dati ricevuti dal modulo XBee sono inoltrati al modulo Bluetooth che a sua volta li passerà al telefono cellulare. Non è possibile iniziare la comunicazione in direzione opposta, a meno che non si utilizzi un modulo Bluetooth che implementi un client SDP e un software sul device XBee che supporti il protocollo di configurazione dello stesso modulo Bluetooth.

La presenza del modulo Bluetooth è del tutto trasparente per il modulo XBee: sarà dunque possibile configurarlo direttamente dal terminale mobile (che ovviamente dovra’ implementare il protocollo di comunicazione definito da MaxStream).

Il modulo Parani ESD200 prevede quattro modalità operative, che stabiliscono la procedura di connessione e lo stato di visibilità sulla piconet. L’impostazione di default prevede che il modulo non sia discoverable, per cui occorre impostare il MODE3 affinchè il cellulare possa trovarlo e connettersi. Per la configurazione si può sfruttare il gateway così com’è: è sufficiente utilizzare un secondo modulo XBee connesso via USB al PC e impostare il programma di configurazione del Parani affinchè "punti" alla porta seriale virtuale associata all’XBee. Questa possibilità, però rappresenta anche una importante falla di sicurezza di questo progettino: così come il modulo Bluetooth è trasparente per quello XBee, così quest’ultimo lo è per il primo. Un nodo malevolo, dunque, potrebbe mandare al gateway comandi per modificare la configurazione del modulo Bluetooth e renderlo inutilizzabile. Per ovviare a questo problema si potrebbe mettere tra i due moduli un microcontrollore dotato di due porte seriali buffered (ad esempio, un Atmel ATmega162), che filtri il flusso dal modulo XBee a quello Bluetooth, impedendo che a questo giungano comandi di configurazione (se necessaria, la configurazione sarà fatta aprendo una connessione seriale fisica a falle di tale microcontrollore).

6 pensieri su “Gateway Bluetooth-XBee

  1. Antonio

    …dopo aver partecipato al tuo seminario su Arduino, averlo apprezzato rimanendo impressionato da quello che, ogni volta, riesci a tirare fuori e nonostante non sia proprio il mio genere di applicazioni (lo sai πŸ˜‰ )…beh, che dire, non posso che farti i complimenti anche per questo bellissimo post, che so che altro non Γ¨ che l’incipit di una nuova tua creatura…e ora avanti tutta! Dimoniu!

  2. Massimilinao

    Ciao devo dirti che ho trovato molto interessante il tuo articolo.
    Per il mio lavoro di tesi dovrei controllare in locale e in remoto un motore.Il progetto è composto da una parte di progettazione dello stadio di potenza e uno dello stadio di segnale.
    Ho scelto Arduino,per lo stadio di segnale, per la sua folosofia, credo molto in progetti open source e nel contributo di community;di Gnu linux i grandi passi in avanti rispetto ai suoi concorrenti.
    Ti scrivo perchè non avevo nessuna idea su come realizzare in remoto il controllo, ti chiedo se hai del materiale e come faccio a far comunicare arduino+ xbee + java(netbeans).
    Poi una precisazione tecnica devo avere per forza due arduino+ 2 xbee pro o mi basta avere arduino+ xbee lato motore e XBee Adapter / USB Γ’β‚¬β€œ Serial(vedi sito http://www.xbeeadapters.com/) Converter / Breakout Board lato pc per fargli comunicare?

    ti ringrazio in anticipo della risposta

Lascia un commento