TP 3: Communications entre capteurs

Auteur: Congduc Pham, UPPA

TRES IMPORTANT: Avant toute manipulation pour enlever des composants électroniques des capteurs, il faut que le capteur soit éteint ou non alimenté par le port USB par exemple

Dans ce TP vous allez mettre en oeuvre des communications entre les capteurs. Tous les capteurs ont une radio 802.15.4 avec un débit binaire de 250kbps. Au niveau applicatif, les communications s'effectuent avec une API spécifique.

Informations préliminaires sur les modules XBee pour les cartes Arduino et les capteurs Waspmote

Les cartes Arduino ont une connectivité 802.15.4 grâce à un module XBee de chez Digi.


Avant de commencer, vous pouvez lire cette petite présentation synthétique sur le module XBee. Tous les modules XBee sont configurés pour les TPs avec la configuration suivante en la liaison série:
Ensuite, ces modules ont été configurés avec des commandes AT de la manière suivante:

atid3332 (PAN ID 0x3332)
atchc (channel 0x0C)
atap2 (API mode 2)
atbd5 (38400 baud)
atee0 (no encryption)
atmm2 (mac mode 2, default 802.15.4 with ack)
atmyffff (no 16-bit address)

Ce qui veut dire que les modules XBee sont tous dans le réseau 0x3332, sur le canal 0xC, utilisent le mode mac 2 (802.15.4 avec acquittement), désactivent les adresses 16-bit, n'utilisent pas d'encryption et utilise le mode API 2 (API en mode paquet). Pour l'instant, ne faites aucune modification de la configuration par défaut.

Plus de détails peuvent être trouvés dans la documentation du module XBee fournie par Digi.

Communication avec des Arduino MEGA 2560

Les Arduino MEGA2560 utilise le module Xbee qui est connecté par le biais de la 'XBee wireless shield'.

Il est possible d'utiliser les commandes AT pour envoyer des données à la radio mais ce mode de fonctionnement n'est pas pratique du tout et nous allons utiliser la librairie de communication xbee-arduino.

Installation de la librairie de communication:

Premiers pas avec des exemples simple de communication:

  1. Regarder ces transparents qui explique le fonctionnement de ces module XBee avec les Arduino.
  2. Récupérer l'archive de Arduino_tutorial_Xbee_Send et mettez le dans votre répertoire sketch.
  3. Avec l'IDE, ouvrez cet exemple, étudiez le et programmer un capteur Arduino avec ce programme
  4. Récupérer l'archive de Arduino_tutorial_Xbee_Receive et mettez le dans votre répertoire sketch.
  5. Avec l'IDE, ouvrez cet exemple, étudiez le et programmer un capteur Arduino avec ce programme
  6. Avec le Send et le Receive, mettez vous par pair, changer les adresses de destination, changer le contenu de ce qui est envoyé et vérifier que vous recevez bien.
  7. Répéter les étapes 3-6 avec Arduino_tutorial_Xbee_SendBinary et  Arduino_tutorial_Xbee_ReceiveBinary   
  8. (optionnel) En vous inspirant de ces exemples, écrivez un programme d'envoi et de réception de données plus complexes: flottant, structure,... Un capteur enverra les données, un autre, relié à l'ordinateur écrira sur le port série les données reçues. Vous pouvez utiliser le SerialMonitor de l'IDE ou bien minicom ou cutecom sous Linux pour afficher les données série reçues (sur le port /dev/ttyACM0). L'avantage de cutecom est qu'il permet d'afficher les données en hexadécimal pour le déboggage.

Pour aller plus loin