Tutoriel : installation et configuration de BLIP TinyOS-2.1.0
Ce tutoriel à été réalisé par des étudiants de 1ère année master Technologie de l'Internet de l'université de Pau dans le cadre d'un projet sur les réseaux de capteurs sans-fil, encadré par M.Pham professeur à l'UPPA.
Afin de pouvoir bénéficier d'un environnement complet et opérationnel, vous pouvez télécharger l'image VMware sur
le site d'Arik Sapojnik à
l'adresse suivante : http://nap.cse.bgu.ac.il/~ariksa/UbunTOS_NAP.html.
Cette image contient :
- Ubuntu 9.04 (deux utilisateurs: root et nap)
- TinyOS-2.1.0
- Un environnement TinyOS fonctionnel
- Eclipse 3.5.1 muni du plugin TinyOS
Ce tutoriel est conçu pour le matériel suivant :
- L'image VMware présentée précédement
- Une carte d'interface MIB520 connectée en USB
- Des capteurs CrossBow modèle MicaZ
Pour toutes différences d'environnement ou de matériel, vous pouvez adapter ce tutoriel en conséquence.
Installation du routeur de bord
L'application fournissant une interface IEEE 802.15.4 et gérant l'IP se trouve dans le dossier /opt/tinyos-2.1.0/apps/IPBaseStation. Il faut l'installer sur le capteur qui restera connecté en USB gràce au MIB520 afin d'établir un pont entre la machine et le noeud.
Cette opération compile le programme et flash le capteur directement. Il est également possible de seulement compiler le programme puis de flasher sans le recompiler en operant comme suit.
$ make blip reinstall mib520,/dev/ttyUSB0 micaz
Une fois IPBaseStation installé, il faut compiler le driver de routage (serial forwarder), pour cela procédez comme suit:
$ ./bootstrap
$ ./configure
$ make
Si cette étape echoue, il se peut qu'il manque les paquets automake et autoconf sur votre distribution.
Répétez ensuite cette étape pour le driver.
$ ./bootstrap.sh
$ ./configure
$ make
Si toutes ces étapes ont réussi, alors le driver pour le routeur de bord est bien construit. Vous pouvez le lancer en allant dans /opt/tinyos-2.1.0/support/sdk/c/blip et en tapant :
Configuration du routeur de bord
Lors du démarrage du routeur de bord, sa configuration est chargée depuis le fichier /opt/tinyos-2.1.0/support/sdk/c/blip/serial_tun.conf.
# configure the address your router will advertise to the subnet, and
# which network interface to proxy neighbor advertisements on.
#
# set the debug level of the output
# choices are DEBUG, INFO, WARN, ERROR, and FATAL
# log DEBUG
# set the address of the router's 802.15.4 interface. The interface
# ID must be a 16-bit short identifier.
addr fec0::64
# the router can proxy neighbor IPv6 neighbor discovery on another
# interface so that other machines on the subnet can discover hosts
# routing through this router. This specifies which interface to proxy
# the NDP on.
proxy lo
# which 802.15.4 channel to operate on. valid choices are 11-26.
channel 15
Ici l'adresse IPv6 du routeur sera donc fec0::64 (adresse réduite) et opèrera sur le canal 15.
Le canal du routeur doit être
identiques aux canaux des noeuds pour pouvoir communiquer.
Installation d'un noeud
Une fois le routeur de bord installé et configuré, vous pouvez installer un noeud. Pour cela TinyOS fournit une application de test dans le dossier /opt/tinyos-2.1.0/apps/UDPEcho. Cette application permet notamment de tester le ping, afin de voir si le noeud est bien dans le réseau. Flashez donc le capteur comme précédement mais avec le programme UDPEcho.
Ou bien :
$ make blip reinstall.ID mib520,/dev/ttyUSB0 micaz
ID est l'identifiant du noeud, il doit être unique. L'ID est par defaut 1 s'il n'est pas précisé lors de l'installation
Test
Maintenant que le routeur de bord et un noeud sont installés, assurez-vous d'avoir lancé le routeur comme vu précedement. Puis testez la communication IP avec le capteur avec le ping6 ou tracrt6 (l'installation de paquets sera peut être nécessaire)
Comme vous avez pu le remarquer l'adresse IPv6 du noeud est la concaténation du préfixe indiqué dans le fichier serial_tun.conf et de l'ID du noeud.
On remarque que pour atteindre fec0::ID on passe bien par fec0::64 le routeur de bord.
IP Oscilloscope
Pour aller un peu plus loin, nous vous proposons d'installer l'application que nous avons implémentée.
Une fois l'archive téléchargée, extrayez son contenu dans le dossier tinyos-2.1.0/apps. Cette application permet de récupérer le voltage du capteur en IP, une interface Java est fournie afin de visualiser en temps réel les données.
Cette application peut être flashée sur le noeud et nécessite que IPBaseStation soit installé sur le capteur relié à la machine.
Une fois les capteurs prêts, lancez le driver et placez vous dans le dossier IPOscilloscope/java. Vous pouvez vous assurer que le ping fonctionne
bien sur le noeud.Compilez le programme java et lancez
l'application.
$ Client fec0::ID
Quelques liens utiles
Divers tutoriels sur le site de documentation de TinyOS : | http://docs.tinyos.net/index.php/TinyOS_Tutorials |
La fiche technique des capteurs MicaZ : | http://www.xbow.com/Products/Product_pdf_files/Wireless_pdf/MICAz_Datasheet.pdf |
Le site d'Arik Sapojnik avec l'image VMWare : | http://nap.cse.bgu.ac.il/~ariksa/UbunTOS_NAP.html |
Nous contactez
Frédéric Delgado : | delgado.frederic@gmail.com |
Cédric Laborde : | king_xaero@hotmail.fr |