Gli shiled shield Xbee presenti in laboratorio montano i moduli Xbee S2 della Digi International e permettono di comunicare con il protocollo ZigBee1). Questi shield sono fuori produzione da anni, sostituiti dai Wireless Shield, che sono più facili da usare (per configurare i moduli non è necessario rimuovere il microcontrollore dalla scheda Arduino) e supportati ufficialmente.
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).
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.
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 2).
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:
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:
print()
e println()
; funziona come per il monitor seriale ma i dati sono trasmessi via wireless invece che col cavo USBFunziona solo con protocollo ZNet 2.5