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

 > 

Plateforme de contrôle à  distance de Smart House

( Télécharger le fichier original )
par Yassine Ben Nacer
Ecole nationale des sciences de l'informatique Tunisie - Ingénieur en informatique 2013
  

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

Ministère de l'Enseignement Supérieur et de la Recherche
Scientifique
Université de la Manouba
Ecole Nationale des Sciences de l'Informatique

Rapport du Projet de Conception
et de Développement

Plateforme de Smart House

par:
MAZGOU Wissem
BEN NACER Yassine
FENDRI Dhouha

Encadrés par:

M. LATRACH Lassâad

Année Universitaire:

2012 - 2013

Signature de l'Encadrant

Remerciements

Nous tenons à adresser nos remerciements à notre encadrant Le Docteur Lassâad LA-TRACH pour ses bonnes directives, sa disponibilité et ses conseils précieux qui nous ont permis de mener à bien notre projet de Conception et de Développement.

Qu'il nous soit permis de remercier également toute l'équipe pédagogique de l'Ecole Nationale des Sciences de l'Informatique qui ont assuré notre formation.

Nous exprimons également notre gratitude à toute personne ayant contribué de près ou de loin à la bonne réalisation de notre projet.

Résumé

Notre projet est proposé dans le cadre du Projet de Conception et de développement au sein de l'Ecole Nationale des Sciences de l'informatique (ENSI).

Notre tâche est d'implémenter une plateforme de surveillance à distance dédiée aux maisons. L'équipement domiciliare à l'intérieur alors peut être contrôlé à distance depuis un Smart-phone tournant sous ANDROID. Le contrôle sera littéralement fait par la plateforme matérielle ARDUINO qui reçoit les ordres de la part d'un serveur PHP via le service Web de Google "Google Cloud Messaging".

Tout au long du projet, nous étions amenés à mettre en place un nouveau concept qui est le SmartHousing et déployer une maquette le présentant.

Mots-clés : Smartphone, ANDROID, ARDUINO, PHP, Google Cloud Messaging, Smar-tHousing.

Rapport de Projet de Conception et de Développement 5

Abstract

Our project is proposed in the Design and development Project Module within the National School of Computer Science (NSCS).

Our task is to implement a platform for monitoring dedicated to remote homes. The equipment inside can be controlled remotely from a Smartphone running under ANDROID System. Control will be literally done by hardware ARDUINO platform that receives commands from a PHP server via Google Web-service "Google Cloud Messaging".

Throughout the project, we were asked to develop a new concept which is SmartHousing and deploy a comp presenting it.

Keywords : Smartphone, ANDROID, ARDUINO, PHP, Google Cloud Messaging, Smar-tHousing.

Rapport de Projet de Conception et de Développement 6

Table des matières

Introduction Générale 1

1 Etat De l'Art 3

1.1 Importance de l'avancement technologique quotidien 3

1.1.1 Tablette tactile 3

1.1.2 Smartphone 4

1.2 Le SmartHousing 5

1.2.1 Définition 5

1.2.2 Système de Surveillance à distance 6

1.3 Etude de l'existant 7

1.3.1 Smart House BSH 7

1.4 Solution proposée 9

2 Analyse et Spécifications des Besoins 11

2.1 Objectif 11

2.2 Acteurs 11

2.3 Analyse des besoins 12

2.3.1 Besoins fonctionnels 12

2.3.2 Besoins non fonctionnels 13

2.4 Spécification des besoins 13

2.4.1 Diagrammes de cas d'utilisation 13

2.4.2 Scénarios d'utilisation 14

2.4.2.1 Création d'un compte 14

2.4.2.2 Verrouiller Serrure 16

2.4.2.3 Consulter température 17

Rapport de Projet de Conception et de Développement 7

TABLE DES MATIÈRES

2.4.2.4 Allumer Lampe 18

2.4.3 Diagrammes d'activités 18

3 Conception 21

3.1 Conception globale 21

3.1.1 Architecture globale de l'application 21

3.1.2 Diagramme de déploiement 23

3.1.3 Diagramme de paquetage 24

3.2 Conception détaillée 26

3.2.1 Diagramme de classes 26

3.2.1.1 Paquetage Client 26

3.2.1.2 Paquetage Passerelle 28

3.2.1.3 Paquetage ARDUINO 29

3.2.2 Modèle Entité-Association de la base de données 29

4 Réalisation 32

4.1 Environnement de travail 32

4.1.1 Environnement matériel 32

4.1.2 Environnement logiciel 34

4.2 Choix techniques 35

4.2.1 Développement de la partie cliente 35

4.2.2 Développement de la couche métier 35

4.2.3 Développement de l'application Passerelle 36

4.2.4 Développement de la partie ARDUINO 36

4.3 Les interfaces graphiques 38

4.3.1 Le menu du télephone Android avec l'icone de l'application 38

4.3.2 Les interfaces de l'Administrateur 39

4.3.2.1 Authentification 39

4.3.2.2 Fonctions 39

4.3.3 Les interfaces du Client 41

4.3.3.1 L'authentification du client 41

4.3.3.2 Allumage d'une lampe 42

4.3.3.3 Verrouillage d'une porte 43

Rapport de Projet de Conception et de Développement 8

TABLE DES MATIÈRES

4.3.3.4 Activation de l'alarme 44

4.3.4 Nouveau Utilisateur 45

4.4 Chronogramme du travail 46

Conclusion générale 48

Bibliographie 49

Netographie 50

Rapport de Projet de Conception et de Développement 9

Table des figures

1.1 Samsung Galaxy Tab 10.1 4

1.2 Samsung Galaxy Note 1 5

1.3 Configuration globale d'une chambre[B5] 6

1.4 Menu principal de "Smart House BHS" 7

1.5 Vidéo-surveillance avec "Smart House BHS" 8

1.6 Vidéo-surveillance avec "Smart House BHS" 8

1.7 Notes avec "Smart House BHS" 9

2.1 Diagramme de cas d'utilisation du système 14

2.2 Diagramme de séquence de création de compte, scénario nominal 15

2.3 Diagramme de séquence de création de compte, scénario alternatif 15

2.4 Diagramme de séquence de verrouillage de la serrure, scénario nominal 16

2.5 Diagramme de séquence de verrouillage de la serrure, scénario alternatif 17

2.6 Diagramme de séquence de consultation de température 17

2.7 Diagramme de séquence d'allumage de lampe 18

2.8 Diagramme d'activités de l'interface du Client 19

2.9 Diagramme d'activités de l'interface de l'administrateur 20

3.1 Modèle de l'architecture de l'application 22

3.2 Diagramme de déploiement 24

3.3 Diagramme de paquetage 25

3.4 Diagramme de classes de l'application Cliente 27

3.5 Diagramme de classes de l'application Passerelle 28

3.6 Diagramme de contexte de l'application ARDUINO 29

3.7 Diagramme relationnel de la base de données 30

Rapport de Projet de Conception et de Développement 10

TABLE DES FIGURES

4.1 La configuration des micro-ordinateurs utilisés 33

4.2 La maquette 33

4.3 L'accessibilité de l'application cliente 36

4.4 carte MEGA ADK 37

4.5 Le menu du télephone Android avec l'icone de l'application 38

4.6 Authentification de l'Administrateur 39

4.7 Gestion des comptes 40

4.8 Liste des comptes avec options 40

4.9 Se déconncter 41

4.10 Authentification du Client 41

4.11 Lampe allumée 42

4.12 Lampe éteinte 42

4.13 Porte verrouillée 43

4.14 Porte déverrouillée 43

4.15 Alarme activée 44

4.16 Alarme activée 45

4.17 Création de Compte 45

Liste des tableaux

Rapport de Projet de Conception et de Développement 11

4.1 Chronogramme du projet 46

Rapport de Projet de Conception et de Développement 1

Introduction Générale

L

'Internet et le World Wide Web sont à l'origine d'une révolution dans de nombreux aspects de notre vie. Le coeur de cette modification est la capacité hypothétique à partager efficacement l'énorme quantité d'informations contenues sur ce réseau. Ce réseau international est le réseau favoris pour toutes les tranches d'âges, il est possible d'y faire plusieurs actions à distance facilement et pour plusieurs raisons et motifs : discuter avec des amis, partage d'informations et de fichiers, e-commerce, e-learning ... et beaucoup d'autres services innovants, à citer par exemple : Facebook, Skype, LinkedIn, MediaFire, Google ...

Aujourd'hui, nous assistons au mariage de l'Internet et du portable, né à la fin des années 1990. En 2013, l'ubiquité est un choix, il est devenu banal d'être ici et ailleurs, en même temps. Toute information figure obligatoirement sur Internet, et avec ce mariage, tout est devenu accessible avec le portable. Chaque lien nous donne accès à un savoir encyclopédique ou utilitaire. Par exemple, pour se guider dans les déplacements, il n'y aura bientôt plus besoin de signalétique ni de carte; nous sommes constamment informés de notre localisation d'une façon précise, ainsi que nous sommes aussi toujours connectés à nos proches via plusieurs moyens de communications à distance, ce qui nous apporte de la sécurité et nous rassure affectivement.

Une question primordiale se pose : pourquoi les Smartphones sont-ils appelés " smart" (intelligent)? Tout d'abord, l'ergonomie des Smartphones est généralement plus intuitive et conviviale que celle des " Features Phones ", leurs ancêtres. De plus, ils offrent des fonctionnalités avancées qui demandent des traitements et des décisions complexes à effectuer ainsi qu'ils peuvent faire tourner une dizaine d'applications, voire des centaines, en même temps. Et enfin, ils peuvent offrir la possibilité de se connecter à Internet et d'utiliser les services offerts dans ce dernier comme sur un ordinateur personnel. Pour ne pas sombrer dans un sentiment d'insécurité, tout le monde désire conserver un oeil sur notre domicile, notre bureau, notre ma-

Rapport de Projet de Conception et de Développement 2

Introduction Générale

gasin ou nos entrepôts, alors que nous sommes en déplacement, ou en vacances. Pour cela, il est nécessaire d'installer un système de surveillance accessible par téléphone peu importe d'où.

Le présent rapport s'articule autour de quatre chapitres : le premier chapitre intitulé "Etat de l'Art" qui comportera une étude de l'existant sur le projet, nous allons y présenter toute l'étude préalable nécessaire pour l'élaboration de notre projet. Le deuxième chapitre se nomme "Analyse et Spécification des Besoins", il portera sur les fondements du projet de point de vue fonctionnalités et options; ses idées piliers seront exposées. La partie "Conception" sera traitée en troisième, nous détaillerons la structure fondamentale de notre projet. Le dernier chapitre sera consacré à la "Réalisation", ce dernier contiendra le méthodologie suivie pour l'implémen-tation du projet et quelques extraits de l'interface de l'application. En conclusion, nous passerons en revue nos apports aussi bien que les perspectives.

Rapport de Projet de Conception et de Développement 3

Chapitre 1

Etat De l'Art

Introduction

L

'étude théorique d'un projet est importante afin d'évaluer l'environnement du produit. Le projet est alors mis dans son contexte général. Tout au long de ce chapitre, nous introduirons l'idée du projet et de mettre en évidence son importance pour la surveillance des maisons à distance. Ensuite, nous mentionnerons les plateformes existantes qui offrent ces mêmes services. Enfin, Nous comparerons les technologies citées entre-elles.

1.1 Importance de l'avancement technologique quotidien

Vu le rôle principal que joue la technologie dans notre vie quotidienne, il est primordial de définir les différentes machines qui la représente. Nous allons alors présenter quelques appareils qui ont une grande réputation et qui sont nécessaires pour l'élaboration de notre projet:

1.1.1 Tablette tactile

C'est un objet plutôt compact et très mobile, composé d'un écran tactile, d'une électronique proche de celle d'un Netbook (petit ordinateur portable), sans clavier physique et qui se connecte, sans fil, au réseau domestique ou à Internet. On peut s'en servir pour aller sur Internet, lire ses mails, écouter de la musique, regarder des vidéos ou des photos, lire un livre (e-book) ou son journal (e-news), jouer, téléphoner, etc. De part caractéristiques techniques, les tablettes tactiles ne peuvent prétendre être l'équivalent des ordinateurs de salon ou même portables mais elles pourraient s'imposer comme le meilleur rapport : services rendus / mobilité

Rapport de Projet de Conception et de Développement 4

Chapitre 1 : Etat De l'Art

et facilité d'utilisation.

FIGURE 1.1 - Samsung Galaxy Tab 10.1

Avec des prix à la portée de la plupart de la population, les tablettes tactiles dominent de plus en plus le marché électronique. Leur facilité d'utilisation et la passion de la nouvelle technologie tactile laissent à désirer. Pendant seulement le 3ème trimestre de 2012, 27 millions de tablettes tournant sur Android ont été vendues.

1.1.2 Smartphone

Les Smartphones (ou téléphones intelligents) sont des appareils mobiles dotés d'un véritable système d'exploitation et de fonctions avancées. Il s'agit de véritables "couteaux suisses" technologiques : avec un seul produit vous pouvez téléphoner, prendre des photos, surfer sur le web, faire des vidéos, écouter de la musique, régler l'agenda et le calendrier, regarder la télévision, consulter la boîte e-mail... ils font intégralement partie de notre quotidien et participent même à son amélioration. Même si les Smartphones ne concernent qu'1/4 des propriétaires de téléphones mobiles (estimé à 1/3 en 2014), ses usages vont petit à petit se diluer sur des téléphones moins sophistiqués mais qui s'améliorent avec le temps. Avec plus que 250.000 applications disponibles sur l'Android Market, on s'ennuie jamais des nouvelles applications innovantes uploadées quotidiennement sur Android Market.

Rapport de Projet de Conception et de Développement 5

Chapitre 1 : Etat De l'Art

FIGURE 1.2 - Samsung Galaxy Note 1

1.2 Le SmartHousing

La notion de confort dans les maisons devient de plus en plus complexe. L'apparition de l'idée de Smarthouse nous décharge de l'inquiétude à propos de notre maison,non seulement sur l'environnement mais également sur l'utilisateur et son comportement.

1.2.1 Définition

Une SmartHouse (maison intelligente) est une maison qui permet à ses propriétaires le confort de la maison, la sécurité, l'efficacité énergétique (faibles coûts d'exploitation) et commodité à tout moment, indépendamment de savoir si quelqu'un est à la maison.

"Smart Home" est le terme communément utilisé pour définir une résidence qui a électroménagers, éclairage, chauffage, climatisation, téléviseurs, ordinateurs, divertissement audio et les systèmes vidéo, de sécurité et des systèmes de caméras qui sont capables de communiquer les uns avec les autres et peut être contrôlée à distance par un calendrier, à partir de n'importe quelle pièce de la maison, ainsi qu'à distance à partir de n'importe quel endroit dans le monde par téléphone ou par Internet[N5].

Rapport de Projet de Conception et de Développement 6

Chapitre 1 : Etat De l'Art

FIGURE 1.3 - Configuration globale d'une chambre[B5]

1.2.2 Système de Surveillance à distance

Les systèmes de surveillance à distance sont des systèmes qui envahissent le monde petit à petit avec l'invasion des hautes technologies de nos jours. La rapidité et la facilité qu'ils procurent sont de très bonne aide pour toutes les tranches d'âges. Nous allons commencer par définir à bien le cadre du projet et ses débouchés.

Chaque père de famille est responsable de son domicile, il voudrait vérifier à tout instant l'état de la maison. Il est craintif à chaque fois qu'il se souvienne de sa maison loin de son emplacement de travail, du supermarché ou de tout autre endroit. Il utilise parfois la solution de garde (gardien) permanente à domicile.

Mais avec l'omniprésence de l'Internet et son aptitude à transporter de l'information des bouts du monde, de nos jours, un système de surveillance à distance via Internet et tout à fait faisable et pratique à utiliser n'importe où. Il pourra alors contrôler son équipement domiciliaire ou y jeter un coup d'oeil pour se rassurer.

Rapport de Projet de Conception et de Développement 7

Chapitre 1 : Etat De l'Art

1.3 Etude de l'existant

Dans cette partie, nous allons faire part de quelques applications qui visent les mêmes objectifs que les nôtres, mais vu que la plupart des applications de SmartHousing sont payantes, nous allons seulement présenter une seule application.

1.3.1 Smart House BSH

L'application "Smart House BSH" est une application sur ANDROID qui permet de contrôler l'équipement domiciliaire depuis la maison.

Voilà le menu principal de l'application, figure 1.4 :

FIGURE 1.4 - Menu principal de "Smart House BHS"

L'application permet surveiller via un système de vidéo-surveillance comme le montre les deux figures 1.5 et 1.6 suivantes:

Rapport de Projet de Conception et de Développement 8

Chapitre 1 : Etat De l'Art

FIGURE 1.5 - Vidéo-surveillance avec "Smart House BHS"

FIGURE 1.6 - Vidéo-surveillance avec "Smart House BHS"

Elle permet aussi de prendre des notes concernant la maison. La figure 1.7 nous montre un

Rapport de Projet de Conception et de Développement 9

Chapitre 1 : Etat De l'Art

exemple:

FIGURE 1.7 - Notes avec "Smart House BHS"

1.4 Solution proposée

La solution que nous proposons a des objectifs très proches de l'exemple que nous avons mentionné (Smart House BHS) mais avec d'autres méthodes et une autre vision, la nôtre. Après l'étude de l'application "Smart House BHS", nous avons pu déterrer quelques remarques et critiques qui pourront promouvoir notre projet. Nous avons remarqué que:

> L'utilisateur doit essentielle être dans la maison pour pouvoir contrôler l'équipement,

nous proposons à ce sujet qu'il puisse le faire en dedans et en dehors de la maison. > Le système ne dispose pas de système d'alarme, ce sera un plus pour le projet.

> L'une des choses dont on peut penser chez soi, c'est la température de la maison qui sera incluse dans notre projet

> L'application peut être utilisée par chaque utilisateur ayant l'application connectée au réseau de la maison. Nous proposons que notre projet ait la possibilité de créer des comptes de nouveaux utilisateurs et un Administrateur soit responsable sur eux.

Rapport de Projet de Conception et de Développement 10

Chapitre 1 : Etat De l'Art

Conclusion

Nous avons pu clarifier dans ce chapitre le cadre du projet et présenter son contexte général. L'étude a été très bénéfique pour pouvoir entamer la suite de l'élaboration du projet, cette étude s'achemine maintenant vers sa phase de spécification qui sera traitée dans le chapitre suivant.

Rapport de Projet de Conception et de Développement 11

Chapitre 2

Analyse et Spécifications des Besoins

Introduction

L

E long de ce chapitre, nous mettrons en exergue les besoins de l'utilisateur à prendre en compte vu que l'état de l'art a été présenté dans le chapitre précédant. Ce chapitre pourra alors éclaircir plus les objectifs du projet et les analyser. Ce chapitre est divisé en deux grandes parties principales : Primo, nous allons mentionner les objectifs du projet, ses besoins fonctionnels et non fonctionnels, ainsi que ses acteurs. Secundo, nous présenterons les cas d'utilisation et les scénarii des fonctionnalités offertes par le système.

2.1 Objectif

Le système de surveillance de maison à distance a pour objectif primordial de surveiller à distance sa maison via un système d'alarme, ainsi que de contrôler quelques équipements tels que la luminosité des pièces et la porte principale de la maison en question. Le système aussi pourra notifier ses utilisateurs en cas d'urgence.

2.2 Acteurs

Un acteur du système est tout utilisateur ayant une relation directe avec le système demandant un service donné. Les acteurs sont alors:

> Le Client: c'est tout utilisateur disposant d'un Smartphone et d'un compte et qui demande un service concernant la maison dont il appartient tout en respectant ses droits d'utilisation

Rapport de Projet de Conception et de Développement 12

Chapitre 2 : Analyse et Spécifications des Besoins

> L'Administrateur: c'est l'acteur qui pourra gérer les comptes des clients en termes de validité et de droits d'accès.

Chacun de ces acteurs a un rôle bien défini dans notre application. Cette dernière est conçue afin de pouvoir satisfaire les besoins mentionnés ci-dessous.

2.3 Analyse des besoins

2.3.1 Besoins fonctionnels

Notre plateforme disposera de plusieurs interfaces afin de satisfaire les besoins de chaque acteur, les services qui seront offerts seront comme suit:

> Le Client

1. Créer un compte (Invalide initialement) et s'authentifier : L'application devra donner la possibilité au client de s'authentifier s'il a déjà un compte valide, ou s'inscrire au début de son utilisation de l'application

2. Verrouiller / Déverrouiller la serrure de la porte principale : Le système est responsable sur le verrouillage et le déverrouillage de la serrure de la porte. Cette action est effectuée sous demande du client mais elle requiert des droits biens particuliers donnés par l'administrateur pour pouvoir l'utiliser

3. Activer / Désactiver l'alarme : Cette action pourra être effectuée à chaque entrée ou sortie de l'un des utilisateurs

4. Allumer / Éteindre les lampes de la maison: L'application pourra effectuer cette action à n'importe quel moment

5. Consulter quelques propriétés relatives à la maison: - Température

- Climat

> L'Administrateur

1. S'authentifier : L'administrateur est un utilisateur spécial, son inscription se fera au début de l'installation de l'application chez les utilisateurs (son inscription ne se fait pas comme les clients)

2. Gérer les comptes des clients dont il est responsable: - Valider / Invalider

Rapport de Projet de Conception et de Développement 13

Chapitre 2 : Analyse et Spécifications des Besoins

- Modifier droits d'accès - Supprimer

2.3.2 Besoins non fonctionnels

Le projet bien évidemment présente quelques contraintes dans la réalisation, voilà ci-dessous les besoins non fonctionnels:

> Facilité d'utilisation:

L'application dont dispose sera une application simpliste et utilisable sans aucune complexité, il sera aussi accompagné d'un tutoriel, ce dernier sera un indice dans le cas d'am-biguïté (peu probable). L'application prise en main sera aussi bilingue; en Français en en Anglais, afin qu'elle soit manipulable par plus de personnes.

> Facilité d'apprentissage:

Aucun prérequis n'est nécessaire pour l'utilisation de l'application car elle sera clairement utilisable.

> Rapidité d'exécution:

Toute instruction demandée par le système ne dépassera pas le délai de 3 secondes de traitement.

> Maintenance du produit:

Le développement de l'application sera bien détaillé et commenté afin que la maintenance soit plus facile et plus rapide. Il sera même maintenable par des développeurs qui ne sont les développeurs d'origine.

2.4 Spécification des besoins

Nous avons adopté dans cette phase d'analyse le formalisme UML [B1] en présentant les diagrammes de cas d'utilisation, qui donnent une vision globale et simple du comportement fonctionnel du système, et les diagrammes de séquence relatif à chaque cas d'utilisation pour décrire les scénarii de notre projet.

2.4.1 Diagrammes de cas d'utilisation

Nous présentons, dans la figure 2.1 ci-dessous, le diagramme de cas d'utilisation global de notre système. Ce diagramme résume les fonctionnalités principales auxquelles nous nous

Rapport de Projet de Conception et de Développement 14

Chapitre 2 : Analyse et Spécifications des Besoins

intéresserons.

FIGURE 2.1 - Diagramme de cas d'utilisation du système

Toute instruction ne pourra s'exécuter que s'il y a une authentification de la part des utilisateurs que ce soit de la part du client ou de l'administrateur.

2.4.2 Scénarios d'utilisation

Dans cette section, nous montrons les interactions dans le cadre des diagrammes des cas d'utilisation à l'aide des diagrammes de séquence. Le but étant de décrire comment se déroulent les actions entre les acteurs ou objets, les diagrammes de séquences sont la représentation graphique des interactions entre les acteurs et le système selon un ordre chronologique. Dans ce qui suit, nous présenterons quelques diagrammes de séquences illustrant les interactions entre les acteurs et notre système et ce dans un scénario nominal et alternatif.

2.4.2.1 Création d'un compte

Nous commençons par la création de compte avec l'acteur client afin de créer un nouveau pour pouvoir utiliser l'application. Ce client alors devra entrer ses informations personnelles et attendre jusqu'à ce que l'administrateur lui valide son compte pour qu'il soit opérationnel. La figure 2.2 ci-dessous représente le diagramme de séquence illustrant le scénario nominal:

Rapport de Projet de Conception et de Développement 15

Chapitre 2 : Analyse et Spécifications des Besoins

FIGURE 2.2 - Diagramme de séquence de création de compte, scénario nominal

Sauf que par malchance, il pourrait qu'il n'y ait pas de validation de la part de l'adminis-trateur, et ce pour plusieurs raisons que seul l'administrateur connaisse (faux enregistrement, intrusion...). Le diagramme de séquence suivant dans la figure 2.3 présente le scénario alternatif pour la création de compte.

FIGURE 2.3 - Diagramme de séquence de création de compte, scénario alternatif

Rapport de Projet de Conception et de Développement 16

Chapitre 2 : Analyse et Spécifications des Besoins

2.4.2.2 Verrouiller Serrure

Le verrouillage et le déverrouillage de la serrure de manière distante est la fonctionnalité primordiale de notre projet, c'est le contrôle le plus délicat de ce système. Le client devra pouvoir s'authentifier et lancer le verrouillage de la serrure de la porte. L'activation de l'alarme est une option qui est attachée à cette fonctionnalité, mais elle est aussi une fonctionnalité à part. Le diagramme de séquence (Figure 2.4) suivant permet de décrire le scénario du déverrouillage :

FIGURE 2.4 - Diagramme de séquence de verrouillage de la serrure, scénario nominal

Il se pourrait que l'un des utilisateurs n'ayant pas droit à ouvrir la porte essaye de le faire, le système alors ne devra pas exécuter sa demande mais plutôt signaler à cet utilisateur que ses droits sont insuffisants pour demander une telle fonction. Le scénario serait alors comme suit:

Rapport de Projet de Conception et de Développement 17

Chapitre 2 : Analyse et Spécifications des Besoins

FIGURE 2.5 - Diagramme de séquence de verrouillage de la serrure, scénario alternatif

2.4.2.3 Consulter température

Comme mentionné dans les cas d'utilisation, l'utilisateur a possibilité de consulter la température dans l'une pièce et ce en choisissant cette dernière avant. Le diagramme suivant permet d'illustrer le scénario pour pouvoir consulter la température d'une chambre choisie par le client:

FIGURE 2.6 - Diagramme de séquence de consultation de température

Rapport de Projet de Conception et de Développement 18

Chapitre 2 : Analyse et Spécifications des Besoins

2.4.2.4 Allumer Lampe

Contrôler les lampes à distance est l'une des idées les plus innovantes du projet, cette fonctionnalité permet de pouvoir contrôler l'économie de l'énergie, même de loin. Voilà le diagramme de séquence relatif à cette action:

FIGURE 2.7 - Diagramme de séquence d'allumage de lampe

2.4.3 Diagrammes d'activités

Chaque utilisateur possède des accès qui sont propres à son rôle, d'où une interface qui lui est distincte. Les diagrammes d'activités permettent d'expliquer mieux les transitions de l'in-terface Homme-Machine avec chaque évènement déclenché afin de mieux connaître les chemins qui peuvent mener l'utilisateur à un service donné.

Nous allons alors présenter les diagrammes d'activités pour chaque acteur. Nous allons commencer par celui du client dans la figure 2.8 ci-dessous:

Chapitre 2 : Analyse et Spécifications des Besoins

FIGURE 2.8 - Diagramme d'activités de l'interface du Client

Ce diagramme d'activités explique plus précisément la navigation de l'interface du client. Comme déjà mentionné dans le diagramme de cas d'utilisation, toute action (contrôle ou consultation) ne peut être exécutée que s'il y a authentification de l'utilisateur, ainsi il pourrait utiliser les fonctionnalités qui lui sont permises.

Nous passons alors au diagramme d'activités de l'administrateur qui est déjà impliqué dans les activités de l'interface du client. Le diagramme est présenté dans la figure 2.9 suivante:

Rapport de Projet de Conception et de Développement 19

Rapport de Projet de Conception et de Développement 20

Chapitre 2 : Analyse et Spécifications des Besoins

FIGURE 2.9 - Diagramme d'activités de l'interface de l'administrateur

La gestion des comptes a été représentée par les trois fonctionnalités qui la composent (Validation, Modification, Suppression).

Conclusion

Le but de la spécification des besoins est de donner les moyens à l'utilisateur d'appréhender rapidement le fonctionnement général et de comprendre les détails de chaque fonctionnalité. Nous venons alors de présenter dans ce chapitre les cas d'utilisation de chaque acteur ainsi que les scénarios de ces utilisations de façon concise et simple afin de pouvoir entamer la conception qui fera l'objet du prochain chapitre.

Rapport de Projet de Conception et de Développement 21

Chapitre 3

Conception

Introduction

A

Près avoir clarifié les différents besoins que le système doit assurer au cours du chapitre précédent, nous allons maintenant présenter la conception de notre projet. Dans ce chapitre, nous mettrons en relief l'architecture adoptée pour notre application, nous allons ensuite préciser et s'approfondir encore plus dans les composants de cette architecture à l'aide de quelques diagrammes[B1].

3.1 Conception globale

Dans cette partie, nous expliquerons l'architecture que nous opté pour notre application. Nous expliciterons ensuite les paquetages et les noeuds afin de bien entamer en deuxième lieu la conception détaillée.

3.1.1 Architecture globale de l'application

En ce qui concerne l'architecture globale de notre système, nous avons essayé de suivre une architecture qui satisfait les besoins fonctionnels, ainsi que les besoins non fonctionnels de notre application, tout en assurant la maintenance et la réutilisabilité.

Ce choix a été pris en ayant recours à plusieurs idées ainsi qu'au cheminement des données d'un acteur à un autre, d'où nous avons tranché avec le choix d'une architecture représentée ci-dessous dans la figure 4.1 :

Rapport de Projet de Conception et de Développement 22

Chapitre 3 : Conception

FIGURE 3.1 - Modèle de l'architecture de l'application

Nous pouvons distinguer trois zones dont la plateforme existe:

> L'environnement du Client: qui pourrait être n'importe où dans le monde entier (à condition qu'il dispose d'une connexion Internet).

> Le réseau Internet: dont hébergés le serveur d'application et la base de données, ainsi sue le service Web de Google "Google Cloud Messaging" (GCM) qui jouera le rôle de coordinateur entre la couche métier hébergée et la troisième zone.

> L'environnement de la maison : composé de deux éléments, une application Passerelle pour diriger les requêtes et les informations, et une plateforme ARDUINO, composant matériel chargé des tâches physiques (Lampe, Moteur, Capteur, etc...)

Le choix de l'architecture ne repose pas seulement à ce que nous venons de mentionner,

Rapport de Projet de Conception et de Développement 23

Chapitre 3 : Conception

mais un plan d'action est certainement nécessaire.

Voilà comment le choix de l'architecture pourra aider à satisfaire les besoins du projet:

> Le client ANDROID envoie des requêtes HTTP au serveur dans la couche métier. Ce dernier capture cette demande, la traite et l'envoie au serveur Web GCM tout en lui indiquant l'identifiant de la passerelle ANDROID à adresser.

> La passerelle, ayant reçu le message, transmet la demande via USB à l'ARDUINO. Celui-ci fournit la réponse via l'USB aussi [B2].

> La passerelle, à son tour, transmet cette réponse au serveur pour qu'il puisse l'enregistrer dans la base de données, et lui demande de notifier le client ANDROID.

> Le serveur prend en charge la notification du client ANDROID en utilisant le format de compression de données JSON.

3.1.2 Diagramme de déploiement

Nous présentons à présent le diagramme de déploiement, les cubes qui y figurent représentent les noeuds principaux de l'architecture. Les carrés dedans sont les composants principaux de ces noeuds. Le diagramme de déploiement de notre projet est représenté par la figure 3.2.

En ce qui concerne les cardinalités figurant dans la figure, chaque système ne pourra posséder qu'une seule passerelle, un seul noeud ARDUINO, un seul système de messagerie (GCM) et qu'une seule couche métier, tandis que pour les applications clientes, il devrait y avoir un ou plusieurs utilisateurs qui accèdent et bénéficient du système. Nous pourrons plus détailler ces noeuds dans la partie qui suit avec le diagramme de paquetage ainsi que les diagrammes de classes de chacun de ces paquetages.

Rapport de Projet de Conception et de Développement 24

Chapitre 3 : Conception

FIGURE 3.2 - Diagramme de déploiement

3.1.3 Diagramme de paquetage

Afin de promouvoir les performances de notre application, nous optons à un découpage en module des paquetages. Le paquetage permet de regrouper des éléments interdépendants au sein d'une même entité. Cette décomposition nous permet de visualiser les dépendances entre les différentes parties de notre application.

Ci-après, la figure 4.4, un diagramme de paquetage décrivant les différents paquetages et les relations entre eux.

Rapport de Projet de Conception et de Développement 25

Chapitre 3 : Conception

FIGURE 3.3 - Diagramme de paquetage

> Paquetage Client: Ce paquetage se compose de l'ensemble de classes de l'application Android. Nous nous approfondirons plus dans ce paquetage dans la partie de la conception détaillée.

> Paquetage Passerelle : Ce paquetage assure la communication entre le serveur et la carte Arduino, le serveur alors pourra à distance communiquer avec la carte Arduino afin de contrôler l'équipement de manière fiable.

> Paquetage Arduino : Ce paquetage renferme les composants physiques qui assureront le contrôle total des équipements tels que les lampes, les capteurs de température et la serrure.

> Paquetage GCM : Ce paquetage permet d'envoyer des données depuis le serveur de données vers l'application Passerelle afin de permettre d'effectuer les changements immédiats.

> Paquetage Serveur: Ce paquetage est composé de deux parties principales; de l'agent serveur qui est responsable de la réception des messages, de la part du client ou de la passerelle, et du traitement de ces messages, et de la base de données où sont stockées les données des comptes utilisateurs et des équipements à contrôler.

Rapport de Projet de Conception et de Développement 26

Chapitre 3 : Conception

3.2 Conception détaillée

Après avoir précisé la conception générale du projet et son architecture, nous allons raffiner à ce stade cette dernière, et ce en entamant la conception où nous définirons de plus près les classe et les interfaces de notre solution.

3.2.1 Diagramme de classes

Le diagramme de classes est un schéma utilisé en génie logiciel pour présenter les classes et les interfaces des systèmes ainsi que les différentes relations entre celles-ci. Ce diagramme fait partie de la partie statique d'UML car il fait abstraction des aspects temporels et dynamiques. Une classe décrit les responsabilités, le comportement et le type d'un ensemble d'objets. Les éléments de cet ensemble sont les instances de la classe.

Dans cette partie de raffinement de la conception, nous allons présenter les digrammes de classes de chaque composant ppour pouvoir clarifier les entrailles de notre système et son mode de travail.

3.2.1.1 Paquetage Client

L'acteur principal de notre application est le Client. Ce dernier doit bénéficier d'une application à la fois conviviale et simpliste, et aussi qui fonctionne à merveille. D'où on a opté pour une conception de classes comme le montre la figure 3.4 afin d'aboutir à un résultat optimal:

Rapport de Projet de Conception et de Développement 27

Chapitre 3 : Conception

FIGURE 3.4 - Diagramme de classes de l'application Cliente

Plusieurs de ces classes sont des classes qui sont orientées à l'interface graphique (telles que "CarrousselManager" ou encore "FlipHorizontalLayoutActivity"), en contrepartie, d'autres classes sont liées directement au traitement de données et aux requêtes à la base de données telles que les classes Maison, Piece, Informations, etc... Ces classes présentent les classes métier de l'application cliente, c'est grâce à eux que l'application mobile et rapide.

Rapport de Projet de Conception et de Développement 28

Chapitre 3 : Conception

3.2.1.2 Paquetage Passerelle

Nous passons maintenant à la conception détaillée de l'application de la Passerelle.Ce composant présente un atout de contrôle et de transport d'information, sa conception a été orientée pour vérification de connexion et pour transfert de données d'un côté vers l'autre.

Son diagramme de classes est le suivant:

FIGURE 3.5 - Diagramme de classes de l'application Passerelle

Le diagramme de classes comprend trois classes de vérification et une classe de traitement et de transfert:

> La classe ConnectionDetector a pour rôle de vérifier si la connexion Internet est activée ou pas, si elle ne l'est pas elle effectue la connexion.

> La classe Serverutilities permet de vérifier la connexion avec le service Web GCM ainsi que de régler la latence de connexion entre ces deux composants.

> La classe CommonUtilities permet de stocker des données primmordiaux à propos du service web GCM.

> La classe principale MainApplication est la responsable sur le contrôle sur les trois autres classes et c'est elle qui donnera le feu vert pour toute opération.

Rapport de Projet de Conception et de Développement 29

Chapitre 3 : Conception

3.2.1.3 Paquetage ARDUINO

Vu que la programmation sur ARDUINO n'est pas orientée objet, nous avons pris la liberté, pour ce paquetage, de présenter, au lieu des diagrammes d'UML, le digramme de contexte [B3] ou appelé encore le digramme de flux de données, niveau 0 (DFD 0). La figure 3.6 ci-dessous le représente:

FIGURE 3.6 - Diagramme de contexte de l'application ARDUINO

Les circuits de données sont simples dans ce diagramme, la plateforme ARDUINO est entourée de trois composants matériels qui seront sous les ordres de la plateforme, et un composant logiciel qui est la passerelle ANDROID reliée via USB.

Toute demande venant de la part de la passerelle, le composant ARDUINO ne fera que décrypter cette demande à sa manière et lancer une réponse selon la demande (Verrouillage / Déverrouillage, Consultation, etc...).

3.2.2 Modèle Entité-Association de la base de données

L'utilisateur ne pourra s'authentifier que s'il y a un espace de stockage de données. Nous avons alors opté pour l'utilisation du modèle Entité-Association pour la base de données qui est représenté dans la figure 4.5 ci-dessous:

Chapitre 3 : Conception

FIGURE 3.7 - Diagramme relationnel de la base de données

Le diagramme présente quatre entités principales : Personne, Maison, Piece et Lampe. > Une Personne peut être Administrateur ou simple Client, il appartient obligatoirement à

une et une seule Maison (pour les cas exceptionnels d'appartenance à plusieurs maisons,

le client en question devra s'inscrire autant de fois).

> Une Maison abrite un ou plusieurs Personnes et une ou plusieurs Pièces.

> Une Pièce peut avoir une ou plusieurs lampes, mais une lampe ne peut appartenir qu'à une seule et unique Pièce.

Conclusion

Nous venons de vous montrer la conception de notre projet qui est basée essentiellement sur l'architecture que nous avons proposée en premier lieu et sur les paquetages, classes et modèle

Rapport de Projet de Conception et de Développement 30

Rapport de Projet de Conception et de Développement 31

Chapitre 3 : Conception

de base de données en second lieu. Avec une conception pareille, nous avons pu décortiquer les atouts de notre projet et nous pourrons alors passer à la réalisation du projet qui sera présentée dans le chapitre suivant.

Rapport de Projet de Conception et de Développement 32

Chapitre 4

Réalisation

Introduction

A

Près avoir achevé la partie conception, nous entamons dans ce chapitre la réalisation de notre application Nous allons donc présenter en première partie les environnements matériels et logiciels. Ensuite, nous présenterons la technologie adoptée. Puis, nous illustrerons un aperçu sur les parties développées. Finalement, nous présenterons une anticipation de déploiement de notre système dans un cas réel.

4.1 Environnement de travail

4.1.1 Environnement matériel

Pour la réalisation de ce projet, nous avons disposé de :

> 3 micro-ordinateurs caractérisés par les configurations données dans la figure 4.1

> Tablette SAMSUNG GALAXY TAB 10.1

> SAMSUNG GALAXY NOTE 1.

> Carte ARDUINO MEGA ADK.

> LEDs : diodes électroluminescentes.

> Capteur de température.

> Servomoteur.

> Breadboard.

> Maquette représentée dans la figure 4.2.

Les micro-ordinateurs utilisés:

Rapport de Projet de Conception et de Développement 33

Chapitre 4 : Réalisation

FIGURE 4.1 - La configuration des micro-ordinateurs utilisés

La maquette faite pour pouvoir concrétiser le modèle du système est ci-dessous représentée : elle regroupe essentiellement 2 LEDs et un servomoteur.

FIGURE 4.2 - La maquette

Rapport de Projet de Conception et de Développement 34

Chapitre 4 : Réalisation

4.1.2 Environnement logiciel

Tout le long de la phase de développement, nous nous sommes servi de l'environnement logiciel suivant:

Eclipse : Eclipse est l'IDE que nous avons choisi pour développer notre application. C'est un outil de développement intégré, extensible, universel, polyvalent, et introduisant le Software Developement Kit (SDK) nécessaire. Au niveau ergonomie, toutes les fonctionnalités indispensables sont là : création de projet, de Template, débogage... et faciles à prendre en main. La grande force de cet IDE réside du fait que son architecture est totalement développée autour de la notion de plugin. D'ailleurs, c'est l'IDE qu'utilise le client, on peut donc, grâce à des plugins de travail de collaboration, communiquer le résultat de notre travail au client [B4].

Emulateur ANDROID : (Android Virtual Device) téléphone mobile virtuel permettant de tester les applications en cours de développement. Cet émulateur est basé sur Qemu (libre) et sert à élaborer l'interface graphique, à tester les applications et à les corriger dans un environnement Android.

ArgoUML : c'est un logiciel de création de diagrammes UML. Il est compatible avec tous les diagrammes UML 1.4 standards et fonctionne sur n'importe quelle plateforme Java.

AlwaysData : c'est un hébergeur mutualisé. Il offre une interface de gestion de comptes et une interface phpMyAdmin permettant de gérer la base de données.

Google Cloud Messaging (GCM) : c'est un service gratuit permettant de transmettre des messages des serveurs vers leurs applications Android installées sur des appareils Android [N1].

FileZilla : c'est un client FTP, FTPS et SFTP, développé sous la licence publique générale GNU. Il a été créé en 2001 et il existe également un serveur FTP du nom de FileZilla Server. Il possède les fonctionnalités suivantes:

> Mettre en pause et reprendre un envoi ou un téléchargement

> Mettre en file d'attente

> C'est un système anti-déconnexion

> Permettre la détection des temps de pause pare-feu

> Protocoles : SSL, SFTP, FTPS

> Interface simpliste : Interface Glisser-déposer (Drag'n'Drop)

> C'est un gestionnaire de site avec ses dossiers

Logiciel ARDUINO : c'est l'environnement de développement des modules ARDUINO.

Rapport de Projet de Conception et de Développement 35

Chapitre 4 : Réalisation

4.2 Choix techniques

Dans cette partie, nous justifions les choix techniques du langage de programmation et des plateformes de développement utilisées.

4.2.1 Développement de la partie cliente

ANDROID : Android est un système d'exploitation open source pour smartphones, PDA et terminaux mobiles conçu par Android, une startup rachetée par Google. D'autres types d'appa-reils possédant ce système d'exploitation existent, par exemple des téléviseurs et des tablettes [N2]. Grâce à l'ouverture du code source et des APIs, les développeurs peuvent personnaliser leurs programmes pour ajouter des fonctionnalités différentes pour une application particulière, par suite, les utilisateurs peuvent adapter les applications à leurs besoins.

JAVA : Java est un langage de programmation orienté objet. Une de ses plus grandes forces est sa robustesse, ses hautes performances et surtout son excellente portabilité : une fois votre programme créé, il fonctionnera automatiquement sous Windows, Mac, Linux, etc.

XML : XML est un langage à balises extensibles. C'est un format de description des données et non de leur représentation. Les interfaces graphiques d'ANDROID sont basées sur XML.

4.2.2 Développement de la couche métier

PHP C'est un langage interprété exécuté du coté serveur et non du coté client. L'intérêt majeur de PHP est son interfaçage avec un grand nombre de bases de données d'une manière relativement simple et efficace.

MySQL Est un système de gestion des bases de données. Le serveur de base de données MySQL est très souvent utilisé avec PHP.

Notre système dispose d'une base de données distante, à laquelle notre application devra se connecter. Le moyen le plus simple est d'écrire des scripts PHP, qui sont localisés dans le serveur, et qui servent à la communication avec la base de données : une fois la requête est envoyée par le client, le serveur identifie le script PHP et appelle l'interpréteur PHP qui ouvre une connexion au serveur SGBD. Celui-ci envoie la réponse qui sera par la suite mise sous le format JSON (Java Script Object Notation) qui est un format de données textuel et générique qui permet la structuration des informations récupérées.

Rapport de Projet de Conception et de Développement 36

Chapitre 4 : Réalisation

FIGURE 4.3 - L'accessibilité de l'application cliente

4.2.3 Développement de l'application Passerelle

La passerelle est développée sur ANDROID, pour la simple raison qu'elle doit communiquer avec la plateforme ARDUINO d'un côté, et avec le service web GCM de l'autre côté. Le langage de programmation choisi pour l'implémentation de la passerelle est le Java.

La passerelle joue le rôle d'un serveur puisqu'elle doit recevoir l'information du GCM et la faire passer à ARDUINO, et inversement. Cette application est conçue de manière à :

> Se connecter à Internet ainsi qu'au GCM pour pouvoir communiquer les informations avec la couche métier hébergée sur Internet.

> Communiquer avec la plateforme ARDUINO via USB pour lui fournir les requêtes venues de la part du client.

L'ANDROID ayant une grande communauté internationale et une documentation riche et accessible, ce choix a été fait sans hésitation car programmer la communication USB et se connecter à Internet sont simples et font gagner du temps en développement plus que d'autres technologies.

4.2.4 Développement de la partie ARDUINO

ARDUINO est une plateforme open-source de prototypage électronique, composée essentiellement d'un microcontrôleur pour analyser et produire des signaux électriques, de manière à effectuer des tâches diverses comme la domotique (le contrôle des appareils domestiques, éclairage, chauffage, etc...) [N3].

La carte Arduino Mega ADK est une carte compatible de la carte Google ADK développée par l'équipe d'Arduino. Elle se base sur la carte Arduino MEGA 2560 sur laquelle un contrôleur USB Hôte à été rajouté [N4].

Rapport de Projet de Conception et de Développement 37

Chapitre 4 : Réalisation

L'environnement de programmation ARDUINO : Le langage Arduino est basé sur les langages C/C++ et supporte toutes les contructions standards du langage C et quelques-uns des outils du C++.

FIGURE 4.4 - carte MEGA ADK

Le logiciel Arduino a pour fonctions principales : de pouvoir écrire et compiler des programmes pour la carte Arduino de se connecteravec la carte Arduino pour y transférer les programmes de communiquer avec la carte Arduino.

L'implication d'ARDUINO dans notre projet c'est qu'avec l'un des composants de cette pla-teforme nous pouvons contrôler assez facilement la manipulation de la vue physique (l'équi-pement) et ainsi nous gagnerons en temps de conception et de réalisation matérielles. De plus, la documentation autour de la plateforme ARDUINO est vaste, c'était le deuxième argument de notre choix.

Branché par l'USB avec la passerelle, la carte ARDUINO réagit à chaque demande envoyée par le client. L'ARDUINO ayant reçu le message du client, ordonne les composants matériels qui lui sont reliés (capteur de température, lampes, serrure) à réagir selon la demande:

Rapport de Projet de Conception et de Développement 38

Chapitre 4 : Réalisation

> Verrouillage / déverrouillage de la serrure : dès que le client demande l'ouverture / fermeture de la serrure, l'ARDUINO ordonne le servomoteur de réaliser cette tâche.

> Pour l'allumage ou l'extinction des lampes, l'ARDUINO n'a qu'à allumer ou éteindre les leds.

4.3 Les interfaces graphiques

Après un long travail, d'étude et d'implémentation, nous voulons faire part de quelques interfaces qui montrent des idées concrètes de ce que nous avons entamé depuis le début.

4.3.1 Le menu du télephone Android avec l'icone de l'application

Après intégration de toute l'application, voilà l'icone de l'application dans la figure 4.5 ci-dessous:

FIGURE 4.5 - Le menu du télephone Android avec l'icone de l'application

Cette interface représente le menu du téléphone mobile Android avec les icônes de toutes les applications déjà disponibles. On trouve aussi l'icône de la maison représentant notre application SmartHouse.

Rapport de Projet de Conception et de Développement 39

Chapitre 4 : Réalisation

4.3.2 Les interfaces de l'Administrateur

L'administrateur, comme mentionné dans le diagramme d'activités à la figure 2.9 dans le chapitre "Analyse et Spécification des Besoins", a ses propres interfaces. Elles seront alors présentées ci-dessous:

4.3.2.1 Authentification

L'interface d'authentification de l'Administrateur est:

FIGURE 4.6 - Authentification de l'Administrateur

4.3.2.2 Fonctions

Après s'être authentifié, l'Administrateur sera face à cet écran, figure 4.7 :

Rapport de Projet de Conception et de Développement 40

Chapitre 4 : Réalisation

FIGURE 4.7 - Gestion des comptes

Où il pourra administrer les comptes des clients dont il est responsable, il aura accès à valider, invalider, modifier droits et supprimer un compte.

La liste des comptes sera alors comme suit:

FIGURE 4.8 - Liste des comptes avec options il a aussi la faculté de se déconnecter bien évidemment, figure 4.9 :

Rapport de Projet de Conception et de Développement 41

Chapitre 4 : Réalisation

FIGURE 4.9 - Se déconncter

4.3.3 Les interfaces du Client

4.3.3.1 L'authentification du client

Le client doit saisir correctement son Login et son mot de passe pour qu'il puisse accéder aux fonctionnalités. L'interface de connexion est la figure 4.10 suivante:

FIGURE 4.10 - Authentification du Client

Alors plusieurs possibilités s'offrent : l'utilisateur peut allumer ou étenidre les lampes, verrouiller ou déverrouiller la porte et consulter la température, l'alarme ou la consommation électrique.

Rapport de Projet de Conception et de Développement 42

Chapitre 4 : Réalisation

4.3.3.2 Allumage d'une lampe

En appuyant sur l'image ci-dessous, on allume la lampe qu'il a choisi.

FIGURE 4.11 - Lampe allumée

La LED en question sur la maquette s'allume aussi suite à la demande d'allumage du client. De même, la lampe passe de l'état allumée vers l'état éteinte en appuyant sur l'image ci-dessous.

FIGURE 4.12 - Lampe éteinte

Rapport de Projet de Conception et de Développement 43

Chapitre 4 : Réalisation

La représentation sur la maquette confirme l'exécution du la demande. 4.3.3.3 Verrouillage d'une porte

En ce qui concerne la manipulation de la serrure, les figures suivantes (figures 4.13 et 4.14) montrent cette fonctionnalité:

FIGURE 4.13 - Porte verrouillée

Sur la maquette la porte se verrouille réellement avec le retrati du servomoteur.

FIGURE 4.14 - Porte déverrouillée

Rapport de Projet de Conception et de Développement 44

Chapitre 4 : Réalisation

Dans le déverrouillage aussi, le servomoteur sort de son état initial donne accès à entrer.

4.3.3.4 Activation de l'alarme

Après le verrouillage et le déverrouillage de l'alarme, nous passons à présent à l'activation et la désactivation de l'alarme. Voici une capture d'écran d'une alarme activée, figure 4.15 :

FIGURE 4.15 - Alarme activée

Et maintenant l'alarme à l'état désactivée:

Rapport de Projet de Conception et de Développement 45

Chapitre 4 : Réalisation

FIGURE 4.16 - Alarme activée

4.3.4 Nouveau Utilisateur

Il est possible de se créer un compte et se joindre aux clients d'une maison (bien sûr si l'Administrateur le valide). L'interface de création de compte est comme le montre la figure 4.17 :

FIGURE 4.17 - Création de Compte

Chapitre 4 : Réalisation

4.4 Chronogramme du travail

Voilà le chronogramme qu'on a suivi pour l'élaboration du projet:

 

semaines 1-2

semaines 3-4

semaines 5-6

semaines7-8

semaines 9-10

semaines 11-12

semaines 13-14

semaines 15-16

Etude de faisabilité

 
 
 
 
 
 
 
 

Mise en place de la plateforme

 
 
 
 
 
 
 
 

spécification

 
 
 
 
 
 
 
 

Conception

 
 
 
 
 
 
 
 

Implémentation

 
 
 
 
 
 
 
 

Rédaction du

rapport

 
 
 
 
 
 
 
 

Optimisation et

mise au point du code

 
 
 
 
 
 
 
 

Réalisation de la maquette

 
 
 
 
 
 
 
 

TABLE 4.1 - Chronogramme du projet

Conclusion

Dans ce chapitre, nous avons présenté en détail la réalisation de notre projet. Nous avons commencé par la description des environnements matériels et logiciels. Ensuite, nous avons réalisé une navigation dans notre application en présentant des captures d'écran témoignant les différentes tâches. Enfin, nous avons présenté les différentes étapes dans un chronogramme des tâches.

Rapport de Projet de Conception et de Développement 46

Rapport de Projet de Conception et de Développement 47

Conclusion Générale

Ce projet nous a permis d'enrichir nos acquis en conception ainsi qu'en développement. En fait, nous avons acquis une bonne maîtrise des langages JAVA, XML et PHP ainsi qu'une solide compétence dans la conception.

Avec la diversité des activités menées, ce projet nous a permis de consolider nos connaissances, essentiellement dans la programmation. Effectivement, l'utilisation de l'approche orientée objet dans le développement de l'application nous a permis d'apprendre à combiner le langage JAVA et le langage XML dans un même code. Nous avons également appris à travailler sur des cartes programmables ayant des capacités et des performances élevées, à savoir AR-DUINO.

Les deux plus grandes difficultés de notre projet étaient : la première était d'établir la communication entre la carte ARDUINO et la passerelle ANDROID, et l'autre était de connecter le client ANDROID au le serveur.

Notre système développé représente un prototype fonctionnel et prometteur d'un système de surveillance d'une maison à distance. En effet, chaque administrateur peut gérer les comptes des utilisateurs. Ces utilisateurs ont la possibilité de contrôler leurs maisons à distance de manière fiable et efficace.

Les perspectives seraient donc d'élargir la portée du fonctionnement du ce système et ce en ajoutant quelques options et fonctionnalités qui peuvent servir à d'autres nouveaux besoins des utilisateurs:"

> Appliquer ce système à une entreprise pour la régulation des absences.

> Ajouter des dispositifs plus sophistiqués tel que système de reconnaissance de visage ou

Rapport de Projet de Conception et de Développement 48

Chapitre 4 : Réalisation

d'empreintes.

> Appliquer au système un rôle d'agent : il pourra se débrouiller tout seul s'il y aurait un problème (activation de l'alarme, baisse de la température...).

En résumé, cette expérience a été très enrichissante. Malgré toutes les difficultés que nous avons rencontrées, nous avons pu les surmonter tout en satisfaisant les besoins fonctionnels.

Rapport de Projet de Conception et de Développement 49

Bibliographie

[B1] Xavier Blanc, UML2 pour les developpeurs, 2006.

[B2] Bryant Tram, Arduino And Android, 2009

[B3] Presses Universitaires de France - PUF, Le génie logiciel, 2005

[B4] Henri LAUGIE, Java et Eclipse - Développez une application Java, Première Edition, Collection : Coret Solutions, 2008

[B5] Masao Isshiki, Web and Smart House, 2012

Netographie

[N1] http :// developer.android.com/google/gcm/gs.html (Consulté le 04 avril 2013)

[N2] http :// www.africaburkina.com/spip.php ?article428 (Consulté le 02 février 2013)

[N3] http :// www.arduino.cc (Consulté le 19 janvier 2013)

[N4] http :// www.semageek.com/arduino-arduino-mega-adk-arduino-ethernet-et-autres-nouveautes/ (Consulté le 17 janvier 2013)

[N5] http :// www.smarthomeusa.com/info/smarthome (Consulté le 10 janvier 2013)

51

Glossaire

IDE (Integrated Development Environment) : est une interface qui permet de développer, compiler et exécuter un programme dans un langage donné.

API (Application Programming Interface) : Une API est une bibliothèque qui regroupe des fonctions sous forme de classes pouvant être utilisées pour développer.

PHP (Hypertext Preprocessor) : est un langage de programmation interprété principalement utilisé pour produire des pages Web dynamiques.

UML (Unified Modeling Language) : est un langage de modélisation graphique à base de pictogrammes.

Interface : C'est une définition de méthodes et de variables de classes que doivent respecter les classes qui l'implémente.

Package (Paquetage) : Il permettent de regrouper des classes par critères. Ils impliquent une structuration des classes dans une arborescence correspondant au nom donné au package.

SDK (Software Development Kit) : est un ensemble d'outils d'aide à la programmation proposé aux développeurs par l'éditeur d'un environnement de programmation spécifique ou d'un système d'exploitation.

SQL (Structured Query Language c'est-à-dire langage de requête structurée) est un langage informatique normalisé servant à effectuer des opérations sur des bases de données relationnelles. La partie langage de manipulation de données de SQL permet de rechercher, ajouter, modifier ou supprimer des données dans les bases de données.

SGBD (Système de Gestion de Base de Données) est un logiciel système destiné à stocker et à partager des informations dans une base de données, en garantissant la qualité et la confidentialité des informations. Il permet d'inscrire, retrouver, modifier, trier, transformer ou imprimer les informations de la base de données.






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








"Enrichissons-nous de nos différences mutuelles "   Paul Valery