TP 5: Alterner période d'activité et
période d'inactivité, impact sur les communications
Auteur: Congduc Pham, UPPA
TRES IMPORTANT: Avant toute
manipulation pour enlever des composants électroniques des
capteurs, il faut que le capteur soit éteint (Libelium
Waspmote) ou non alimenté par le port USB par exemple (cas
des Arduino et iMote2)
Nous allons utiliser les
Arduino pour ce TP5.
Au niveau des modules XBee, avec un coordinateur
Dans une première étape vous pouvez utiliser les
modules XBee pour définir des période
d'activité et des période d'inactivité comme
expliqué ici.
Le manuel des modules XBee peut être
téléchargé ici.
Vous pouvez configurer les modules XBee à partir de votre
programme Arduino en envoyant des commandes AT. Afin de ne pas
changer de manière "permanente" la configuration, vous
n'enverrez pas la séquence "ATWR" et comme cela les
modifications seront effacées lorsque le module XBee ne sera
plus sous tension.
Au niveau de l'application, sans coordinateur
Vous allez ensuite ne pas utiliser la fonctionalité Cyclic
Sleep des modules XBee pour implémenter au niveau application
des phases d'activité et d'inactivé. Chaque
binôme travaillera sur son capteur mais vous devrez interagir
pour définir ensemble le format des paquets que vous
utiliserez. Il est plus simple d'utiliser un format de type
chaîne de caractères. Exemple: "A5#I6#" pour indiquer
que votre durée d'activité est de 5s et votre
durée d'inactivité est de 6s.
Lorsque vous êtes supposés être en phase
d'inactivité, vous ne devez réagir à aucune
arrivée de paquet. Le but est de faire en sorte de ne pas
perdre de paquet lorsque celui est envoyé alors que vous
êtes en inactivité. Pour cela, c'est la partie
émission qui doit contenir le contrôle
nécessaire: par exemple, vous pouvez vous inspirer des
approches à préambule pour vous assurer qu'un paquet
sera finalement reçu par un récepteur donné au
bout d'un temps fini.
Vous implémenterez aussi une approche synchronisée
dans laquelle les capteurs vont s'organiser au démarrage pour
que l'un d'entre eux définisse les périodes
d'activité et d'inactivité qui seront communes aux
autres capteurs.
Encore une fois, chaque groupe implémente sur son capteur le
fonctionnement que vous allez définir ensemble. Vous testerez
et validerez chaque étape pour produire au final des noeuds
capables de se synchroniser par rapport à des périodes
d'activité et d'inactivité tout en communicant sans
perte de paquets, mais bien sûr avec une plus grande latence
due aux période d'inactivité.