Vous êtes sur la page 1sur 85

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR

ET DE LA RECHERCHE SCIENTIFIQUE
UNIVERSITE DE SOUSSE

‫المعهد العالي لإلعالمية و تقنيات االتصال بحمام سىسة‬

INSTITUT SUPERIEUR D’INFORMATIQUE


ET DES TECHNIQUES DE COMMUNICATION – HAMMAM SOUSSE

Département Télécommunications

MEMOIRE DE PROJET DE FIN D’ETUDES

Présenté en vue de l’obtention du diplôme de Licence Appliquée

Technologies des Communications

Maison Intelligente

Réalisé par :
Mohamed Badii Mrad
Salem Dahmen
Encadré par :
Mme Sonia Mili
Année Universitaire 2016 – 2017
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR
ET DE LA RECHERCHE SCIENTIFIQUE

UNIVERSITE DE SOUSSE

‫المعهد العالي لإلعالمية و تقنيات االتصال بحمام سىسة‬

INSTITUT SUPERIEUR D’INFORMATIQUE


ET DES TECHNIQUES DE COMMUNICATION – HAMMAM SOUSSE

Département Télécommunications

MEMOIRE DE STAGE FIN D’ETUDES

Présenté en vue de l’obtention du diplôme de Licence Appliquée

Technologies des Communications

Réalisé par :

Mohamed Badii Mrad


Salem Dahmen

Encadrant :……………………..……Date :………………………Signature :…………….

Superviseur :………………….. ……Date :………………………Signature :…………….

Année Universitaire 2016 – 2017


Dédicaces
…Prénom
Remerciements

…Prénom
Table de matières

Table de matières :

Introduction générale : ...................................................................................................... 2


Chapitre I .......................................................................................................................... 4
1 Introduction .............................................................................................................. 4
2 Problématique .......................................................................................................... 4
3 Travail demandé ....................................................................................................... 4
4 Solution proposée..................................................................................................... 5
5 Structure générale du système ................................................................................. 5
6 Organisation du rapport ........................................................................................... 6
7 Puget de temps ........................................................................................................ 6
8 Conclusion ............................................................................................................... 7
Chapitre II ....................................................................................................................... 10
1 Introduction ............................................................................................................ 10
2 Description globale du système ............................................................................. 10
3 Etude et choix du matériel ..................................................................................... 10
4 L’Unité de commande : carte Raspberry PI 3 (Model B+) .................................... 11

4.1 Détails Techniques ......................................................................................... 11


4.2 Fonctionnalités................................................................................................ 12

5 Capteurs et Actionneurs ......................................................................................... 13

5.1 Capteur de Mouvement .................................................................................. 13

5.1.1 Fonctionnement ........................................................................................... 13


5.1.2 Branchement de capteur :............................................................................ 14

5.2 Capteur de température / humidité ................................................................. 14

5.2.1 Fonctionnement ................................................................................... 15


5.2.2 Branchement de DHT11 ............................................................................. 16

5.3 Capteur de gaz ................................................................................................ 16


Table de matières

5.3.1 Branchement du capteur à gaz : .................................................................. 17

5.4 Caméra Pi ....................................................................................................... 17


5.5 Ecran LCD 16x2 ............................................................................................. 18

5.5.1 Branchement LCD+ potentiomètre ............................................................. 20

5.6 Matrix keypad 4x3 .......................................................................................... 20

5.6.1 le branchement du clavier : ......................................................................... 21

5.7 Servo-moteur .................................................................................................. 21

5.7.1 Fonctionnement ........................................................................................... 21


5.7.2 Branchement du servo-moteur .................................................................... 22

5.8 Carte à relais ................................................................................................... 22

5.8.1 Fonctionnement du Relais........................................................................... 23


5.8.2 Branchement de la carte a relais : ............................................................... 23

6 Pièces électriques additionnelles ............................................................................ 23

6.1 MCP23017 ...................................................................................................... 23


6.2 MCP3008 ........................................................................................................ 25

7 Environnement logiciel et langages de programmation ......................................... 25

7.1 Python 2.7 ....................................................................................................... 26


7.2 Proteus Professional Version 8 ....................................................................... 26

7.2.1 ISIS ............................................................................................................. 26


7.2.2 ARES : ........................................................................................................ 27

8 Conclusion ............................................................................................................. 27
Chapitre III ...................................................................................................................... 30
1 Introduction ............................................................................................................ 30
Table de matières

2 Architecture générale de la maison intelligente ..................................................... 30


3 La reconnaissance faciale....................................................................................... 31

3.1 OpenCV .......................................................................................................... 31


3.2 Détection de visage à l’aide du détecteur OpenCV ........................................ 32
3.3 Cycle du programme de reconnaissance faciale ............................................. 32

4 Les outils nécessaires ............................................................................................. 34

4.1 Capteur de mouvement ................................................................................... 34


4.2 Camera tournante ............................................................................................ 35
4.3 Écran lcd16x2 avec un clavier matrix 3x4 ..................................................... 37
4.4 Le servomoteur ............................................................................................... 38
4.5 Test de programme de reconnaissance faciale : ............................................. 38
4.6 Test de la lampe avec relais et la camera tournante : ..................................... 40
4.7 Le système d’alarme ....................................................................................... 41
4.8 Capteur de la Température et de l'humidité .................................................... 42
4.9 Détecteur de Fuite de gaz ............................................................................... 42

5 Conclusion ............................................................................................................. 43
Chapitre 4 ........................................................................................................................ 45
1 Introduction ............................................................................................................ 45
2 Conception du site web .......................................................................................... 45
3 Principe de fonctionnement de l'application .......................................................... 46

3.1 Echange client / serveur Raspberry ................................................................ 46


3.2 Echange Serveur/Base de données ................................................................. 46

4 Description de l'interface de l'application .............................................................. 47

4.1 Page d’authentification ................................................................................... 47


4.2 Page d'accueil ................................................................................................. 48

4.2.1 Gestion d'éclairage ...................................................................................... 49


4.2.2 Détermination de la température et de l’humidité ...................................... 50
Table de matières

4.2.3 Surveillance en ligne ................................................................................... 51


4.2.4 Activer /Désactiver l'alarme ........................................................................ 54
4.2.5 Commande des portes ................................................................................. 54
4.2.6 Détection de fuite de gaz ............................................................................. 55
4.2.7 Envoyer un email ........................................................................................ 56

5 Conclusion ............................................................................................................. 57
Annexe : Prise en main du Raspberry............................................................................ 59
1 Installation du système d’exploitation ................................................................... 59

1.1 Description générale ....................................................................................... 59


1.2 Installation de l'OS.......................................................................................... 59
1.3 Utilisation de l'OS ........................................................................................... 60

2 Configuration de l'adresse IP ................................................................................. 60

2.1 Connaissance de l’adresse IP .......................................................................... 60


2.2 Fixation de l’adresse IP .................................................................................. 60

3 Contrôler à distance du raspberry (VNC / Putty/WinSCP) ................................... 61

3.1 Activation de ssh ............................................................................................ 61


3.2 Ssh sous windows ........................................................................................... 63

3.2.1 Installation de putty..................................................................................... 63


3.2.2 Installation de WINSCP .............................................................................. 64
3.2.3 Installation VNC : ....................................................................................... 64
3.2.4 Le client Vnc ............................................................................................... 65
3.2.5 Démarrer VNC directement au démarrage ................................................. 66

4 Configuration de serveur web ................................................................................ 67

4.1 Installation d’Apache ...................................................................................... 67

4.1.1 2-Vérifier qu’Apache fonctionne ................................................................ 68


Table de matières

4.2 Installation de PHP sur la Raspberry .............................................................. 68


4.3 Une base de données MySQL pour votre serveur .......................................... 69
4.4 Installer MySQL ............................................................................................. 69

4.4.1 Vérifier que MySQL marche correctement ................................................ 69

4.5 PHPMyAdmin, gérer facilement ses bases de données .................................. 69


4.6 Configurer phpmyadmin pour fonctionner avec apache ................................ 70

Résumé : ......................................................................................................................... 72
Table de figures

Table de figures

Figure 1 : Structure générale du système .......................................................................... 6


Figure 2: Puget de temps .................................................................................................. 6
Figure 3: Description de la carte Raspberry ................................................................... 11
Figure 4: Organigramme de Raspberry........................................................................... 13
Figure 5: Capteur de mouvement.................................................................................... 13
Figure 6: Capteur de mouvement en positon inverse ..................................................... 14
Figure 7: Branchement de capteur de mouvement ......................................................... 14
Figure 8: Capteur DHT11 ............................................................................................... 15
Figure 9: Les pins de DHT11 ......................................................................................... 15
Figure 10: Branchement de DHT11 ................................................................................ 16
Figure 11:Caracteristiques de capteur de gaz « MQ5 » .................................................. 17
Figure 12:Branchement de MQ5 .................................................................................... 17
Figure 13:Pi Camera Figure 14: Connecteur de Pi Camera ..................................... 18
Figure 15:Ecran LCD 16x2............................................................................................. 18
Figure 16: Branchement de LCD .................................................................................... 20
Figure 17: Clavier Matrix ............................................................................................... 20
Figure 18:descriptions de la matrix du clavier................................................................ 20
Figure 19: Branchement de clavier ................................................................................. 21
Figure 20:Servo-Moteur « Tower Pro » ......................................................................... 21
Figure 21: Branchement du Servo-moteur...................................................................... 22
Figure 22:Carte a relais 4 entrées Figure 23: Schéma de relais en ISIS .................... 23
Figure 24: Branchement de carte a relais ........................................................................ 23
Figure 25: MCP23017 .................................................................................................... 24
Figure 26: Les pins de MCP23017 ................................................................................. 24
Figure 27: Branchement de LCD 16x2 avec MCP23017 ............................................... 25
Figure 28: MCP3008 ...................................................................................................... 25
Figure 29: Pins de MCP3008 .......................................................................................... 25
Figure 30: Python Logo .................................................................................................. 26
Figure 31: Proteus 8 ........................................................................................................ 26
Table de figures

Figure 32: Isis Logo Figure 33: Isis interface ........................................................... 27


Figure 34: Ares Logo Figure 35: Ares Interface ...................................................... 27
Figure 36: fonctionnalités de la maison intelligente ....................................................... 30
Figure 37: étapes de la reconnaissance faciale ............................................................... 33
Figure 38: Exemple reconnaissance faciale .................................................................... 34
Figure 39:organigrammes de fonctionnement des capteurs de mouvement ................... 35
Figure 40:Organigramme de la camera tournante .......................................................... 36
Figure 41: Organigramme de LCD+ Keypad ................................................................. 37
Figure 42: Exemple de test de reconnaissance faciale .................................................... 38
Figure 43: Message de Bienvenue Figure 44: Message de saisir Mot de passe ....... 39
Figure 45: Affichage de mot de passe crypté.................................................................. 39
Figure 46: Message de MDP correct Figure 47: Message de MDP incorrect............ 39
Figure 48:: Message de blocage...................................................................................... 39
Figure 49: Message d'ouverture de la porte Figure 50: Message de fermeture de la
porte 40
Figure 51: Message de demande de contact avec l'administrateur ................................. 40
Figure 52: Carte a relais .................................................................................................. 40
Figure 53: Carte a relais en marche ................................................................................ 41
Figure 54: Camera tournante .......................................................................................... 41
Figure 55: Organigramme de système d’alarme ............................................................. 42
Figure 56: organigramme de capteur de fuite de gaz ...................................................... 43
Figure 57: Les différentes actions à bénéficier de site web en tant que client ............... 46
Figure 58: Architecture client /serveur ........................................................................... 46
Figure 59: Communication serveur/base de données ..................................................... 47
Figure 60: Structure générale de l'application web ......................................................... 47
Figure 61: Interface de login ........................................................................................... 48
Figure 62: Interface de la page d'accueil ........................................................................ 49
Figure 63: Exemple de gestion d'éclairage ..................................................................... 50
Figure 64:Explication des différentes étapes pour obtenir des nouvelles valeurs
mesurées de la température et de l'humidité............................................................................. 51
Figure 65:Interfaces de surveillance en ligne ................................................................. 54
Figure 66: Interface de gestion d'alarme ......................................................................... 54
Table de figures

Figure 67: Interface de commande des portes ................................................................ 55


Figure 68: Interface de supervision de l'état de gaz ........................................................ 56
Figure 69: Interface d'envoi d'un email .......................................................................... 56
Figure 70: Interface d'activation des services ................................................................. 57
Liste des tableaux

Tableau

Tableau 1: caractéristiques de la carte Raspberry PI ...................................................... 12


Tableau 2: Les caractéristiques de DHT11 ..................................................................... 15
Tableau 3:Description des pins de LCD ......................................................................... 19
Introduction générale

Introduction générale

La domotique représente un point de rencontre idéal entre l'informatique industrielle et


le contrôle des bâtiments en regroupant les outils nécessaires à une gestion aisée de nos
domiciles. Elle vise à apporter et à simplifier les fonctions de confort, de sécurité, de gestion
d’énergie et de communications. Ainsi, elle regroupe tout un ensemble de services permettant
l'intégration des technologies modernes dans la maison.

Dans ce contexte, vient la réalisation de ce projet, qui vise concevoir et développer un


système domotique basé sur une carte Raspberry pour commander et contrôler l’état des
équipements installés dans un logement. Par ailleurs, le propriétaire pourra commander sa
maison à distance via un site web. Ce travail essaie de fournir beaucoup plus de confort dans
notre vie quotidienne tout en répondant aux exigences et aux attentes de l’utilisateur.

Dans un premier lieu, on va gérer l’accès à notre maison via une carte Raspberry. En
fait, dès qu’un mouvement est détecté devant la porte de la maison, ceci fait tourner la caméra
de surveillance vers la porte d’entrée et déclenchera le processus de reconnaissance faciale.
Une personne reconnue ne peut accéder que si elle s’authentifie correctement via un clavier
keypad. D’autre part, notre système permet de gérer l’éclairage, de suivre la température et
l’humidité, de détecter les fuites de gaz et déclencher une alarme si la fuite est importante.
Toutes ces fonctionnalités peuvent être commandées soit par la carte Raspberry ou via un site
web que nous avons développé.

Notre rapport est scindé en quatre parties. Le premier chapitre représente le cadre
général du projet. Dans le deuxième chapitre, on détaillera les différents outils matériels et
logiciels dont on a besoin dans ce projet. La réalisation sera détaillée dans le troisième
chapitre. Pour assurer un contrôle distant de notre maison, nous développerons un site web
qu’on décrira dans le quatrième chapitre. La carte Raspberry est très délicate et compliquée
dans son utilisation et c’est pour cette raison que nous avons consacré le premier annexe pour
décrire comment la prendre en main.
Chapitre 1 : cadre général du projet

Chapitre 1 :
Cadre général du projet
Chapitre 1 : cadre général du projet

Chapitre I
Cadre général du projet
1 Introduction

Afin de bien situer notre projet, nous commençons par faire une présentation succincte
du sujet en détaillant son cadre et ses fonctionnalités. Ensuite, nous citons la problématique
qui a abouti à notre projet. Enfin nous énumérons la démarche à suivre afin de réussir notre
travail.

2 Problématique

La sécurité de nos maisons est importante et on voudra toujours avoir un œil sur notre
domicile même si on est à l’extérieur. En fait, on souhaite surveiller la porte d’accès à la
maison et assurer l’ouverture automatique de la porte pour des personnes bien déterminées et
ceci en se basant sur un système de reconnaissance faciale.
D’autre part, le propriétaire souhaite commander à distance l’accès à la maison en
utilisant un serveur web. IL veut aussi commander les lampes de la maison pour économiser
la consommation d’énergie. Des questions qui se posent sont les suivants :
 Est-t-il possible de contrôler à distance quelques fonctions dans le domicile ?
Est-t-il possible d’ouverture la porte automatiquement pour l’utilisateur en se basent
sur quelques informations ?
Est-t-il possible de gérer l’éclairage, de surveiller la température ?
Est-t-il possible de développer un système de sécurité anti-cambriolage ?

3 Travail demandé

On se propose de construire une maison intelligente. Pour cela, nous devons :


 Assurer le fonctionnement des différents capteurs et actionneurs.
Commander la maison intelligente via une carte Raspberry
 Commander l’accès à la maison en utilisant un système de reconnaissance faciale.
 Envoyer une notification au propriétaire une fois qu’un accès à la maison est effectué.
Chapitre 1 : cadre général du projet

Contrôler l’accès à la maison intelligente à distance via un site web.


Permettre à l'utilisateur de contrôler l’éclairage et les appareils électriques à travers un
site web.

4 Solution proposée

L’objectif de ce travail est de proposer des outils informatiques permettant d’aboutir à


une maison intelligente. On commencera par commander l’accès à la maison en développant
un système de reconnaissance faciale permettant à toute personne enregistrée dans la base de
données d’accéder à la maison. Evidemment, pour plus de sécurité, toute personne connue
doit saisir un mot de passe via un clavier fixé à l’entrée de la maison. Un servomoteur sera
alors chargé d’ouvrir la porte. Une fois l’accès est effectué, une caméra fixée dans la maison
sera chargée de prendre une photo de la personne qui a entré et l’envoyer par e-mail au
propriétaire de la maison. Ce dernier sera alors informé que la personne X a entré à la maison.
Le propriétaire pourra aussi intervenir pour ouvrir la porte ou pour contrôler l’éclairage et les
appareils électriques à travers un site web.
Pour assurer ces fonctionnalités, nous avons utilisé une carte Raspberry pi et un certains
nombres de capteurs selon le besoin. En plus, nous avons utilisé deux cameras ; l’une qui
surveille la porte d’accès principale et l’autre dans la maison. Un capteur de mouvement dans
le garage permet de le surveiller contre le cambriolage. Si le capteur de mouvement détecte
quelqu’un dans le garage, une sonnerie d’alarme sera déclenchée.

5 Structuregénérale du système
Chapitre 1 : cadre général du projet

Figure 1 : Structure générale du système

6 Organisation du rapport

Ce rapport s'intéresse d'abord à décrire les différents composants intervenants dans la


maison intelligente. Il est décomposé en trois parties. Tout d’abord, le chapitre de conception
s’intéresse à décrire le matériel et les logiciels qui seront utilisés dans notre projet. Ensuite, le
chapitre de réalisation nous permettra de présenter notre environnement de travail. Dans le
dernier chapitre, nous représentons tout ce qui concerne le développement de l’application de
la maison intelligente.

7 Puget de temps

Figure 2: Puget de temps


Chapitre 1 : cadre général du projet

8 Conclusion

Après avoir présenté le cadre de notre projet, nous allons entamer la conception et
l’étude théorique au chapitre suivant afin d’affiner notre réalisation.
Chapitre 2 :

Etude technologique du système


Chapitre 2

Chapitre II
Etude technologique du système

1 Introduction

Dans ce chapitre nous allons étudier les différents composants du système développé,
leurs caractéristiques et leur contribution dans le fonctionnement global du système. Cette
étude contient les détails techniques, le fonctionnement et les branchements nécessaires des
composants utilisés dans ce projet.

2 Description globaledusystème

Le point de départ de notre système est un capteur de mouvement fixé devant la maison.
Dès qu’il détecte un mouvement, il fait tourner un servomoteur pour orienter la caméra de
vidéosurveillance vers l’entrée de la maison. On développera un programme de
reconnaissance faciale pour savoir si la personne qui est devant la maison est une personne
connue. Dans ce cas, un texte de bienvenu sera affiché sur un afficheur LCD demandant à la
personne de saisir le mot de passe pour entrer à la maison. L’utilisateur peut essayer trois
tentatives d’authentification avant le blocage du clavier. Si le mot de passe est correct, un
servomoteur permet d’ouvrir la porte d’entrée. Une fois l’accès à la maison est effectué, une
photo de cette personne est pisée puis envoyé au propriétaire de la maison par e-mail lui
indiquant que cette personne a accédé à la maison.
D’autre part, le propriétaire peut commander l’accès à la maison via un site Web. Il
peut aussi contrôler l’éclairage et les appareils électriques à travers le site web.

3 Etude et choix du matériel

Les outils utilisés dans ce projet sont les suivants :

 Une unité de commande : carte Raspberry pi.


 Deux caméras de vidéosurveillance compatible avec la carte Raspberry pi.
 Un servomoteur pour ouvrir la porte et la fermer.
Chapitre 2

 Un site web pour pouvoir ouvrir la porte à distance, contrôler l’éclairage…

4 L’Unité de commande : carte Raspberry PI 3 (Model B+)

L’unité de commande est la carte électronique qui gère le système automatiquement


pour contrôler les capteurs et ordonner les actionneurs. Le Raspberry Pi et l’Arduino sont
deux plateformes open source qui peuvent être utilisé dans notre projet.
Pour assurer les fonctionnalités demandées, nous avons préféré d’utiliser le Raspberry
Pi 3 puisque nous avons besoin d’exécuteur plusieurs tâches en même temps et en plus, nous
utiliserons le Wifi/ connexion 3g qui est déjà valable dans la carte Raspberry.

4.1 Détails Techniques

C’est un mini-ordinateur à processeur ARM qui permet l’exécution de plusieurs


variantes du système d’exploitation libre GNU/Linux et des logiciels compatibles.

Figure 3: Description de la carte Raspberry


Chapitre 2

Nous avons mis dans le rapport une partie annexequi décrit toutes les étapes de prise
en main d'un Raspberry nécessaire dont nous aurons besoin dans notre projet.
Donc, dans cette partie nous donnons que les caractéristiques et l’organigramme de
fonctionnement Raspberry.

Tableau 1: caractéristiques de la carte Raspberry PI

Date de lancement Février 2016


SoC: Broadcom BCM2837
CPU : 1,2 GHz quadricœur ARM Cortex-A53
GPU : Broadcom VideoCore IV, 1080p30 h.264
MPEG-4 AVC high-profile décodeur et encodeur

Mémoire (SDRAM) : 1 Go
Nombre de ports USB 2.0: 4
Sorties vidéo : HDMI et Composite (connecteur Jack)
Sorties audio : Stéréo Jack 3,5 mm
Unité de lecture/écriture : MicroSD
Carte/connectique réseau : 10/100 Ethernet Wifi 802.11n, Bluetooth 4.1

Puissance nominale : 800 mA (4 W)


Consommation maximale mesurée : 720 Ma
Source d'alimentation 5 volt via Micro-B USB ou GPIO header
Dimensions : 85,60 mm × 53,98 mm × 17 mm

4.2 Fonctionnalités

La carte Raspberry permet de gérer la domotique à travers une application web comme :
- L’ouverture et la fermeture des portes à distance.
- L’éclairage des lampes 220v.
- Savoir la température et l’humidité de la maison.
-Surveillance en ligne à travers la camera frontale de la maison.

Cet organigramme suivant montre les différents équipements connectés à la carte


Raspberry :
Chapitre 2

Capteur de
Lampe Carte a relais mouvement

Application Servomoteur
Raspberry Pi
3

Capteur de gaz Module Camera


Capteur de :
-Température
-Humidité
- LCD
- Matrix Key-pad

Figure 4: Organigramme de Raspberry

5 Capteurs et Actionneurs

Dans cette partie, nous présentons des différents capteurs et actionneurs de notre
système. En fait, on peut définir un capteur comme étant est un appareil qui détecte un
phénomène (lumière, chaleur, contact etc…), alors qu’un actionneur engendre un phénomène
physique à partir de l’énergie qu’il reçoit.

5.1 Capteur de Mouvement

Le capteur de mouvement passif à infrarouge (PIR) est un


dispositif qui détecte les objets en mouvement, en particulier les
personnes. Il offre une bonne couverture de 6 mètres qui lui
permet de couvrir l’entourage de notre maison.
Figure 5: Capteur de mouvement

5.1.1 Fonctionnement

Il se compose de trois pins :


Chapitre 2

-Pin pour le Vcc : alimentation de 5v


-Pin pour le signal : A la sortie, il devient de 3v.
-Pin pour la masse.

Figure 6: Capteur de mouvement en positon inverse

5.1.2 Branchement de capteur :

Le branchement du capteur de mouvement se fait comme le montre la figure suivante :

Figure 7: Branchement de capteur de mouvement

5.2 Capteur de température / humidité

Le capteur DHT11 permet à l’utilisateur de savoir la


valeur de température et d’humidité à travers l’application
web de notre maison intelligente.

Le tableau ci-dessous décrit les caractéristiques de ce


capteur :

Capteur DHT11

Humidité (relative %) 20 ~ 80%


Précision (humidité) +/- 5%
Température 0 ~ +50°C
Chapitre 2

Précision (température) +/- 2°C


Fréquence mesure max 1Hz (1 mesure par seconde)
Tension d'alimentation 3 ~ 5 volts
Stabilité à long terme +/- 1% par an

Figure 8: Capteur DHT11

Tableau 2: Les caractéristiques de DHT11

5.2.1 Fonctionnement

Le DHT11 mesure la température avec un capteur de


température NTC monté en surface (thermistance) intégré à l'unité. La
détection de la vapeur d'eau se fait en mesurant la résistance électrique
entre deux électrodes.

Figur
e 9:
Les
pins de DHT11

Ce capteur contient 3 pins qui sont les suivantes :


-La pin 1 : est la broche d'alimentation (5 volts).
-La pin 2 : est la broche de signal, utilisé pour faire la communication avec le
Raspberry.
-La broche 3 : est la masse du capteur (GND).
Chapitre 2

En effet, il existe deux versions différentes du DHT11. Le premier type contient quatre
broches, alors que le deuxième type contient trois broches seulement, mais il est fabriqué sur
un petit circuit imprimé.
Nous avons utilisé celui avec le circuit imprimé puisqu’il contient une résistance de
traction de 10K Ohm dansce circuit.

5.2.2 Branchement de DHT11

Figure 10: Branchement de DHT11

5.3 Capteur de gaz

Ce capteur permet de surveiller et mesurer le pourcentage atmosphérique en oxygène,


gaz toxique et gaz explosif et envoyer les informations nécessaires pour faire le bon choix
automatiquement par l’application.
Chapitre 2

Figure 11:Caracteristiques de capteur de gaz « MQ5 »

5.3.1 Branchement du capteur à gaz :

Le branchement du capteur de gaz n'est possible qu'avec le MCP 3008 dont les
caractéristiquesseront détaillées à la fin du chapitre.

Figure 12:Branchement de MQ5

5.4 Caméra Pi

Le module de caméra Raspberry est utilisé pour enregistrer des vidéo haute définition et
même photographies fixes. Ce module contient une caméra à focale fixe de cinq mégapixels
qui fonctionnent dans les modes1080p30, 720p60 et VGA90. La longueur de câble
d’attachement est de 15cm qui. Le module est relié avec le port CSI du Raspberry.
Chapitre 2

Figure 13:Pi Camera Figure 14: Connecteur de Pi Camera

Pour utiliser cette caméra, il suffit de relier le module au port CSI du Raspberry, et activer le
fonctionnement de la caméra dans la partie de commande d’interface de matérielle du
Raspberry.

5.5 Ecran LCD 16x2

L’écran LCD permet d’afficher les messages de système, ou bien les mots tapés par
l’individu. L'écran LCD utilise une interface parallèle. L'écran LCD fonctionne dans le mode
4 bits ou bien 8bits.

Figure 15:Ecran LCD 16x2

Les pins de LCD sont indiqués comme la figure suivante :

Nombre de Fonctionnement :
pin :
Pin1 Ground
Chapitre 2

Pin2 VCC - 5v
Pin3 Réglage du contraste (VO) du potentiomètre
Pin4 Enregistrer (RS). RS = 0 : Commande, RS = 1 : données
Pin5 Lecture / écriture (R / W).
Pin6 Horloge
Pin7 Bit 0 (Non utilisé en mode 4 bits)
Pin8 Bit 1 (Non utilisé en mode 4 bits)
Pin9 Bit 2 (Non utilisé en mode 4 bits)
Pin10 Bit 4
Pin11 Bit 5
Pin12 Bit 6
Pin13 Bit 7
Pin14 Rétroéclairage LED Anode (+)
Pin16 Rétro-éclairage LED Cathode (-)

Tableau 3:Description des pins de LCD

Nous avons ajouté un thermomètre pour régler la Concentration de fond d’écran. Alors
que la luminosité de l'écran LCD est déjà réglée.

Le mode 4 bits utilise 4 broche de ports d’entrée/sortie alors que le mode de 8 bits
utilise 8 broches de ports d’entrée/sortie et donc les transferts de données 4 bits utilisent 4
lignes d'E / S inférieures à celles des données de 8 bits. Puisque nous avons besoin d'utiliser le
nombre minimum des broches, nous avons choisi le mode 4 bits.
Chapitre 2

5.5.1 Branchement LCD+ potentiomètre

Figure 16: Branchement de LCD

5.6 Matrix keypad 4x3

Le clavier matrix 4x3 permet de saisir le code de


sécurité pour ouvrir la porte d’entrée à la maison. Nous
allons discuter les fondamentaux du clavier, ainsi que les
mécanismes de détection des touches et des clés.

Figure 17: Clavier Matrix

Le clavier est représenté par une matrice.


Lorsqu'une touche est pressée, une ligne et une colonne
de cette matrice font une connexion. Dans ce cas, nous
pouvons savoir quelle touche a était utilisé.
Cette figure montre une matrice 4X3 connectée au
port 1. Les lignes (R1 à R4) sont connectées à un port de
sortie et les colonnes (C1 à C3) sont connectées à un
port d'entrée.

Figure 18:descriptions de la matrix du clavier.


Chapitre 2

5.6.1 le branchement du clavier :

le branchement du clavier à la carte raspberry se fait comme suit :

Figure 19: Branchement de clavier

5.7 Servo-moteur

Un servomoteur est un système qui a pour but de produire un mouvement précis en réponse à
une commande externe. Il possède trois broches : VCC, GND, Pulse pin.

Figure 20:Servo-Moteur « Tower Pro »

5.7.1 Fonctionnement

Un servomoteur se pilote par l'intermédiaire d'un câble à trois fils. Ce câble permet à la
fois de l'alimenter et de lui transmettre des consignes de position par le fil de signal.
Chapitre 2

Un servomoteur est capable d'attendre des positions prédéterminées dans les


instructions qui lui on été donné, puis de les maintenir.
Le servomoteur a l’avantage d’être asservi en position angulaire, cela signifie que l’axe
de sortie du servomoteur respectera la consigne d’instruction que vous lui avez envoyée en
son entrée.

5.7.2 Branchement du servo-moteur

Figure 21: Branchement du Servo-moteur

5.8 Carte à relais

Un relais électronique est un interrupteur qui se commande avec une tension continue
de faible puissance.
Nous avons fabriqué des relais puisque nous voulons utiliser des lampes des 220v et une
alarme de type sirène (220v).
On distingue quatre types de relais : SPT, SPDT, DPST et DPDT.
Chapitre 2

Figure 22:Carte a relais 4 entrées Figure 23: Schéma de relais en ISIS

5.8.1 Fonctionnement du Relais

Notre relais est de type SPDT (Single Pole Double Throw). Le relais SPDT possède un
seul contact mais avec une borne commune, un contact normalement ouvert (pas de tension
sur la bobine) et un contact normalement fermé (quand il n'y a pas de tension sur la bobine).

5.8.2 Branchement de la carte a relais :

Figure 24: Branchement de carte a relais

6 Pièces électriques additionnelles


6.1 MCP23017

La micropuce 23017 permet de relier l’écran LCD au Raspberry en diminuant le nombre de


pins utilisé par la Raspberry.
Elle se caractérise par :
•Port E / S bidirectionnel distant à 16 bits.
Trois broches d'adresse matérielle permettant jusqu'à huit.
• Puces E / S par défaut pour entrer.
• Interface I2C haute vitesse (100 kHz – 400kHz – 1.7 MHz).
Chapitre 2

• Interface SPI haute vitesse (10 MHz max).


• Faible courant de veille : 1 μA (max).

Figure 25: MCP23017

Cette micropuce peut être utilisé avec l’écran LCD ou bien le matrix keypad.
Nous avons utilisé le MCP23017 pour diminuer le nombre des pins utilisés par l’écran LCD.
La diminution du nombre des pins nous permet d’enrichir notre maison en ajoutant d’autres
capteurs /actionneurs pour améliorer notre système et
donner plus de choix dans la maison intelligente. Le
MCP23017 doit être relié au bus « I2C ».

I2C est une norme très utilisée pour permettre à une


puce de parler à une autre. Le bus I2C permet de connecter
plusieurs périphériques au Raspberry Pi, chacun avec une
adresse unique, qui peut souvent être configuré et
modifiable.

I2C n'utilise que deux lignes bidirectionnelles : la


ligne de données série (SDA) et la ligne d'horloge série (SCL). Les tensions typiques utilisées
sont +5 V ou +3,3 V

Figure 26: Les pins de MCP23017

Le branchement de l’afficheur LCD à la carte Raspberry en utilisant le mcp23017 est


comme suit :
Chapitre 2

Figure 27: Branchement de LCD 16x2 avec MCP23017

6.2 MCP3008

Le convertisseur analogique-numérique de10 bits


« MCP3008 » combine des performances élevées et une faible
consommation d'énergie.

Figure 28: MCP3008

Nous avons utilisé cette micropuce pour faire la conversion analogique-numérique de la sortie
du capteur de gaz puisque notre carte ne contient pas des pins analogiques.
Caractéristiques de MCP3008 :
• Résolution 10 bits
• ± 1 LSB max DNL / ± 1 LSB max INL
• Entrées analogiques programmables
• Échantillon sur puce et maintien
• Interface série SPI (modes 0,0 et 1,1)
• Opération d'alimentation simple : 2.7V - 5.5V
• 200 kps max. Taux d'échantillonnage à VDD = 5V
• 500 μA max. Courant actif à 5V
• Plage temporaire industrielle : -40 ° C à + 85 ° C

Figure 29: Pins de MCP3008

7 Environnement logiciel et langages de programmation

Dans cette partie, nous présentons les logiciel et langages de programmation utilisé dans
le projet.
Chapitre 2

7.1 Python 2.7

Python est un langage de programmation de


haut niveau utilisé pour la programmation à usage
général. Il dispose de structures de données efficaces de
haut niveau et d'une approche simple mais efficace de
la programmation orientée objet.

Figure 30: Python Logo

Nous avons préféré d’utiliser la version 2.7 de python que la dernière version de python
(celle 3.6 qui fonctionne maintenant) puisqu’elle contient tous les bibliothèques nécessaires
pour notre projet alors que l’autre version nécessite des mises à jour.

7.2 Proteus Professional Version 8

C’est un logiciel destiné à l'électronique. Les logiciels inclus dans Proteus permettent la CAO
(La conception assistée par ordinateur) dans le domaine électronique. Deux logiciels
principaux composent cette suite logicielle : ISIS, ARES, PROSPICE et VSM.

Figure 31: Proteus 8

7.2.1 ISIS

Le logiciel ISIS de Proteus est utilisé pour éditer des schémas électriques. Il permet de
simuler ces schémas ce qui permet de déceler certaines erreurs dès l'étape de conception.
Nous avons utilisé ce logiciel pour créer la carte à relais.
Chapitre 2

Figure 32: Isis Logo Figure 33: Isis interface

7.2.2 ARES :

Le logiciel ARES est un outil d'édition et de routage qui complète ISIS. Il nous a permet
de réaliser le circuit imprimé de la carte électronique. Ce logiciel permet de placer les
composants et de réaliser le routage de manière automatique.

Figure 34: Ares Logo Figure 35: Ares Interface

8 Conclusion

Dans ce chapitre nous avons présenté les différentes fonctionnalités et descriptions des
principaux composants employés et les programmes utilisés dans notre projet avant de
commencer la réalisation pratique.
Chapitre 2
Chapitre 3 :
Réalisation et validation
Chapitre 3

Chapitre III
Réalisation et validation
1 Introduction

Dans ce chapitre, nous présentons une description détaillée du travail réalisé. Notre
description est composée de deux parties à savoir la réalisation logicielle et la réalisation
matérielle

2 Architecture générale de la maison intelligente

L’objectif principal de notre travail est d’aboutir à une maison intelligente. Plusieurs
fonctionnalités sont exigées comme le montre la figure 1.

Figure 36:fonctionnalités de la maison intelligente

La première fonctionnalité est de garantir une ouverture automatique de la porte de la


maison et ce moyennant un algorithme de reconnaissance faciale qui permet d’identifier les
personnes autorisées à accéder à la maison (enfants, grand-mère, grand-père,) et leur ouvrir la
Chapitre 3

porte tout en informant le propriétaire de la maison que la personne x est entrée à la maison en
lui envoyant un mail contenant la photo de cette personne.
D’autre part, notre maison présente d’autres fonctionnalités telles que la détection de
fuite de gaz, la capture de la température et de l’humidité, la gestion de l’éclairage ainsi que le
déclenchement de l’alarme en cas de cambriolage.

3 La reconnaissance faciale

La reconnaissance faciale est assurée par un algorithme qui commande plusieurs


capteurs et actionneurs qui fonctionnent de manière automatique. Son rôle est de détecter le
visage de d’utilisateur et lui demander un mot de passe pour lui ouvrir automatiquement la
porte de la maison.
Ces diverses fonctionnalités sont commandées par la carte Raspberry qui contrôle
chacun de ces programmes. Ils sont basés sur des bibliothèques et des fichiers de type python
et XML qui sont stockés dans la carte Raspberry.
De plus, nous disposons d'un capteur de mouvement doté d'une fonctionnalité
permettant de capter les personnes qui se trouvent en face de la maison pour déclencher
automatiquement le programme de reconnaissance faciale. Une fois que la personne est
identifiée par le programme de reconnaissance faciale, un message de bienvenue apparaît sur
l’afficheur LCD et demande à l’utilisateur d’entrer son mot de passe. L'utilisateur a trois
tentatives de mot de passe ; si elles ne sont pas correctes, il sera bloqué pendant 5 minutes et
on lui demande de contacter l'administrateur pour lui ouvrir la porte.
Ainsi, la reconnaissance faciale offre plus de sécurité pour la maison contre le
cambriolage et elle avertit le propriétaire en lui envoyant une notification.
Cette notification est envoyée avec une capture d’image des personnes qui ont entré à la
maison ou bien dans le cas de blocage après les trois tentatives.
L’algorithme de reconnaissance faciale est basé sur la bibliothèque OpenCV qu’on
décrira dans ce qui suit.

3.1 OpenCV

Open source Computer vision connue sous le nom « OpenCV » est une bibliothèque
graphique développée par Intel au début, et soutenue de nos jours par Willow Garage (société
de robotique). Cette bibliothèque contient des interfaces de programmation en C, C++, python
Chapitre 3

et Android. Nous utiliserons seulement la bibliothèque écrite en langage python dans notre
projet.

Les fonctionnalités offertes par l’OpenCV sont en majorité des opérations classiques en
traitement d’image :
• lecture, écriture et affichage d’image
• lecture, écriture et affichage des vidéos à partir d’un fichier ou d’une caméra
• détection de visage par la méthode de Viola et Jones, détection de mouvements, suivi
d’objet.

3.2 Détection de visage à l’aide du détecteur OpenCV

La bibliothèque OpenCV nous permet de détecter un visage facilement grâce à sa


détection de visage Haar Cascade. Ce détecteur utilise la méthode Viola-Jones.
Il existe plusieurs classificateurs différents pour la détection de visage dans la
bibliothèque d’OpenCV (détection de visage en pose frontale, détection d’œil …). Ils sont
basés sur des données stockées dans un fichier XML permettant de décider comment classifier
chaque emplacement d’image.
Pour la détection de données XML, pouvons utiliser la fonctioncvHaarDetectObjects
avec l’un de ces classificateurs Haar Cascade d’OpenCV comme :
• haarcascade_frontalface_default.xml

3.3 Cycle du programme de reconnaissance faciale

La reconnaissance faciale passe par les étapes suivantes :

sauvegarde des Choisir les bonnes


Capture des
images dans la images pour la
images
base de donneés comparison

Resultat:personne le debut du
Sauvgade dans un
reconnue ou bien programme de
ficher .xml
inconnue reconnaince
Chapitre 3

Figure 37: étapes de la reconnaissance faciale

Ce cycle est une composition de plusieurs programmes composés de fichiers de type


python dont les fonctionnalités de ces fichiers sont les suivantes :
• Create.py : Son rôle est de prendre des captures de visage de la personne cible afin de
lui rendre connue par notre système.Ce programme fonctionne selon le modèle suivant :
- Demander l'ID de personne (en fonction de son rang dans notre base de données).
- Prendre au moins 5 captures de visage.
-Stocker les images capturées dans un dossier nommé "Dataset".
•Dataset : Ceci est un dossier qui définit notre "base de données" dans laquelle le
fichier Create.py archive ses photos.
Trainner.py : Ce fichier possède un algorithme qui sélectionne au hasard de images
présentés dans la base de données de chaque personne dans le cadre de la création d’un train
de photos pour faciliter le travail de reconnaissance en temps réel en combinant ses images
dans un tableau tout en respectant l’identifiant de chacune (son ID) c’est à dire que chaque
capture arrangée est définie par son ID engendrant à la fin un fichier nommer trainning.yml.
Recognizer : C'est la destination de fichier trainning.yml
Rec.live.py : La tache de ce programme est d’accéder à la source de capture et
d’analyser chaque image par seconde de la vidéo. S’il détecte la présence d'un visage, il le
compare directement au train d'images qui a était générer par le fichier trainning.yml,dans le
cas où il trouve une correspondance de 80% avec l'une de ces photos,il affichera l’ID de cette
personne connue.
Chapitre 3

Figure 38: Exemple reconnaissance faciale

4 Les outils nécessaires

Le fonctionnement du programme de reconnaissance faciale nécessite les équipements


électroniques suivants :
1. Capteur de mouvement.
2. Camera tournante.
3. Ecran LCD+ Matrix Keypad.
4. Servomoteur.
5. Pi camera.

4.1 Capteur de mouvement

Nous avons utilisé deux capteurs de mouvement dans la maison intelligente. Le premier
près de la porte d’entrée, alors que le deuxième dans le garage

Le capteur de mouvement permet de lancer les programmes principaux de notre projet


automatiquement (comme la reconnaissance faciale, le system d’alarme…).

Le capteur de mouvement permet de détecter la présence d’une personne devant la porte


de la maison. Après la détection de mouvement, le programme de la reconnaissance faciale
démarre automatiquement. Or parfois, il peut détecter le mouvement d’un passager ou d’un
courrier qui délivre les factures sans que ceux-ci n’aient l’intention d’entrer à la maison

Pour corriger ce problème, nous avons défini un délai de fonctionnement du programme


de la reconnaissance faciale. Le programme fonctionne pendant un certain temps, s’il ne
détecte pas un visage devant la porte, il s’arrête automatiquement et attend une nouvelle
détection de mouvement pour recommencer dès le début.
Chapitre 3

Le fonctionnement des deux capteurs est comme ci-dessous :

A l’entrée de la maison : Dans le garage :

Figure 39:organigrammes de fonctionnement des capteurs de mouvement

4.2 Camera tournante

La caméra tournante permet d’effectuer de la reconnaissance faciale en temps réel grâce


à sa flexibilité (rotation en 180 dégrée) à une excellente qualité d'image. La caméra peut
tourner grâce au servo-moteur qui est attaché à elle.
Chapitre 3

L’objectif de la rotation de caméra est de trouver la position convenue afin d'obtenir la


position idéale pour détecter le visage de la personne.
La caméra est attachée au côté de la porte de la maison, lors de la détection de
mouvement, elle tourne pour devenir en face de la personne qui essaye d’entrer à la maison.

La caméra opère comme suit :

 La caméra vérifie si cette personne est enregistrée dans la base de données.


 Si elle est connue, elle revient à sa position initiale.
 Sinon, le programme tente de détecter le visage pendant un certain temps et si la
personne n’est pas encore connue, la caméra retourne à sa position initiale.

La vitesse de rotation de cette caméra dépend du servomoteur, nous préférons utiliser


une vitesse un peu lente puisque le programme de reconnaissance faciale prend du temps
avant le démarrage. Cela nous donne une coordination parfaite entre la caméra et le
programme de reconnaissance faciale.
Pour éviter que le programme se plante, nous avons ajouté à ce programme un
redémarrage automatique et un nettoyage de la mémoire après avoir terminé son exécution.
L’organigramme de fonctionnement de la caméra est comme la suite :

Figure 40:Organigramme de la camera tournante


Chapitre 3

4.3 Écran lcd16x2 avec un clavier matrix 3x4

Une fois que la personne est connue par le programme, un message s'affichera sur un
écran contenant son nom avec le mot « bienvenue », puis, on lui demande son mot de passe
(pour chaque personne, correspond un mot de passe) pour des raisons d’authentification.
En utilisant un clavier matrix 3x4, la personne cible dispose de 3 essais pour taper son
mot de passe, s’il est validé, la porte va s'ouvrir avec un servo-moteur pour 40 secondes puis
elle se fermera automatiquement. Par contre, si les essais ont échoué, alors un message
s'affichera demandant de contacter l’administrateur.

 Pendant la vérification de mot de passe, un message sur l’écran s’affichera pour


indiquer si le mot de passe d’entrer est correct ou pas. Si le mot de passe saisi
est correct, l’écran affichera « mot de passe correct », sinon le message affiché
sera « mot de passe incorrect »
 Lors de l’ouverture de la porte, un message s’affiche sur l’écran et clignote
pendant 5 secondes « ouverture de porte en cours »
 Lorsque le porte est ouvert, un message s’affiche sur l’écran et clignote pendant
10 seconds « la porte est ouverte »
 Pendant la fermeture de la porte, un message s’affiche sur l’écran et clignote
pendant 5 seconds « la porte est en train de se fermer ».

L’organigramme d’authentification via le clavier matrix 3x4 est le suivant :

Figure 41: Organigramme de LCD+ Keypad


Chapitre 3

4.4 Le servomoteur

Le servomoteur sera commandé automatiquement par la Raspberry ou bien via le site web
développé. Nous utiliserons le servomoteur pour ouvrir la porte de la maison, du garage ou
bien pour les fermer.
L’ouverture/fermeture de la porte de la maison dans le cas automatique est la
conséquence de la reconnaissance facialesuivie de l’étape d’authentification par le mot de
passe. D’autre part, L’ouverture/fermeture de la porte de la maison peut se faire manuellement
par l’utilisateur via le site web de la maison intelligente.
L’ouverture/fermeture de garage sera manuellement seulement par l’utilisateur via
l’application.
La vitesse du servomoteur est modifiable par l’administrateur selon son besoin.

4.5 Testde programme de reconnaissance faciale :

Cette image ci-dessous montre que le programme scan le visage de personne et test s’il
et connue ou pas dans la base donnée, dans cet exemple, la personne « a » est Badii alors que
la personne « c » est inconnue.

Figure 42: Exemple de test de reconnaissance faciale

Après que la personne est connue, voici l’affichage de l’écran :


Chapitre 3

Figure 43: Message de Bienvenue Figure 44: Message de saisir Mot de passe

Lors de saisir de mot de passe, l’écran affichera les chiffres en étoiles « * » comme ci-
dessous :

Figure 45: Affichage de mot de passe crypté

Si le mot de passe est correct il affichera : Sinon :

Figure 46: Message de MDP correct Figure 47: Message de MDP incorrect

Si l’utilisateur est bloqué, ce message s’affichera :

Figure 48:: Message de blocage

Voici des exemples des autres messages afficher par le programme :


Chapitre 3

Lors de l’ouverture ou fermeture de la porte :

Figure 49: Message d'ouverture de la porte Figure 50: Message de fermeture de la porte

Demande de contact l’administrateur :

Figure 51: Message de demande de contact avec l'administrateur

4.6 Test de la lampe avec relais et la camera tournante :

Voici la lampe brancher avec le relais :

Figure 52: Carte a relais

Lorsque la broche de relais qui accoler à la lampe se met en tension, la lampe brille :
Chapitre 3

Figure 53: Carte a relais en marche

Voici un servomoteur relier à la camera qui forment la camera tournante :

Figure 54: Camera tournante

4.7 Le système d’alarme

Notre système d’alarme se décompose essentiellement en deux parties :


-déclenchement de d’alarme de type sirène
-Envoie d’une notification à l’administrateur de la maison pour l’avertir
Le système d’alarme sera activé automatiquement dans deux cas :
-Lors de la détection de fumée, de monoxyde de carbone et de gaz dans la maison par le
capteur gaz
-Lors de ladétection d’un mouvement dans le garage par le capteur de mouvement.
L’administrateur de la maison intelligente a la possibilité d’activer ou bien désactiver le
système d’alarme à partir du site web.
L'activation de ce système d'alarme est un choix nécessaire pour la sécurité de la maison
lorsqu'il n'y a personne dans la maison. Mais aussi, la désactivation peut être nécessaire dans
certains cas,
Chapitre 3

L’Organigramme de fonctionnement du système d’alarme est le suivant :

Detection de
Détection de fuite de
mouvement dans le
gaz
garage

Attendre que le
System de serurité
système soit en Non
activé?
mode active

Oui

Envoie d une
notification et
lancement l'alarme

Figure 55: Organigramme de système d’alarme

4.8 Capteur de la Température et de l'humidité

La détection de la température etde l’humidité est importante dans les maisons


intelligentes, puisqu’on peut relier ces informationsà plusieurs choix possibles tels que :
-Ouvrir le climatiseur dans le cas où la température est supérieure à 30 °.
-Allumer le chauffage lorsque la température est moins de 10°
Pour éviter les collisions de lecture/écriture dans la base de données, nous avons préféré
de fixer un temps d’inactivité entre la lecture de la température et l’humidité de la maison.
Le fonctionnement de ce capteur est automatique alors que pour connaître la
température dans la maison, il sera activé manuellement par l'utilisateur de l'application car il
est inutile d'envoyer une notification chaque heure contenant la température de la maison.

4.9 Détecteur de Fuite de gaz

Dans les maisons modernes, le capteur de fuite de gaz est devenu un élément
nécessaire. Nous avons ajouté ce capteur qui permet d’envoyer une notification à l’utilisateur
pour l’avertir en cas de fuite et déclencher l’alarme.
Chapitre 3

En plus, nous pouvons relier ce capteur à une fenêtre intelligente qui s’ouvre
automatiquement pour effectuer l’aération automatique de la maison.
L’Organigramme de fonctionnement du capteur de gaz est le suivant :

Envoyer une
notification

Detection de fuite
de gaz?

Lancement d alarme

Figure 56: organigramme de capteur de fuite de gaz

5 Conclusion

Dans ce chapitre, nous avons détaillé les différentes fonctionnalités de notre système
intelligent ainsi que le choix des différents outils nécessaires à la réalisation de ce projet. Dans
le chapitre suivant, nous allons développer le site web qui permettra de gérer et consulter les
différents capteurs et équipements de notre maison intelligente.
Chapitre 4 :
Conception et réalisation d’un site web
pour la gestion du smarthome
Chapitre 4

Chapitre 4
Conception et réalisation d’un site web
pour la gestion du smarthome
1 Introduction

L’exploitation des différentes fonctionnalités du Smarthome nécessite une interface


visuelle qui facilite la consultation et la gestion de notre maison. Pour cela, nous avons choisi
de réaliser un site web. Ce chapitre sera consacré pour la description de notre plateforme, tout
en essayant de mettre l'accent sur les différents détails : les langages de développement, le
principe de fonctionnement, les spécifications, etc.

2 Conception du site web

Notre objectif est de créer un site web pour gérer notre maison à distance. Les
différentes fonctionnalités offertes sont les suivantes.
Chapitre 4

Figure 57: Les différentes actions à bénéficier de site web en tant que client

3 Principe de fonctionnement de l'application


3.1 Echange client / serveur Raspberry

L'accès à l'application se fait selon l’architecture suivante :

Figure 58: Architecture client /serveur

Le Client qui est souvent l'un des propriétaires de la maison envoi une requête à partir
de son appareil (portable, ordinateur) vers le serveur apache de la carte Raspberry qui à son
tour reçoit la demande, la décode puis affiche la page requise.

3.2 Echange Serveur/Base de données

En plus du serveur web, nous avons besoin d’un autre serveur qui héberge le Système
de Gestion de Base de Données : MySQL server. Il permet d’insérer du contenu dans des
pages web dynamiques. Pour la gestion de la base de données, nous avons recours au langage
SQL.
Ainsi, la demande du client est transmise sous forme d'une requête SQL vers le serveur
SGBD qui à son tour, effectue les traitements nécessaires avant de renvoyer les données
requises.
Chapitre 4

Figure 59: Communication serveur/base de données

4 Description de l'interface de l'application

La création d'une application web nous impose à adopter les critères suivant :
- Sécurisation de l’application à travers un processus d’authentification
- Facilitée au niveau de gestion de l'application
- Flexibilité de l'application
- Application multiplateformes

Figure 60: Structure générale de l'application web

4.1 Page d’authentification


Chapitre 4

La sécurité est un enjeu majeur pour notre application. En fait, c'est une contrainte à ne
pas négliger et on doit assurer l'authentification de l'utilisateur qui est soit le père ou la mère
ou l’un des membres approchés de la famille

Figure 61: Interface de login

La page de connexion demande à l'utilisateur de saisir le nom et le mot de passe à


condition qu'il a été déjà inscrit dans la base de données , ainsi il sera capable d'accéder et de
profiter de différents service de l'application.
- L'inscription est une tâche privée qui est gérée seulement par l'administrateur.

4.2 Page d'accueil

après l’authentification du client, ce dernier se trouve devant la page d'accueil qui


présente un menu simple et adéquat aux besoins spécifiques des utilisateurs c’est à dire qu’il
est facile d’atteindre l’information ou la fonctionnalité recherchée.
Chapitre 4

Figure 62: Interface de la page d'accueil

Notre application offre les fonctionnalités suivantes :

 Gestion de l’éclairage
 Consultation de la température
 Ouvrir la caméra on ligne
 Envoyer un mail à l’administrateur
 Activer ou désactiver la sonnerie

4.2.1 Gestion d'éclairage

Le client est capable de contrôler l’éclairage à distance dans les différents coins de sa
maison (chambres, cuisine, couloires) par un simple clic sur le bouton (off/on) au lieu
d’utiliser les interrupteurs
La gestion de lumière au niveau d'application est très simple :
-Glisser le bouton à droite : état on ---> la lampe s’allume,
-Glisser vers le sens contraire : état off ---> la lampe s'éteint
Chapitre 4

Figure 63: Exemple de gestion d'éclairage

Le déroulement de cette opération passe par les étapes suivantes comme le montre le
schéma suivant :

Figure 44 : Explication d'opération d'éclairage

4.2.2 Détermination de la température et de l’humidité


Chapitre 4

Figure 45 : Interface de mesure de la temperature et de l'humidité

-l'application offre à l'utilisateur la possibilité de consulter les variations climatiques


locales : la température ambiante et l’humidité de la maison.
- l'accès à l'interface approprié se fait en cliquant sur l'icône convenable et les valeurs
seront affichées automatiquement
- Pour augmenter l'efficacité du système global alloué pour la gestion de l'envoie et de la
réception ainsi que l'affichage de la température et de l’humidité, on doit le configurer de
manière qu'il effectue à chaque heure une mise à jour des valeurs comme illustré par la figure
ci-dessous :

Figure 64:Explication des différentes étapes pour obtenir des nouvelles valeurs mesurées de la
température et de l'humidité

4.2.3 Surveillance en ligne

La Surveillance en ligne est une technologie qui permet d'équiper notre maison en vue de
la sécuriser et la protéger contre le cambriolage. Grâce à ce système, il est possible de
commander à distance notre caméra.
Chapitre 4

Avec ce système, l'utilisateur est capable de visualiser en temps réel ce qui se déroule soit à
l’extérieur en utilisant la caméra frontale de la maison ou bien à l’intérieur à travers la caméra
Raspberry.
Pour assurer la surveillance vidéo et l’accès en ligne, on a utilisé le logiciel Motion. Il est
l'un parmi les meilleurs logiciels open source de détection de mouvement et de diffusion en
direct à travers le web avec de nombreuses options de configuration (dimensions de vidéo, la
qualité de l'image, le flux, la durée d'enregistrement etc)
L'application motion est packagée debian, donc une simple ligne de commande suffit à
l’installer : sudo apt-get install motion
Afin d’améliorer notre système de vidéosurveillance, on a modifié certains points de la
configuration de motion sachant que tous le paramètres se trouve dans le fichier :
/etc/motion/motion.conf

- Voici les différentes modifications qu'on a effectué :

 On active le daemon

daemon on

 On utilise le fichier /tmp/motion.log pour stocker les logs

logfile /tmp/motion.log

 On règle la résolution (adapter la résolution à celle de votre camera. Ici, nous


avons réglé pour la caméra de la Raspberry pi)

>width 1280
>height 720

 On règle le nombre d'images prises par seconde

>framerate 2

 On règle le nombre d'images enregistrées avant et après un mouvement (ici 2


avant 2 après)

>pre_capture 2
>post_capture 2

 On règle le code, pour une lecture sur de nombreux médias

>ffmpeg_video_codec msmpeg4
Chapitre 4

Motion diffuse par défaut la vidéo sur le port " 8080" de la Raspberry Pi. Pour le modifier,
il suffit de sauter vers la ligne « caméra port » puis taper la valeur du port.
Pour visualiser la diffusion en direct, il suffit de renseigner l'adresse suivante à n'importe
quel navigateur : http://l'adresse-de-la-carte:le-port-choisi
En plus de la surveillance en ligne, le client peut roter la caméra frontale soit à gauche
ou bien à droite

La vidéo s'affichera automatiquement comme illustre la photo ci-dessous :


Chapitre 4

Figure 65:Interfaces de surveillance en ligne

4.2.4 Activer /Désactiver l'alarme

L'alarme se déclenche d'une manière automatique dans le cas où il y a un mouvement au


niveau du garage ou bien une fuite massive du gaz. Lorsque l’alarme est activée, l’utilisateur
peut la désactiver.

Figure 66: Interface de gestion d'alarme

4.2.5 Commande des portes

L’utilisateur peut commander l’ouverture et la fermeture de la porte d’entrée et/ou de la


porte du garage.
Chapitre 4

Figure 67: Interface de commande des portes

4.2.6 Détection de fuite de gaz

À travers cette interface, le client peut superviser l'état de gaz domestique pour être
attentif à la présence d’une fuite légère afin de prendre toutes les précautions nécessaires.

Si les valeurs varient :

o Entre 7% et 10% --> c'est l'état normal


o Entre 10% et 30% --> il y a une fuite légère
o Entre 30% et 50% --> l'intervention de propriétaire est demandée
o Plus que 50% -->Déclanchement d'alarme

On effectue la détection de fuite de gaz chaque 900 secondes (15 minutes) pour des
raisons de sécurité.
Chapitre 4

Figure 68: Interface de supervision de l'état de gaz

4.2.7 Envoyer un email

S’il y a une chose qui ne fonctionne pas correctement lors de l'utilisation de


l’application, cette interface est réservée pour signaler les problèmes en envoyant un message
détaillé vers le propriétaire qui à son tour essayera de le corriger.

Figure 69: Interface d'envoi d'un email

Cette interface regroupe l’ensemble des options qui sont en réalité des commandes qui
assurent le fonctionnement de certains systèmes de notre maison intelligente :
La surveillance en ligne, par exemple, nécessite pour se démarrer l’activation de service
motion, donc au lieu de passer au terminal pour taper la commande nécessaire, un simple clic
sur le bouton (on/off) est suffisant pour le lancer le service.
Chapitre 4

Figure 70: Interface d'activation des services

5 Conclusion

Dans ce chapitre, nous avons détaillé les différentes fonctionnalités de notre site web.
Celui-ci permet au propriétaire de contrôler et de gérer sa maison via un site web
Chapitre 4

Annexe
Chapitre 4

A nnexe : P rise en main du Raspberry

1 Installation du système d’exploitation


1.1 Description générale

La carte Raspberry charge son système d'exploitation à partir du lecteur de carte micro
SD. Le choix du système d'exploitation repose sur les besoins de l'utilisateur.
Les concepteurs du Raspberry Pi ont visé la simplicité par l’innovation du logiciel
Noobs pour rendre le premier démarrage plus facile. Il est prévu pour tester les systèmes
d’exploitation classiques qui se trouvent sur le Raspberry Pi :
-Raspbian : la distribution classique basée sur Debian
- Pidora : une distribution basée sur Fedora
- Open Elec : pour transformer le Pi en centre multimédia
- RaspBMC : identique à Open Elec
- Windows 10 ioT: unedistribution de windows, etc…
Grâce à ce logiciel, il est possible d’installer plusieurs systèmes d’exploitation sur une
seule et même carte SD. Ainsi, l'utilisateur pouvait facilement trouver celui qui est le plus
adapté à ses besoins sans avoir à télécharger les différentes images nécessaires.

1.2 Installation de l'OS

La carte SD doit avoir une capacité de stockage au moins de 8 Go puisque les systèmes
d’exploitation disponibles font en général un peu plus d’1 Go.
- Ensuite, l’utilisateur doit téléchargerNoobs à partir du site officiel de Raspberry :
"https://www.raspberrypi.org/downloads/noobs/"
Ce site présente deux versions de Noobs:
- La version" Noobs lite" qui contient le strict minimum et qui téléchargera par la
suite les systèmes nécessaires
- La version « Noobs » (la plus recommandé) qui embarque tout le nécessaire.
- Après le téléchargement, le client devrait décompresser les fichiers dans un dossier
afin de les copier sur sa carte SD directement. Finalement, il reste à insérer la carte dans le
Raspberry Pi et tout est prêt pour démarrer.
Chapitre 4

1.3 Utilisation de l'OS

Lors du démarrage de la machine, le client arrive sur cet écran qui lui permet
de choisir parmi les distributions disponibles :

- Il suffit de cocher le système qu’on souhaite installer.


-Généralement, il est conseillé d’installer la distribution Raspbian pour débuter.

2 Configuration de l'adresse IP

Il peut être intéressant de mettre la Raspberry pi en IP statique pour pouvoir la


manipuler plus facilement

2.1 Connaissance de l’adresse IP


Le plus simple est d'utiliser la commande "ifconfig" dans un terminal du raspberry pi.
Cette commande fournit les informations concernant le réseau (gateway), y compris aussi
l'adresse IP.

2.2 Fixation de l’adresse IP


Par défaut la Raspberry Pi utilise DHCP pour configurer ses interfaces réseau, Le
DHCP pour eth0 qui est activé dans le fichier « /etc/network/dhcpcd.conf », et donc se
rendre dans le terminal et taper :
Chapitre 4

Sudo nano /etc/network/dhcpcd.conf


Une fois le fichier ouvert, l'utilisateur doit passer vers la fin du fichier et ajouter ceci :
# configuration ip static pour eth0
interface eth0
static ip_address=192.168.1.13/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
Pour la connexion wifi :
# configuration ip static pour wlan0
interface wlan0
static ip_address=192.168.1.9/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
Notons que l'utilisateur doit attribuer deux adresses différentes pour le wlan0 et eth0
puis redémarrer le Raspberry pour appliquer les paramètres :
sudo reboot
Ou bien relancer la couche réseau du Pi sans relancer le système via la commande :
> sudo /etc/init.d/networking restart

3 Contrôler à distance du raspberry (VNC / Putty/WinSCP)

" Quoi faire si on n'a pas d’écran et qu'on souhaite contrôler la carte depuis
l'ordinateur ?" VNC fourni l'accès au bureau du Raspberry Pi à distance

3.1 Activation de ssh

Secure Shell (SSH) est une fonctionnalité de Linux qui permet d’ouvrir une session de
terminal sur la carte Raspberry Pi à partir d’une ligne de commande d'ordinateur hôte. Pour
utiliser SSH, l'utilisateur devrait l’activer.
S’il n’avait pas configuré sa Raspberry pi pour SSH lorsqu’il l'avait démarré pour la
première fois, il suffit de passer au terminal et entrer la commande suivante pour démarrer la
configuration du Raspberry.

> Sudo rasp-config


Chapitre 4

Ensuite, il défile jusqu'à l'option "ssh" et il tape sur le bouton d'entrée puis il sélectionne
« Enable », un script s'exécutera afin de lui afficher un message de confirmation comme
s'illustre dans les images ci-dessous.
Chapitre 4

3.2 Ssh sous windows


3.2.1 Installation de putty

Après la fixation de l'adresse IP, l'utilisateur a besoin de télécharger un programme


gratuit appelé « puTTY » : http://www.putty.org/ ..
Chapitre 4

Un tel logiciel offre à l'utilisateur la possibilité de contrôler sa carte à distance et de


passer des commandes à partir de son ordinateur

3.2.2 Installation de WINSCP

Description : Afin d’éviter d'utiliser une clé USB pour transférer des fichiers depuis la
machine à Raspberry, winscp peut faciliter la tâche à l'utilisateur.
Ce programme permet la copie sécurisée des fichiers à partir de l’ordinateur vers la
carte et vice versa
Spécification
- Opérations sur les fichiers : WinSCP peut réaliser toutes les opérations de

base sur les fichiers, comme télécharger et envoyer. Il permet aussi


de renommer les fichiers et les dossiers, de créer de nouveaux dossiers,
de changer les propriétés des fichiers et des dossiers, et de créer des liens
symboliques et des raccourcis.
Une des deux interfaces du programme permet aussi de gérer les fichiers locaux.
-Connexion à un ordinateur distant : Grâce à WinSCP, il est possible de se

connecter à un serveur SSH (Secure Shell) en utilisant le protocole SFTP (SSH


File Transfer Protocol) ou le service SCP (Secure Copy Protocol). SFTP est un
standard du package SSH-2. SCP est un standard du package SSH-1. Ces deux
protocoles peuvent être utilisés même avec la dernière version de SSH.
-Interface graphique : Il y a deux interfaces différentes avec plusieurs options

de configuration dans WinSCP.

3.2.3 Installation VNC :

La différence entre Putty et VNC est que Putty ne gère pas l’interface graphique. Il
permet d’exécuter des commandes dans le terminal contrairement à VNC qui donne la
Chapitre 4

possibilité de contrôler la Raspberry pi de manière graphique avec la souris et le clavier.


Pour l’installer, il suffit de connecter en SSH au Raspberry pi et faire ces deux commandes
Sudo apt-get update
Sudo apt-get install tightvncserver
Une fois que tightvnc est installé, il suffit de taper la commande :
Vncserver :1

3.2.4 Le client Vnc

Pour accéder à son bureau en VNC, le client devrait télécharger un logiciel (un client
VNC) qui lui permettrait de prendre le contrôle de sa Raspberry pi.

Dans le champ VNC Server, il va entrer l’adresse ip de sa Raspberry pi (on peut la


trouver en tapant la commande ifconfig dans le terminal) suivi de :1 et cliquer ensuite sur
Connect.
La fenêtre suivante lui demanderait son mot de passe (limité à 8 caractères) par défaut
est « raspberry »
Chapitre 4

Le bureau de Raspberry pi devrait apparaitre. Maintenant, l’utilisateur peut utiliser la


souris et le clavier pour la contrôler à distance.

3.2.5 Démarrer VNC directement au démarrage

Pour démarrer un serveur VNC au démarrage automatiquement, le client doit taper ces
commandes successivement :

cd /home/pi
cd .config
Chapitre 4

mkdir autostart
cd autostart
sudo nano tightvnc.desktop
Un fichier vide va s’ouvrir, copier-coller ceci :

#! /bin/sh
[Desktop Entry]
Type=Application
Name=tightVNC
Exec=vncserver :1
StartupNotify=false
Par la suite, il doit sauvegarder et quitter puis redémarrer sa Raspberry pi.

sudo reboot

4 Configuration de serveur web

L’ordinateur Raspberry Pi est connecté en réseau par un connecteur Ethernet et/ou une
liaison WIFI. Il peut devenir un serveur WEB permettant le contrôle distant de processus ou
la transmission à distance des données à travers Internet.

4.1 Installation d’Apache

Pour installer un serveur web sur la carte Raspberry, l'utilisateur client doit effectuer
une petite mise à jour de sa carte par ces deux commandes :
Sudo apt-get update et Sudo apt-get upgrade
Une fois la Raspberry Pi est à jour, il faut installer le serveur Apache :
Sudo aptitude install apache2
Notons que pour administrer facilement les sites, l'utilisateur doit changer les droits
donnés au dossier d'apache :
Sudo chown -R pi:www-data /var/www/html/
Sudo chmod -R 770 /var/www/html/
Chapitre 4

4.1.1 2-Vérifier qu’Apache fonctionne

Une fois l’installation terminée, pour tester qu’Apache fonctionne correctement il suffit
de se rendre sur l’adresse de la Raspberry.
Pour cela, il faut tenter d’accéder à la Raspberry depuis le port 80 (ce port n’étant pas encore
ouvert depuis l’extérieur, il faudra le faire depuis la Raspberry elle-même) en ouvrant le
navigateur web de la Raspberry (par défaut Midori sous Raspbian), et en allant à l’adresse
« http://127.0.0.1 » alors on va obtenir une page avec un message du genre « It works! » et
plein d’autre texte.
- Apache utilise le répertoire « /var/www/html » comme racine pour les sites. Cela signifie
que quand l'utilisateur appelle sa Raspberry sur le port 80 (http), Apache cherche le fichier
dans « /var/www/html ».
- Le client peut utiliser sa carte pour faire un site en HTML, CSS et JavaScript, en
interne PHP pour des interactions externe entre le site et l'utilisateur comme l'exemple de
login.

4.2 Installation de PHP sur la Raspberry

- L'utilisateur fait appel à l’administrateur pour installer PHP avec la ligne de


commande : Sudo aptitude install php
Pour savoir si PHP fonctionne correctement, il y a des étapes à suivre :
D’abord, il faut supprimer le fichier « index.html » qui se trouve dans le répertoire
« /var/www/html » par la commande :
Sudo rm /var/www/html/index.html
- Puis il faut créer un fichier « index.php » dans ce répertoire, avec cette ligne de
commande : echo "< ? php phpinfo(); ?>" > /var/www/html/index.php
Pour vérifier qu’Apache fonctionne, il suffit d’accéder à sa page et on doit avoir un
résultat proche de cette image
Chapitre 4

4.3 Une base de données MySQL pour votre serveur


Maintenant que le client met en place PHP5, il faut stocker des informations pour les
utiliser dans le site qu'il à créer. Pour cela, il a besoin d'utiliser une base de données qu’il va
exploiter via un SGBD. Dans notre cas, on utilise MySQL.

4.4 Installer MySQL

Le client doit installer mysql-server et php5-mysql (qui servira de lien entre php et
mysql) en tapant les commandes suivantes :
> sudo aptitude install mysql-server php5-mysql
Lors de l’installation de mysql-server, il demande un mot de passe pour le compte
administrateur MySQL (root)

4.4.1 Vérifier que MySQL marche correctement

Pour vérifier le fonctionnement de MySQL, le client utilise cette commande :


> mysql --user=root --password=votrepasswd
Un message de type : « Bienvenue sur MySQL ! » s’affichera. Le client disposera alors
d'un serveur web, relié à PHP et à MySQL

4.5 PHPMyAdmin, gérer facilement ses bases de données


Chapitre 4

PHPMyAdmin est on fait une application développée en PHP, et qui vise à fournir une
interface simplifiée pour MySQL.

Installer PHPMyAdmin
L’installation de PHPMyAdmin est optionnelle et est simple à faire, via le gestionnaire
de paquets, en utilisant la commande suivante :
Sudo aptitude install phpmyadmin

4.6 Configurer phpmyadmin pour fonctionner avec apache

L'objectif est de modifier la configuration d’apache pour pouvoir accéder à


phpmyadmin via ce serveur. Cela se fait en tapant la commande suivante :
Sudo nano /etc/apache2/apache2.conf
Le fichier de configuration sera chargé avec Nano. A la fin de ce fichier, on ajoute la
commande suivante : Include /etc/phpmyadmin/apache.conf

Finalement, On sauvegarde le fichier et on redémarre le service apache

/etc/init.d/apache2 restart
Chapitre 4
Résumé

Résumé :

Vous aimerez peut-être aussi