Académique Documents
Professionnel Documents
Culture Documents
Mme Nouho
Plan du cours
1- Les capteurs
– Architecture générale
– Étude d’un processeur (ARM)
– Problème de l’énergie
2- Le logiciel
– Systèmes d’exploitation
• TinyOS
• Squawk et Android
– Applications
• nesC (TinyOS)
• Java (Squawk)
-Présence
- Position
- Environnement
- …
• Dans le deuxième cas on mise sur la puissance du langage associé (java) pour pallier
la légèreté du SE.
• Ce type de solution est plutôt adapté aux dispositifs qui ont plus de mémoire et plus de
puissance de calcul.
• Elle est d'ores et déjà très utilisée sur les systèmes mobiles moins contraints (Android = Linux
réduit + MVJ + API)
• Pour permettre cela il faut identifier un noyau minimal du SE puis découper le reste
en modules (composants) que le programmeur pourra intégrer à son application ou
pas.
• TinyOS et nesC sont liés : les applications pour TinyOS doivent être
écrites en nesC
• Une application complète est un composant contenant plusieurs modules liés entre eux dont un
module Main qui permet de démarrer.
• Le SE offre une centaine de composants que l'on peut utiliser pour écrire des applications.
• Quand le programme est généré par le compilateur, seuls les composants utilisés (y compris ceux du système)
sont présents.
• Main est lui-même connecté à certains composants du système (comme l'ordonnanceur par exemple) qui
seront donc chargés en mémoire puis lancés par Main
• On va décrire dans des fichiers portant le suffixe .nc les modules, les interfaces et les
configurations.
• Une application comporte donc plusieurs de ces fichiers
• Les configurations servent à assembler les composants entre eux en connectant les
interfaces utilisées par certains composants à celles fournies par d'autres pour fabriquer
de nouveaux composants (composites).
• L'ensemble des configurations permet de savoir quels composants sont utiles pour
que l'application fonctionne.
• Il suffit de regarder le fichier de configuration de l'application pour savoir quels composants
elle utilise (components) puis de faire la même chose récursivement pour chacun de ces
composants.
• Les pilotes d'IT sont exécutés en réponse à une IT mais peuvent préempter les tâches
et les autres pilotes d'IT (priorités).
• Les commandes et les événements qui sont exécutés par un pilote d'IT doivent être définis
avec le mot clé async.
• C'est par exemple le cas des commandes d'envoi sur liaison radio.
• L'exécution de cette tâche est différée puisqu'elle sera mise en file d'attente et exécutée
à son tour quand les tâches précédentes seront terminées.
• nesC utilise des parties de code atomiques (mot clé atomic) ne pouvant pas être
interrompues.
• En conclusion : nesC suppose que le programmeur sait écrire des programmes corrects …
• Une tâche est déclarée par : task void nomdetache() { ... } elle n'a pas de paramètres et
ne retourne rien.
• Elle sera mise dans la file d'attente des tâches à exécuter par : post nomdetache();
• Le lancement d’une tâche peut se trouver dans n'importe quelle partie du code
(commande ou événement) du composant.
• Il ne faut pas en abuser et y mettre le minimum nécessaire sinon les IT ne seront pas
prises en compte à temps.
• Une application est une Midlet qui peut contenir des Isolates qui sont des programmes qui
s'exécutent en temps partagé.
• – Une application peut être constituée de un ou plusieurs Isolates.
• – De plus les Midlets et les Isolates peuvent lancer des threads qui s'exécutent également en temps
partagé.
• Squawk offre aussi un mécanisme de migration des Isolates qui permet de lancer un Isolate
sur un capteur, puis de l'arrêter, de l'envoyer sur un autre capteur et de le reprendre là où il
en était sur ce nouvel hôte.
• Initialement destiné aux smartphones et tablettes mais de plus en plus utilisé sur d’autres
dispositifs embarqués (objets connectés, boxes, automobile, …)
• Bibliothèques pour :
• – Capteurs
• – Communications par réseau (GSM, wifi, bluetooth)
• Remarques :
• – Android peut arrêter une activité par manque de ressources
• – Android est très centré interface (activité visible, en arrière plan) mais peut gérer des activités sans interface
(services)
• • En bluetooth
• – Bibliothèque pour :
• Découvrir les autres périphériques
• Appairer les périphériques (code de sécurité)
• Etablir des canaux de communication
• Se connecter par découverte de services
• Transférer des données
• Gérer des connexions multiples
• Solutions
– Minimiser (TinyOS)
– Déporter les traitements (Android)
• Type services web
• Transport des données
– Télécharger les traitements à la demande
• Pratiquement jamais utilisé
• Transport du code
• L'ensemble des fichiers compilés (.class) est placé dans un fichier archive (.jar)
puis téléchargé sur le sunSpot pour y être exécuté.
• Le fichier .jar contient l'arborescence des fichiers .class et un fichier texte (le manifeste)
qui indique comment lancer l'application.
• Tossim
• Mode de déploiement
• Déploiement dans la nature
• Présence d'intrus menant des attaques
de sécurité
• Capture des nœuds
• Dispersés aléatoirement
• Algorithme d’auto-organisation
Réseaux des capteurs et Internet des objets 2002-2023 86
3- Les réseaux de capteurs
• Rappel des couches OSI
• Trois classes :
• classe 1 : puissance 100 mW portée 100m
• classe 2 : puissance 2,4 mW portée 10m
• classe 3 : puissance 1 mW portée 1m
• Partage temporel du média sous le contrôle d’un maître pilotant jusqu’à 7 esclaves.
• Adresses fixées
• IP
• Adresses dynamiques
• DHCP (IP)
• Pas d’adresses
• Réseaux industriels (adressage par contenu)
• Broadcast
• L’émetteur n’indique aucune adresse, tous les récepteurs à portée traitent le message
(éventuellement selon son contenu)
• Par contenu
• L’émetteur n’indique aucune adresse mais identifie le contenu, tous les récepteurs intéressés
par ce contenu traitent le message.
• Conséquence : quand A et B dialoguent C reçoit ce que A émet mais pas ce que B émet.
• Si C émet en même temps il perturbe A mais pas B donc B continue à recevoir les messages de A mais A ne reçoit plus ceux de
B
Réseaux des capteurs et Internet des objets 2002-2023 100
3- Les réseaux de capteurs
• Problème des nœuds en veille
• Pour résoudre le problème des nœuds récepteurs en veille on peut utiliser un système de préambule càd que
le nœud émet une trame sans informations utiles qui sert à alerter les autres nœuds.
• Chaque nœud en veille se réveille à intervalles réguliers pour écouter le médium.
• Il suffit que le préambule dure suffisamment longtemps pour que tous les nœuds se réveillent pendant ce temps.
• A la fin du préambule le nœud peut émettre ses infos, il est sûr que le ou les récepteurs sont à l'écoute.
• En retour il reçoit un acquittement.
• Exemple : si un nœud met 1ms à se réveiller et passer en écoute et que le préambule dure 1s, lorsqu'il n'y pas
de transmission les nœuds peuvent rester en veille 99,9% du temps.
• Un préambule trop court => se réveiller souvent (et souvent pour rien)
• On trouve un compromis par une étude statistique en prenant une durée de préambule de l'ordre de 4 à 6
fois la durée d'une trame.
• Un nœud qui reçoit un RTS et un CTS sait qu’il est à portée de l’émetteur et du
récepteur
• Il ne peut pas émettre
• Donc dans l'exemple précédent D ne terminera pas sa période de transmission s'il a des
messages à émettre sinon tant pis.
• Pour éviter la saturation des buffers un nœud peut refuser une réception.
• Ainsi, pendant la communication A/B si le buffer de B devient plein il ne répond plus au RTS
de A refusant ainsi la communication A/B.
• Il pourra par contre émettre un RTS vers un autre nœud pour entrer en communication avec
lui et vider ses buffers afin de pouvoir, plus tard, recevoir ce que A voulait lui envoyer.
• Certains types d'erreurs (parasites) rendent des trames entières non lisibles,
d'autres (signal faible) ne modifient que quelques bits.
• Les seconds sont facilement traitables par des codes correcteurs mais pas les premiers.
• Localisation : on peut situer chaque nœud relativement aux autres (en distance) mais on ne sait pas où ils
sont en terme de coordonnées géographiques.
• Actuellement on utilise le GPS (précision de 15 mètres) avec Galileo on aura (5 à 8 mètres), c'est
en général suffisant.
• Réactive :
• Les routes sont calculées à la volée, le demandeur lance la recherche de route
• Avantage : Adaptable car la route trouvée est actuellement utilisable
• Inconvénients : Temps de recherche de route, Risque de surcharges ponctuelles lors des
recherche de route
• Hybride :
• Mélange des deux méthodes précédentes dans le but d’équilibrer leurs avantages et
leurs inconvénients
• Si la route n'a pas été prévue dans ce but il se peut qu'à l'arrivée
l'information ne contienne pas toutes les données qui auraient pu y être
agrégées mais seulement celles qui ont été glanées sur la route.
• Protocole multichemin
• C'est surtout bien si on peut trouver dans chaque partie un nœud non
limité en énergie (poste fixe).
• Le routage entre ces nœuds centraux peut alors utiliser l'un des
algorithmes décrits précédemment.
• Dans le premier ce sont les nœuds qui ont l'info qui initient sa transmission.
• Dans le second ce sont les nœuds qui ont besoin de l'info qui en demandent la
transmission.
• Principe : le nœud demandeur diffuse (broadcast) sa demande dans laquelle il indique quelle
information il désire (nom). Chaque nœud qui la reçoit met à jour un "gradient« qui indique de
quel nœud voisin lui est parvenue la demande. Lorsque la demande parviendra au ou aux nœuds
sources, le demandeur recevra l'info demandée.Il pourra, par la suite, renforcer certains chemins
par lesquels lui sera transmise l'information.
• La demande contient, en plus du nom de l'info requise, des attributs liés à l'application comme par
exemple les coordonnées géographiques de la zone dans laquelle doit se trouver la source, la
périodicité d'envoi de l'info (toutes les 10ms), la date d'expiration (ne plus envoyer
périodiquement après cette date), etc.
• Un nœud qui reçoit cette demande peut la diffuser à tous ses voisins ou seulement à certains (en
tenant compte de la localisation précisée dans la demande) ou pas du tout s'il l'a déjà diffusée.
• De plus chaque nœud tient à jour une table de toutes les demandes en cours.
• L'envoi de l'information sera fait par les nœuds détenant (soit parce qu'il l'ont acquise, soit
parce qu'il l'ont reçue) une information correspondant à lune des demandes qui sont dans
leurs tables.
• Ce ne sont pas forcément les nœuds source de cette information, ce peuvent être des nœuds qui ont
reçu cette info auparavant et l'ont gardée en cache.
• Pour savoir s'ils doivent envoyer les nœuds tiennent compte des paramètres de la demande comme la
périodicité.
• Ils utilisent les gradients liés à cette demande pour faire passer l'info (en fait comme ces gradients ont
été établis lors de la demande ils constituent un chemin pour arriver au demandeur).
• Un nœud qui reçoit une telle information la fera passer en utilisant ses gradients mais il vérifiera qu'il ne
l'a pas déjà fait (en tenant également compte de la périodicité) pour éviter les duplications liées au
système de diffusion de la demande (on a plusieurs chemins et, a priori, on va les utiliser tous).
• On value chaque arc par la quantité d'énergie consommée pour un paquet qui passe
par cet arc.
• Dans le 1er cas on part du % d'info que chaque nœud apporte à l'info finale. On pondère chaque
transmission par l'énergie consommée. L'objectif est de trouver une route qui collecte le plus fort
% et consomme le moins d'énergie.
• En fait on utilise un système de bonus pour le % et malus pour l'énergie et on cherche la route qui obtient le
meilleur résultat en cumulant les bonus/malus.
• Dans le second cas on utilise l'agrégation plutôt comme outil d'optimisation que pour constituer
des infos complètes. En fait on agrège des infos lorsqu'elles passent par la même liaison (du nœud
A vers le nœud B) ceci permet de regrouper plusieurs paquets et de les compresser pour gagner
du temps et de l'énergie.
• Mais les paquets regroupés n'ont aucun lien entre eux sinon qu'ils passent au même endroit. C'est surtout bien
si on a beaucoup de transmissions de paquets plutôt petits.
• Qualité de communication
• erreurs, pertes fréquentes
• conflits d’accès au médium
• délais importants (multi hop)
• Un mode de routage qui change souvent de chemin peut limiter les dégâts
• Exemple : Telegarden.
• Internet des objets (IdO) : expansion du réseau internet à des objets et/ou
des lieux du monde physique. En anglais, on parle d’IoT : Internet of Things.
• « L’Internet des Objets est un réseau de réseaux qui permet, via des
systèmes d’identification électronique normalisés et unifiés, et des
dispositifs mobiles sans fil, d’identifier directement et sans ambiguïté des
entités numériques et des objets physiques et ainsi de pouvoir récupérer,
stocker, transférer et traiter, sans discontinuité entre les mondes physiques
et virtuels, les données s’y rattachant.
• Action sur le monde physique (déclanchement du fonctionnement de dispositifs, chauffage, extinction de feux,
ouverture d’une porte, mise en service d’une machine, régulation d’une grandeur physique, exécution d’une tâche
robotique, etc.). L’ordre peut provenir d’un système informatique ou d’autres objets physiques connectés.
• Une problématique de sécurité accrue : en effet, le risque dépasse largement le vol de données. Par exemple,
arrêter le fonctionnement d’une usine ou y provoquer des dégâts matériels ou humains, ouvrir les portes d’une
habitation ou d’un magasin pour y effectuer des vols, contrôler à distance un véhicule terrestre ou volant, bloquer
le trafic routier de toute une ville, etc. Il convient d’être particulièrement vigilant lors de la conception d’un objet
connecté.
• On désignera par « monde physique » tous les systèmes vivants ou artificiels que nous
côtoyons et qui interagissent entre eux par divers effets physiques (être humains,
animaux, végétaux, véhicules, objets du quotidien, outils, machines diverses, outils de
production, etc.). Ces systèmes interagissent entre eux au moyens de grandeurs
physiques (forces, déplacements, variation de température ou de pression, voix, son,
lumière, etc.)
• Certains objets du « monde numérique » sont bien « physiques » mais ils manipulent
essentiellement des données (un ordinateur par exemple) et on s’intéresse
généralement à leur aptitude à traiter des données
• Un « score d’énergie » est également calculé pour comparer ses résultats jour
après jour.
• Aeklys, est la bague connectéeconnectée et intelligente qui vous offrira un ensemble de services
dématérialisés et intégrés.
• Avec elle, payez librement sans contact, validez votre accès aux transports publics, partagez votre carte de
visite digitale, et bien plus encore.
• Connectée à l’application, vous pourrez contrôler l’ensemble de vos accès et paramétrer vos préférences.
• Fonctionnant sans écran et sans batterie, la bague Aeklys by Starck combine simplicité intuitive et utilisation
ultra-sécurisée.
• Avec cette bague connectée, la dématérialisation est désormais une histoire de style et de symbiose avec le
corps.
• Vous n’oublierez ainsi plus jamais votre rendez-vous chez le médecin ou même de
sortir votre chien.
• Que ce soit vos rappels personnels, le cours de la bourse, les dernières news de
vos journaux préférés ou même si vous aviez peur de ne pas vous réveiller le
matin pour aller au travail, votre horloge intelligente sera là pour gérer vos
impératifs à votre place
• Le boitier, placé sur le dos de la main, permet quant à lui d’interpréter ces
mouvements et de les traduire en sons, effets, interactions sur le volume et le
rythme de la musique, etc…
• Mais le gant connecté va plus loin puisque chacun de ces gestes peut lui-même être associé à une
commande MIDI unique : le nombre de combinaisons s’élève ainsi à plus de 1 500 !
• Ces données sont ensuite transmises via un système bluetooth à l’ordinateur, la tablette ou le
smartphone.
• En plus de toutes ces combinaisons, le gant connecté dispose de quatre modes de configuration
différents, tous sélectionnables d’un simple geste !
• Grâce au gant connecté, vous pourrez vous connecter simplement à des dizaines d’ applications
et autres logiciels de musique afin de vous initier à l’art du mixage de manière simple et intuitive
Fonctionnalités:
• Réduire la pollution et les allergies chez soi !
• Synchronisation avec d’autres appareils connectés
• Discret, design et élégant !
• Gérer votre intérieur en temps réel grâce à l’application !
• Le moniteur d’air connecté analyse de manière continue les éléments polluants les plus importants comme
par exemple les composés organiques volatils ou encore les particules fines et vous donne l’information en
temps réel.
• C’est ensuite un système de couleur simplissime qui vous donne des indications sur la qualité de l’air :
lorsque l’appareil est bleu, cela signifie que l’air n’est pas polluant, si la couleur est orange alors ce n’est pas
bon.
• Grâce à ce système révolutionnaire, vous pouvez apprendre de vos habitudes, améliorer l’air à l’intérieur de
votre logement et surtout comprendre comment éviter de le polluer.
• Un moniteur d’air connecté bien positionné vous permettra même d’évaluer la qualité de l’air de plusieurs
pièces grâce à la circulation de l’air.