You are on page 1of 12

MOREGGIA Thomas Encadrant : Cyril Labb

M1 INFO, IMAG Equipe SIGMA, LIG

TER : Intgration de matriel dans un environnement existant


Rsum. Ce rapport de TER prsente limplmentation, sur des capteurs sans fils et sur un hte de type PC, de programmes permettant lvaluation locale de requtes sur le flux de donnes produit par ces capteurs. Ces fonctions permettront dans le futur dintgrer ce type de capteur un intergiciel de gestion de flux de donnes de capteurs htrogne [1] appel SStreaMWare et son extension qui permet ladministration et le paramtrage distance des capteur, XSStreaMWare. Mots cls : capteurs, interrogation de flux de donnes, Sensinode, Nodeview, valuation de requte continue Keywords : sensors, data stream querying, Sensinode, Nodeview, continuous query evaluation

1 Introduction
Lvolution des technologies de linformation et de la communication tant oriente vers la miniaturisation du matriel, on en est aujourdhui au stade du capteur sans fil, systme autonome ayant principalement des fonctionnalits de mesures physiques et de radio diffusion. Dans ce contexte apparaissent des systmes de capteurs htrognes. Ces capteurs possdent des origines, des capacits et des caractristiques diverses. En effet, ils peuvent mesurer de nombreux phnomnes (temprature, son/images, pression, radio-identification, acclration), fonctionner grce des systmes dexploitation embarqus diffrents (FreeRTOS, JavaME, TinyOS) et communiquer par des protocoles varis (6LoWPAN, Zigbee, Bluetooth). Cette htrognit impose la mise en uvre de solutions spcifiques pour linterrogation et la gestion des donnes de capteurs. Cest ici quinterviennent SStreaMWare et XSStreaMWare, deux logiciels conus par lquipe SIGMA du LIG, qui permettent dhomogniser lutilisation dun ensemble de capteurs htrognes. Chaque capteur est vu comme un flux de donnes et des requtes peuvent tre construites afin de ne rcuprer que linformation intressante. Il faut donc que le capteur possde le programme lui permettant de fonctionner comme un valuateur de requtes continues pouvant tre de simple interrogation ou des modifications des paramtres du capteur. De plus il faut un adaptateur ou un proxy pour chaque type de capteur qui permet (X)SStreaMWare de communiquer avec linterface native du capteur ou de remplacer celle-ci.

Lobjectif de ce TER est de prendre en main le DevKit des capteurs Sensinode puis de crer les programmes ncessaires pour quils soient capables dvaluer en local les requtes de configuration et une partie des requtes dinterrogation telle que la slection et la projection. Ceci permettra dans le futur dintgrer les capteurs Sensinode, premire gnration, (X)SStreaMWare. Dans la suite, la section 2 prsente lenvironnement matriel et logiciel, la section 3 expose le travail ralis et les problmes rencontrs alors que la section 4 porte sur les rsultats observs puis la conclusion et les perspectives font lobjet de la section 5.

2 Le DevKit Sensinode et la gestion de donne des capteurs


Lenvironnement existant est compos du matriel, expliqu en section 2.1 et des diffrents logiciels, prsents en 2.2.

2.1 Environnement matriel : le DevKit Sensinode


2.1.1 Les capteurs Sensinode N711 Les capteurs Sensinode N711 (fig.1, en annexe) utilisent un module radio RC2301 de Radiocraft, bas sur un processeur CC2431 de Texas Instrument. Ils possdent un senseur de temprature et de lumire. Le systme dexploitation est FreeRTOS, un Real Time Operating System pour microcontrleur et ils sont aliments par deux piles AA (LR06) ou par linterface de programmation. Ils possdent deux LEDs, deux boutons, une interface de programmation 6 pins, et une interface de debug 6 pins. Les sources, en C, fournies par Sensinode implmentent les fonctionnalits de base du RC2301 (radio-transmission, CAN, debuging) et la routine ne fait que chercher un routeur et envoyer les donnes des senseurs. Le programme, appel NanoStack, regroupe le portage de FreeRTOS, les implmentations des fonctions matrielles et le programme principale. 2.1.2 Le routeur Sensinode N601 La seule fonction du routeur (fig. 2, en annexe) est de faire le lien entre les capteurs et lordinateur sur lequel il est branch par USB. 2.1.3 La devboard Sensinode D210 La devboard (fig. 3, en annexe) permet de programmer et dalimenter un capteur par le port 6 pins PRG (PRoGram).

Le DevKit Sensinode est donc compos de quatre capteurs, dun routeur et dune devboard et leurs fonctionnements est rsum sur la figure 4 en annexe.

2.2 Environnement logiciel


2.2.1 NodeView NodeView est le logiciel fourni par Sensinode pour communiquer avec les capteurs via le routeur. Dans sa version de base il ne fait que lire les donnes envoyer par les capteurs. Les sources, en Java, quant elles permettent de dcouvrir un dbut dAPI partiellement implment dont le potentiel nest que faiblement utilis par le matriel et Nodeview. 2.2.2 SStreaMWare SStreaMWare, dvelopp par lquipe SIGMA du LIG et notamment par Levent Gurgen dans le cadre de sa thse de doctorat [4], est un intergiciel de gestion de flux de donnes de capteurs htrognes [1]. Cette solution considre donc un ensemble de capteurs comme une base de donnes pouvant rpondre des requtes relationnelles. Elle est dite hybride car mi-chemin entre un systme totalement distribu et un systme compltement centralis. Les capteurs tant htrognes, il existe, la base, un logiciel par type de capteur, problme palli grce ladoption dune architecture hirarchique par SStreaMWare. Celle-ci dfinie quatre niveaux : Les capteurs, les proxies/adaptateurs, les passerelles et les sites de contrle prsents sur la figure 5. Le niveau capteurs, reprsentant le capteur physique, est le plus bas de larchitecture, il est contrl par SStreaMWare via adaptateur ou proxy. Le niveau proxies/adaptateurs correspond au logiciel qui communique avec le capteur et en connait le fonctionnement interne. Il peut tre conu spcifiquement pour SStreaMWare ou tre fourni par le constructeur dans quel cas il faut un adaptateur. Le niveau passerelles est la plateforme logicielle qui groupe un ensemble de proxies/adaptateurs tant dans une zone dfinie de lenvironnement (pice, tage ). Ce niveau gre la distribution des oprations sur les capteurs de sa zone. Le niveau sites de contrle est le plus haut niveau de larchitecture, cest lui qui reoit les requtes formules par lutilisateur et les adresse, aprs analyse, aux passerelles. Cet ensemble de composants permet de traiter les donnes provenant des capteurs comme un flux continu sur lequel on peut excuter des oprateurs relationnel. La rpartition des oprateurs de la requte est transparente pour lutilisateur.

Fig. 5. Vue gnrale de larchitecture oriente services [1]

2.2.3 XSStreaMWare XSStreaMWare est une extension de SStreaMWare prenant en charge la gestion et ladministration de capteurs distance toujours sous forme de requtes.

3 Gestion des donnes, des configurations et des oprateurs


3.1 Concepts gnraux
3.1.1 Donnes La fonctionnalit de base de tout capteur est la transmission, avec ou sans fil, des donnes mesures par les senseurs embarqus ainsi que, dans la plupart des cas, de la date prcise de la mesure. Cest donc, au niveau de la requte, une simple slection sur toute la vue du capteur. En gnral, cette fonctionnalit est dj prsente sur le programme fourni par le constructeur. Ensuite vient lajout de mesures qui ne viennent pas des senseurs mais de sources diffrentes comme la tension en entre du capteur ou la temprature interne du microcontrleur. Cependant cette modification ne change pas la requte mais uniquement la vue. 3.1.2 Configuration Pour tre intgr XSStreaMWare, un capteur doit pouvoir tre administr distance, il doit donc fournir les outils adquats. Les taches dadministration sur un capteur peuvent tre la rcupration de proprits intrinsques au capteur, comme son identifiant ou son type, ou la modification de paramtres influant sur son fonctionnement tel que le dlai ou le taux dchantillonnage des mesures. On a affaire ici des requtes de type configuration qui ne vont plus sintresser au but primaire du capteur mais sa gestion. Cela constitue donc une modification profonde de la

nature du capteur car il ne fait plus quenvoyer un flux de donnes mais reoit aussi des instructions changeant son comportement pour ladapter des besoins spcifiques. 3.1.3 Evaluation de requte La dernire tape dans lapproche du schma dcrit par SStreaMWare est lvaluation distribue de requte sur les diffrents niveaux de larchitecture. Un des intrts principaux de cette distribution tant dutiliser les fonctions de transmission, les plus couteuses en nergie, de manire minimale en demandant au capteur uniquement les informations pertinente pour une requte donn. Le couple proxy/capteur va se charger des oprations de slection et projection en utilisant, par exemple, un systme de contraintes.

3.2 Dtails de limplmentation


Ici sont prsents des points importants de limplmentation ralise sur les capteurs Sensinode, savoir le threading et lvaluation de requte ainsi que la modification de Nodeview pour lutiliser en tant que proxy. 3.2.1 Threads Le portage de FreeRTOS implant sur les capteurs Sensinode supporte lexcution de plusieurs taches en parallle. Deux tches ont t cres, une qui se connecte au routeur puis envoie toutes les n secondes les rsultats de lvaluation des requtes de donnes, lautre qui attend en permanence des requtes de configuration. La deuxime tche a bien sr besoin de la connexion au routeur pour tre utile, elle est donc synchronise de manire simple grce une variable qui indique si la connexion au routeur est prte, variable qui est modifie par la premire tche. En plus de la sparation par tche de la rception et de lenvoi, ces deux fonctions utilisent galement un socket diffrent utilisant un port diffrent afin dviter toute possibilit de conflit. 3.2.2 Evaluation Afin de permettre lvaluation en local doprateurs tels que la slection ou la projection, un type structur pour les donnes a t mis en place sur les capteurs Sensinode. Celui contient le type de la donne (lumire, temprature, tension), sa valeur, le type de contrainte (gale, inferieure ou suprieure), le seuil de cette contrainte, qui sera compar la valeur, si la donne est requise ou non par la requte et lindication du rsultat de son valuation.

Le type structur pour les donnes :

typedef struct { uint16_t value; //Valeur de la donne uint16_t thrshld; //Valeur de la contrainte, seuil int8_t constraint; //Contrainte; 0 : = , 1 : > , 2 : < ,autre : inactive bool req; //Donne requise? bool pass; //Rsultat de lvaluation uint8_t type; //Type de la donne, 0x01: tension, 0x10: temprature, 0x11: lumire, 0x3f: ID }data_t; Grce ce type de donnes la fonction dvaluation opre la manire dune assertion en comparant le seuil la valeur avec la contrainte et en stockant le rsultat dans la structure. De cette manire les donnes requises sont envoyes par le capteur uniquement si lvaluation de toutes les donnes est positive. 3.2.3 Nodeview Le code de base de Nodeview, en Java, est constitu de 29 classes, en omettant les inner classes, sans distinction entre le noyau fonctionnel et linterface graphique mais qui fournit, entre autres, les fonctionnalits pour pouvoir communiquer avec les capteurs Sensinode via le routeur. Cest--dire ce qui est ncessaire la construction du proxy pour SStreaMWare. Le plus gros du travail a donc t de supprimer linterface graphique en gardant lensemble des fonctionnalits puis didentifier les classes inutilises par Nodeview et celle inutiles pour le proxy. Il a ensuite fallu dtecter o les informations des capteurs arrivait puis crer une classe pour les stocker sous une forme convenable et finalement crire les mthodes pour pouvoir communiquer avec le capteur, ce qui a t possible grce la mthode, non documente, sendDataToNode qui permet denvoyer un paquet un des capteur.

3.3 Problmes et difficults rencontrs


La difficult majeure de ce TER a t la prise en main du DevKit des capteurs Sensinode. Cette technologie est exclusive dans le sens o le grand public na pas accs, en gnral, ce type de matriel. Datant de 2007, le DevKit Sensinode est relativement ancien, par rapport aux progrs effectus dans ce domaine ces dernires annes, et dont les spcifications sont dfinies de manire approximative surtout au niveau des programmes qui laissaient envisager des fonctionnalits qui ntaient,

finalement, pas implmentes ou non utilisables. De plus la documentation fournie, partiellement complte, voire, dans de rare cas, fausse, napporte aucun renseignement sur les capacits relles du matriel. Cest donc dans ce contexte qua commenc le vritable travail de recherche, savoir acqurir suffisamment de connaissances pour comprendre, utiliser et modifier les capteurs et Nodeview. Une autre difficult importante a t la comprhension du convertisseur analogique-numrique (CAN) du capteur. En effet les senseurs mesurent une valeur physique et la transforment en courant lectrique qui est ensuite converti en valeur numrique par le CAN du microcontrleur. Si le programme fourni par Sensinode donnait une temprature peu prs cohrente, la luminosit, elle, ne voulait rien dire. Il a donc fallu dcouvrir le fonctionnement du CAN afin de modifier le traitement du rsultat quil retournait pour en retirer une valeur significative, le fonctionnement du CAN tant dcrit dans la documentation du CC2430 de Texas Instrument (214 pages en anglais) non fournie par Sensinode alors que le processeur utilis est un CC2431.

4 Analyse des rsultats


Ici sont prsents les rsultats de la mesure de la tension lentre du capteur, les modifications faites sur le traitement de la valeur de la luminosit ainsi que le fonctionnement de lvaluateur de requtes.

4.1 Tension
La mesure de la tension lentre du capteur est intressante pour dterminer un niveau de batterie restante. La figure 6 prsente la tension lentre dun capteur Sensinode aliment par piles jusqu ce que le niveau dnergie soit trop faible pour faire la liaison avec le routeur. La courbe obtenue montre une chute rapide (six minutes), ce qui est caractristique de la tension dun accumulateur qui se dcharge. Lunit utilise ici est arbitraire et ne reprsente quune valeur proportionnelle la tension en volt.

Fig. 6. Mesure de la tension lentre jusqu puisement des piles (6h)

4.2 Luminosit
Le traitement de la valeur de la luminosit ayant t modifi il est important de comparer les rsultats. La figure 7 prsente les mesures de luminosit sur prs de 24h tels quelles taient calcules par le programme initial fourni par Sensinode dun capteur aliment sans piles. On remarque que daprs des valeurs types [2] et le fait que ce jour-l, le soleil se couchait 21h10 et se levait 5h57, les mesures sont incohrentes et que la valeur maximale est aux alentours de 700 lux alors que le senseur peut mesurer de 1 8000 lux. De plus la forme de la courbe fait penser un dpassement de capacit dune variable ce qui fausserait forcment le rsultat.

Fig. 7. Mesure de la lumire sur 24h avec le programme dusine.

La figure 8 quant elle prsente 24h de capture de la lumire aprs modification de son traitement. En effet, daprs la documentation du senseur de lumire et du

Fig. 8. Mesure de la lumire sur 24h avec le programme modifi.

processeur, des changements ont t faits afin que les mesures obtenues soient justes. Les rsultats sur la figure 8 sont bien plus cohrents que la figure 7.

4.3 Evaluation
La figure 9 reprsente les rsultats dun capteur qui a reu la requte Envoyer toute les 2 secondes la temprature et envoyer la luminosit si la temprature est infrieure ou gale 303 kelvins . On remarque quaucune mesure nest enregistre jusqu ce que la temprature atteigne 303 kelvins.

Fig. 9. Rsultat de la requte Lumire si temprature infrieure ou gale 303 Kelvin

5 Conclusion et perspectives davenir


5.1 Bilan
Ce TER a donc t le cadre dun rel apprentissage par la recherche du fait de lutilisation de matriel peu courant et de la volont dy implmenter des concepts nouveaux. La dmarche gnrale a consist en la dcouverte du matriel et des programmes, leur comprhension puis leur modification.

Les ralisations de ce TER sont les excutables dploys sur les capteurs, la modification de Nodeview pour servir de proxy et les documents tirs des expriences tels que le complment linstallation de lenvironnement de travail, le suivi des capteurs et de leurs programmes ou les rsultats des mesures.

5.2 Perspectives
Les possibilits de dveloppement futur sont nombreuses et varies, la plus vidente etant lintgration complte (X)SStreaMWare. Une ide intressante est limplmentation dun type de donnes gnrique grce une structure avec valeur, nom, type de la donne etc. Cela permettrait dajouter des nouveaux types de donnes distance sur le capteur, de proposer une valuation automatique pour tous les types et de vrifier lexistence dun type de donnes sur le capteur. Un autre aspect utile serait de pousser la recherche dconomie dnergie grce des algorithmes spcifiques tels que le clustering de capteurs [3]. Sur un concept diffrent, le microcontrleur des capteurs Sensinode, le CC2431 possde un location engine qui permet de reprer spatialement les capteurs entre eux. Cela pourrait avoir des applications pratiques pour calculer la puissance de radiotransmission minimale entre deux nuds par exemple.

Rfrences
1 2 3 Grgen, L., Roncancio, C., Labb, C., Olive, V., Donsez, D. : SStreaMWare : un intergiciel de gestion de flux de donnes de capteurs htrognes. Article de Wikipedia : Lux (unit), http://fr.wikipedia.org/wiki/Lux_(unit)#Application Sagen, A., Labb, C., Gaber., M, Krishnaswamy, S., Waluyo, A., Loke, S. : A Data Clustering Approach to Energy Conservation in Wireless Sensor Networks. (2010) Grgen, L. : Gestion grande chelle de donnes de capteurs htrognes. (2007)

10

ANNEXES

Fig. 1. Capteur Sensinode N711 (premire gnration)

Fig. 2. Routeur Sensinode N601

11

Fig. 3. Devboard Sensinode D210

Fig. 4. DevKit Sensinode en utilisation

12

You might also like