Arduino Wireless Shield XBee 802.15.4

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

Description

Ce document décrit l'utilisation d'un Arduino Wireless Shield avec des modules XBee 802.15.4.

Les XBee 802.15.4 sont aussi communément appelés "Série 1" (même si ce n'est pas une appelation commerciale officielle) pour les distingués des modules "Série 2".

Un exemple simple

Vous devriez être capable de permettre à deux Arduino équipés de Wireless shield de dialoguer ensemble dans aucune opération de configuration, simplement en utilisant les commande de communication série d'Arduino (serial).

To charger un sketch sur un Arduino avec un Wireless shield, vous devez retirer le module Xbee. Ensuite, vous pouvez charger normalement un sketch (programme) Arduino depuis l'environnement Arduino IDE.

Dans notre cas d'utilisation, chargez le sketch Communication | Physical Pixel sur une des cartes.
Ce sketch indique à la carte d'allumer la LED raccordée sur la broche 13 (pin 13) lorsqu'elle reçoit un H sur la connecxion série... et éteind la LED si un 'L' est recu sur la connexion série.

Vous pouvez tester ce programme en raccordant/utilisant la carte Arduino sur le moniteur série d'Arduino IDE (en utilisant une communication à 9600 bauds bien entendu). Tapez un H, et pressé la touche "entrée" (ou cliquez sur Send). La LED devrait s'allumer.
Envoez ensuite un L et la LED devrait s'éteindre. Si rien ne se passe c'est que votre carte Arduino ne contient probablement pas de LED (sur la carte) attachée à la broche 13 (vous pouvez vérifier l'index des cartes Arduino pour plus d'information). Si la carte ne dispose pas d'une LED sur la broche 13, vous devrez alors y brancher votre propre LED..

Une fois que vous avez téléchargé le sketch Physical Pixel et que vous êtes certains qu'il fonctionne bien: débranché la première carte Arduino de l'ordinateur. Placez ensuite le switch/interrupteur sur "Micro".

Maintenant, vous allez devoir télécharger un autre sketch sur l'autre Arduino. Assurez vous que l'interrupteur est bien placé sur USB. Ensuite charger le programme suivant sur votre Arduino:

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  Serial.print('H');
  delay(1000);
  Serial.print('L');
  delay(1000);
}

Quand le téléchargement est terminé, vous pouvez vérifier dans le moniteur série d'Arduino IDE que le programme fonctionne correctement. Vous devriez voir des alternances de H et L apparaître seconde après seconde.

Fermé votre moniteur série et débranchez ensuite votre carte. Changer l'interrupteur et positionnez le sur "Micro". Branchez maintenant la carte sur une alimentation.
Au bout de quelques secondes, vous devriez vois la LED de la première carte s'éteindre et s'allumer avec un interval d'une seconde (la LED sur la carte Arduino... pas une des LEDs présentes sur le shield XBee, ces dernières véhicule plutôt des informations relatives au module XBee).
Si c'est le cas, félicitation, votre carte Arduino fonctionne avec une connexion sans fil.

Quelques notes

Vous pouvez utiliser toutes les commandes standard du port série (Serial) avec le shield XBee. Avec l'interrupteur sur la position "Micro", les fonctions print et println enverrons les donnés vers le shield XBee et la connexion USB (ex: donc vers l'autre shield Xbee et vers l'ordinateur en même temps).
Dans cette configuration, cependant, la carte recevra des données depuis le shield XBee... pas depuis la connexion USB.

Le module Xbee placé sur le shield XBee est configuré sur un débit de 9600 bauds (par defaut). Donc, a moins de reconfiguré votre module XBee, il faut passer le paramètre 9600 lors de l'appel Serial.begin() dans le sketch.

Pour permettre à votre ordinateur de communiquer directement avec le shield XBee, placez le shield XBee sur une carte Arduino désactivée (ou sans microcontroleur) et placez l'interrupteur sur la position "USB".
Ensuite, vous pouvez envoyez et recevoir des donnée directement au module XBee depuis n'importe quel programme terminal (comme le moniteur série d'Arduino IDE). Cela permet, par exemple, de voir les données qui sont reçues par le le module XBee... données envoyées depuis un autre shield XBee (ex: pour collecter, via un réseau sans fil, les données de senseurs positionnés en différents endroits).

Désactiver un Arduino

Pour permettre à l'ordinateur de communiquer directement avec le module XBee, il faut bien entendu placer l'interrupteur sur la position "USB" mais il faut aussi désactiver le microcontroleur Arduino.

Il y a deux façons de désactivé un Arduino:

  • Retirer le microcontroleur de la carte.
  • Télécharger un programme qui désactive le micro-controleur.

Retirez le module XBee du shield XBee, placez l'interrupteur sur "USB" et charger le programme suivant sur votre Arduino en utilisant "Arduino IDE".

void setup() { }
void loop() { }

Débranchez ensuite votre Arduino, et placez le module XBee sur le shield XBee et rebrancher votre carte Arduino.

Configurer le module Xbee

Vous pouvez configurer un module XBee depsui du code fonctionnant sur une carte Arduino OU depuis un logiciel fonctionnant sur un ordinateur. Pour le configurer depuis une carte Arduino, il faut placer l'interrupteur sur la position "Micro". Pour configurer le module XBee depuis un ordinateur, il faut placer l'interrupteur sur la position "USB" et désactiver le microcontroleur (ou le retirer de la carte Arduino).

Pour passer le module en mode de configuration, vous devez lui envoyer 3 signes plus: +++ et il doit y avoir un temps d'au moins une seconde avant et une seconde après durant lequel aucun autre caractère n'est envoyé au module. Notez que cela inclus le caractère "newlines" (10) ou retour clavier (13).

Donc, si vous voulez configurer le module XBee depuis un ordinateur, vous devez utiliser un logiciel qui envoi exactement comme vous les tapez... sans attendre que pressiez la touche Enter/Entrée. Sinon il enverra les caractères '+' suivit d'un retour à la ligne (il n'y aura donc pas le delay d'un seconde absolument nécessaire après le +++ et le retour clavier qui aura été ajouté).

Lorsque vous passez en more de configuration, le module renvoi les deux caractères 'OK', suivit d'un retour clavier (la touche "Enter"/Entrée).

Dans les exemples suivant, la touche Entrée/Enter est symbolisée par <CR> ("Carriage Return" en anglais, signifiant Retour Charriot comme sur les vielle machines à écrire).

Commande envoyée Réponse Attendue
+++ OK<CR>

Une fois de le mode de configuration, vous pouvez envoyer des commande AT au module. Les chaines de commande ont la forme ATxx (où xx est le nom du paramètre). Pour lire la valeur actuelle d'un paramètre, envoyez la chaine de commande suivit de la touche Entrée/Enter. Pour écrire une nouvelle valeur dans un paramètre, utilisez la chaine de commande immédiatement suivie de la nouvelle valeur et pressez la touche Entrée/Enter (pas d'espace ni ne retour clavier entre la commande et la valeur).

Par exemple, pour lire l'identification réseau (network ID) du module qui identifie quels sont les autres modules XBee avec lesquels le module communique, il faut utiliser la commande ATID :

Commande envoyée Réponse Attendue
ATID<enter> 3332<CR>

Pour changer la valeur d'identification du réseau (network ID) du module :

Commande envoyée Réponse Attendue
ATID3331<enter> OK<CR>

Vérifiez maintenant que la nouvelle valeur soit bien prise en compte par le module XBee:

Commande envoyée Réponse Attendue
ATID<enter> 3331<CR>

A moins d'indiquer au module XBee d'enregistrer la nouvelle valeur du paramètre dans sa mémoire non volatile, le paramètre modifié sera perdu dès que le module est mis hors tension.

Pour sauver les modifications de façon permanente (dans la mémoire non volatile), vous devez utiliser la commande ATWR:


Commande envoyée Réponse attendue
ATWR<enter> OK<CR>

Pour "resetter" le module aux paramètres d'usine, il faut utiliser la commande ATRE :

Commande envoyée Réponse attendue
ATRE<enter> OK<CR>

Comme pour les autres commandes, le "reset" des paramètres ne sera permanent que si la commande ATWR est exécutée.

Références

Pour plus d'informations, vous pouvez consulter la page Arduino Wireless Shield qui accueille les modules XBee sur Arduino, mais également la page Xbee de Digi. Le texte orginal de "Arduino getting started guide" est sous licence is Creative Commons Attribution-ShareAlike 3.0. Les codes d'exemples du guide sont abandonnés au domaine public.

Où Acheter

Le Wireless Proto Shield est disponible chez MCHobby.
MCHobby dispose également d'une gamme XBee.

source: Arduino.cc

Source de cet article (tout ou en partie) issue de Arduino.CC, voir article d'origine pour licence applicable (habituellement Creative Commons Attribution-ShareAlike 3.0). Crédit arduino.cc dont MCHobby est distributeur officiel des produits.

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.