Arduino sans fil grâce aux modules Xbee

Pour pouvoir communiquer des informations par radio fréquence entre deux Arduino, il faudra utiliser un module comme le Xbee. Nous allons voir dans cet article comment fonctionne ce module et comment le mettre en œuvre.

D’abord qui est ce Xbee?

Ces modules peuvent être utilisés avec un microcontrôleur via sa carte d’interface pour Arduino ,  mais ils peuvent fonctionner seuls .Ils disposent de 6 entrées analogiques et de huit entrées numériques dont ils peuvent transmettre l’état seul si les modules sont configurés correctement .

Les modules RF 802.15.4 XBee et XBee-PRO pour OEM sont des solutions embarquées offrant une connectivité sans fil aux terminaux finaux. Ces modules exploitent le protocole IEEE 802.15.4 pour une mise en réseau point-à-multipoint ou point-à-point rapide. Ils conviennent aux applications hauts débits nécessitant une faible latence et des délais de communications prévisibles. Il existe plusieurs versions de Xbee repartie en 2 gammes

La version standard

Module XBee série 1

0003- XBEE REDOHM– Tension 3.3V
– Consommation 200 mA
– Puissance: 1 mW
– Portée moyenne:  30 m en intérieur/ 100 m en extérieur
– Sensibilité en réception: -92 dBm
– Fréquence: 2,4 GHz
– Dimensions: 28 x 25 x 10 mm
– Poids: 4 g

La version pro

XBee Pro 60mW fil Antenne – série 1 (802.15.4)

0002- XBEE REDOHM– Tension 3.3V
– Consommation 215 mA
– Sortie de 60 mW
– Portée de 1500 en extérieur
– 6 broches entrée analogiques
– 8 broche d’entrée numériques
– 1 cryptage sur 128 bits

Attention vérifier les lois locales en matière de communication radio

Maintenant rentrons dans le vif du sujet !

Tout d’abord, pour pouvoir tester la partie émettrice indépendamment de la partie réceptrice, il est préférable de s’équiper du dongle USB Explorer de sparkfun. Celui-ci permet d’accueillir le module Xbee et de le brancher directement sur un PC. On peut alors, depuis l’application XCTU, monitorer les communications sans avoir à coder les deux parties d’un coup. C’est un gros avantage pour pouvoir débugger séparément l’émetteur du récepteur.

Si vous ne voulez pas investir dans ce dongle, vous pouvez ruser : Mettez votre Xbee sur Arduino, envoyez un programme vide dans la carte Arduino (Setup() et Loop() ne doivent pas contenir de code) et votre arduino fera office de dongle. Cette technique peu pratique vous permettra au moins de vous éviter l’achat d’un dongle mais en revanche ce système est contraignant.

Le matériel

Dans nos exemples, nous utilisons un arduino Uno avec un module xbee S1 et un shield xbee de chez Arduino (nous avions testé avec le shield xbee shield V2.0 de chez seeedstudio mais la réception n’était malheureusement pas bonne alors qu’avec le même programme, même câblage, tout se passe parfaitement avec le shield de chez Arduino.

Au niveau câblage, nous avons fait le choix de câbler le shield plutôt que de le monter directement sur l’arduino. Cela a pour effet de ne pas avoir à switcher les jumpers pour passer du mode programmation au mode xbee (la fameuse contrainte du port série partagé entre l’envoi du code source et l’utilisation par le module xbee). Il suffit donc de raccorder l’alimentation 5v/gnd et ensuite de relier le pin RX du shield xbee au pin D2 de l’arduino et le pin TX du shield xbee au pin D3 de l’arduino.

Utilisation de XCTU

Adaptateur Xbee-USB  basé sur le convertisseur FT231X équipé d’un support Xbee ou compatible permettant d’ajouter une liaison sans fil à votre PC pour la communication avec une carte Arduino ou compatible. Le module est compatible avec les tous les modules Xbee, incluant les versions des séries 1, 2.5, standards et pros.

0004- XBEE REDOHM

Il faut donc placer un module xbee sur le dongle USB Explorer de sparkfun puis relier celui ci à votre PC. Il faut également installer le logiciel XCTU sur votre PC (disponible ici).

Lancez XCTU et cliquez sur l’icone en haut à gauche avec le signe +. Il devrait directement vous placer sur le bon port com, validez en cliquant sur finish. Vous verrez alors apparaître dans la partie de gauche votre module xbee.

A partir de ce moment, vous pouvez cliquer sur l’icone en forme d’écran avec le signe > à l’intérieur qui permet de passer au mode console.

A ce moment là, cliquez sur l’icone montrant deux prises face à face (encadré en rouge) et vous être alors connecté au module xbee. A partir de ce moment là, tout ce que le module reçoit sera affiché dans le logiciel et tout ce que vous taperez dans le logiciel sera transmis à l’autre module xbee connecté.

xctu

Communiquer avec un autre Arduino – la partie emetteur

Avec un arduino et un autre module xbee, nous allons transmettre des données au logiciel XCTU. Pour cela, insérez le programme ci dessous dans l’arduino et lancez le. Vous devrez alors constater l’apparition de caractères dans le logiciel XCTU.

Voici les données transmises par l’arduino et reçues sur le PC :

xbee xctu reception

 Communiquer avec un autre Arduino – la partie récepteur

Nous allons maintenant voir le code nous permettant de recevoir les données.

Lancez l’arduino, lancez XCTU en mode console puis à l’intérieur de ce dernier, tapez du texte (encadré en rouge ci dessous). Vous devriez voir apparaître ce même texte dans le moniteur série de l’arduino.

xctu recepteur

A partir de là, il suffit d’imaginer un système de trame pour transmettre plusieurs informations d’un arduino à un autre (valeurs de bouton, potentiomètre…)