WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et réalisation d'un système de contrôle du centre de données


par Abir MBAREK
Université de Sfax, Tunis  - Licence appliqué en réseaux informatique  2017
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Année Universitaire : 2016/2017

RÉPUBLIQUE TUNISIENNE

***********

MINISTERE DE L'ENSEIGNEMEMT
SUPÉRIEUR ET DE LA RECHERCHE
SCIENTIFIQUE ET DE LA TECHNOLOGIE

 

UNIVERSITÉ DE SFAX
FACULTÉ DES SCIENCES DE SFAX
****************
DÉPARTEMENT INFORMATIQUE ET DES
COMMUNICATIONS

RAPPORT DE STAGE DE FIN D'ÉTUDES

Pour l'obtention du diplôme:

LICENCE APPLIQUÉE EN RÉSEAU INFORMATIQUE

Sujet:

Conception et réalisation d'un système de contrôle du
centre de données

Organisme d'accueil:
SOCOMMI
Elaboré par:

Imen BOUAZIZI et Abir MBAREK

Soutenu le 30/05/2017 devant le jury:

 
 
 

Mme.

Dorsaf

ZEKRI

Maître Assistant

FSS

Président

Mme.

Lamia

TOUNSI

Maître Assistant

FSS

Rapporteur

M.

Mohamed Ali

HADJ TAIEB

Maître Assistant

FSS

Encadrant

M.

Omar

IDRIS

Ingénieur

SOCOMMI

Encadrant Industriel

1

2

3

Dédicaces

C'est grâce a Dieu que tout a commencé, et c'est à lui que je rends grâce. Le reste n'est que dédicaces.

A l'esprit de Ma très chère Mère.

A l'homme de ma vie, mon exemple eternel, mon soutien moral et source de joie et de bonheur à Mon Amour Papa.

Aux personnes dont j'ai bien aimé leur présence dans ce jour, a Ma Famille, Mes Cousines, Mes Tantes, et Mes grands Mères, je dédie ce travail dont le grand plaisir leurs revient pour leurs amours et soutient.

4

Dédicaces

Je dédie ce modeste travail.

A ma mère, à ma chère Mère.

La personne que j'ai de plus précieuse et de plus chère. Que ce projet soit une occasion pour t'adresser mes vifs remerciements et pour exprimer ma reconnaissance pour tes nombreuses années de sacrifices, ton éternelle patience et ta grande tendresse. A mon père j'espère que ce travail soit la réalisation d'un de tes rêves.

A toutes les familles, vous m'avez toujours encouragée par votre amour et vos prières incessantes. Je vous dédie ce projet en témoignage de mon profond respect et mon grand attachement.

A tous ceux qui comptent pour moi ...

BOUAZIZI Imen.

5

6

Remerciements

C'est avec un grand plaisir que nous réservons cette page en signe de gratitude et de profonde reconnaissance à tous ceux qui nous ont aidés et ont contribué de près ou de loin à la réalisation de ce travail.

Nous tenons à remercier vivement notre encadreur,

M. Mohamed Ali Hadj Taieb maître assistant à la faculté des sciences, qui n'est pas épargne le moindre effort dans l'encadrement de ce projet. Nous le remercions pour ses conseils judicieux, ses encouragement et pour l'aide qu'il nous a accordé.

Nous tenons à présenter nos reconnaissances et nos remerciements aux membres de jury Mme Dorsal ZEKRI et Mme Lamia TOUNSI d'avoir accepté d'examiner notre travail.

Au terme de ce projet, nous souhaitons remercier M. Abes Mansouri, le directeur général de la société SOCOMMI, et M. Omar Driss notre encadreur industriel, et notamment tout le personnel de SOCOMMI pour leur accueil chaleureux et leur esprit de collaboration.

Nous exprimons finalement notre profonde gratitude à tout le personnel et les enseignants de la Faculté des Sciences de Sfax pour leurs efforts qui les on déployés durant toute les années universitaires, spécialement au département informatique.

7

8

9

Sommaire

Introduction générale 16

Chapitre1 19

Présentation générale du projet et spécification des besoins 19

I. Introduction 20

II. Présentation de l'organisme d'accueil 20

1. Présentation de la société SOCOMMI 20

2. Centre de données 21

III. Contexte du projet 21

1. Cadre général du projet 21

2. Problématiques et motivations 22

3. Solution proposée 22

4. Cahier des charges 23

IV. Les besoins attendus de l'application 23

1. Besoins fonctionnels 23

2. Besoin non fonctionnel 24

V. Diagramme de Gantt 24

VI. Conclusion 25

Chapitre 2. Technologies mises en oeuvre 26

I. Introduction 27

II. Environnement matériel 27

1. La Carte raspberry pi 27

2. Capteur telos 30

III. Environnement logiciel et langages utilisés 32

1. Raspbian OS 32

2. Contiki/Cooja 32

3. Outil de développement ANDROID STUDIO 34

4. XML 34

5. Java 34

6. Python 34

7. PHP 35

8. MySQL 35

9. Apache 35

10

IV. Le réseau de capteurs 35

1. Couche physique 36

2. La couche d'accès au médium (MAC) 36

5. Connexion entre les capteurs 38

V. Le Cloud : UBIDOTS 38

Chapitre 3. Etude conceptuelle 42

I. Introduction 44

II. L'architecture logicielle 45

III. Les diagrammes de cas d'utilisation 46

1. Description 46

2. Identification des acteurs 46

3. Diagramme de cas d'utilisation 47

IV. Etude dynamique : les diagrammes de séquences 50

1. Description 50

2. Diagramme de séquences « authentification » 51

3. Diagramme de séquences «Consulter les courbes». 52

4. Diagramme de séquence « Consulter réclamation » 53

V. Diagramme de classes 56

VI. Conclusion 57

Chapitre 4 : Réalisation 59

I. Introduction 60

II. Etape 1 : Collection des données : La simulation Contiki /Cooja 60

III. Etape 2 : Raspberry : réception et envoie des données 63

IV. Etape 3 : la connexion entre le Raspberry et le Cloud 64

V. Etape 4 : Codage et transmission de données à partir de l'application Android 65

1. Protocol et format de données 65

2. Description des interfaces de l'application Android 67

VI. Etape 5: Interprétation graphique des données collectées par l'application web 70

VII. Conclusion 75

Conclusion 76

11

Liste des figures

Figure 1: Plan SOCOMMI 21

Figure 2: Architecture de la solution proposée 23

Figure 3: Diagramme de Gantt du projet 25

Figure 4: Environnement matériel 27

Figure 5: RPI modèle B 28

Figure 7: Connectivité du Raspberry avec les périphériques 30

Figure 8: Echantillon des capteurs TELOS 30

Figure 10: Les capteurs Tmote Sky (TelosB) 31

Figure 11: Environnement logiciel 32

Figure 12: Architecture réseau du standard 6LoWPAN 37

Figure 13: Adaptation d'IPv6 par le standard 6LoWPAN 38

Figure 14: Le cloud 39

Figure 15: L'infrastructure as a Service (IaaS) 39

Figure 16: La couche PaaS 40

Figure 17: Logicielle as a service (SaaS) 40

Figure 18: architecture trois tiers 45

Figure 19: Diagramme de cas d'utilisation général 47

Figure 20: Diagramme de cas d'utilisation pour l'application web 49

Figure 21: Diagramme de cas d'utilisation pour l'application Android 50

Figure 22: Diagramme de séquence « authentification » 51

Figure 23: diagramme de séquences « consulter courbe » 52

Figure 24: Diagramme de séquence « Consulter réclamation » 53

Figure 25: Diagramme de séquences « ajouter superviseur » 54

Figure 26: diagramme de séquences « modifier superviseur » 55

Figure 27: diagramme de séquence « supprimer superviseur » 56

Figure 28: Diagramme de classes de l'application 57

Figure 29: Interface Cooja 61

Figure 30: les valeurs de sensors température et luminosité 62

Figure 31: Principe de la simulation du réseau 62

Figure 32: Passage entre les différentes parties par le Gateway Raspberry 63

Figure 33: connexion entre LBR et Raspberry 63

Figure 34: Interface Cloud 65

Figure 35: listes ordonnées sous format JSON 66

Figure 36: l'utilisation du Protocol HTTP et format de données JSON 66

Figure 37: Interface d'authentification du superviseur 67

Figure 38: Interface d'accueil de l'application Android 68

Figure 39: Interface de la supervision des états 68

Figure 40: Interfaces de supervision des graphes 69

Figure 41: Processus d'envoie de réclamation 69

Figure 42: Interface « passer reclamation » 70

12

Figure 43: Interface d'accueil pour l'application web 71

Figure 44: Formulaire d'ajout d'un nouveau superviseur 72

Figure 45: Formulaire de mise à jour d'un superviseur 72

Figure 46: Formulaire d'ajout d'un nouveau capteur 73

Figure 47: Formulaire de mise à jour d'un capteur 73

Figure 48: Historique 74

Figure 49: Consulter réclamation 74

13

14

Liste des tableaux

Tableau 1: Spécifications techniques des modèles des raspberry "famille B" 29

Tableau 2: Caractéristiques des capteurs les plus courants 30

15

16

Introduction générale

Quotidiennement, toutes les entreprises ayant une diversité des moyennes de supervision pour réduire les pannes et les défaillances dans leur centre de données qui peuvent causer des pertes considérables de données. Mais la plupart des ces solutions reste locale et insuffisante pour assurer les bons fonctionnements des différents équipements

Pour cela il faut chercher des nouvelles solutions de supervision en temps réel c'est-à-dire être servi en tout lieu et à tout moment, non seulement à travers des systèmes de gestion locale.

En effet, nous essayons d'utiliser plusieurs technologies permettant la supervision à distance pour assurer le bon fonctionnement des activités et vérifier l'état des différents équipements d'une manière plus simple. L'objectif est de concevoir et développer une solution permettant de rapporter et alerter suite aux fonctionnements anormaux des systèmes informatiques en cas de problèmes.

D'où l'intérêt du notre projet de fin d'études intitulé « Conception et réalisation d'un système de gestion d'un centre de données.

Ce projet a pour but donc de contrôler l'état d'un centre de données. Ceci inclut le domaine de la « IOT: Internet of things, » », les techniques d'automatisme, d'informatique et de la télécommunication qui à travers lesquels il rend possible de contrôler et de commander des systèmes à distance en ayant recours au réseau Internet.

Pour ce faire, nous divisons notre travail en quatre chapitres :

Dans le premier chapitre, intitulé «Présentation générale du projet et spécification des besoins», nous présentons la société au sein de laquelle le projet a été réalisé «SOCOMMI». Puis nous définissons la problématique, et nous identifions les objectifs à atteindre. Finalement, nous traçons les grandes lignes de la solution.

Le deuxième chapitre, intitulé « Technologies mises en oeuvre», présente les différentes technologies mises en oeuvre toute en détaillent les outils matériels et logiciels que nous avons utilisés dans la réalisation de notre projet.

Le troisième chapitre, intitulé « Étude conceptuelle», commence par une description de la méthode agile que nous avons suivie avec les différents diagrammes des cas d'utilisation et les diagrammes de séquences correspondant. Après, nous présentons les diagrammes de classes.

17

Dans le dernier chapitre, intitulé «Réalisation», nous présentons la partie réalisation de notre travail, à travers les interfaces développées pour mettre en oeuvre les fonctionnalités demandées.

Nous clôturons enfin par une conclusion et des perspectives.

18

19

Chapitre1

Présentation générale du projet et

spécification des besoins

I. 20

Introduction

Dans ce chapitre, nous donnons une brève description de la société d'accueil dans laquelle nous avons effectué notre projet. Par la suite, nous expliquons les différentes notions en rapport avec le sujet et ses objectifs ainsi nous posons la problématique et la solution envisagée. Enfin, nous présentons les services attendus de notre application.

II. Présentation de l'organisme d'accueil 1. Présentation de la société SOCOMMI

« SOCOMMI » est une société de construction métallique et maintenance industrielle.

Elle fournit une gamme de services couvrant les différents secteurs suivants :

· Mécanique

· Électrique

· Maintenance industrielle

· Construction métallique.

Les services sont fournis essentiellement dans les activités de l'industrie pétrolière et de gaz.

Les services principaux de cette société sont les suivants :

· La gestion des projets

· L'ingénierie

· La gestion des achats

· La construction métallique (soudure, chaudronnerie, tuyauterie, charpente,...) ;

· La maintenance industrielle

· Le domaine d'intervention de la société est le suivant :

· Les gisements du pétrole et de gaz

· Les usines de ciment

· Les usines de traitement d'eau

· Les unités industrielles

· Les unités minières et chimiques

· Pré-mise et mise en service, et démarrage

·

21

Les installations de gaz dans les domaines industriels

· Les installations électriques dans les domaines industriels

· Les ouvrages de transports des hydrocarbures liquides par canalisation La société contient un centre de données pour stoker leur informations comme il est présenté dans la figure suivante :

Figure 1: Plan SOCOMMI

2. Centre de données

Un centre de données se présente comme un lieu où se trouvent différents équipements électroniques (ordinateurs, des équipements de télécommunications, des systèmes de stockage, des serveurs, etc.). Il permet de stocker les informations nécessaires aux activités d'une entreprise. Il comprend en général un contrôle sur des enjeux environnementaux qui sont liés à la température, l'humidité, luminosité, énergie et l'incendie du centre de données.

III. Contexte du projet

1. Cadre général du projet

Ce projet est réalisé dans le cadre de la préparation du projet de fin d'études en vue de l'obtention du diplôme de licence en Réseaux Informatiques de la Faculté des Sciences de Sfax.

Notre stage a été effectué au sein de la société SOCOMMI à Sfax. L'encadrement à été assuré par M. Mohamed Ali Hadj Taieb, maître assistant à la Faculté des Sciences de Sfax, et M. Omar Driss, ingénieur à SOCOMMI.

2. 22

Problématiques et motivations

Des enjeux environnementaux sont liés à la consommation d'électricité des centres de données, et à leur coproduit qu'est la chaleur dissipée par les serveurs et les systèmes de stockage en particulier.

Pour superviser un centre de données, il faut que l'agent soit toujours présent à l'intérieur de la salle de contrôle. Ainsi qu'un manque des outils de supervision et les méthodes de supervision ne sont plus modernes (solution de câblage filaire et l'information sera plus transmise en temps réel).

3. Solution proposée

La solution consiste à automatiser la gestion et la supervision dans un centre de donnés.

Nous allons présenter le système global d'un point de vue macroscopique. En fait, un réseau de capteurs sans fils programmables pour récupérer les valeurs de température au niveau des racks, humidité, luminosité, énergie, et flamme. Toutes ces variables jouent le rôle principal au niveau de la supervision et la protection d'un centre de données, ensuite les données récupérées sur la passerelle Raspberry Pi (Gateway) vont être transmises vers notre serveur CLOUD (Ubidots) pour que l'application Android puisse achever ces valeurs en temps réel et les afficher pour l'agent sous différentes formes (graphes, valeurs...).

Donc, nous réalisons une application Android pour la supervision et une application web pour l'administration du système de gestion du centre de données.

23

Figure 2: Architecture de la solution proposée

4. Cahier des charges

.

L'objectif du stage est de concevoir un système de supervision de centre des données permettant à l'entreprise un contrôle sur l'environnement en temps réel, permanent et assez simple. Nous décrivons également le sujet qui nous a été confié, les méthodologies adoptées, et les besoins attendus

IV. Les besoins attendus de l'application

La spécification de besoins constitue la phase de départ de toute application à développer dans laquelle nous allons identifier les besoins de notre application. Nous distinguons des besoins fonctionnels qui présentent les fonctionnalités attendues de notre application et les besoins non fonctionnels pour éviter le développement d'une application non satisfaisante ainsi de trouver un accord commun entre les spécialistes et les utilisateurs pour réussir le projet.

Nos applications doit fournir à la fois des fonctionnalités pour l'administrateur et pour le superviseur.

1. Besoins fonctionnels

Les besoins fonctionnels ou besoins métiers représentent les actions que le système doit exécuter. En fait, il ne devient opérationnel que s'il les satisfait. L'application web doit permettre :

· L'accès et identification.

· Supervision des états.

· Supervision des graphes.

· Gestion des superviseurs.

·

24

Gestion des capteurs.

· Consulter les réclamations. L'application Android doit permettre :

· L'accès et identification.

· Supervision des états.

· Consulter courbes.

· Passer réclamation.

2. Besoins non fonctionnels

Les besoins non fonctionnels présentent les exigences internes pour le système et cachées vis à vis les superviseurs. Notre application doit être facile à utiliser et elle doit garantir un temps de réponse court.

Les principaux besoins non fonctionnels de notre application se résument dans les points suivants :

La sécurité des données : sécuriser les données revient à appliquer une stratégie d'identification (par login), d'authentification (par password), l'autorisation et contrôler chaque tentative d'accès à ces données. Dans notre système l'accès aux informations personnelles n'est autorisé qu'aux personnes propriétaires et selon un privilège qui détermine les droits d'accès.

La convivialité: Il faut fournir une interface simple à utiliser pour l'administrateur d'application web et pour les superviseurs d'application Android car elle présente le premier contact de l'utilisateur avec l'application.

Une solution ouverte et évoluée : l'application peut être améliorée par l'ajout d'autres modules pour garantir la souplesse, l'évolutivité et l'ouverture de la solution.

V. Diagramme de Gantt

Pour finir le travail dans les délais, nous avons commencé par la mise en place d'un chronogramme comportant la répartition des différentes tâches à réaliser au cours du temps. En effet, nous avons choisi un cycle de vies itératives et incrémental. Le logiciel utilisé Gantt projet. La Figure1 illustre le chronogramme que nous avons suivi tout au long du cycle de vie de l'application.

25

Figure 3: Diagramme de Gantt du projet

VI. Conclusion

Dans ce chapitre, nous avons commencé par la mise en contexte de ce travail en présentant son cadre, la problématique que nous y avons abordée et en donnant un aperçu sur la solution que nous proposons. Nous traitons au prochain chapitre la technologie mise en ouvre.

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

42

Chapitre 3.

Étude conceptuelle

43

44

I. Introduction

La conception est la phase la plus importante dans le cycle de développement d'une application et qui se concentre essentiellement sur la définition de l'architecture du système et sur les besoins des utilisateurs que nous essayons de représenter par les diagrammes de cas d'utilisations globales. Ainsi que sur les diagrammes de séquence et de classe qui nous permettent de traduire les besoins fonctionnels et les contraintes du cahier des charges par un langage plus compréhensible pour le(s) développeur(s) d'application.

Dans le cadre de notre projet nous avons utilisé la méthodologie UML pour la modélisation des différents diagrammes et nous avons travaillé avec trois vues (trois diagrammes)

· Vue fonctionnel :

- diagramme de cas d'utilisation : il décrit les besoins utilisateurs et permet de donner une vue globale de l'application.

· Vue dynamique :

- diagramme de séquence : scénarios et flots de messages : l'ordre chronologique des différentes opérations

· Vue statique :

-diagramme des classes : définit la structure statique des différents objets composant l'application.

Le choix de ce langage se fait selon les différents critères sous dissous :

· UML est un langage formel et normalisé.

· UML est un langage plus professionnel et compréhensible pour tous les individus intervenants dans la réalisation et l'utilisation de l'application

· Il caractérise par l'accessibilité : l'UML conçu pour s'adapter à n'importe quel langage de programmation orientée objet (Java, C++, Android, etc.).

· L'UML est un support de communication performant : Il cadre l'analyse et facilite la compréhension de représentations abstraites complexes.

45

II. L'architecture logicielle

L'architecture logicielle décrit d'une manière symbolique et schématique les différents éléments d'un ou de plusieurs systèmes informatiques, leurs interrelations et leurs interactions. Le modèle d'architecture, produit lors de la phase de conception décrit comment le système informatique doit être conçu de manière à répondre aux spécifications. Alors que l'architecture décrit le « comment le faire ».

Nous avons choisi l'architecture trois tiers qui est connue aussi sous le nom d'architecture à trois niveaux, elle est très utilisée dans le développement d'application web et mobile. C'est une extension du modèle métier et accès aux données.

La première couche est la couche présentation, est une couche visible et interactive avec l'utilisateur. Elle présente généralement la partie graphique de l'application. Cette couche transmet les requêtes utilisateurs à destination de la couche métier, et en retour lui présente les informations renvoyées par les traitements de la couche métier.

La couche métier, qui consiste la deuxième couche de cette architecture, consiste la partie fonctionnelle et opérative de l'application. C'est dans cette couche que s'exécutant les différentes règles de gestion et de contrôle du système en s'appuyant sur les données du système fourni par le base des données.

La dernière couche est la couche accès aux données, cette couche regroupe le stockage et les mécanismes d'accès des données de façon à ce qu'elles soient utilisables par l'application au niveau traitement.

Figure 16: architecture trois tiers

46

III. Les diagrammes de cas d'utilisation

1. Description

Ce diagramme est destiné à représenter les besoins des utilisateurs par rapport au système. Il comporte :

· Les acteurs : ce sont les entités externes au système qui interagissent avec lui.

· Les relations entre les cas d'utilisation (Use Case) sont :

y' Inclusion : lorsqu'un cas d'utilisation délègue une tâche à une autre, la dépendance est indiquée au moyen d'une flèche pointillée allant de cas d'utilisateur au cas utilisé. Cette notation indique que le fait d'exécuter le cas « utilisateur » inclut la fonctionnalité du cas « utilisé ».

y' Extension : Dans une relation d'extension entre cas d'utilisation, le cas d'utilisation source ajoute son comportement au cas d'utilisation de destination. L'extension peut être soumise à une condition. Cette relation est représentée par une flèche en traits pointillés et le mot clé « extend ».

y' La généralisation : Dans une relation de généralisation entre deux cas d'utilisation, le cas d'utilisation enfant est une spécialisation du cas d'utilisation parent. Une flèche à l'extrémité triangulaire représente une telle relation.

y' Association : Un trait simple reliant un acteur à un cas d'utilisation représente une association. L'association indique qu'il existe un chemin de communication entre l'acteur et le cas d'utilisation.

2. Identification des acteurs

Un acteur est une entité externe par rapport au système étudié (utilisateur humain, dispositif matériel ou autre système). Un acteur peut appliquer des opérations sur l'état du système en émettant et/ou recevant des messages susceptibles d'être porteurs de données.

Notre application contient trois acteurs:

· Superviseur: c'est un acteur humain, responsable de contrôler le système.

· Administrateur: c'est un acteur humain, responsable des gérer les capteurs et les superviseurs ainsi que contrôler le centre de données.

· Système de contrôle: Il gère l'authentification de différents acteurs du système, celui que contient la carte raspberry pi et les différents équipements. Son rôle est de vérifier l'état de ces équipements et de passer les commandes de l'utilisateur.

3. Diagramme de cas d'utilisation

Un cas d'utilisation est destiné à représenter les besoins des utilisateurs par

rapport au système et qui produisent un résultat observable pour l'acteur. C'est qui exprime les interactions acteurs /système.

47

Ce diagramme constitue un des diagrammes les plus structurants dans l'analyse d'un système.

i. Diagramme de cas d'utilisation générale

Figure 17: Diagramme de cas d'utilisation général

La figure 17 représente le diagramme de cas d'utilisation générale compose par un superviseur (client Android) qui faire les fonctionnalités suivantes :

·

48

Consulter courbes/états: les superviseurs peuvent contrôler les différentes valeurs des variables (température, humidité, luminosité, énergie, flamme) à travers une interface Android.

· Passer réclamation : en cas de panne le superviseur passer une réclamation a l'administrateur sous forme description, image ou les deux au même temps.

Dans ce diagramme il y a une relation de généralisation entre le superviseur et

l'administrateur donc le cas d'utilisation enfant (du superviseur) est une
spécialisation du cas d'utilisation parent (du l'administrateur).

L'administrateur ayant des fonctionnalités supplémentaire par rapport au superviseur qui sont les suivants :

· Gestion des superviseurs/Gestion des capteurs : l`administrateur aux les fonctions de gérer les différentes superviseurs et capteurs: ajout, suppression, mettre à jour...etc.

· Consulter reclamation: Cette notation n'est possible que lorsque le superviseur passer la réclamation : le cas « utilisateur : passer réclamation » inclut la fonctionnalité du cas « utilisé : consulter réclamation ».

Chaque utilisateur doit s'authentifier avant d'accéder à l'application.

ii. Diagramme de cas d'utilisation pour l'application web

L'application web donne à l'administrateur la possibilité de consulter les graphes, les états et les réclamations. En plus, il gère les superviseurs et les capteurs. Enfin, Chaque administrateur doit s'authentifier avant d'accéder à l'application.

49

Figure 18 : Diagramme de cas d'utilisation pour l'application web

Dans le premier cas d'utilisation « consulter les graphes » l'administrateur permet de contrôler les différentes variables (température, humidité, luminosité, énergie), qui déjà prendrons de système de contrôle, sous forme des courbes et histogramme ainsi, il permet de retourner à historique pour observer les anciennes valeurs.

Ensuite, l'administrateur permet de « consulter les états » c'est-à-dire visualiser les dernières valeurs de ces variables dans un temps réel.

Déplus, il permet de « consulter les réclamations ». Ce le message qui envoyer par le superviseur en cas de problème.

Enfin, il a l'accès des « gestion des superviseurs » et « gestion des capteurs ». Il permet d'ajouter, modifier et supprimer un capteur ou un superviseur.

50

iii. Diagramme de cas d'

utilisation pour l'application Android

 

La figure 19 montre les différentes fonctionnalités du superviseur (client Android).

Figure 19 : Diagramme de cas d'utilisation pour l'application Android

doit s' « authentifier » avant

d'accéder à son

 

D'abord, Chaque superviseur application Android.

Ensuite, il permet de « consulter les graphes » et « consulter les courbes » pour suivi les différentes variantes environnementales dans le centre des données.

En plus, il permet de « passer une réclamation » a l'administrateur qui décrire une description brève avec une capture récapitule ce qui c'est passe dans le centre.

IV. Etude dynamique

: les diagrammes de séquences

 

1. Description

Les diagrammes de séquence peuvent servir à illustrer les cas d'utilisations décrits dans la partie précédente. Ils permettent de représenter la succession chronologique des opérations.

Les composants d'un diagramme de séquence sont les suivants :

Les objets : sur un diagramme de séquence, les objets apparaissent toujours dans la partie supérieure, ce qui facilite l'identification des classes qui participent à l'interaction.

Le message : élément de communication unidirectionnel entre objets qui déclenche une activité dans l'objet destinataire. La réception d'un message provoque un événement

51

dans l'objet récepteur. La flèche pointillée représente un retour au sens UML. Cela signifie que le message en question est le résultat direct du message précédent.

Dans cette partie, les scénarios les plus importants sont décrits ainsi que leurs représentations par les diagrammes de séquence.

2. Diagramme de séquences « authentification »

Dans cette partie, nous décrirons le cas d'utilisation « s'authentifier ».

(login, mot

Figure 20 : Diagramme de séquence « authentification »

· Acteur : Les utilisateurs: administrateur et superviseur.

· Pré condition: L'utilisateur doit avoir ses propres paramètres de connexion de passe)

· Description des Scénarios :

y' L'utilisateur entre son login et son mot de passe.

y' Le système vérifie automatiquement les informations saisies par l'utilisateur.

y' Si l'authentification est correcte : les informations saisies sont validées avec succès et la fenêtre d'accueil de l'application lui apparaît.

y' Sinon les informations saisies sont non validées et l'utilisateur doit retaper son mot de passe.

y' Le système cède la main à l'utilisateur pour un nouvel essai d'authentification.

52

3. Diagramme de séquences « Consulter les courbes».

La Figure 21 présente le diagramme de séquences «Consulter courbe».

Figure 21 : diagramme de séquences « consulter courbe »

· Acteur: administrateur, superviseur.

· Description des Scénarios:

y' Le superviseur ou l'administrateur choisir une région qui va superviser puis choisir une variable qui souhaite a consulter

y' Le système importe la courbe approprié puis l'afficher

53

4. Diagramme de séquence « Envoie réclamation »

Dans cette partie nous décrirons le diagramme de séquences « passer réclamation » comme présente la figure suivante.

Figure 22 : Diagramme de séquence «Envoie réclamation »

· Acteur: superviseur.

· Pré condition: apparition d'une panne.

· Description des Scénarios :

pour

y' Le superviseur écrire une description avec une image (capture d'écran) et l'envoie au système.

y' Le système l'assigne enregistre le panne et l'envoie à l'administrateur avoir une solution.

54

Diagramme de séquence « Gérer les superviseurs »

Scénarios 1. « Ajouter un superviseur »

La Figure 23 présente le diagramme de séquences « Ajouter un superviseur ».

Figure 23 : Diagramme de séquences « ajouter superviseur »

· Acteur: Administrateur.

· Description des Scénarios:

V' L'administrateur fait entrer les attributs du superviseur à ajouter (Cin, nom, adresse, téléphone, E-mail, login, mot de passe).

V' Le système vérifie les informations entrées par l'administrateur.

V' Utilisateur ajouté avec succès.

V' Utilisateur non déjà ajouté : des champs obligatoires manquent ou un superviseur existe déjà. Le système cède la main à l'administrateur pour entrer de nouveau les informations manquantes ou erronées.

55

Scénarios 2. «Modifier un superviseur »

Figure 24 présente le diagramme de séquences «Modifier un superviseur».

modifier.

du

Figure 24 : diagramme de séquences « modifier superviseur »

· Acteur: Administrateur.

· Description des Scénarios:

V' L'administrateur choisit le superviseur à

V' Le système demande à l'administrateur d'entrer les nouvelles attributs superviseur choisi .

V' L'administrateur fait entrer les nouvelles attributs de superviseur à modifié. V' Le système vérifie les nouvelles informations entrées par l' administrateur. V' Superviseur modifié avec succès.

56

Scénarios 3. «Supprimer un superviseur »

Figure 25 Présente le diagramme de séquences «Supprimer un superviseur».

Figure 25 : diagramme de séquence « supprimer superviseur »

· Acteur: Administrateur.

· Description des Scénarios:

V' L'administrateur choisit le superviseur à supprimer.

V' Le système demande à l'administrateur de confirmer la suppression du

superviseur choisi.

V' La suppression est confirmée : le système supprime le superviseur.

V. Diagramme de classes

Le diagramme de classes exprime de manière générale la structure statique d'un système. Une classe décrit un ensemble d'objets et une association décrit un ensemble de liens. Les objets sont des instances de classes et les liens sont des instances de relations.

57

Nous présentons dans ce qui suit le diagramme de classes de notre application. Nous présentons toutes les classes de notre base de données, ainsi que les relations entre ces classes comme indiqué la figure 26 .

Figure 26: Diagramme de classes de l'application

VI. Conclusion

Dans ce chapitre, nous avons procédé à une identification des acteurs et nous avons fait une analyse des besoins par le biais des diagrammes de cas d'utilisation pour mieux comprendre le principe de fonctionnement de l'application. Par la suite nous avons détaillé nos applications en précisant la façon dont les objets et les acteurs doivent collaborer ensemble par l'utilisation des diagrammes de séquence. Finalement, nous avons décrit l'aspect statique avec un diagramme de classe globale.

Dans le chapitre suivant, nous montrons les stades de développement tout en détaillent les phases de la réalisation.

58

59

Chapitre 4 :

Réalisation

60

I. Introduction

Après avoir achevé l'étape de conception de l'application, on va entamer dans ce chapitre la partie réalisation et implémentation dans laquelle on s'assure que le système est prêt pour être exploité par les utilisateurs finaux (responsable, superviseur). A la fin de ce chapitre, les objectifs doivent avoir été atteints et le projet doit être terminé.

Cette partie consiste à concevoir la conception exprimée et de présenter quelques interfaces de notre application. Notre application est composée de trois grandes parties :

1. La première partie consiste à simuler un réseau de capteur avec Contiki pour collectée les données mesure au niveau du centre de donnes et envoie vers l'extérieur (internet, terminal distant...) à l'aide le carte Raspberry.

2. la deuxième partie consiste à créer des programmes en langage java permettant d'exécuter des scripts pour l'exécution des commandes bien spécifique et aussi pour la collecte d'information au niveau des machines du superviseur.

3. La troisième partie consiste à créer une interface web et d'interpréter graphiquement les données collectées.

4. Le dernière partie consiste à créer des tables au niveau de la base de données MySQL. Ces tables permettent l'enregistrement des données collectées.

Pour assure l'implémentation de l'application Android et la plateforme web nous passons par les étapes suivantes :

II. Etape 1 : Collection des données: par La simulation Contiki /Cooja

Il faut note bien que cette travaille reste une simulation pour les capteurs c'est-à-dire simulation de réseau (non des valeurs).

Dans notre travaille pour simuler le réseau de capteur nous utilisons un simulateur Cooja ouvrir sous le système d'exploitation Contiki version 2.6 installer sur un VMWare Player

Pour ouvrir Cooja il faut suivit les étapes ci-dessous :

1. Ouvrir le terminal

2. Entre en mode d'administration : sudo -s

3.

61

Aller dans le répertoire suivant a l'aide de commande « cd » : cd contiki-2.6/examples/ipv6/sky-websense/

4. Exécuter le simulateur Cooja pour afficher l'interface de travail par le

commande

: make TARGET = Cooja example-sky-websence.csc

Figure 27: Interface Cooja

Après, il faut ouvrir un autre terminale pour activer LBR (coordinateur du réseau) et affiche leur adresse ipv6.

Les commandes sont les suivantes:

1. Sudo -s

2. cd contiki- 2.6/examples/ipv6/sky-websense/

3. make connect-router-cooja

4. LBR sera active et son adresse afficher

5. Ouvrir le navigateur et coller l'adresse de LBR entre deux crochet [ ]

La table de routage sera affichée avec les différentes valeurs (température, luminosité)

Figure 28 : les valeurs de sensors température et luminosité

Les données captées par les noeuds sont acheminées grâce à un routage multi-saut à un noeud considéré comme un «point de collecte», appelé noeud-puits ou sink ou coordinateur.

62

Figure 29: Principe de la simulation du réseau

63

Puis, nous expliquons la partie en rouge de la figure 30

Figure 30: Passage entre les différentes parties par le Gateway Raspberry

III. Etape 2 : Raspberry

: réception et envoie des données

Figure 31: connexion entre LBR et Raspberry

Pour assure la connexion entre le coordinateur et Raspberry, nous utilisons un

câble USB et le protocole http écrit sous forme suivant :
Url= http://192.168.1.4/capteur.php

Matérielle utilisée : un clavier et une souris qui se brancheront justement sur les deux ports USB du Raspberry Pi. Et connectez un câble HDMI entre l'écran et le

Raspberry Pi.

64

Configuration de la carte Raspberry :

Installer Linux

La première chose à faire consiste à installer Linux sur le Raspberry Pi. Cela comprend les étapes suivantes :

· Télécharger et extraire l'installateur sur une carte SD (4 GO) formatée.

· Insérer la carte dans le Raspberry Pi

· Allumer le Pi, choisir ce qu'il faut installer, et attendre.

Une fois que c'est fait, vous êtes prêt à démarrer le Pi avec un bureau Linux graphique.

· Téléchargez _NOOBS_vX_Y_Z.zip et insérez la carte SD dans l'ordinateur.

· Après avoir décompressé le fichier, assurez-vous que le fichier _bootcode.bin_ est dans le répertoire racine de la carte SD.

Démarrage et installation de Raspbian

Il offre un menu graphique des différents systèmes d'exploitation.

Sélectionnez « Raspbian [RECOMMENDED] » et choisissez la langue et le type de clavier que vous utilisez. L'installation de Raspbian ne prend que quelques minutes.

Une fois que le Raspberry Pi a redémarré, vous vous retrouvez dans un environnement graphique et une session sera ouverte automatiquement.

Après vous être identifié, saisissez startx pour démarrer X Windows System, qui est l'interface graphique. Et l'interface Raspberry sera ouvrir.

IV. Etape 3 : la connexion entre le Raspberry et le Cloud

D'abord, il faut accéder au compte ( things.ubidots.com) et créez un nouveau projet (devices - add devices - Data Center). Puis, créez les différentes variables (variables- add variables- flamme). Chaque variables doit avoir un identifiant Id.

Id de variable: il s'agit d'un identifiant unique de la série chronologique qui stocke vos données.

65

Figure 32: Interface Cloud

La connexion entre le Raspberry et le Cloud se fait à l'aide d'api client. Puis, nous créons un script python à l'aide de votre éditeur de texte préféré pour envoyer les valeurs à partir l'entrée numérique dans le Raspberry Pi vers l'Ubidots

V. Etape 4 : Codage et transmission de données à partir de l'application Android

Pour accéder à l'application, l'utilisateur doit l'avoir sur son Smartphone ayant le système d'exploitation Android avec une version minimale de 4.0. Pour tester notre application, la première chose à faire consiste à télécharger et installer Android Studio.XML est utilisé pour créer les vues pour l'utilisateur.

Puis, nous importerons la bibliothèque Java d'Ubidots dans notre application pour autoriser la connexion entre l'application Android et le compte Ubidots.

Pour assurer cette connexion nous avons utilisé le protocole de communication http.

1. Protocol et format de données

Le HTTP est un protocole qui définit la communication entre un serveur et un client. Nous utilisons la méthode Post pour envoyer des données au programme situé à une URL spécifiée. La forme de la requête Post est la suivante :

http://Adresseip/nomapplication/nomfichier.php

JSON (JavaScript Object Notation) :

Est un format de données textuel, générique permet de représenter l'information

structurée. Un document JSON ne comprend que deux éléments structurels :

1.Des ensembles de paires nom / valeur ;

2.D es listes ordonnées de valeurs.

Ces mêmes éléments représentent 3 types de données :

· Des objets ;

· Des tableaux ;

· Des valeurs génériques de type tableau, objet, booléen, nombre, chaîne ou nulle.

Figure 33 : listes ordonnées sous format JSON

Le principe est donc que le client Android fait appel au script PHP et ce script va récupérer les données à partir de la base de données MySQL. Les données seront encodées au format JSON et le serveur les envoie au client. Ensuite l'application analyse et affiche ces données codées.

66

Figure 34 : l'utilisation du Protocol HTTP et format de données JSON

67

2. Description des interfaces de l'application Android

Dans ce qui suit nous présentons quelques interfaces de l'application en citant

les détails de chaque imprime écran.

· Interface de connexion

Cette interface permet au superviseur de s'authentifier et de se connecter au serveur de la base de données. Le superviseur doit entrer son login et son mot de passe pour accéder à l'application. La figure suivante présente la page authentification.

Figure 35: Interface d'authentification du superviseur

En cas d'erreur, un message d'erreur sera affiché dans le cas où les informations écrites ne sont pas présentes dans la base de données.

· Interface d'accueil

Cette interface donne la main aux superviseurs pour accéder aux différentes fonctionnalités après la vérification du login et du mot de passe. L'interface principale est présentée dans la figure suivante :

68

Figure 36: Interface d'accueil de l'application Android

· Interface supervisons des états

Un menu est fourni pour l'utilisateur, s'il choisit « supervision des états», le système enchaine à l'interface utilisateur relative à la «supervision des états». Si le superviseur peut accéder à l`interface relative aux déférentes états. C'est-à-dire afficher les dernières valeurs mesurées par le système.

Figure 37: Interface de la supervision des états

· Interface supervisons des courbes

Dans le menu principal le superviseur possède aussi la fonctionnalité de supervision des graphes Si l'utilisateur sélectionne l'icône consulter les courbes le

système affiche l`interface relative aux consultations de courbe, d'où le superviseur peut choisir l'un des fonctionnalités ; courbe température, courbe humidité, courbe luminosité, courbe énergie via les onglets correspondants. Si le superviseur choisit l' onglet température le système affiche la courbe de température comme il est illustré par la figure 38.

.

 
 

69

Figure 38: Interfaces de supervision des graphes

· Passer la réclamation

Le superviseur peut passer une réclamation sous forme d'une description ou d'une image en cas de panne pour alertes l'administrateur de centre de donnés.

Figure 39: Processus d'envoie de réclamation

· 70

Interface de Réclamation:

Une fois le superviseur a le droit d'accéder aux réclamations, il remplira le formulaire (image, description, date, heure). Ensuite, il doit l'enregistrer dans la base de données.

Figure 40: Interface « passer reclamation »

VI. Etape 5: Interprétation graphique des données collectées par l'application web

Dans cette partie, nous détaillons les principales fonctionnalités offertes par l'application web que nous avons développée. Pour ce faire, nous présentons quelques interfaces.

· Page d'accueil

Une fois les données sont valides, le superviseur accède au menu. Dans cette interface l'utilisateur peut gérer toutes les fonctionnalités de l'application.

71

Figure 41 : Interface d'accueil pour l'application web

· L'interface de gestion des superviseurs

L'administrateur a le droit de consulter les différents superviseur, il a le droit d'ajouter, modifier, ou effacer un superviseur.

L'administrateur peut ajouter un superviseur en cliquant sur l'option « ajout nouveau superviseur ». Un formulaire comportant plusieurs champs s'affiche pour la saisie des données. L'application gère le contrôle de saisie ainsi que la sauvegarde dans les bases des données.

La figure ci-dessous présente le formulaire d'ajout du superviseur.

72

Figure 42 : Formulaire d'ajout d'un nouveau superviseur

Même l'administrateur peut modifier ou supprimer un superviseur à l'aide du formulaire suivant :

Figure 43 : Formulaire de mise à jour d'un superviseur

· Interface gestion de capteur

Cette interface permet à l'administrateur d'ajouter un nouveau capteur comme il est présenté dans la figure ci-dessous :

73

Figure 44 : Formulaire d'ajout d'un nouveau capteur

Aussi, l'administrateur peut sélectionner un capteur pour le modifier ou le supprimer. La figure suivante présente la page de mise à jour du capteur.

Figure 45: Formulaire de mise à jour d'un capteur

·

Supervision des variables

Figure 46: Historique

· Consulter les réclamations

:

Après avoir reçu le message d'alerte de la part des superviseurs, l'administrateur peut à tout moment consulter les alertes, comme la montre la figure suivante

74

Figure 47: Consulter réclamation

75

VII. Conclusion

A travers ce chapitre, nous avons présenté la réalisation de l'application en représentant quelques interfaces graphiques que nous avons jugées les plus importantes et en décrivant brièvement comment nous avons planifié notre projet.

76

Conclusion

Notre travail s'inscrit dans le cadre d'un Stage de Fin d'Etudes effectué au sein de la société SOCOMMI en vue de l'obtention du diplôme de technicien en réseau informatique.

Le produit de ce projet est un système de gestion d'un centre de données avec l'utilisation des nouvelles technologies comme le réseau de capteurs, Raspberry PI, base de données, application mobile sous Android et application web.

Tout au long de ce stage, nous avons eu l'opportunité de travailler sur des problématiques techniques différentes : base des données, développement mobile et développement des services web.

Cette expérience a été bénéfique et bien fructueuse sur plusieurs plans: d'une part, elle nous a permis de consolider nos acquis tout au long de notre cursus à la Faculté des Sciences de Sfax. D'autre part, ce projet nous a été d'un grand apport pour approfondir nos connaissances en conception et en développement d'application entière. Il nous a aussi donné la possibilité d'utilisation et de configuration de différents outils dans le cadre d'une seule application, et l'apprentissage de nouvelles technologies. Enfin, et à travers ce stage, nous avons eu la chance d'améliorer nos aptitudes à communiquer et à travailler en collaboration ce qui va nous aider sans doute à bien nous intégrer dans le milieu professionnel.

Une des limites de ce système est l'absence de matérielle (le capteur réel), nous avons fait recours à la simulation. Cette limite s'inscrit dans le cadre d'une perspective d'amélioration de ce projet. La deuxième limite est qu'il ne permet pas un bon niveau de sécurité.

Ce projet reste extensible à travers l'intégration d'autres capteurs pour le contrôle du centre des données comme l'ajout d'une caméra de surveillance pour la supervision vidéo.

77

78

Webographie :

· Réseau de capteurs:

https://kadionik.vvv.enseirb-matmeca.fr/se/projetsavances/0708/rapportsujet3E30708.pdf

· Contiki:

https://tel.archives-ouvertes.fr/tel-00319073/document

· Caractéristique de capteur TelosB: exemple TelosB:

http://moodle.utc.fr/pluginfile.php/16811/modresource/content/0/Cours1/TI60sensorscours1.p df

· Standard IEEE:

http://moodle.utc.fr/pluginfile.php/16811/modresource/content/0/Cours1/TI60sensorscours1.p df

· 6lowPAN:

http://www.efort.com/rtutoriels/WPANEFORT.pdf

· Android:

https://www.raywenderlich.com/149112/android-fragments-tutorial-introduction http://www.phonandroid.com/toute-l-histoire-et-la-chronologie-d-android-dossier.html

· Python:

https://ubidots.com/docs/devices/raspberrypi.html#send-multiple-values-to-ubidots https://ubidots.com/docs/es/devices/raspberrypi.html

· Connexion entre Android et l'Ubidots:

http://www.survivingwithandroid.com/2015/12/iot-connect-android-to-arduino-chart-2.html

· Uml :

https://openclassrooms.com/courses/debutez-l-analyse-logicielle-avec-uml/uml-c-est-quoi

· Ubidots:

https://www.hackster.io/ubidots/products/ubidots

· php5:

http://creersonsiteweb.net/page-apprendre-php

http://stephaneey.developpez.com/tutoriel/php/php5nouveautes/

· Raspbian:

https://www.nextinpact.com/news/101561-raspberry-pi-avec-pixel-raspbian-fait-sa-revolution.htm https://www.raspberrypi.org/downloads/raspbian/

Mémoires

· Contiki:

https://tel.archives-ouvertes.fr/tel-01124373/document

79

Titre : conception et réalisation d'un système de contrôle d'un centre

de données

Résumé :

Le but de ce travaille consiste à faire la conception et la réalisation d'un système de contrôle d'un centre de données à travers l'intégration de nouvelles technologies telles que le réseau de capteurs WSN, Cloud, Raspberry et Android. Le système offert à l'utilisateur d'une part une application Android désignée pour les Smartphones ou les tablettes et d'autre part une application web pour la surveillance et la gestion des divers équipements du centre des données.

Mots clés : Centre de données, supervision, réseau de capteurs, Raspberry, Cloud, Android, web.

Title: Conception and realization of a data center control system

Abstract:

The objective of this work is the conception and the realization of a system in order to control a data center integrating new technologies such Wireless Sensor Network (WSN), Cloud, Raspberry and Android. The system offered to the user is composed of two parts which the first is an Android application designed for smartphones, and the second part is a web application for monitoring and managing various data center equipments, which help the user to show and remote control the various devices of the center.

Key words: Data center, supervision, wireless sensor network, Raspberry, Cloud, Android, Web.






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Là où il n'y a pas d'espoir, nous devons l'inventer"   Albert Camus