Strumenti Utente

Strumenti Sito


xbee

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:

  • nella posizione XBEE il microcontrollore riceve solo dal modulo XBee (non da PC) e invia sia al modulo XBee che al PC (via USB)
  • nella posizione USB il modulo XBee comunica direttamente col PC via USB ma solo se è stato rimosso il uC, altrimenti la comunicazione è PC-microcontrollore

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:

  • rimuovere il microcontrollore dalla scheda Arduino
  • montare sulla scheda Arduino lo shield Xbee con i due jumper nella posizione USB

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

  • collegare la scheda al PC e selzionare Discover
  • rilevato il modulo aggiungerlo
  • visualizzare le proprietà del modulo e individuare il firmware caricato
  • eventualmente caricare un nuovo firmware col pulsante Update Firmware

I parametri più importanti sono:

  • ID (PAN ID): deve essere lo stesso per tutti i moduli
  • BD (Baud Rate): 9600
  • SH e SL: il serial number alto e basso del modulo
  • DH e DL: il serial number alto e basso del modulo destinatario della connessione

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:

  • un modulo con firmware ZigBee Coordinator AT4)
  • l'altro con firmware ZigBee Router/End Device AT

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:

  • senza lo shield inserito carichiamo nella prima scheda lo sketch di esempio Physical Pixel; il programma accende e spegne il LED sulla scheda Arduino in base a ciò che riceve via seriale ('H' accende il LED, 'L' lo spegne); prima di procedere si può provare se funziona inviando i due caratteri da PC col monitor seriale
  • inseriamo lo shield XBee con i jumper nella posizione XBEE nella prima scheda
  • senza lo shield inserito carichiamo sull'altra scheda uno sketch che invii i caratteri 'H' e 'L' a intervalli di un secondo (anche in questo caso si può fare un test col monitor seriale)
  • inseriamo lo shield XBee con i jumper nella posizione XBEE seconda scheda
  • alimentando le due schede, se la comunicazione seriale via wireless funziona, il LED della prima scheda lampeggerà

Osservazioni:

  • le due schede risultano associate se il coordinator lampeggia ogni secondo e l'end-point due volte al secondo
  • per inviare i caratteri si usano le funzioni print() e println(); funziona come per il monitor seriale ma i dati sono trasmessi via wireless invece che col cavo USB
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
Questo sito Web utilizza i cookie. Utilizzando il sito Web, l'utente accetta la memorizzazione dei cookie sul proprio computer. Inoltre riconosci di aver letto e compreso la nostra Informativa sulla privacy. Se non sei d'accordo, lascia il sito.Maggiori informazioni sui cookie
xbee.txt · Ultima modifica: 2020/07/03 15:56 da 127.0.0.1