Dans le premier article concernant les XBee, nous avions montré comment nous pouvions facilement faire communiquer plusieurs cartes sans-fil avec des XBee series 1 sans aucune configuration.
C’était possible grâce aux réglages par défaut qui utilisent un même identifiant de réseau (3332 comme valeur pour ID) et une adresse broadcast (pas de destinataire particulier, tout le monde, comme une antenne de télé).
Maintenant, nous allons voir comment configurer des modules pour des besoins plus particuliers :
s’isoler sur un réseau personnel différent (changer l’ID)
s’assigner une adresse d’émetteur
préciser une adresse de destinataire
Matériel nécessaire
| modules XBee | 2 | ... | environ 50 euros |
| carte USB/XBee | 2 | ... | environ 30 euros |
Bien sûr plus vous avez de cartes, plus vous pouvez tester de combinaisons, puisque le but est de voir quand ça connecte, quand ça connecte pas et avec qui ça connecte.
Préparation
Il faut un peu d’organisation : un hub USB pour brancher/débrancher les câbles des adaptateurs USB/XBee sans se tromper, et se rappeler le numéro de port COM de chacune des cartes.
Installez si ce n’est pas déjà fait le logiciel X-CTU distribué par Digi, la société qui conçoit les puces XBee (successeur de MaxStream, ce nom pouvant être encore écrit sur vos modules).
Prenez enfin de quoi noter les paramètres.
Tests
Le premier XBee sera configuré ainsi :
| Paramètre | Valeur | Rôle |
|---|---|---|
| ID | 3332 | adresse de réseau commun |
| MY | 1234 | l’adresse de ce XBee |
| DH | 0 | partie haute de l’adresse, indique qu’on veut utiliser les adresses sur 16 bits |
| DL | FFFF | adresse de destinataire : broadcast à tous |
Le second XBee sera configuré ainsi :
| Paramètre | Valeur | Rôle |
|---|---|---|
| ID | 3332 | adresse de réseau commun |
| MY | 5678 | l’adresse de ce XBee |
| DH | 0 | idem ci-dessus |
| DL | 1234 | adresse de destinataire : réponse au premier |
Comme on le voit, le second module (on dira "remote" ou "distant") ne répond qu’au premier module (on dira "base"). On pourrait donc utiliser plusieurs modules distants. Le module base quant à lui a une adresse de broadcast (FFFF), ce qui lui permet d’atteindre tous les modules XBee qui sont sur le réseau personnel 3332 (paramètre ID identique pour tous). Bien sûr, il faudra changer la valeur de destinataire (DL) si on veut ne s’adresser qu’à un des modules.
Juste une note sur le paramètre ID : il ne s’agit pas du canal de communication dans le sens canal RF, c’est un autre paramètre qui permet de choisir parmi les 16 canaux 2.4GHz que gère le XBee, mais du PAN ID, où PAN désigne un réseau personnel (Personal Area Network).
Pour paramétrer ces valeurs, il suffit de connecter chacun des modules sur la plaquette USB et utiliser un outil de configuration (X-CTU distribué par Digi) ou un simple terminal (connecté à 9600 bauds par défaut).
On va utiliser des commandes dites "AT", une méthode qui n’a pas changé depuis les premiers modems filaires.
On ressort donc notre terminal série préféré, Docklight, et on le paramètre pour communiquer en 9600-N-1-8 sur le port COM (pour Windows) associé à la carte USB/XBee et on enregistre une série de commandes classiques :
| Commande | Rôle | Résultat attendu |
|---|---|---|
| +++ | démarre la connexion "AT" avec le module | réponse OK dans 1 à 2 secondes (surtout pas de retour chariot) |
| ATID ou ATIDnnnn | lit ou écrit l’adresse du réseau commun | l’adresse courante si aucun paramètre, OK si l’adresse nnnn a été enregistrée, ERROR sinon |
| ATMY ou ATMYnnnn | lit ou écrit l’adresse de ce module | idem |
| ATDL ou ATDLnnnn | lit ou écrit l’adresse du destinataire | idem |
| ATWR | sauvegarde les paramètres (sinon on perd tout quand on coupe l’alimentation) | OK si les paramètres sont bien enregistrés |
| ATCN | termine la connexion | OK si on a bien terminé |
Les commandes ATxx doivent être suivies d’un retour chariot ou \r pour les intimes et "carriage return" pour les anglophones. Pour nous qui utilisons un terminal série, c’est la valeur décimale 13.
Voici le résultat d’une session de vérification :
Vérifier la communication sans-fil
Jusque-là, rien de magique puisqu’on a utilisé une connexion filaire avec le XBee qui s’est comporté comme n’importe quel micro-contrôleur utilisant une liaison série. On va maintenant explorer le monde sans-fil avec la détection des autres modules alimentés autour de nous. Pour cela, on va utiliser une nouvelle commande AT : "ATND" comme Node Discovery ou "découverte des noeuds". Noeud désigne un module du réseau 802.15.4 sur lequel est basé le XBee.
| Commande | Rôle | Résultat attendu |
|---|---|---|
| ATND | recherche les modules XBee distant et affiche leurs informations | voir ci-dessous le détail |
Tout d’abord, précisons que le module XBee utilisé pour passer la commande ND n’est pas affiché dans le résultat, on a donc bien uniquement les modules distants. Voici ce que ça donne avec un module connecté :
Décryptons les informations affichées :
| Ligne | Valeur | Signification |
|---|---|---|
| 1 | 5678 | adresse MY |
| 2 | 13A200 | numéro de série SH (partie haute) |
| 3 | 40530CC7 | numéro de série SL (partie basse) |
| 4 | 21 | force du signal radio (RSSI) |
| 5 | ’rien’ | paramètre NI ou Node Identifier, un nom arbitraire qu’on peut donner au module |
Vérifions les informations : le numéro de série est affiché sur le dessous d’un module, voici la comparaison :

- Découverte des XBee distants
- La commande "ND" (pour Nodes Discovery) montre tous les XBee distants (donc pas celui auquel on envoit la commande). Parmi les valeurs affichées, le numéro de série hardware, comme on peut le constater.
Concernant la force du signal, on peut effectivement rappeler que les modules XBee offrent la même possibilité que le Wifi que vous avez peut être déjà testé chez vous : la puissance du signal reçu. Ici, le RSSI (Radio Signal Strength Indicator) indique 0x21 soit -33 décibels d’atténuation. Si les deux modules sont côte à côte, je lis 0x17 soit -23 décibels d’atténuation.
Le paramètre NI est intéressant si vous faites un paramétrage particulier mais que les adresses MY que vous utilisez ne vous sont pas assez faciles à mémoriser, vous pouvez alors utiliser un nom plus significatif (CAPT TEMP ou BASE ou CMD RELAIS par exemple).
PoBot
Configuration simple des XBee


Vos commentaires
# Le 29 novembre 2012 à 20:10, par seen
En réponse à : Configuration simple des XBee
Bonsoir,
j’utilise pour l’un de mes cours 5 robots de chez Easyrobotics. J’utilise Tinybootloader pour la programmation de mon Pic 16f877a. Via le câble tout fonctionne bien. Mais j’ai essayé de travailler avec des Xbee et là j’ai des problèmes d’effacement de mon bootloader ! J’ai Accouplé mes Xbee en modifiant les paramétrés MY et DL. Mais j’ai le même ID pour tous les Xbee.
Pourriez vous m’aider à résoudre mon probleme ?
Merci d’avance,
Enzo
Répondre à ce message
# Le 29 novembre 2012 à 21:45, par Julien H.
En réponse à : Configuration simple des XBee
Bonjour. Non, retournez-vous vers l’auteur de tinybootloader.
Répondre à ce message
# Le 14 février à 14:32, par Boubi
En réponse à : Configuration simple des XBee
Bonjour, je travaille sur un projet pour mon Bac STI2D. Je suis en SIN (Système d’Information et Numérique). Mon projet consiste à envoyer des données récupérées sur une voiture télécommandé à un ordinateur.
J’ai choisi pour ça les modules XBee pro série 1 (pour la distance et leur simplicité). N’y connaissant rien, j’ai essayer de me baser sur votre cours. j’ai donc pris en main les logiciel X-Ctu et Docklight (dont j’apprends chaque jour même si mon anglais n’est pas des meilleurs).
Cependant les commandes AT ne fonctionnent pas sur Docklight mais la commande démarrer "+++" me confirme une transmission. Quelle configuration ai-je pu oublier ? J’ai cherché sur d’autres forums en vain.
Merci d’avance pour votre aide et merci pour votre site.
Répondre à ce message
# Le 14 février à 14:49, par Julien H.
En réponse à : Configuration simple des XBee
Avez-vous pensé au retour à la ligne qui doit suivre une commande AT ?
Répondre à ce message