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 :

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).
Vos commentaires
# Le 21 juillet 2013 à 23:59, par maxime
En réponse à : Configuration simple des XBee
Bonjour,$
Je travaille actuellement sur un projet a base d’arduino et de modules Xbee. J’ai découvert il y a peu une commande AT : ATND, celle ci permettant de trouver les xbee aux alentour faisant parti du meme réseau. Mon but et d’utiliser cette commande via le module maitre : coordinateur afin de voir si un module en particulier est à porter : ATNDXXXXX avec xxxxx le node identifier du module en question. Lorsque je fais cette commande sous XCTU je recois bien la réponse, mais quand je fais cette commande via arduino je ne sais pas comment récupérer les informations renvoyées. J’ai pourtant tester la fonction SerialReadBytes qui permet de stocker dans un tableau ce que l’on lit sur le serial avec la longueur désirée connaissant la longueur de la réponse.
Mes Xbee son en mode AT (l’API ne convient pas pour certaines raisons). Y’a t’il un processus à suivre ?
je fais bien le +++ suivi d’une seconde de delay pour etre sur de passer en mode AT. voici une partie du code :
Serial.print("+++") ;
delay(1020) ;
Serial.print("ATND" + horses_name[j] + "\r") ;
while(!Serial.available()){}
//Serial.readBytes(buffer,43) ;
buffer[0] = Serial.read() ;
Serial.print("ATCN\r") ;
Serial.flush() ;
Merci de votre intérêt.
# Le 20 août 2015 à 13:46, par Loup phoque
En réponse à : Configuration simple des XBee
Ton serial.flush() doit avoir pour argument l’ATND du module xbee détecté. Sans ça, ton arduino ne sait pas quelle réponse lire, c’est normal que tu n’arrives pas à sortir les infos.
# Le 11 février 2017 à 22:54, par ans
En réponse à : Configuration simple des XBee
???
Depuis quand Serial.flush() admet il un argument ?
Peux tu préciser ?
# Le 17 février 2017 à 14:02, par Eric P.
En réponse à : Configuration simple des XBee
Ca me surprend également car flush ne concerne que la gestion du stream fichier, et ne sait absolument rien du contexte (ici le fait que ce stream concerne la communication avec un XBee).
Peut-être que l’auteur de ce commentaire pourra nous en dire plus.
Répondre à ce message
# Le 16 février 2014 à 21:59, par ROMUALD
En réponse à : Configuration simple des XBee
Bonjour,
voila après avoir lu votre article, je me suis décider à jouer avec des module xbee.
Mais j’ai un problème de configuration, car je ne sais pas modifier le paramètre MY de mes xbee.
Pourriez-vous me diriger pour résoudre mon problèmes.
j’utilise xctu 6.
bien à vous,
# Le 18 février 2014 à 11:49, par Eric P.
En réponse à : Configuration simple des XBee
Bonjour,
Ce paramètre est avec les autres dans la liste des registres auxquels XCTU donne accès. De mémoire, c’est même l’un de premiers de la liste.
Cordialement
Répondre à ce message
# 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
# 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.
# Le 14 février 2013 à 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.
# Le 14 février 2013 à 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