26
Chapitre 2.
Technologies mises en oeuvre
27
I. Introduction
Dans ce chapitre, nous présentons les
différentes technologies mises en oeuvre tout en détaillant les
outils utilisés pour la réalisation de notre système. Ce
chapitre est composé en les grandes parties suivantes
:
· Les spécifications
matérielles.
· Les spécifications
logicielles.
· Le réseau de capteurs.
· Le cloud: UBIDOTS
II. Environnement matériel
Ce chapitre récapitule l'essentiel des
recherches que nous avons faites concernant les deux
cotés hardware et software pour les différents composants
du notre système. Il contient également une justification des
différents choix adoptés ainsi que l'explication
des étapes suivies.
Figure 4: Environnement matériel
1. La Carte raspberry pi
i. Description
Le Raspberry Pi est un nano-ordinateur
mono_carte à processeur ARM conçu
par le créateur de jeux vidéo David
Braben, dans le cadre de sa fondation Raspberry Pi. Cet ordinateur (carte
Raspberry), qui a la taille d'une carte de crédit, est destiné
à encourager l'apprentissage de la programmation informatique. Il permet
l'exécution de plusieurs variantes du système d'exploitation
libre GNU/Linux et des logiciels compatibles. Il est fourni nu (carte
mère seule, sans boîtier, alimentation, clavier, souris ni
écran) dans l'objectif de diminuer les coûts de carte.
28
ii. Modèles et choix de la carte
raspberry
Tous les modèles de Raspberry Pi sont répartis
en deux familles. En effet, chaque modèle appartient à une
famille :
· Famille A: modèle A, modèle A+
· Famille B: modèle B, modèle B+,
modèle B génération 2 Chaque famille de Raspberry pi se
destine à un usage différent :
Famille A: elle est utilisée avec moins de
matériel (pas de ports Ethernet, moins de RAM), et
caractérisé par une faible consommation d'énergie par
rapport à la famille B
Famille B: elle est utilisée avec un meilleur
matériel. Ces modèles sont plutôt destinés à
des utilisations plus exigeantes en ressources comme le traitement de texte ou
le visionnage de vidéos.
Dans notre projet nous travaillons avec la modèle B
illustré avec la Figure suivante.
Figure 5: RPI modèle B
iii. Spécifications techniques
Le tableau 1 ci-dessous présente les
spécifications techniques du modèle de la
carte Raspberry pi que nous avons utilisée.
29
Tableau 1: Spécifications techniques des
modèles des raspberry "famille B"
Critère
|
Modèle B
|
Modèle B+
|
B Génération 2
|
Processeur
|
700 MHz
|
700 MHz
|
900 MHz
|
Mémoire vive
|
512 Mo
|
512 Mo
|
1Go
|
Alimentation
|
700mA (3,5W) via micro-USB
|
600Ma (3,0W) via micro-USB
|
600mA (3,0W) via micro-USB
|
Stockage des données
|
Lecteur de carte SD/MMC
|
Lecteur de carte micro-
SD
|
Lecteur de carte micro-
SD
|
Port USB
|
2
|
4
|
4
|
Prix
|
358
|
358
|
358
|
|
Les périphériques du Raspberry
Les ports disponibles dans la carte Raspberry sont :
· Les ports GPIO
· Les ports USB 2.0
· La sortie audio et sortie vidéo
· Le port Ethernet
· Le port HDMI
· Le connecteur de carte SD,
On peut connecter au Raspberry Pi plusieurs
périphériques tels que :
· Les périphériques d'entrée : un
clavier, une souris
· Les périphériques de sortie : un moniteur
qui est relié par un câble HDMI
· La carte MicroSD ayant comme rôle la mémoire
du raspberry vu qu'il n'utilise pas de disque dur comme un ordinateur
classique.
Un câble Ethernet pour pouvoir le connecter à
Internet ou un dongle wifi USB qui doit être compatible avec le
Raspberry- ou une clé dongle 3G
Une caméra qui peut être parmi ces trois types :
Caméra IP ou Raspberry Pi
30
Figure 6 : Connectivité du Raspberry avec les
périphériques
2. Capteur telos
Chaque modèle de capteur a des
caractéristiques spécifiques en termes de capacité de
mémoire, capacité de stockage, du modèle du
microcontrôleur et du débit des données. La Figure
7 représente des échantillons de capteurs
Figure 7 : Echantillon des capteurs TELOS
Tableau 2 présente les principales
caractéristiques des capteurs les plus connus et les plus
utilisés dans le domaine de la recherche.
Tableau 2 : Caractéristiques des capteurs les
plus courants
Nom du capteur
|
RAM
|
Mémoire
|
Stockage
|
Débit
|
Telos
|
4 KB
|
128 KB
|
512 KB
|
40 Kbps
|
TelosA
|
4 KB
|
60 KB
|
512 KB
|
250 Kbps
|
TelosB
|
10 KB
|
48 KB
|
1 MB
|
250 Kbps
|
|
Dans notre travaille nous choisissons le capteur TelosB
à base des caractéristiques suivantes :
· Une faible consommation
d'énergie.
· Une longue durée de vie de la
pile.
· Un débit et une portée
moyenne.
31
Caractéristiques TelosB:
· Processeur: MSP430 microcontrôleur, 8 Mhz, 10k RAM,
48k Flash(ROM).
· Sensors: Lumière, Température,
Humidité.
· Transmission: Norme de transmission: IEEE 802.15.4
(ZigBee), Débit: 250 Kbps (Bande 2.4-2.4835GhZ), Antenne
intégrée.
· Portée: Real-Test: 30 m (indoor: 1 obstacle), 80 m
(outdoor), From datasheet: 50 m (indoor), 125 m (outdoor).
· Système d'exploitation: Contiki.
· Programmable via l'USB.
Figure 8: Les capteurs Tmote Sky (TelosB)
32
III. Environnement logiciel et langages
utilisés
Dans notre projet nous utilisons les logiciels et les
langages suivants :
Figure 9: Environnement logiciel
1. Raspbian OS
Raspbian est un système d'exploitation libre
basé sur Debian optimisé pour le matériel Raspberry pi. Il
gère les ressources matérielles du Raspberry Pi. Il
exécute les applications en leur affectant les ressources
nécessaires à leur bon fonctionnement, gère les
entrées/sorties et permet d'unifier et de contrôler l'accès
des programmes aux ressources matérielles par l'intermédiaire des
pilotes.
Cependant, Raspbian ne fournit pas simplement un
système d'exploitation basique, il est aussi livré avec plus de
35 000 paquets, c'est-à- dire des programmes
pré-compilés livrés dans un format
optimisé, pour une installation facile sur votre Raspberry
Pi.
2. Contiki/Cooja
i. Instant Contiki
· Un environnement de développement
simplifié. Sous la forme d'une
virtuelle Vmware. Contiki est un système
d'exploitation open source.
|
machine
|
|
· C'est un système configurable pour les
réseaux de capteurs.
· Contiki est un système d'exploitation
conçu pour prendre le moins de place possible, avec une faible empreinte
mémoire parce qu' il est écrit en langage C.
·
33
Contiki autorise deux modes de fonctionnement : soit
multitâche, soit basé sur les événements
(orienté évènement.).
Un système utilisant Contiki contient des processus
(des applications ou des services). La communication entre ces processus se
fait par :
Le mode multitâche : une bibliothèque doit
être installée. Les fonctions associées à cette
bibliothèque n'accèdent pas directement à l'ensemble des
ressources du capteur sans fil. Elles doivent, dans certains cas, faire appel
à la partie du noyau dédié à la gestion des
événements. Cette structure à deux niveaux a pour
conséquence une dégradation des performances du système
quand le mode multitâche est activé.
L'envoi d'événements : Le noyau du
système Contiki est orienté évènement.
L'idée d'un tel système est que chaque exécution d'un
processus par une application ce n'est qu'une réponse à un
évènement.
Les évènements peuvent être classés
en trois types :
timer events: sont des évènements
basés sur un temporisateur dans le but de générer un
évènement après un certain laps de temps. C'est
très pratique pour les actions périodiques, ou dans le monde des
réseaux comme la synchronisation.
external events: sont des évènements
qui proviennent de l'extérieur souvent par des équipements
connectés au microcontrôleur par des interfaces
d'entrée/Sortie (I/O). Ces équipements lancent des interruptions
à chaque fois une actions est détectée (ex.
accéléromètre, détecteur de mouvement, etc.)
internal events: sont des évènements
internes générés par des processus pour communiquer avec
d'autres processus (ex. informer le processus de traitement que les
données sont prêtes pour le traitement).
Ces évènements peuvent avoir les informations
suivantes :
process: un évènement adressé
à un processus. Il peut être destiné à un processus
spécifique ou bien à tous les processus enregistrés.
event type: le type d'évènement. Le
programmeur peut définir les types d'évènements
destinés au processus afin de pouvoir les différencier entre eux
(comme le cas de réception de paquet ou de transmission de paquet).
data: certaines données peuvent être
générer pour un processus via des évènements.
Ce type d'évènement est le principe de base du
système d'exploitation Contiki. Les évènements sont
« postés » aux processus. Les processus s'exécutent
pendant
34
qu'ils reçoivent les évènements et ils se
bloquent pour attendre d'autres évènements lorsqu'il n'y en a
plus.
ii. Simulateur Cooja
Cooja est un simulateur/ émulateur de réseau de
capteurs appelé motes pour
Contiki.
Il permet de simuler les connexions réseaux et d'interagir
avec les capteurs.
Le code exécuté par les noeuds est le même
chargé sur des capteurs ou des
noeuds physiques.
Les capteurs supportés par Cooja sont : Telos, exp5438,
wismote, micaz, etc.
La simulation avec Cooja fournit une grande flexibilité,
un faible coût et un
contrôle total de la plate-forme expérimentale
3. Outil de développement ANDROID
STUDIO
Pour réaliser le développement de notre
application de supervision de centre de
données, plusieurs choix d'environnement de
développement s'offre à nous (Android Studio, C#, Visual Basic,
etc.). Nous avons choisi Android Studio 1.5.1, comme un environnement de
développement.
La plateforme Android est un OS (Operating System) pour
téléphone mobile et tablette tactile, promu par Google.
4. XML
XML permet à l'utilisateur de définir des
marqueurs (balises) qui facilitent le
parcours au sein du fichier et donc la lecture de
l'information. Utiliser dans l'application Android pour l'interface
graphique.
5. Java
C'est un langage de programmation orienté objet
utilisable sur divers systèmes d'exploitation. Il est un langage
portable. Il est utilisé très largement dans le monde du
développement Android.
6. Python
Python est un langage de programmation objet, multi-paradigme
et
multiformes. Il favorise la programmation impérative
structurée, fonctionnelle et orientée objet. Il est doté
d'un typage dynamique fort, d'une gestion automatique de la mémoire par
ramasse-miettes et d'un système de gestion d'exceptions. Il est
conçu
35
pour optimiser la productivité des programmeurs en
offrant des outils de haut niveau et un système simple à
utiliser.
Il permet d'une part, la connexion entre le coordinateur du
réseau de capteur et le Raspberry et d'autre part, la connexion entre le
carte Raspberry et l'UBIDOTS.
7. PHP
C'est un langage de programmation utilisé pour produire
des pages web dynamiques via un serveur http.
Il permet la connexion entre l'application Android et le base
de données. Il représente la niveau deux de l'architecture trois
tiers.
8. MySQL
Il est un système de gestion de base de données
(SGBD). Il est multithread et multiutilisateur. Utiliser pour la
création de base de données de l'application.
9. Apache
Le logiciel libre apache http server (apache) est un serveur
http créé et maintenu au sien de la fondation Apache.
IV. Le réseau de capteurs
Cette partie consiste à exposer les réseaux des
capteurs sans fil qui sont de plus en plus utilisés dans l'environnement
et l'industrie grâce notamment aux développements
réalisés dans le domaine des technologies sans-fils.
Un réseau de capteurs sans fil RCSF :
(WSN: Wireless Sensors Networks) est un ensemble de capteurs autonomes,
interconnectés par des liaisons sans fil.
RCSF est un réseau ad hoc (des réseaux
sans fil s'organisent sans infrastructure définie
préalablement) capables de récolter et de transmettre des
données environnementales d'une manière autonome.
Norme IEEE 802.15.4 (couche physique et couche
MAC)
Le 802.15.4 est un protocole de communication défini
par l'IEEE permet d'obtenir des liaisons sans fil à:
V' Très faible consommation des dispositifs
embarqués par mise en veille.
V' faible portée de quelques centaines de
mètres (théoriquement 100 mètres)
V' faible débit (maximum 250kB/s)
36
V' Faible taille du code à embarquer
V' Leur durée de vie est la durée de
vie de leur batterie (Il faut minimiser les dépenses
énergétiques, car l'énergie est une contrainte clé
dans les réseaux de capteurs).
V' Bas prix.
Les appareils constituant les réseaux de capteurs sont
donc très limités en termes d'énergie, mémoire, et
capacité de processeurs.
La norme IEEE 802.15.4 propose une couche physique et
une couche liaison de données adaptées aux applications
à faible débit dont l'autonomie énergétique est une
contrainte forte. Dans cette première partie, nous allons en
présenter les rôles de ces deux couches.
1. Couche physique
La couche application a pour Rôle de :
· Détection d'énergie.
· Mesure de la qualité de la liaison.
· Disponibilité du canal.
· Emission et réception des données. Bande de
fréquences:
· 16 canaux dans la bande de fréquence de 2.4 GHz:
250 kbps.
· 10 canaux dans la bande de fréquence de 902
à 928 MHz: 40 kbps.
· 1 canal dans la bande de fréquence de 868.3 MHz:
20 kbps.
2. La couche d'accès au médium
(MAC)
Rôle de la couche MAC est :
· Gère le mécanisme d'accès au
support
· Garantit l'intégrité des données
· Supporte les associations et dissociations au
réseau.
· La validation des trames.
Il existe cependant deux modes de fonctionnement de la couche
MAC selon le type de topologie utilisé et le besoin en débit
garanti, à savoir :
· le mode non- beacon utilisant CSMA/CA
· le mode beacon, avec l'envoi à
période régulière d'une balise pour synchroniser les
dispositifs, garantissant un débit au capteur ayant un GTS (c'est le
mode utilisée dans le réseau des capteurs).
3. Le standard 6LoWPAN
802.15.4 est utilisé par de nombreuses
implémentations basées sur des protocoles propriétaires ou
sur IP (Internet Protocol), comme le ZigBee et le 6LoWPAN.
La pénurie d'adresse IP est un problème
connu qui dispose d'une solution :
(couche réseau et couche application)
37
IPv6. Une tendance est d'amener Internet sur des
appareils de plus en plus petits pour pouvoir les contrôler à
distance.
Ces deux aspects réunis en un même
problème nous donnent comme solution le protocole 6LoWPAN (IPv6 Low
Power Wireless Personnal Area Networks). Pour cela nous choisir
6lowpan le standard la plus adapté à être
exploité dans notre travaille (on a besoin de l' Internet pour
l'envoie de valeurs depuis réseau de capteurs vers Ubidots).
Figure 10 : Architecture réseau du standard
6LoWPAN
4. Couche réseau
6LoWPAN a été développé
pour définir une couche d'adaptation d'IPv6 pour des
systèmes à faibles ressources.
· Il défini les mécanismes
d'encapsulation et de compression d'entêtes permettant
communication IEEE
aux paquets IPv6 d'être envoyés ou
reçus via le protocole de 802.15.4.
· 6LoWPAN devrait permettre à IPv6
d'intégrer des matériels informatiques.
38
Figure 11 : Adaptation d'IPv6 par le standard
6LoWPAN
5. Connexion entre les capteurs
Chaque entité (noeud) communique directement
avec sa voisine. Pour communiquer avec d'autres entités, il est
nécessaire de faire passer ses données par d'autres qui se
chargeront de les acheminer. Pour cela, il est d'abord primordial que les
entités se situent les unes par rapport aux autres, et soient capables
de construire des routes entre elles : c'est le rôle du protocole de
routage.
Les capteurs sans fil communiquent par le biais des
ondes radioélectriques. N'étant pas intégrés
à un réseau préexistant; les capteurs communiquent
grâce à un réseau dit « ad hoc », capable de
s'organiser sans infrastructure définie préalablement. Ceci
implique que chaque capteur puisse retransmettre une information
indépendamment ou avec l'aide des autres
capteurs et ceci afin d'envoyer l'information à une
« station de base : sink » capable de transmettre l'information
à l'utilisateur final par le biais d'Internet ou d'un réseau
télécom GSM dans la majorité des cas
(carte raspberry dans notre projet).
V. Le Cloud : UBIDOTS
Le Cloud est une plateforme informatique fournissant
aux entreprises des services avec l'illusion d'une infinité des
ressources accessible de n'importe quel lieu, quel temps, quel
personne.
Il consiste à déporter sur des serveurs
distants des stockages et des traitements informatiques
traditionnellement localisés sur des serveurs locaux ou sur le poste de
l'utilisateur.
Le Cloud est un modèle qui permet un
accès réseau à la demande et partage des ressources
informatiques configurables (telles que réseaux, serveurs,
stockage, applications et services).
Figure 12: Le cloud
· Les différents services
Le Cloud peut être décomposé en
trois couches :
1. IaaS (Infrastructure as a
Service)
C'est le
: infrastructure en tant que service.
service de plus bas niveau. Il est
géré par les architectes réseaux.
39
Figure 13: L'infrastructure as a Service
(IaaS)
2. PaaS (Platform as a Service):
plate-forme en tant que service. Elle est destinée aux
développeurs d'applications
40
Figure 14: La couche PaaS
3. SaaS (software as a service) : logiciel en tant que
service. Il est le « produit final » pour les
utilisateurs.
Figure 15: Logicielle as a service (SaaS)
VI. Conclusion
Après avoir terminé l'étude du
projet et nous choisissons une solution à étudiée, il nous
reste de décider dans quel environnement nous allons travailler, exposer
les choix techniques utilisés et le langage adopté. Dans le
chapitre suivant nous présentent la phase de
spécification et conception.
41
|