Indice

Comunicazione wireless con moduli Xbee

Introduzione

In laboratorio sono presenti degli shield XBee che permettono di comunicare via radio tra schede Arduino. Gli shield montano i moduli wireless Xbee S2 della Digi International che trasmettono via radio usando il protocollo ZigBee/ZNet 2.51). Rimuovendo i moduli si può leggere il product number (XB24-BCIT-) che identifica la versione a corto raggio (non PRO) del modulo (vedi il data sheet e il confronto tra i vari modelli).

Gli shield sono perfettamente funzionanti ma obsoleti; gli stessi moduli wireless oggi si montano sui Wireless Shield, più facili da usare2) e supportati ufficialmente.

Lo shield XBee

Shield XBee con modulo XBee S2

Lo shield copre parzialmente la scheda Arduino, replica i pin analogici e quelli digitali da 2 a 7. I pin 0 e 1 sono utilizzati dal modulo per la comunicazione seriale via radio. Sulla scheda è riportata la piedinatura dei moduli, che possono essere sostituiti. Sono presenti due jumper con i quali si seleziona il funzionamento della scheda:

Una descrizione più completa dello shield si trova nella pagina del sito Arduino.

Configurazione dei moduli

I moduli Xbee permettono di realizzare una vasta serie di applicazioni (connessioni end-to-end a reti mesh, reti a stella) e possono utilizzare protocolli diversi in base al firmware utilizzato. Sono prodotti complessi e ricchi di funzionalità ma non semplici da usare (per farsi un'idea consultare le 200 pagine di manuale). Prima di utilizzare i moduli occorre configurarli; il modo più semplice di procedere è quello di installare il software XCTU e configurare i moduli da PC usando la scheda Arduino e il relativo shield 3).

Il software XCTU è completo e facile da usare: i moduli vengono autorilevati, c'è una guida in linea e su internet ci sono video che ne illustrano il funzionamento. Per configurare i moduli con i nostri shield però occorre:

A questo punto è possibile caricare un firmware sul modulo e configurarlo:

I parametri più importanti sono:

La comunicazione tra moduli può avvenire il broadcast (verso tutti) o unicast (un solo destinatario). Nel secondo caso bisogna specificare il serial number del destinatario utilizzando i parametri DH e DL. Per una connessione di tipo multicast è possibile accettare tutti i valori di default.

Il firmware caricato specifica la funzione svolta dal modulo e il protocollo utilizzato, cioè ZigBee o ZNet 2.5 (NB i due protocolli sono simili ma non compatibili). Nel fare la scelta occorre tener conto del fatto che una rete ZigBee o ZNet richiede che un nodo svolga la funzione di coordinator gestendo la rete; gli altri sono router (inoltrano i pacchetti di cui non sono destinati) o end device (destinatario).

Ad esempio per una comunicazione end-to-end (unicast) si può usare:

Test dei moduli

Seguendo i suggerimenti della pagina sul Wireless Shield si può testare la comunicazione tra moduli usando due schede Arduino e due shield XBee con moduli XBee S2:

Osservazioni:

1)
I moduli XBee S1 usano uno lo 802.15.4 e non sono compatibili con quelli S2 che usano i protocolli ZigBee o ZNet 2.5 (una sua variante)
2)
per configurare i moduli non è necessario rimuovere il microcontrollore dalla scheda Arduino
3)
si può fare anche dalla scheda Arduino o dal PC con usando dei comandi AT ma è sicuramente più complicato
4)
AT significa che il modulo interagisce anche con comandi AT da seriale