top of page

LE MODULE INTERFACE XBEE

Le module interface XBee comporte un support sur lequel nous pouvons insérer un module radio XBee. Ce module comporte également un régulateur de tension 3,3 V permettant d'alimenter le module XBee à partir du 5 V du module Grove, un bouton Reset et quatre led indiquant l'état de la communication.

Le module interface XBee "Grove" peut communiquer avec la carte Arduino via la liaison série (broches numériques N°0 et N°1) mais le moniteur série ne peut plus être utilisé. C'est pour cette raison qu'il est préférable d'utiliser la bibliothèque SoftwareSerial intégrée d'office dans l'IDE Arduino. Ses principales fonctions sont :

  • SoftwareSerial xbee(broche_RX, broche_TX)  où broche_RX et broche_TX représente les broches de la liaison série créée. Cette fonction permet de créer l'objet.

  • xbee.begin(baud) où baud représente la vitesse de transmission. Cette fonction permet d'initialiser l'objet.

  • xbee.available() indique le nombre d'octets reçus.

  • xbee.read() lit l'octet présent dans le buffer de la liaison série.

  • xbee.print() envoie tout ce qu’il y a entre les parenthèses sous forme d’octets donc en ASCII.

  • xbee.write(octet) envoie l'octet.

Exemple :

Nous souhaitons commander une led branchée sur une carte Arduino depuis un bouton poussoir branché sur une autre carte Arduino.

Liste du matériel :

Câblage :

Module "Grove"

Module

interface XBee

Module

bouton poussoir

Connecteur Base

D2

D4

Module "Grove"

Module

interface XBee

Module led

Connecteur Base

D2

D5

Programmes :

/* XBee_Bouton_Grove est un programme qui permet de changer l'état d'une variable à chaque appui sur un bouton poussoir et d'envoyer le caractère sur la liaison série*/

// Création d'une liaison série sur les broches 2 et 3
#include <SoftwareSerial.h>
SoftwareSerial xbee(2, 3);                     // RX, TX

#define bouton 4                                    // affectation des broches

boolean bp=0;
char octet;

void setup()  

xbee.begin(9600);                                  // initialisation de la liaison série XBee à 9600 bauds
pinMode (bouton,INPUT);                     // la broche bouton est en entrée 

void loop()
{  
   if (digitalRead(bouton)==HIGH)       // si appui
     {
      delay(200);
      bp=!bp;                                            // changement d'état de la variable bp
     }
  
  if (bp==LOW)                                      // traitement du bouton poussoir
     {
      octet='0';
     }
  else  
     {
      octet='1';
     } 
   xbee.println(octet);                          // envoi de l'octet sur le module XBee
   delay(500);
}

 

 

 

 

 

/* XBee_Led_Grove est un programme associé à XBee_Bouton_Grove */

//  Création d'une liaison série sur les broches 2 et 3
#include <SoftwareSerial.h>
SoftwareSerial xbee(2, 3);               // RX, TX

#define led 5                                      // affectation des broches


char octet;                                         // variable de stockage des valeurs reçues sur le port Série (ASCII)

 

void setup()  

xbee.begin(9600);                             // initialisation de la liaison série XBee à 9600 bauds
pinMode (led,OUTPUT);                    // la broche led configurée en sortie 

void loop()
{      
  while (xbee.available()==0);          // on attend un octet en réception
  octet=xbee.read();                          // lit le 1er octet reçu et le met dans la variable octet
   if (octet=='0')
   {
   digitalWrite(led,LOW);                   // on éteint la led
   }
   if (octet=='1')
   {
   digitalWrite(led,HIGH);                  // on allume la led
   }
}
 

Remarque :

Nous pouvons utiliser à la place du module interface XBee "Grove", un shield XBee développé également par Seeedstudio. L'avantage de cette solution est que nous gagnons un connecteur sur la base shield "Grove". La liaison est configurable grâce à deux cavaliers.

bottom of page