0% ont trouvé ce document utile (0 vote)
88 vues106 pages

Système intelligent de gestion sanitaire

Ce rapport présente un projet de fin d'études visant à concevoir un système intelligent de gestion des personnes respectant le protocole sanitaire à l'entrée d'un établissement. Le projet a été réalisé par Hiba Ben Nasr et Mejda Bedoui, sous la supervision de Mme Wided Maghraoui et M. Mohamed Chaabane, et s'inscrit dans le cadre d'une Licence Appliquée en Technologies de l'Informatique. La méthodologie utilisée inclut la gestion de projet agile Scrum et des phases de développement organisées en sprints.

Transféré par

Maleek Souihli
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
88 vues106 pages

Système intelligent de gestion sanitaire

Ce rapport présente un projet de fin d'études visant à concevoir un système intelligent de gestion des personnes respectant le protocole sanitaire à l'entrée d'un établissement. Le projet a été réalisé par Hiba Ben Nasr et Mejda Bedoui, sous la supervision de Mme Wided Maghraoui et M. Mohamed Chaabane, et s'inscrit dans le cadre d'une Licence Appliquée en Technologies de l'Informatique. La méthodologie utilisée inclut la gestion de projet agile Scrum et des phases de développement organisées en sprints.

Transféré par

Maleek Souihli
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Direction Générale des Etudes Technologiques


Institut Supérieur des Etudes Technologiques de Bizerte
Département Technologies de l'Informatique

Dép. TI
AN 2022
Ref SEM2202

Rapport de
PROJET DE FIN D’ETUDES
En vue de l’obtention de :
Licence Appliquée en Technologies de l’Informatique
Spécialité : Systèmes Embarqués et Mobiles

Conception d’un système intelligent de gestion


des personnes respectant le protocole sanitaire à
l’entrée d’un établissement
Elaboré par :
BEN NASR Hiba
&
BEDOUI Mejda

Encadré par :
Mme Wided MAGHRAOUI (ISETB)
Mr Mohamed CHAABANE (Adiz
(Adiz-DATA)
Effectué à :
Entreprise : Adiz-DATA
DATA
 Adresse : rue 9 avril bâtiment DKHIL bureau n°7 Ras Jebel Bizerte 7070
 Tel : 72 456 069
 Mail : [Link]@adiz
[Link]@[Link]

Année universitaire : 2021/2022


Dédicace

Je dédie ce travail,

A MES PARENTS

Pour l'amour qu'ils m'ont toujours donné, leurs encouragements et toute l'aide qu'ils m'ont
apportée durant mes études.

Aucun mot, aucune dédicace ne pourrait exprimer mon respect, ma considération, et mon

Amour pour les sacrifices qu'ils ont consentis pour mon instruction et mon bien-être.

A Mes SŒUR s

En témoignage de mon affection, de ma profonde tendresse et reconnaissance, je te


souhaite une vie pleine de bonheur et de succès. Que Dieu te protège et te garde !

Bedoui Mejda
Dédicace

Je dédie ce modeste travail et ma profonde gratitude à tous ceux qui ont sacrifié

Pour m’offrir les conditions propices à ma réussite :

A MES PARENTS

Avec tous mes sentiments


de respect, d'amour, de gratitude et de reconnaissance pour tous les sacrifices
déployés pour m’élever dignement et assurer mon éducation dans les meilleures
conditions pour leurs encouragements et leur soutien

A TOUTE MA FAMILLE
Je vous dédie ce travail en reconnaissance de l’amour que vous m’offrez quotidiennement et
votre bonté exceptionnelle.

Que ce travail soit l’expression de ma grande affection et un témoignage de


mon attachement et de mon grand profond amour.

Ben Nasr Hiba


Remerciements

Au terme de ce travail, il nous est agréable d’adresser quelques expressions de


remerciements et de reconnaissances à toute personne, dont l’intervention, de près ou de loin
au cours de ce projet, a favorisé sa réalisation.

Nous tenons à remercier M. CHAABANE Mohamed, directeur Général de la société


Adiz-data et notre encadrant professionnel, pour le temps qu’il a bien voulu consacrer pour le
suivi de ce travail, pour sa disponibilité pour atteindre les objectifs de ce projet dans les délais
convenus.

Nous, voulons témoigner notre reconnaissance à notre encadrante académique Ms.


MAGHRAOUI Wided qu’elle nous a apportée durant toutes les phases de ce stage. Aussi,
pour ses conseils qui nous ont été très bénéfiques sans oublier sa participation au
cheminement de ce rapport.

Enfin, nous exprimons notre sincère gratitude aux membres du jury, pour l’honneur
qu’ils nous font de participer à l’évaluation de notre projet.
Table des matières

Introduction générale .......................................................................................................... 1

Chapitre I. Cadre Général du Projet ................................................................................. 2

Introduction ...................................................................................................................... 3

I. Présentation de l’organisme d’accueil...................................................................... 3

II. Cadre du projet ......................................................................................................... 4

1. Description et critique de l’existant ...................................................................... 4

2. Solution proposée ................................................................................................. 4

III. Méthodologie utilisée ............................................................................................... 5

1. Méthode de gestion de projet agile Scrum ........................................................... 5

2. Méthode de modélisation et de conception .......................................................... 6

Conclusion ........................................................................................................................ 8

Chapitre II. Analyse et spécification des besoins .............................................................. 9

Introduction .................................................................................................................... 10

I. Spécifications des Besoins ..................................................................................... 10

1. Diagramme des exigences .................................................................................. 10

2. Modélisation du besoin....................................................................................... 10

II. Pilotage du Projet avec Scrum ............................................................................... 13

1. Equipe Scrum ..................................................................................................... 13

2. Le Backlog produit ............................................................................................. 13

3. Planification des Releases .................................................................................. 16

III. Environnement de travail ....................................................................................... 16

1. Environnement matériel ..................................................................................... 16

2. Environnement Logiciel ..................................................................................... 22


IV. Architecture globale de système ............................................................................ 27

Conclusion ...................................................................................................................... 29

Chapitre III. Release 1....................................................................................................... 30

Introduction .................................................................................................................... 31

I. Développement du Sprint 1 « Détection de présence des personnes » .................. 31

1. Sprint goal .......................................................................................................... 31

2. Sprint backlog ..................................................................................................... 31

3. Analyse ............................................................................................................... 31

4. Réalisation .......................................................................................................... 32

5. Test ..................................................................................................................... 36

II. Développement du Sprint 2 « Validation de QR code et de port du masque »...... 38

1. Sprint goal .......................................................................................................... 38

2. Sprint backlog ..................................................................................................... 38

3. Analyse ............................................................................................................... 38

4. Conception .......................................................................................................... 40

5. Réalisation et Test .............................................................................................. 40

III. Développement du Sprint 3 «Authentification, Gestion des utilisateurs» ............. 51

1. Sprint goal .......................................................................................................... 51

2. Sprint backlog ..................................................................................................... 51

3. Analyse ............................................................................................................... 52

4. Conception .......................................................................................................... 58

5. Réalisation .......................................................................................................... 62

IV. Développement du Sprint 4 «Gestion de flux de visiteurs» ................................... 65

1. Sprint goal .......................................................................................................... 65

2. Sprint backlog ..................................................................................................... 66

3. Analyse ............................................................................................................... 66
4. Conception .......................................................................................................... 68

5. Réalisation .......................................................................................................... 69

Conclusion ...................................................................................................................... 72

Chapitre IV. Release 2 ....................................................................................................... 73

Introduction .................................................................................................................... 74

I. Développement du Sprint 5 « Optimisation du Sprint 2 » ..................................... 74

1. Sprint goal .......................................................................................................... 74

2. Critiques de la solution Software du Sprint 2 ..................................................... 74

3. Réalisation et test ................................................................................................ 74

Test............................................................................................................................... 76

II. Développement du Sprint 6 «Consultation de nombre journalier et du pourcentage


des places disponibles»......................................................................................................... 77

1. Sprint goal .......................................................................................................... 77

2. Sprint back log .................................................................................................... 77

3. Analyse ............................................................................................................... 77

4. Réalisation et Test .............................................................................................. 79

III. Développement du Sprint 7 «Consultation de nombre mensuel des visiteurs, Se


notifier» 82

1. Sprint goal .......................................................................................................... 82

2. Sprint back log .................................................................................................... 82

3. Analyse ............................................................................................................... 83

4. Réalisation et Test .............................................................................................. 85

Conclusion ...................................................................................................................... 87

Conclusion générale ........................................................................................................... 88

Nétographie ........................................................................................................................ 89
Liste des figures

Figure 1: Conception 3D à l'entrée ........................................................................................ 4

Figure 2: Conception 3D à la sortie ....................................................................................... 5

Figure 3: Cycle de vie de la méthodologie Scrum ................................................................. 6

Figure 4: Logo UML.............................................................................................................. 6

Figure 5: Logo SysML ........................................................................................................... 7

Figure 6: Diagramme d'exigence de système ...................................................................... 10

Figure 7: Diagramme de cas d’utilisation général du système ............................................ 12

Figure 8: Schéma des Releases ............................................................................................ 16

Figure 9: Carte NVIDIA Jetson Nano ................................................................................. 17

Figure 10: Carte Raspberry pi 4 Model B............................................................................ 17

Figure 11: Raspberry Pi Camera Rev 1.3 ............................................................................ 19

Figure 12: Capteur ultrason HC-SR04................................................................................. 20

Figure 13: Capteur de mouvementPIR ................................................................................ 21

Figure 14: Moteur pas à pas unipolaire avec driver............................................................. 22

Figure 15:Architecteur globale de système ......................................................................... 28

Figure 16: Diagramme de cas d'utilisation de sprint 1 ........................................................ 32

Figure 17: Diagramme d'activité du sprint 1 ....................................................................... 33

Figure 18: Diagramme de définition de bloc ....................................................................... 34

Figure 19: Schéma de câblage du capteur ultrason avec la carte Raspberry Pi ................... 35

Figure 20: Image explicative du processus de la prédiction du MobileNet......................... 36

Figure 21: Schéma de câblage du sprint 1 ........................................................................... 36

Figure 22: Test de détection de personne 1 ......................................................................... 37

Figure 23: Test de détection de personne 2 ......................................................................... 37

Figure 24: Diagramme de cas d’utilisation de sprint 2 ........................................................ 39


Figure 25: Diagramme de séquence de sprint 2 ................................................................... 40

Figure 26: Diagramme d'activité de sprint 2 ........................................................................ 41

Figure 27: Diagramme de définition du bloc globale .......................................................... 42

Figure 28: Interface visiteur avec Dashboard Node Red ..................................................... 43

Figure 29: Créer un nouveau dossier pour le serveur ws ..................................................... 43

Figure 30: Installation de la bibliothèque ws ....................................................................... 43

Figure 31: Code basic du server ws ..................................................................................... 44

Figure 32: Exécution du serveur ws .................................................................................... 44

Figure 33: Interface visiteur en HTML................................................................................ 45

Figure 34: Pass sanitaire tunisien......................................................................................... 46

Figure 35: Format global d'un code 2D-Doc ....................................................................... 46

Figure 36: Test de validation du QR code 1 ........................................................................ 47

Figure 37: Test de validation du QR code 2 ........................................................................ 48

Figure 38: Nœud de détection du port du masque ............................................................... 48

Figure 39: Nœud exec .......................................................................................................... 49

Figure 40: Schéma de câblage globale ................................................................................ 50

Figure 41: Test de détection du port du masque 1 ............................................................... 50

Figure 42: Test de détection du port du masque 2 ............................................................... 51

Figure 43 : Diagramme de cas d’utilisation de sprint 3 ....................................................... 53

Figure 44: Digramme de séquence « Se connecter » ........................................................... 58

Figure 45: Digramme de séquence de « Se déconnecter » .................................................. 59

Figure 46: Digramme de séquence « Se connecter » ........................................................... 59

Figure 47: Digramme de séquence de « Se déconnecter » .................................................. 60

Figure 48: Digramme de séquence de « Réinitialiser le mot de passe » ............................. 60

Figure 49: Diagramme de séquence « Ajouter un utilisateur » ........................................... 61

Figure 50: Diagramme de séquence « Supprimer un utilisateur » ....................................... 61


Figure 51: Diagramme de classe « Gestion de la liste des utilisateurs » ............................. 62

Figure 52: Interface « Authentification » ............................................................................ 62

Figure 53: Fenêtre 1 « Ajouter un utilisateur » .................................................................... 63

Figure 54: Fenêtre 2 « Ajouter un utilisateur ».................................................................... 63

Figure 55: Fenêtre « Supprimer un utilisateur » .................................................................. 64

Figure 56: Fenêtre « La liste des utilisateurs » .................................................................... 64

Figure 57: Fenêtre « La liste des utilisateurs sur Firebase Authentication » ....................... 65

Figure 58: Figure 58: Base de données « La liste des utilisateurs sur Cloud Firestore » .... 65

Figure 59: Diagramme de cas d’utilisation « Consulter le nombre des visiteurs en temps
réel » ......................................................................................................................................... 66

Figure 60: Diagramme de cas d’utilisation « Mettre à jour le nombre maximal des visiteurs
» ................................................................................................................................................ 67

Figure 61: Diagramme de séquence « Mettre à jour le nombre maximal des visiteurs ».... 69

Figure 62: Base de données« Stockage de nombre des visiteurs entrés et sorties » ............ 69

Figure 63: Interface « Mettre à jour le nombre maximal des visiteurs » ............................. 70

Figure 64: Table « Stockage de nombre maximal des visiteurs » ....................................... 70

Figure 65: Interface «Consulter le nombre des visiteurs en temps réel» ............................. 70

Figure 66: Interface «Consulter le nombre maximal des visiteurs» .................................... 71

Figure 67: Interface « Espace de l’administrateur » ............................................................ 71

Figure 68: Interface « Espace des utilisateurs » .................................................................. 72

Figure 69: Diagramme d’activité de solution software2 ..................................................... 75

Figure 70: Diagramme de cas d’utilisation « Consulter le nombre journalier des visiteurs »
.................................................................................................................................................. 78

Figure 71: Diagramme de cas d’utilisation «Consulter le nombre et le pourcentage des


places disponibles» ................................................................................................................... 79

Figure 72: Base de données « Stockage de nombre des visiteurs entrés » .......................... 80

Figure 73: Interface « Consulter le nombre des visiteurs par heure » ................................. 80
Figure 74: Interface « Consulter le nombre des places disponibles» .................................. 80

Figure 75: Interface « Consulter le pourcentage des places disponibles» ........................... 81

Figure 76: Interface 2 « Espace de l’administrateur » ......................................................... 81

Figure 77: Interface 2 « Espace des utilisateurs » ............................................................... 82

Figure 78: Diagramme de cas d’utilisation «Consulter le nombre mensuel des visiteurs » 83

Figure 79: Diagramme de cas d’utilisation « Se notifier » .................................................. 84

Figure 80: Interface « Consulter le nombre des visiteurs par mois » .................................. 85

Figure 81: Interface 1 « Se notifier » ................................................................................... 85

Figure 82: Interface 2 « Se notifier » ................................................................................... 86

Figure 83: Interface finale « Espace de l’administrateur » .................................................. 86

Figure 84: Interface finale « Espace des utilisateurs » ........................................................ 87


Liste des tableaux

Tableau 1: Description des acteurs ...................................................................................... 11

Tableau 2: Présentation de l'équipe SCRUM ...................................................................... 13

Tableau 3: Backlog produit.................................................................................................. 14

Tableau 4: Comparaison entre les cartes de développent .................................................... 17

Tableau 5: Caractéristiques techniques du camera pi .......................................................... 19

Tableau 6: Caractéristiques techniques du capteur ultrason ................................................ 20

Tableau 7: Caractéristiques techniques du capteur PIR....................................................... 21

Tableau 8: Caractéristiques techniques du moteur pas à pas ............................................... 22

Tableau 9: Outils de développement utilisés ....................................................................... 23

Tableau 10: Langages utilisés .............................................................................................. 25

Tableau 11: Bibliothèque et Framework utilisés ................................................................. 26

Tableau 12: Backlog du sprint 1 .......................................................................................... 31

Tableau 13:Description textuelle du cas d’utilisation de l’item « être détecté » ................. 32

Tableau 14: Backlog du sprint 2 .......................................................................................... 38

Tableau 15: Description textuelle du cas d’utilisation de l’item «Entrer à l'établissement»


.................................................................................................................................................. 39

Tableau 16: Tableau comparative entre les deux l’interface ............................................... 45

Tableau 17: Tableau comaratif entre l'utilisation du [Link] et Tensorflow ............. 49

Tableau 18: Backlog de Sprint 3.......................................................................................... 51

Tableau 19: Description textuelle du cas d’utilisation « Se connecter » ............................. 53

Tableau 20: Description textuelle du cas d’utilisation « Se déconnecter » ......................... 54

Tableau 21: Description textuelle du cas d’utilisation « Se connecter » ............................. 54

Tableau 22: Description textuelle du cas d’utilisation « Se déconnecter » ......................... 55


Tableau 23: Description textuelle du cas d’utilisation « Réinitialiser le mot de passe » .... 56

Tableau 24: Description textuelle du cas d’utilisation« Afficher la liste des utilisateurs ». 57

Tableau 25: Description textuelle de cas d’utilisation « Ajouter un utilisateur »................ 57

Tableau 26: Description textuelle du cas d’utilisation « Supprimer un utilisateur » ........... 57

Tableau 27: Tableau des user stories du sprint 4 ................................................................. 66

Tableau 28: Description textuelle « Consulter le nombre des visiteurs en temps réel » ..... 67

Tableau 29: Description textuelle du cas d’utilisation «Mettre à jourle nombre maximal des
visiteurs»................................................................................................................................... 68

Tableau 30: Description textuelle du cas d’utilisation «Consulter le nombre maximal des
visiteurs»................................................................................................................................... 68

Tableau 31: Tableau comaratif entre l'utilisation du [Link] et Tensorflow ............. 76

Tableau 32: User story de sprint 6 ....................................................................................... 77

Tableau 33: Description textuelle « Consulter le nombre journalier des visiteurs » ........... 78

Tableau 34: Description textuelle du cas d’utilisation « Consulter le nombre et le


pourcentage des places disponibles » ....................................................................................... 79

Tableau 35: User story de sprint 7 ....................................................................................... 82

Tableau 36: Description textuelle « Consulter le nombre mensuel des visiteurs » ............. 83

Tableau 37: Description textuelle du cas d’utilisation « Se notifier » ................................. 84


Liste des abréviations

UML Unified Modeling Language

Sysml Systems Modeling Language

QR Quick Response

AI Artificial Intelligence

IoT Internet of things

ML Machine Learning

HTML HyperText Markup Langage

CSS Cascading Style Sheets

DOM Document Object Model

SSD Single Shot multibox Detector

CNN Convolution Neural Network


Introduction Générale

Introduction générale

Depuis plus d’une décennie, l’intelligence artificielle est un sujet qui questionne beaucoup
et fait partie de notre quotidien qui s'applique à tous les secteurs d’activité : transports, santé,
énergie, industrie, logistique, finance ou encore commerce.

Cloud, véhicule autonome, compteurs intelligents etc. utilisent tous des algorithmes
performants pour fournir des réponses efficaces, fiables et personnalisées aux utilisateurs.

En pandémie de Covid-19, l’intelligence artificielle a vécu une accélération dans son


développement et son adoption surtout au niveau du protocole sanitaire, ce dernier a rendu les
gens plus conscients et compréhensifs et le port du masque a devenu ainsi un protocole
quotidien qui s’applique dans tous les espaces publics et privés.

Dans ce contexte, nous mettons en place un système intelligent qui répond aux enjeux de
sécurité sanitaire actuels permettant à la fois un accès simple et un contrôle intelligent du
respect des mesures sanitaires en éliminant toute intervention humaine pour avoir une
meilleure gestion des flux des personnes au sein des bâtiments.

C’est une borne de sécurité sanitaire qui consiste à contrôler le port du masque et le scan
du QR code à l’entrée d’un établissement et à gérer le flux de personnes via une application
web.

Le présent rapport est organisé en quatre chapitres :

 Le premier chapitre intitulé « Cadre Général du projet » présente l’organisme


d’accueil, décrit le contexte de notre projet ainsi que la méthodologie adoptée.
 Le deuxième chapitre « Analyse et spécification des besoins » explique notre
démarche, soit, l’identification des futurs acteurs de notre système et l’analyse des
besoins.
 Le troisième chapitre comporte la première version (release) de notre projet défini
en se basant sur la méthodologie Scrum. Nous présentons tout au long de ce
chapitre l’analyse, la conception et la réalisation des quatre premiers sprints.
 Le quatrième chapitre est dédié à la réalisation du deuxième release

Ce rapport est clôturé par une conclusion générale et une présentation des perspectives de
ce travail.

1
Chapitre I. Cadre Général du Projet
Chapitre I. Cadre Général du Projet

Introduction
Ce premier chapitre sera consacré à la présentation générale du projet. En effet, nous
présentons en premier lieu l’organisme d’accueil au sein duquel nous avons effectué notre
stage, ensuite nous allons décrire le cadre général de notre projet, enfin nous abordons l’étude
de l’existant et la solution envisagée.

I. Présentation de l’organisme d’accueil


Le présent projet intitulé «Conception d’un système intelligent de gestion des personnes
respectant le protocole sanitaire à l’entrée d’un établissement» est réalisé dans le cadre de
projet de fin d'études pour l'obtention du diplôme de licence appliquée en technologies de
l'informatique au sein de l’Institut Supérieur des Etudes Technologiques de Bizerte. Ce projet
a été réalisé dans la société ADIZ DATA durant la période s'étalant du 14 février 2022 jusqu'à
03 juin 2022.

ADIZ DATA est une Société de services et d'ingénierie en informatique (SSII), basée sur
l’association des technologies les plus avancées des applications de production, contrôle de
qualité et mobilité/transport. Leurs domaines de compétence sont couplés autour de
l’automatisme, data et excellence opérationnelle pour créer des assistants 4.0 adaptatifs et
évolutif dédiés.

Domaines de compétences :

 Intelligence Artificielle : maintenance prédictive (Apprentissage profond) ;


 Plateforme WEB/IOT : Conception et réalisation d’une plateforme d’objets connectés
dans différents domaines (énergétique, industriel, etc) ;
 Sécurité : Analyse des risques, cybersécurité, etc
 Application Mobile : Développement des applications Mobiles cross plateforme (IOS
+ Android),
 Développement Desktop : Développement IHM Desktop pour les solutions
industrielles,
 Cloud AWS : Maitrise des Services Cloud AWS (hébergement, EC2, Route53, S3,
etc.).

3
Chapitre I. Cadre Général du Projet

II. Cadre du projet


1. Description et critique de l’existant

À l’entrée de l’établissement le contrôle du passe sanitaire ainsi que le port du masque


s’effectuent à travers une personne physique. Ce qui mène à plusieurs défauts tels que

 La personne responsable du contrôle s'expose à un contact direct avec les visiteurs,


 Le respect du protocole sanitaire n’est pas toujours garanti vu que le contrôle n'est
pas toujours effectué avec rigueur surtout lors des heures de pointe,
 La personne à l’accueil n’a pas le moyen de contrôler le nombre de personnes
présentes ce qui engendre une surcharge de personne dans un espace fermé.

2. Solution proposée

L’objectif principal de système à conçu est de contrôler l’accès à un bâtiment avec


efficacité basé sur la mise en place d’une borne de sécurité sanitaire spécialement développé
pour répondre aux enjeux sanitaires actuels. La figure ci-dessous, présente une conception 3D
de notre projet.

Figure 1: Conception 3D à l'entrée

4
Chapitre I. Cadre Général du Projet

Figure 2: Conception 3D à la sortie


Cette solution innovante conditionne l’ouverture automatique d’une entrée de bâtiment à
trois options modulables : le contrôle du port du masque, la validation du QR code et le
comptage du flux de personnes selon une jauge prédéfinie.

Cette solution s’installe sur tout type de structure (bâtiments tertiaires, établissements de
santé comme les hôpitaux, hôtels et restaurants, salles de spectacle, installations commerciales
et universitaires, bâtiments privés et publics), permet aux visiteurs de chaque établissement de
contrôler le respect des mesures sanitaires.

III. Méthodologie utilisée


1. Méthode de gestion de projet agile Scrum

La plupart d’équipe de développement ont peur de ne pas terminer les projets donnés dans
les dates prévues à cause d'une mauvaise spécification ou d'un changement brusque des
besoins. Cela conduit à un environnement de travail stressant et à la peur de dépassement de
capacités et des délais de livraison.

Pour éviter ces problèmes on va utiliser la méthodologie Scrum qui est :

 Facile à comprendre.
 Mène vers un produit qui s’adapte le plus aux exigences du client et des
utilisateurs.

5
Chapitre I. Cadre Général du Projet

Figure 3: Cycle de vie de la méthodologie Scrum

2. Méthode de modélisation et de conception

2.1 Méthode de modélisation et de conception UML

UML [1] comme son nom l’implique, un langage de modélisation et non une méthode ou
un procédé. L’UML est constitué d’une notation très spécifique ainsi que les règles
grammaticales s’y attachant pour élaborer des modèles de logiciel.

UML est utilisé pour spécifier, visualiser, modifier et construire les documents nécessaires
au bon développement d’un logiciel orienté objet. UML offre un standard de modélisation,
pour représenter l’architecture logicielle.

Figure 4: Logo UML

6
Chapitre I. Cadre Général du Projet

Les diagrammes UML utilisés :

 Diagrammes de cas d’utilisation : un diagramme de cas d’utilisation permet


d’identifier les cas d’utilisations, les acteurs et les relations entre les cas
d’utilisations et les acteurs. En fait c’est une représentation des fonctionnalités
du système selon le point de vue utilisateur.
 Diagrammes de classes : un diagramme de classe exprime de manière générale
la structure statique d’un système en termes de classes et des relations entre ces
dernières.
 Diagrammes de séquences : un diagramme de séquences permet de représenter
l’interaction des objets en précisant la chronologie des échanges de flux de
messages selon un point de vue temporel.

2.2 Méthode de modélisation et de conception SysML

SysML[2] est un moyen de regrouper, dans un modèle commun à tous les corps de métiers,
les spécifications, les contraintes, et les paramètres de l'ensemble du système. SysML aborde
la conception avec la notion de blocs qui deviendront des parties mécaniques, électroniques,
informatiques ou autres. Il est donc un langage graphique qui utilise des diagrammes.

SysML est fait pour :

 Spécifier les systèmes.


 Analyser la structure et le fonctionnement des systèmes.
 Décrire les systèmes et concevoir des systèmes composés de sous-systèmes.
 Vérifier et valider la faisabilité d'un système avant sa réalisation.

Figure 5: Logo SysML

7
Chapitre I. Cadre Général du Projet

Les diagrammes SysML utilisés :

 Diagramme d’activité: Diagramme d’activité est utilisé pour modéliser un flux


de travail dans un cas d’utilisation ou entre plusieurs cas d’utilisation, ou encore
pour décrire la logique d’une opération.
 Diagrammes de définition de bloc: un diagramme de définition de bloc décrit la
structure d’un système. Il permet de présenter les constituants du système et
d’identifier les flux MEI (Matière, Énergie, Information) qui transitent dans
chacun des blocs pour une situation donnée.
 Diagramme d’exigence : un diagramme d'exigence précise les fonctions à
réaliser ainsi que le niveau de performance à atteindre.

Conclusion
Dans ce premier chapitre du projet nous avons présenté l’entreprise d'accueil et l’étude
préalable afin de déterminer une solution fiable qui répond à nos besoins. Puis, nous avons
spécifié la méthodologie de gestion de projet et de conception adoptées.

8
Chapitre II. Analyse et spécification des
besoins
Chapitre II. Analyse et spécification des besoins

Introduction
Ce chapitre présente notre sprint de démarrage. Il est consacré à la capture des besoins
fonctionnels et non fonctionnels de notre système, au pilotage de projet avec Scrum, par
élaboration du Backlog du produit avec une planification des sprints ainsi qu’à la description
de l’environnement de travail.

I. Spécifications des Besoins


1. Diagramme des exigences

La figure ci-contre représente le diagramme d’exigence du système :

Figure 6: Diagramme d'exigence de système

2. Modélisation du besoin

2.1. Identification des acteurs

Un acteur est la personne ou le matériel qui interagit avec notre système afin de réaliser
une valeur ajoutée. Notre projet fait intervenir trois acteurs principaux comme le montre le
tableau ci-après.

10
Chapitre II. Analyse et spécification des besoins

Tableau 1: Description des acteurs

Acteur Fonctionnalités

 S’authentifier
 Consulter de nombre journalier des visiteurs
 Consulter le nombre des visiteurs en temps réel
 Gérer de la liste des administrateurs et des droits d’accès :
 Ajouter un utilisateur
 Afficher la liste des utilisateurs
Administrateur
 Supprimer un utilisateur
 Consulter le nombre mensuel des visiteurs
 Consulter de nombre et le pourcentage des places disponibles
 Mettre à jour le nombre journalier maximal des visiteurs
 Se notifier : Le système notifie l’administrateur lorsqu’il atteint le
nombre maximal des visiteurs

 S’authentifier
 Consulter de nombre journalier des visiteurs
 Consulter le nombre des visiteurs en temps réel
Utilisateur  Consulter de nombre mensuel des visiteurs
 Consulter de nombre et le pourcentage des places disponibles
 Se notifier : Le système notifie l’utilisateur lorsqu’il atteint le
nombre maximal des visiteurs

 Être détecté par le système


Visiteur  Valider son QR code
 Valider le port du masque

2.2. Diagramme de cas d’utilisation global

La figure suivante montre le diagramme de cas d’utilisation globale modélisant les


fonctionnalités principales de notre projet.

11
Chapitre II. Analyse et spécification des besoins

Figure 7: Diagramme de cas d’utilisation général du système

12
Chapitre II. Analyse et spécification des besoins

II. Pilotage du Projet avec Scrum


1. Equipe Scrum

L'équipe Scrum se compose de :

 Product Owner porte la vision du produit à réaliser. Il travaille en interaction avec


l'équipe de développement qui doit suivre ses instructions.
 Scrum Master est responsable de la compréhension, de l’adhésion et de la mise en
œuvre de la méthode Scrum qu’il maîtrise parfaitement.
 L'équipe de développement est chargée de transformer les besoins définis par le
Product Owner en fonctionnalités utilisables.

Pour notre application les rôles sont repartis comme suit :

Tableau 2: Présentation de l'équipe SCRUM

Rôles Scrum Personnes affectées

Product Owner Mr. CHAABANE Mohamed

Scrum Master Mr. CHAABANE Mohamed, Mm. MAGHRAOUI Wided

Team [Link] NASR Hiba et [Link] Mejda

2. Le Backlog produit

Le Backlog du produit est l’artefact le plus important de Scrum. En effet, c’est l’ensemble
des caractéristiques fonctionnelles qui compose le produit. Ces caractéristiques sont appelées
des histoires utilisateurs (user story). Chaque histoire utilisateur est caractérisée par une
priorité définie par le Product Owner.

Le Backlog produit de notre système est le suivant :

13
Chapitre II. Analyse et spécification des besoins

Tableau 3: Backlog produit

Release Sprint User Stories En tant que... Je veux … Priorité Difficulté

1 1 Détection de présence des personnes Visiteur Être détecté par le système 1 moyenne

-Valider le QR code
1 2 Validation de QR code et de port du masque Visiteur 2 difficile
-Valider le port du masque

-Se connecter
Administrateur
Authentification -Se déconnecter moyenne
Utilisateur
-Réinitialiser le mot de passe
1 3 3
-Ajouter un utilisateur

Gestion de la liste des utilisateurs Administrateur -Supprimer un utilisateur difficile

-Afficher la liste des utilisateurs

Administrateur Consulter le nombre des visiteurs en


1 4 Consultation de nombre des visiteurs en temps réel 4 facile
Utilisateur temps réel

14
Chapitre II. Analyse et spécification des besoins

Mettre à jour le nombre maximal des


Administrateur moyenne
visiteurs.
Mise à jour et consultation de nombre maximal des
visiteurs Administrateur Consulter le nombre maximal des
moyenne
Utilisateur visiteurs

Optimisation de la validation de QR code Valider le QR code moyenne

2 5 Visiteur 5
Optimisation de la validation de port du
Valider le port du masque difficile
masque

Consulter le nombre et le pourcentage


Consultation de nombre et de pourcentage des
des places disponibles dans facile
places disponibles. Administrateur
l’établissement
2 6 6
Utilisateur
Consulter le nombre des visiteurs par
Consultation de nombre journalier des visiteurs moyenne
heure

Consulter le nombre des visiteurs par


Consultation de nombre mensuel des visiteurs moyenne
Administrateur mois
2 7 7
Utilisateur Me notifier en cas ou le système atteint le
Se notifier moyenne
nombre maximal des visiteurs.

15
Chapitre II. Analyse et spécification des besoins

3. Planification des Releases

Dans notre cas, nous avons découpé notre projet en deux Releases.

Plan du Release 1

Sprint1 Sprint 2 Sprint 3


Sprint 4
De 6 Mars à 15 De 17 Mars à 13 De 14 Avril à 30
De 1 Mai à 7 Mai
Mars Avril Avril

Plan du Release 2

Sprint 5 Sprint 6 Sprint 7


De 8 Mai à 21 Mai De 22 Mai à 29 Mai De 30 Mai à 7 juin

Figure 8: Schéma des Releases

III. Environnement de travail


Dans cette partie, nous présenterons l'environnement matériel et logiciel relatif à la
réalisation de l'application.

1. Environnement matériel

1.1. Analyse du choix de la carte de développement

Lors du développement d’un projet d'intelligence artificielle (IA) [3] ou des solutions IOT,
il est absolument indispensable d'utiliser des cartes de développement possédant une

16
Chapitre II. Analyse et spécification des besoins

puissance de traitement suffisante pour répondre efficacement aux exigences de votre


système. Et plus le système est compliqué, plus la puissance de traitement requise est élevée.

Pour cela, on va faire le choix de la carte de développement qui doit être en harmonie avec
les besoins demandés. Donc, on va passer en revue les deux meilleurs ordinateurs mono carte
(SBC) du marché : NVIDIA Jetson Nano [4] et Raspberry Pi 4 Model B [5].

Figure 9: Carte NVIDIA Jetson Nano Figure 10: Carte Raspberry pi 4 Model
B

Le tableau ci-après, présente une comparaison entre les deux cartes de développement
citées précédemment :

Tableau 4: Comparaison entre les cartes de développent

Raspberry Pi 4 NVIDIA Jetson Nano

Quad-core ARM Cortex-A72 64- Quad-Core ARM Cortex-A57 64-


CPU
bit @ 1.5 GHz bit @ 1.42 GHz

NVIDIA Maxwell w/ 128 CUDA


GPU Broadcom VideoCore VI (32-bit)
cores @ 921 MHz

Disponible en plusieurs options : 1 Disponible en plusieurs options :


RAM
Go, 2 Go, 4 Go ou 8 Go de RAM 2 Go, 4 Go de RAM

Affichage 2x micro-HDMI (jusqu'à 4Kp60) HDMI 2.0 et eDP 1.4

17
Chapitre II. Analyse et spécification des besoins

pins 40-pin GPIO 40-pin GPIO

E/S 6 x SPI / 6 x I2C / GPIO 2x SPI / 2x I2C / 2x I2S /GPIO

Encodage
H264(1080p30) H.264/H.265 (4Kp30)
vidéo

Décodage
H.265(4Kp60), H.264(1080p60) H.264/H.265 (4Kp60, 2x 4Kp30)
vidéo

Systèmes
Raspberry Pi OS Linux4Tegra
d'exploitation

Stockage Micro-SD Micro-SD

Dimensions 85.6mm × 56.5mm 69,6 mm x 45 mm

Disponibilité Disponible Indisponible

Prix 174 TND – 450 TND 297 TND – 699 TND

Bien que nous n'ayons pas mentionné toutes les fonctionnalités de ces cartes IoT, leurs
principales caractéristiques sont similaires. Ce sont tous deux des ordinateurs mono carte
(single-board computers ou SBC) conçus avec un processeur ARM et beaucoup de
connectivités pour les périphériques.

En termes de GPU, le Jetson Nano gagne grâce à son GPU Maxwell à 128 cœurs à 921
MHz. Cela rend le Jetson Nano plus adapté aux applications d'IA et de ML, ce qui pourrait
être un avantage spécifique pour notre cas. La puissance GPU du Raspberry Pi 4 est plus
faible que le Jetson Nano.

Dans le cas du processeur (CPU), le Raspberry utilise le dernier et le meilleur processeur,


le Quad-core ARM cortex-A72 64 bits à 1,5 GHz. Ce processeur offre des performances plus
élevées et une vitesse d'horloge plus rapide, mais pour le Machine Learning et l'IA, cela ne
fournira pas suffisamment d'avantages en termes de performances.

Pour des applications comme la nôtre où une puissance GPU plus élevée est nécessaire et
un produit industriel de haute qualité est requis, NVIDIA Jetson Nano est la carte à utiliser

18
Chapitre II. Analyse et spécification des besoins

mais en raison de notre incapacité à fournir une carte NVIDIA Jetson Nano, on va utiliser un
modèle Raspberry pi 4 avec 2 Go de RAM

1.2. Choix des composants électroniques pour le prototypage

1.2.1. Raspberry Pi Camera [6]

Pour la détection du QR code et de masque on a qu’à utiliser une caméra compatible avec
la carte choisie. Le module Raspberry Pi Camera Rev 1.3 est un plug and play conçu pour
Raspberry Pi. Il se branche directement sur le connecteur CSI du Raspberry Pi.

Figure 11: Raspberry Pi Camera Rev 1.3


Le tableau suivant indique les caractéristiques techniques de la caméra :

Tableau 5: Caractéristiques techniques du camera pi

5 méga pixels
Résolution fixe
1/4 pouce
Taille CCD
72 degrés
Champ de vision
2592 × 1944 pixels
Résolution de capteur
25 × 24 × 9 mm
Dimension
3,3 V (DC)
Tension d’alimentation
59 TND
Prix

19
Chapitre II. Analyse et spécification des besoins

1.2.2. Capteur ultrason [7]

Chaque visiteur doit se présenter sur une ligne fixée à une distance bien déterminée devant
l’écran d’accueil.

Pour garantir le bon respect de cette distance, on a utilisé un capteur ultrason. Il sert à
détecter et à mesurer des distances entre divers types d’objets. C’est un capteur puissant et qui
reste fiable même s’il y a présence de poussières ou si l’objet est brillant, transparent.

Comparativement à d’autres types de capteurs (infrarouge ou laser par exemple), le capteur


ultrason est relativement peu cher et le cône d’émission est large, ce qui est avantageux pour
la détection d’un objet rapproché.

On a utilisé également un autre capteur ultrason à la sortie du bâtiment.

Figure 12: Capteur ultrason HC-SR04


Le tableau suivant indique les caractéristiques techniques du capteur ultrason (HC-SR04) :

Tableau 6: Caractéristiques techniques du capteur ultrason

Moins de 2 mA.
Courant statique
15 degrés.
Angle du capteur
2cm-450cm
Distance de détection
Niveau élevé 5V, niveau bas 0V
Signal de sortie
Impulsion TTL 10us
Signal de déclenchement d'entrée
Signal TTL de sortie TTL
Signal d'écho
5V (DC)
Tension d'alimentation
10 TND
Prix

20
Chapitre II. Analyse et spécification des besoins

1.2.3. Capteur de mouvement PIR [8]

Le capteur de mouvement PIR (Passive Infrared Sensor) est un senseur électronique qui
mesure la lumière infrarouge (IR) rayonnant à partir d’objets dans son champ de vision.

Figure 13: Capteur de mouvementPIR


Ce capteur a pour rôle de détecter la présence du visiteur au niveau du tourniquet après la
validation des étapes de contrôle.

Le tableau suivant indique les caractéristiques techniques du capteur PIR :

Tableau 7: Caractéristiques techniques du capteur PIR

32 x 24 x 27H mm
Dimensions
3,3V TTL
Signal de sortie
3-7m
Distance de détection
5 (DC)
Tension d'alimentation
7 TND
Prix

1.2.4. Moteur pas à pas unipolaire avec driver [9]

Pour contrôler le transit de la personne individuelle dans chaque partie du tourniquet on va


utiliser un moteur pas à pas pour commander le tourniquet. Au même moment le système
garantit l’unicité du passage

Les moteurs pas à pas combinent les avantages des moteurs à courant continu et des
servomoteurs. En effet, ses mouvements sont très précis, et il peut faire plus d'un tour. Un
driver ULN2003 doit être associé au moteur permettant ainsi d’appliquer les signaux
électriques nécessaires aux bobines du moteur par le biais d’un simple signal d’horloge généré
par la carte de développement.
21
Chapitre II. Analyse et spécification des besoins

Figure 14: Moteur pas à pas unipolaire avec driver


Le tableau suivant indique les caractéristiques techniques du moteur pas à pas :

Tableau 8: Caractéristiques techniques du moteur pas à pas

5 Vcc
Alimentation
21 ohms
Résistance

Intensité 25 mA

1/64
Réduction
64 (réduction de 4096 en sortie d'axe)
Nombre de pas par tour
Ø5 mm avec double méplat
Axe
12 mm
Longueur de l'axe
5V (DC)
Tension d'alimentation

Prix 10 ND

2. Environnement Logiciel

2.1 Outils de développement et modélisation

22
Chapitre II. Analyse et spécification des besoins

Tableau 9: Outils de développement utilisés

Logo Description

Raspberry Pi OS (Anciennement nommée Raspbian) [10] est un système d'exploitation libre et gratuit basé sur
Debian, optimisé pour fonctionner sur les différents Raspberry Pi.

Microsoft Visual Studio [11] est un éditeur de code multiplateforme, open source et gratuit, supportant une
dizaine de langages. C’est est un éditeur de code extensible développé par Microsoft pour Windows, Linux et
MacOs pour le développement des applications web et mobile.

Node-RED [12] est un outil de développement basé sur les flux pour la programmation visuelle développé
pour connecter un ensemble des périphériques matériels, des API et des services en ligne dans le cadre de
l'Internet des objets.

Thonny[13] est un environnement de développement intégré (IDE) dédié au langage de programmation


Python. On a utilisé cet environnement pour le développement des scripts python sur la carte Raspberry Pi

23
Chapitre II. Analyse et spécification des besoins

Cloud Firestore[14] est une base de données NoSQL flexible et évolutive offert par Firebase et Google Cloud.
Elle synchronise les données entre les applications clientes via des Listeners en temps réel et offre une prise en
charge hors ligne pour les mobiles et le Web.

Pour répondre à nos besoins et à nos exigences dont les plus importants : la réutilisabilité, la modularité et
l’extensibilité, nous avons choisi de modéliser avec l’outil de design « StarUML»[15], c’est un logiciel de
modélisation UML open source.

Adobe XD[16] (Adobe Experience Design) est un logiciel incontournable de la suite Adobe Créative Cloud.
Il a vocation à faciliter la conception de maquettes et des prototypes et aboutir à des interfaces digitales agréables
et efficaces. Dans notre cas, on à l’utilisé pour la conception de l’interface visiteur de notre projet.

Fritzing[17] est un logiciel open source destiné aux designers, artistes, chercheurs ou amateurs pour les aider à
créer des circuits électroniques.

24
Chapitre II. Analyse et spécification des besoins

2.2 Langages utilisés


Tableau 10: Langages utilisés

Logo Description

JavaScript [18] est un langage de programmation qui permet de


créer du contenu mis à jour de façon dynamique, de contrôler le
contenu multimédia, d'animer des images, et tout ce à quoi on peut
penser.

Python [19] est le langage de programmation open source le plus


employé par les informaticiens. C’est le meilleur choix de
développement IoT qui inclut des capacités d’application de données,
de science des données et d’analyse à la périphérie, grâce à son large
éventail de bibliothèques et d’outils.

« HyperText Markup Langage 5 » [20]est un langage de balises


utilisé pour structurer et donner du sens au contenu web,
indispensable à la mise en forme des pages Web

« Cascading Style Sheets » [21]est un langage de règles de style


utilisé pour mettre en forme le contenu HTML.

[Link][22] est une plateforme de développement JavaScript


intégrant un serveur http caractérisée comme étant une bibliothèque
de ce langage, elle permet la réalisation d’actions comme créer un
fichier ou bien ouvrir et fermer des connections réseau.

2.3 Bibliothèque et Framework

25
Chapitre II. Analyse et spécification des besoins

Tableau 11: Bibliothèque et Framework utilisés

Logo Description

[Link] [23] est une bibliothèque JavaScript utilisée pour construire des composants d'interface utilisateur
réutilisables. Il utilise le DOM virtuel qui est un objet JavaScript. Cela améliorera les performances des
applications, puisque le DOM virtuel JavaScript est plus rapide que le DOM normal.

React Router [24] est une extension de React qui permet de gérer les routes d’une application coté client. Il
permet de synchroniser (d’associer) des composants graphiques React à des Url.

Material UI [25] est un Framework React UI qui adhère aux concepts de Material design. Il est construit sur
le Framework React et comprend des composants qui adhèrent aux normes Material. C’est l'outil le plus
puissant et le plus efficace pour créer une application en ajoutant des conceptions et des animations et en
l'utilisant avec une innovation technique et scientifique.

Bootstrap [26] est le Framework HTML, CSS et JS le plus populaire pour le développement des sites Web
mobile et responsive.

Ws [27] est une bibliothèque [Link] WebSocket. C’est une implémentation client-serveur simple à utiliser,
extrêmement rapide et soigneusement testée.

26
Chapitre II. Analyse et spécification des besoins

OpenCV [28] est une bibliothèque d’exécutable qui facilite la reconnaissance d’images en mouvement. Elle
fournit une interface permettant à Python de capturer des flux vidéo, et également pour extraire les images afin
que nous puissions les traiter plus tard.

Flask [29] est un petit Framework web Python léger, qui fournit des outils et des fonctionnalités utiles qui
facilitent la création d’applications web en Python.

TensorFlow [30] est l'un des outils les plus utilisés en IA dans le domaine de Machine Learning. Il est open
source et développé par Google. TensorFlow fournit un ensemble de workflows pour développer et former des
modèles à l'aide de Python ou JavaScript.

PyTorch [31] est une technologie d'intelligence artificielle open source développée par Meta (ex-Facebook). Entrant
dans la catégorie de l'apprentissage profond ou Deep Learning, elle est basée sur la bibliothèque Torch, utilisée pour
des applications telles que le Computer Vision et le traitement du langage naturel.

IV. Architecture globale de système


La figure ci-dessous représente l’architecteur globale de système :

27
Chapitre II. Analyse et spécification des besoins

Figure 15:Architecteur globale de système

28
Chapitre II. Analyse et spécification des besoins

Conclusion
Dans ce chapitre, on a planifié notre travail, identifié les besoins fonctionnels et non
fonctionnels de notre application, les rôles des utilisateurs, par la suite on a présenté le
Backlog de notre système. Ainsi on a détaillé la phase de planification des sprints. Enfin on a
choisi l’architecture de notre projet ainsi que notre environnement de travail.

29
Chapitre III. Release 1
Chapitre III. Release 1

Introduction
Dans ce chapitre, nous allons détailler le travail réalisé durant le premier release. En effet,
chaque release, représente un ensemble d’itérations (sprint). Ce premier Release comprend
quatre sprints :

 Sprint 1 « Détection de présence des personnes »


 Sprint 2 « Validation de QR code et de port du masque »
 Sprint 3 « Authentification, gestion des utilisateurs »
 Sprint 4 «Gestion de flux de visiteurs».

Le développement de chaque sprint passe par les étapes d’analyse, de conception et de


réalisation.

I. Développement du Sprint 1 « Détection de présence des


personnes »
1. Sprint goal
L’objectif de ce sprint est de confirmer la présence d’une personne devant le système pour
démarrer la procédure de contrôle du protocole sanitaire.

2. Sprint backlog

Le tableau ci-dessous représente les user story de sprint 1 :

Tableau 12: Backlog du sprint 1

User stories Items

Vérifier la présence d’un objet à une distance entre 40cm et


60cm
En tant que visiteur, je veux
être détecté par le système
Vérifier la présence d’une personne bien positionnée devant
l’interface visiteur

3. Analyse

La figure ci-dessous représente le diagramme de cas d’utilisation de sprin1 :

31
Chapitre III. Release 1

Figure 16: Diagramme de cas d'utilisation de sprint 1


La description détaillée du cas d'utilisation « Être détecté » est donnée par le tableau
suivant :

Tableau 13:Description textuelle du cas d’utilisation de l’item « être détecté »

Titre Être détecté

Acteurs Visiteur, Système

Pré-condition Le visiteur s’arrête devant le système à une distance entre 40 cm et 60cm

Post-condition Visiteur détecté

Après l'arrêt du visiteur sur la ligne, le capteur ultrason informe le


système s'il détecte un obstacle à une distance comprise entre 40cm et
Description
60cm, D’où, la caméra prend une photo et l’analyse pour valider la
présence d'une personne.

4. Réalisation

La figure suivante représente le diagramme d’activités côté visiteur et côté système :

32
Chapitre III. Release 1

Figure 17: Diagramme d'activité du sprint 1


Le diagramme de définition du bloc est illustré dans la Figure suivante :

33
Chapitre III. Release 1

Figure 18: Diagramme de définition de bloc


4.1.Vérification de la distance entre l’objet et le système

Le capteur ultrason HC-SR04 est basé sur le principe de la vitesse du son. Tout d'abord, il
envoie une impulsion HIGH sur la broche TRIGGER du capteur, puis il envoie une série de 8
impulsions ultrasonores de 40KHz. Ces impulsions se propagent dans l'air jusqu'à toucher un
objet puis elles retournent dans l'autre sens vers le capteur, sous forme d'écho.

La distance entre l’objet détecté par le capteur et le système de contrôle sanitaire est
calculée de la façon suivante :

Distance (en centimètre) = (durée d’état haut(s)/2) * vitesse du son

Sachant que la vitesse du son est égale à 34300 cm/s.

Pour éviter d'endommager la carte Raspberry Pi, nous avons utilisé un pont diviseur de
tension constitué de deux résistances. Le diviseur de tension est utilisé pour réduire la tension
du signal d'ECHO de 5V à 3,3V. La figure suivante représente le câblage du capteur ultrason
avec la carte Raspberry.

34
Chapitre III. Release 1

Figure 19: Schéma de câblage du capteur ultrason avec la carte Raspberry Pi


[Link] de personne

Pour la détection des personnes nous utilisons MobileNet-SSD. C'est une combinaison de
l'algorithme de classification MobileNet et le Framework SSD (Single Shot multibox
Detector).

 MobileNet [32]

MobileNet est un réseau de neurones convolutionnel (Convolution Neural Network


ouCNN) spécialisé en Computer Vision pour les systèmes embarqués. Parmi leurs avantages
nous citerons :

o Extrêmement légers et petits (en termes de ligne de code et de poids des modèles)
o Rapides
o Facilement configurables pour améliorer la précision de la détection
o Dédiés à l’embarqué et aux smartphones, pour déporter les calculs

Comme beaucoup d’algorithmes de Deep Learning, MobileNet a été inventés par Google
et implémentés dans TensorFlow (bibliothèque de Machine Learning).

MobileNet passe par deux phases :

o Feature Learning : pour le but de faire sortir certaines caractéristiques de l’image.


o Classification : prédit la classe de l’image en entrée (personne, voiture, etc)

Ci-dessous une image explicative du processus :

35
Chapitre III. Release 1

Figure 20: Image explicative du processus de la prédiction du MobileNet


L’image passe dans un certain nombre de filtres, ce qui donne plein d’images. Elles sont
simplifiées, puis passent par une deuxième couche de filtres et resimplifiées. Ensuite, on les
met à plat puis on les envoie à la partie de classification qui nous indique qu’est-ce qu’il a
reçu (un chat, un chien, etc.).

 SSD [33]

SSD ou Single Shot Multibox Detector est un Framework permet, en scannant l’image,
d’identifier toutes les zones qui présentent un élément à classifier.

En combinant les deux algorithmes, on a SSD qui place des boîtes sur toute l’image puis
on a MobileNet qui les classifie, ce qui rend l’algorithme très performant et utile.

5. Test
Ci-dessous une figure du schéma de câblage complet de ce Sprint :

Figure 21: Schéma de câblage du sprint 1

36
Chapitre III. Release 1

Nous présentons dans les figures suivantes des captures d’écran du test sur Node Red de la
détection de personne.

Figure 22: Test de détection de personne 1

Figure 23: Test de détection de personne 2

37
Chapitre III. Release 1

II. Développement du Sprint 2 « Validation de QR code et


de port du masque »
1. Sprint goal
L’objectif de ce sprint est de réaliser la partie du scan du QR code et le contrôle du port du
masque lors de l’entrée à l’établissement.

2. Sprint backlog

Tableau 14: Backlog du sprint 2

User stories Items

En tant que visiteur, je veux me Développer une interface visiteur responsive

communiquer avec une interface IHM Connecter l’interface avec la base de données
(Cloud Firestore)
En tant que visiteur, je veux m’informer
Afficher le nombre des places disponibles
sur les places disponibles

En tant que visiteur, je dois valider mon


Valider le QR code
QR code.

En tant que visiteur, je dois valider le


Utiliser des modèles de Machine Learning pour
port du masque. effectuer la détection du masque

Avoir l’autorisation d’accès après la validation


En tant que visiteur, je veux entrer à du contrôle sanitaire
l’établissement. Envoyer et mettre à jour les données dans le
Cloud

3. Analyse

La figure ci-dessous représente le diagramme de cas d’utilisation de sprin2 :

38
Chapitre III. Release 1

Figure 24: Diagramme de cas d’utilisation de sprint 2


La description détaillée du cas d’utilisation « Entrer à l’établissement » est donnée par le
tableau suivant :

Tableau 15: Description textuelle du cas d’utilisation de l’item «Entrer à


l'établissement»

Cas d’utilisation Entrer à l’établissement

Acteurs Visiteur, système

Le visiteur a déjà été détecté par le système et il y a des places


Pré conditions
disponibles dans l'établissement

En complétant l'étape de détection de la présence du visiteur,


ce dernier doit suivre les étapes suivantes :

Description  Vérifier les places vacantes.


 Valider le QR code.
 Vérifier le port du masque
Enfin, il sera autorisé à entrer.

Post conditions de
Entrée autorisée
succès

39
Chapitre III. Release 1

4. Conception

Nous présentons ci-dessous le diagramme de séquence de ce sprint :

Figure 25: Diagramme de séquence de sprint 2

5. Réalisation et Test
Le diagramme d’activité est présenté dans la figure suivante :

40
Chapitre III. Release 1

Figure 26: Diagramme d'activité de sprint 2


Nous présentons ensuite le diagramme de définition du bloc globale du système.

41
Chapitre III. Release 1

Figure 27: Diagramme de définition du bloc globale


[Link] Visiteur

Une interface homme-machine (IHM)[34] est une interface qui permet à une personne
d’interagir avec un programme informatique ou un système. Pour construire une interface
visiteur, nous essayons 2 méthodes :

5.1.1. Interface avec Dashboard Node Red

Node-RED Dashboard est un module qui fournit un ensemble de nœuds dans Node-RED
pour créer rapidement un tableau de bord en temps réel. Il a un ensemble complet de
composants d'interface utilisateur pour créer des tableaux de bord de base adaptés à l'Internet
des objets (IoT) offrant des graphiques, des jauges, du texte de base ainsi que des curseurs et
des entrées.

Ci-dessous une interface créée en utilisant Dashboard Node Red :

42
Chapitre III. Release 1

Figure 28: Interface visiteur avec Dashboard Node Red


5.1.2. Interface avec HTML

HTML est le langage de balisage standard pour les pages Web, il fournit la structure de
base des sites, qui est améliorée et modifiée par d'autres technologies telles que CSS,
JavaScript et Bootstrap. Pour le transfert de données entre les nœuds du Node Red et
l’interface, nous utilisons un serveur Ws construit avec NodeJS.

Les étapes de création du serveur Ws sur Raspberry Pi :

 Créer un nouveau dossier pour notre serveur

Figure 29: Créer un nouveau dossier pour le serveur ws

 Installer la bibliothèque ws en tant que dépendance

Figure 30: Installation de la bibliothèque ws

43
Chapitre III. Release 1

 Créer un fichier JavaScript et écrire le code pour construire un serveur Web

Figure 31: Code basic du server ws

 Exécuter le serveur dans le terminal

Figure 32: Exécution du serveur ws


La figure suivante représente l’interface crée en HTML :

44
Chapitre III. Release 1

Figure 33: Interface visiteur en HTML


5.1.3. Test

Pour comparer entre les 2 méthodes nous présentons le tableau suivant :

Tableau 16: Tableau comparative entre les deux l’interface

Caractéristiques Dashboard HTML

Compatible avec différents écrans Non Oui

Ergonomique Oui Oui

Communication avec Node Red Direct Indirect

D'après le tableau précédent, nous avons choisi de développer l’interface visiteur avec HTML.

[Link] du QR code

5.2.1. Passe sanitaire [35]

Le code utilisé dans les passes sanitaires tunisiens est de type 2D–DOC qui est
globalement similaire à un QR code mais il est sécurisé à l'aide d'une signature numérique
fondée sur une cryptographie asymétrique. Ce code est conçu par l'Agence nationale des titres

45
Chapitre III. Release 1

sécurisés française (ANTS) en 2012 et utilisé par l'administration française pour lutter contre
la fraude documentaire.

Figure 34: Pass sanitaire tunisien


5.2.2. Format global d’un code 2D-Doc

Un code 2D-Doc est composé de trois zones (2 principales et une optionnelle) positionnées
dans cet ordre :

 La zone des données : se compose de deux sous-sections :


 Zone d’en-tête : de taille fixe qui fournit les informations nécessaires pour
chaque code 2D-Doc.
 Zone de message : Elle contient les données encodées. Son nombre de champs
se varie.
 Zone de signature : permet d’obtenir des informations sur l’auteur de ces données
et de garantir leur intégrité.
 Zone d’annexe : est une zone optionnelle qui a la même structure que la zone de
message. Et les données qu'elle contient ne sont pas protégées. Donc, elles ne
doivent pas être supposées fiables.

Figure 35: Format global d'un code 2D-Doc

46
Chapitre III. Release 1

2D-DOC nécessite une clé pour le décrypter, il est impossible de vérifier si le code est
valide ou non sans clé pour le décrypter. Nous avons donc créé un QR code personnalisé pour
le prototype.

5.2.3. Test

Nous montrons dans les figures suivantes l’étape de la validation du passe sanitaire

Figure 36: Test de validation du QR code 1

47
Chapitre III. Release 1

Figure 37: Test de validation du QR code 2


5.3.Détection du port du masque

Pour la détection du port du masque nous avons testé 2 méthodes avec 2 bibliothèques
différentes :

5.3.1. [Link] [36]

Dans la première méthode, nous avons utilisé un nœud déjà existant établi par un
développeur pour la détection du port du masque. Ce nœud importe la bibliothèque
[Link] pour [Link], charge un modèle Web [Link] et exécute l'inférence sur
le modèle.

Figure 38: Nœud de détection du port du masque

48
Chapitre III. Release 1

5.3.2. Tensorflow

Dans la deuxième méthode, nous avons décidé de construire un modèle de réseau neuronal
convolutif (CNN) très simple et basique en utilisant TensorFlow avec la bibliothèque Keras et
OpenCV pour détecter si le visiteur porte un masque.

Les images utilisées pour l’entraînement et le test du modèle ont été obtenues sur Internet.
Cet ensemble de données contient uniquement des images de visages. Il contient 3 674 photos
réparties en deux classes : 1 915 images avec masques et 1 759 images sans masques. 80%
des images de chaque classe sont utilisées pour l’entraînement et le reste des images est utilisé
à des fins de test.

Nous avons intégré le code Python dans le Node Red en utilisant le nœud « exec » pour
faire exécuter le code de la détection du masque sur NodeRed

Figure 39: Nœud exec


5.3.3. Test

Après faire 20 essais avec chaque bibliothèque en positions différents, nous présentons ci-
dessous un tableau comparatif en fonction du temps de réponse et précision entre les 2
modèles :

Tableau 17: Tableau comaratif entre l'utilisation du [Link] et Tensorflow

[Link] Tensorflow

Temps de réponse ± 9 secondes Plus de 20 secondes

Précision 55% 80%

 Pour notre système la précision est plus importante que le temps de réponse c’est
pourquoi nous avons choisi de continuer avec la deuxième méthode.

Une fois cette procédure est terminée, le visiteur franchit la porte. Un capteur PIR le
détecte et le moteur tourne. En même temps, le système envoi et mettre à jour les données
dans la base de données (Cloud Firestore).

49
Chapitre III. Release 1

Aussi lorsqu'un visiteur sort de l’établissement, un capteur ultrasons le détecte et met à jour
la valeur actuelle des visiteurs dans la base de données.

Ci-dessous une figure du schéma de câblage globale :

Figure 40: Schéma de câblage globale


Nous montrons dans les figures suivantes l’étape de détection du masque :

Figure 41: Test de détection du port du masque 1

50
Chapitre III. Release 1

Figure 42: Test de détection du port du masque 2

III. Développement du Sprint 3 «Authentification, Gestion


des utilisateurs»
1. Sprint goal
Ce sprint se décompose en deux items : « Authentification » et « Gestion des utilisateurs ».

2. Sprint backlog

Le tableau ci-dessous représente le Sprint Backlog contenant les user story et les items de
l’administrateur :

Tableau 18: Backlog de Sprint 3

User Stories Items

En tant qu’administrateur, je Ajouter et initialiser le SDK d'authentification


veux me connecter pour accéder
Développer la fenêtre connexion

51
Chapitre III. Release 1

à mon espace. Crée la fonction « logInWithEmailAndPassword () » pour la


connexion

Connecter la partie front (ReactJS) avec la base donnée (Cloud


Firebase)

En tant qu’administrateur, je
Crée la fonction « signOut(auth) » pour la déconnexion.
veux me déconnecter

En tant qu’administrateur, je Crée la fonction« sendPasswordReset() » pour la


veux réinitialiser le mot de passe réinitialisation du mot de passe

Développer l’interface d’ajout

Développer la fonction d’ajout des utilisateurs


En tant qu’administrateur, je
«registerWithEmailAndPassword2 ()»
veux gérer la liste des utilisateurs
Développer l’interface d’affichage de la liste des utilisateurs

Supprimer un utilisateur de la part de Cloud Firebase


En tant qu’utilisateur, je veux me
Crée la fonction « logInWithEmailAndPassword () » pour la
connecter pour accéder à mon
connexion des utilisateurs
compte.
En tant qu’utilisateur, je veux me
Crée la fonction « signOut(auth) » pour la déconnexion.
déconnecter

3. Analyse

La figure ci-dessous représente le diagramme de cas d’utilisation de sprint 3 :

52
Chapitre III. Release 1

Figure 43 : Diagramme de cas d’utilisation de sprint 3


[Link] cas d’utilisation de l’utilisateur

La description détaillée du cas d’utilisation « Se connecter » est donnée par le tableau


suivant :

Tableau 19: Description textuelle du cas d’utilisation « Se connecter »

Titre Se connecter

Acteur principal Utilisateur

Pré-condition L’utilisateur lance l’interface de connexion

L’utilisateur reçoit un email et mot de passe de la part de


Post-condition
l’administrateur et se connecte

Ce cas d’utilisation permettra à l’utilisateur de se connecter avec un


Résumé
email et mot de passe envoyés par l’administrateur

Scenario nominal 1. L’utilisateur saisit son email et son mot de passe

53
Chapitre III. Release 1

2. le système vérifie tout d’abord si les champs sont bien remplis


et valides.

3. Si les informations sont correctes

La connexion est réussie et l’application lui dirige vers son


tableau de bord.

E1 : Si l’utilisateur n’a pas tapé l’email et le mot de passe :

Enchainements  Le système affiche un message d’erreur


alternatifs E2 : si l’adresse ou le mot de passe n’est pas correcte

 Le système affiche un message d’erreur

La description détaillée du cas d’utilisation « Se déconnecter» est donnée par le tableau


suivant :

Tableau 20: Description textuelle du cas d’utilisation « Se déconnecter »

Titre Se déconnecter

Acteurs Utilisateur

Pré-condition L’utilisateur clique sur le bouton de déconnexion

Post-condition Déconnexion et redirection vers la fenêtre de connexion

Résumé Ce cas d’utilisation permettra à l’utilisateur de se déconnecter

3.2. Les cas d’utilisation de l’administrateur

La description détaillée du cas d’utilisation « Se connecter» des utilisateurs est donnée par
le tableau suivant :

Tableau 21: Description textuelle du cas d’utilisation « Se connecter »

Titre Se connecter

54
Chapitre III. Release 1

Acteur principal Administrateur

Pré-condition L’administrateur lance l’interface de connexion

Post-condition L’administrateur se connecte avec son propre email et mot de passe

Résumé Ce cas d’utilisation permettra l’administrateur de se connecter

1. L’administrateur saisit son email et son mot de passe

2. le système vérifie tout d’abord si les champs sont bien


remplis et valides.
Scenario nominal
3. Si les informations sont correctes :

L’application dirige l’administrateur vers son tableau de


bord.

E1 : Si l’administrateur n’a pas tapé l’email et le mot de


passe :
Enchainements
 Le système affiche un message d’erreur
alternatifs
E2 : si l’adresse ou le mot de passe n’est pas correcte

 Le système affiche un message d’erreur

La description détaillée du cas d’utilisation « Se déconnecter» est donnée par le tableau


suivant :

Tableau 22: Description textuelle du cas d’utilisation « Se déconnecter »

Titre Se déconnecter

Acteurs Administrateur

Pré-condition L’administrateur clique sur le bouton de déconnexion

Post-condition Déconnexion et redirection vers la fenêtre de connexion

Résumé Ce cas d’utilisation permettra l’administrateur de se déconnecter

55
Chapitre III. Release 1

La description détaillée du cas d’utilisation « Réinitialiser le mot de passe » est donnée par
le tableau suivant :

Tableau 23: Description textuelle du cas d’utilisation « Réinitialiser le mot de passe »

Titre Réinitialiser le mot de passe

Acteur
Administrateur
principal

Pré-condition L’administrateur lance l’interface de réinitialisation de mot de passe

Post-condition L’administrateur se connecte avec un nouveau mot de passe

Ce cas d’utilisation permettra l’administrateur de se connecter avec un


Résumé
nouveau mot de passe

1. L’administrateur saisit son email

2. Le système envoie un email contenant un lien de réinitialisation


de mot de passe.

3. L’administrateur vérifie l’email.


Scenario
4. L’administrateur clique sur le lien et saisie un nouveau mot de
nominal
passe

5. Le système lui informe de se connecter avec le nouveau mot de


passe

4. L’administrateur se connecte avec le nouveau mot de passe.

56
Chapitre III. Release 1

La description détaillée du cas d’utilisation « Afficher la liste des utilisateurs » est donnée
par le tableau suivant :

Tableau 24: Description textuelle du cas d’utilisation« Afficher la liste des utilisateurs »

Titre Afficher la liste des utilisateurs

Acteur principal Administrateur

Pré-condition L’administrateur s’authentifie et consulte l’application

Post-condition L’administrateur consulte la table de liste des utilisateurs

Résumé Ce cas d’utilisation permettra l’administrateur de consulter la liste des utilisateurs

La description détaillée du cas d’utilisation « Ajouter un utilisateur » est donnée par le


tableau suivant :

Tableau 25: Description textuelle de cas d’utilisation « Ajouter un utilisateur »

Titre Ajouter un utilisateur

Acteur principal Administrateur

Pré-condition L’administrateur s’authentifie et consulte l’application

Post-condition L’administrateur ajoute un utilisateur

Ce cas d’utilisation permettra l’administrateur d’ajouter un utilisateur afin de


Résumé
lui affecter son rôle

La description détaillée du cas d’utilisation « Supprimer un utilisateur » est donnée par le


tableau suivant :

Tableau 26: Description textuelle du cas d’utilisation « Supprimer un utilisateur »

Titre Supprimer un utilisateur

Acteur Administrateur

57
Chapitre III. Release 1

principal

Pré-condition L’administrateur consulte l’interface « FirebaseAuthentication »

Post-condition L’administrateur supprime un utilisateur de la liste

Résumé Ce cas d’utilisation permettra l’administrateur de supprimer un utilisateur

4. Conception

[Link] de séquences

4.1.1. Diagramme de séquence de l’utilisateur

La figure ci-contre présente le diagramme de séquence du cas d’utilisation «Se


connecter» :

Figure 44: Digramme de séquence « Se connecter »


La figure ci-dessous présente le diagramme de séquence de cas d’utilisation «Se
déconnecter» :

58
Chapitre III. Release 1

Figure 45: Digramme de séquence de « Se déconnecter »


4.1.2. Diagramme de séquence de l’administrateur

La figure ci-contre présente le diagramme de séquence du cas d’utilisation «Se


connecter» :

Figure 46: Digramme de séquence « Se connecter »

59
Chapitre III. Release 1

La figure ci-dessous présente le diagramme de séquence de cas d’utilisation « Se


déconnecter » :

Figure 47: Digramme de séquence de « Se déconnecter »


La figure ci-dessous présente le diagramme de séquence de cas d’utilisation« Réinitialiser
le mot de passe » :

Figure 48: Digramme de séquence de « Réinitialiser le mot de passe »

60
Chapitre III. Release 1

La figure ci-dessous présente le diagramme de séquence « Ajouter un utilisateur» qui


permet à l’administrateur d’ajouter des utilisateurs :

Figure 49: Diagramme de séquence « Ajouter un utilisateur »


La figure ci-dessous représente le diagramme de séquence « Supprimer un utilisateur» :

Figure 50: Diagramme de séquence « Supprimer un utilisateur »

61
Chapitre III. Release 1

[Link] de classe

La figure ci-dessous représente le diagramme de classe du sprint « Gestion de la liste des


utilisateurs » :

Figure 51: Diagramme de classe « Gestion de la liste des utilisateurs »

5. Réalisation
La figure ci dissoute représente l’interface d’authentification :

Figure 52: Interface « Authentification »

62
Chapitre III. Release 1

Les figures suivantes représentent les fenêtres d’ajout d’un utilisateur :

Figure 53: Fenêtre 1 « Ajouter un utilisateur »

Figure 54: Fenêtre 2 « Ajouter un utilisateur »

La figure suivante représente la fenêtre « Supprimer un utilisateur » :

63
Chapitre III. Release 1

Figure 55: Fenêtre « Supprimer un utilisateur »


La figure suivante représente le cas d’utilisation « Afficher la liste des utilisateurs » :

Figure 56: Fenêtre « La liste des utilisateurs »


Les figures ci-contre représentent les fenêtres de stockage des utilisateurs ajoutés sur
Firebase Authentication et sur Cloud Firestore :

64
Chapitre III. Release 1

Figure 57: Fenêtre « La liste des utilisateurs sur Firebase Authentication »

Figure 58: Figure 58: Base de données « La liste des utilisateurs sur Cloud Firestore »

IV. Développement du Sprint 4 «Gestion de flux de


visiteurs»
1. Sprint goal

Dans le but d’organiser l’espace de l’administrateur et celui des utilisateurs, ce sprint


permet de consulter le nombre des visiteurs en temps réel et mettre à jour le nombre maximal
des visiteurs.

65
Chapitre III. Release 1

2. Sprint backlog

Le tableau suivant représente les user stories de ce sprint :

Tableau 27: Tableau des user stories du sprint 4

User Stories Type

En tant qu’utilisateur ou administrateur, je veux


User story
consulter le nombre des visiteurs en temps réel.

En tant qu’administrateur, je veux mettre à jour le


User story
nombre maximal des visiteurs.

3. Analyse

La figure représente le diagramme de cas d’utilisation de « Consulter le nombre des


visiteurs en temps réel » :

Figure 59: Diagramme de cas d’utilisation « Consulter le nombre des visiteurs en temps
réel »
La description Textuelle du cas d’utilisation «Consulter le nombre des visiteurs en temps
réel» est donnée par le tableau suivant :

66
Chapitre III. Release 1

Tableau 28: Description textuelle « Consulter le nombre des visiteurs en temps réel »

Titre Consulter le nombre des visiteurs en temps réel

Acteur principal Utilisateur, administrateur

L’utilisateur s’authentifie et consulte l’application


Pré-condition
L’administrateur s’authentifie et consulte l’application

L’utilisateur consulte le nombre des visiteurs en temps réels


Post-condition
L’administrateur consulte le nombre des visiteurs en temps réels

Ce cas d’utilisation permettra à l’utilisateur et l’administrateur de consulter


Résumé
le nombre des visiteurs en temps réel

La figure représente le diagramme de cas d’utilisation de « Mettre à jour et consulter le


nombre maximal des visiteurs » :

Figure 60: Diagramme de cas d’utilisation « Mettre à jour le nombre maximal des
visiteurs »
La description détaillée du cas d’utilisation «Mettre à jour le nombre maximal des
visiteurs» est donnée par le tableau suivant :

67
Chapitre III. Release 1

Tableau 29: Description textuelle du cas d’utilisation «Mettre à jourle nombre maximal
des visiteurs»

Titre Mettre à jour le nombre maximal des visiteurs

Acteur principal Administrateur

Pré-condition L’administrateur s’authentifie pour accéder à l’application

Post-condition L’administrateur met à jour le nombre maximal des visiteurs

Ce cas d’utilisation permet à l’administrateur de mettre à jour le nombre


Résumé
maximal des visiteurs

La description détaillée du cas d’utilisation « Consulter le nombre maximal des visiteurs »


est donnée par le tableau suivant :

Tableau 30: Description textuelle du cas d’utilisation «Consulter le nombre maximal des
visiteurs»

Titre Consulter le nombre maximal des visiteurs

Acteur principal Administrateur, utilisateur

L’utilisateur s’authentifie pour accéder à l’application


Pré-condition
L’utilisateur s’authentifie pour accéder à l’application

Post-condition L’administrateur consulte le nombre maximal des visiteurs.

Ce cas d’utilisation permet à l’utilisateur et l’administrateur de consulter le


Résumé
nombre maximal des visiteurs

4. Conception

La figure ci-dessous présente le diagramme de séquence « Mettre à jour et consulter le


nombre maximal des visiteurs » qui permet à l’administrateur de paramétrer ou mettre à jour
le nombre maximal des visiteurs :

68
Chapitre III. Release 1

Figure 61: Diagramme de séquence « Mettre à jour le nombre maximal des visiteurs »

5. Réalisation et test
La figure ci-contre représente la table de stockage de nombre des visiteurs présents au sein
de l’établissement en temps réel :

Figure 62: Base de données« Stockage de nombre des visiteurs entrés et sorties »

La figure ci-contre représente l’interface qui permet à l’administrateur de mettre à jour le


nombre maximal des visiteurs :

69
Chapitre III. Release 1

Figure 63: Interface « Mettre à jour le nombre maximal des visiteurs »


La figure ci-contre représente la table de stockage de nombre maximal des visiteurs :

Figure 64: Table « Stockage de nombre maximal des visiteurs »


La figure ci-contre représente l’interface qui permet à l’utilisateur et à l’administrateur de
consulter le nombre des visiteurs (entrés et sorties) en temps réel :

Figure 65: Interface «Consulter le nombre des visiteurs en temps réel»


La figure ci-contre représente l’interface qui permet à l’utilisateur et à l’administrateur de
consulter le nombre maximal des visiteurs :

70
Chapitre III. Release 1

Figure 66: Interface «Consulter le nombre maximal des visiteurs»

D’où l’espace de l’administrateur et celui des utilisateurs sont montrés dans les figures
suivantes :

Figure 67: Interface « Espace de l’administrateur »

71
Chapitre III. Release 1

Figure 68: Interface « Espace des utilisateurs »

Conclusion
Dans ce chapitre, nous avons réussi à présenter le release 1, en décrivant en détail les cas
d’utilisation en recensant de manière textuelle toutes les interactions entre les acteurs et le
système. Nous avons complété cette description textuelle par la conception et la réalisation du
module des sprints 1, 2,3 et 4.

Dans le chapitre qui suit, nous allons produire une nouvelle release couvrant les
fonctionnalités suivantes : Optimisation de la validation de QR code et de port du masque,
Consultation de nombre journalier et du pourcentage des places disponibles, et consultation
de nombre mensuel des visiteurs, Se notifier.

72
Chapitre IV. Release 2
Chapitre IV. Release 2

Introduction
Dans ce chapitre, nous allons détailler le travail réalisé durant la deuxième release. En
effet. Cette Release comprend trois sprints :

 Sprint 5 «Optimisation de la validation de QR code et de port du masque»


 Sprint 6 «Consultation de nombre journalier et du pourcentage des places
disponibles»
 Sprint 7 «Consultation de nombre mensuel des visiteurs, Se notifier».

Le développement de chaque sprint encore passe par les étapes d’analyse, de conception et
de réalisation.

I. Développement du Sprint 5 « Optimisation du Sprint 2 »


1. Sprint goal
L’objectif de ce sprint est d’améliorer la solution obtenue dans le sprint 2.

2. Critiques de la solution Software du Sprint 2

Lors de la réalisation du sprint 2, nous n'étions pas satisfaits par le résultat obtenu, donc
nous avons cherché des solutions pour améliorer le «User Experience».

Les inconvénients :

 Le système est très lent


 La validation du QR code et port du masque se fait par prise de photo se qui
augmente le temps de réponse

Pour cela nous proposons les solutions suivantes :

 Remplacer Tensorflow par Pytorch


 Remplacement de la prise de photo par un vidéo streaming

3. Réalisation et test

Le diagramme d’activité est présenté dans la figure suivante

74
Chapitre IV. Release 2

Figure 69: Diagramme d’activité de solution software2

75
Chapitre IV. Release 2

 PyTorch

Pour rendre notre système plus qualifié, python sera utilisé avec le framework PyTorch.
PyTorch est un cadre optimisé d'apprentissage automatique basé sur des tenseurs qui a tout le
nécessaire pour à la fois créer des CNN à partir de zéro et utiliser des modèles de torchvision
prédéfinis d'architectures de classification d'images populaires. PyTorch facilite également
l'exportation de modèles formés dans différents formats, ce qui permet un déploiement plus
facile.

 Vidéo Streaming

Dans la solution présentée dans le Sprint 2, nous avons validé le QR code et le port du
masque séparément et en analysant la capture photo et non par une vidéo ce qui la rend
mauvaise d'un point de vue utilisateur et lente à la fois car il faut attendre 2 secondes entre
chaque prise de photo.

Nous avons donc combiné les scripts de validation de code QR et de port de masque et
remplacé la capture d'image par un flux vidéo utilisant OpenCv et Flask pour streamer le
vidéo en temps réel dans l'interface visiteur.

Test

Nous présentons ci-dessous un tableau comparatif en fonction du temps de réponse et


précision entre la solution utilisée dans le Sprint 2 et la solution expliquer ci-dessus :

Tableau 31: Tableau comaratif entre l'utilisation du [Link] et Tensorflow

Tensorflow PyTorch

Temps de
plus de 20 secondes ± 6 secondes
réponse

Précision 80% 85%

 Nous remarquons que cette dernière solution est la meilleure parmi les solutions
précédentes

76
Chapitre IV. Release 2

II. Développement du Sprint 6 «Consultation de nombre


journalier et du pourcentage des places disponibles»
1. Sprint goal
Ce sprint se décompose en trois items :

 Consultation de nombre et du pourcentage des places disponibles


 Consultation de nombre journalier des visiteurs

2. Sprint back log

Le tableau représente les user stories de ce sprint :

Tableau 32: User story de sprint 6

User Stories Type

- En tant qu’utilisateur, je veux consulter le nombre


journalier des visiteurs
- En tant qu’administrateur, je veux consulter le
nombre journalier des visiteurs
User story
- En tant qu’utilisateur, je veux consulter le nombre et
le pourcentage des places disponibles
- En tant qu’administrateur, je veux consulter le
nombre et le pourcentage des places disponibles

3. Analyse

La figure représente le diagramme de cas d’utilisation de « Consulter le nombre journalier


des visiteurs » :

77
Chapitre IV. Release 2

Figure 70: Diagramme de cas d’utilisation « Consulter le nombre journalier des


visiteurs »
Description Textuelle

La description détaillée du cas d’utilisation « Consulter le nombre journalier des visiteurs »


est donnée par le tableau suivant :

Tableau 33: Description textuelle « Consulter le nombre journalier des visiteurs »

Titre Consulter le nombre journalier des visiteurs

Acteur principal Utilisateur, administrateur

L’utilisateur s’authentifie et consulte l’application


Pré-condition
L’administrateur s’authentifie et consulte l’application

L’utilisateur consulte le nombre journalier des visiteurs


Post-condition
L’administrateur consulte le nombre journalier des visiteurs

Ce cas d’utilisation permettra à l’utilisateur et l’administrateur de consulter le


Résumé
nombre des visiteurs par heure

La figure suivante représente le diagramme de cas d’utilisation de « Consulter le nombre et


le pourcentage des places disponibles » :

78
Chapitre IV. Release 2

Figure 71: Diagramme de cas d’utilisation «Consulter le nombre et le pourcentage des


places disponibles»
La description détaillée du cas d’utilisation « Consulter le nombre et le pourcentage des
places disponibles » est donnée par le tableau suivant :

Tableau 34: Description textuelle du cas d’utilisation « Consulter le nombre et le


pourcentage des places disponibles »

Titre Consulter le nombre et le pourcentage des places disponibles

Acteur principal Administrateur, utilisateur

L’utilisateur s’authentifie pour accéder à l’application


Pré-condition
L’administrateur s’authentifie pour accéder à l’application

L’utilisateur consulte le nombre et le pourcentage des places disponibles


Post-condition
L’administrateur consulte le nombre et le pourcentage des places disponibles

Ce cas d’utilisation permettra à l’utilisateur et l’administrateur de consulter le


Résumé
nombre et le pourcentage des places disponibles dans l’établissement

4. Réalisation et Test

Dans cette partie, le système envoie la date d’entrée des visiteurs au Cloud Firestore.

79
Chapitre IV. Release 2

Figure 72: Base de données « Stockage de nombre des visiteurs entrés »


La figure ci-contre représente l’interface qui permet à l’utilisateur et à l’administrateur de
consulter le nombre des visiteurs par heure :

Figure 73: Interface « Consulter le nombre des visiteurs par heure »


La figure ci-contre représente l’interface qui permet à l’utilisateur et à l’administrateur de
consulter le nombre des places disponibles dans l’établissement :

Figure 74: Interface « Consulter le nombre des places disponibles»


La figure ci-contre représente l’interface qui permet à l’utilisateur et à l’administrateur de
consulter le pourcentage des places disponibles dans l’établissement :

80
Chapitre IV. Release 2

Figure 75: Interface « Consulter le pourcentage des places disponibles»


D’où l’espace de l’administrateur et celui des utilisateurs sont montrés dans les figures
suivantes :

Figure 76: Interface 2 « Espace de l’administrateur »

81
Chapitre IV. Release 2

Figure 77: Interface 2 « Espace des utilisateurs »

III. Développement du Sprint 7 «Consultation de nombre


mensuel des visiteurs, Se notifier»
1. Sprint goal

Ce sprint se décompose en deux items qui sont « Consultation de nombre mensuel des
visiteurs » et « Se notifier »

2. Sprint back log

Le tableau représente les user stories de ce sprint :

Tableau 35: User story de sprint 7

User Stories Type

- En tant qu’utilisateur, je veux consulter


le nombre mensuel des visiteurs
- En tant qu’administrateur, je veux User story
consulter le nombre mensuel des
visiteurs

82
Chapitre IV. Release 2

- En tant qu’utilisateur, je veux me


notifier
- En tant qu’administrateur, je veux me
notifier

3. Analyse

La figure représente le diagramme de cas d’utilisation de « Consulter le nombre mensuel


des visiteurs » :

Figure 78: Diagramme de cas d’utilisation «Consulter le nombre mensuel des visiteurs »
La description détaillée du cas d’utilisation « Consulter le nombre mensuel des visiteurs »
est donnée par le tableau suivant :

Tableau 36: Description textuelle « Consulter le nombre mensuel des visiteurs »

Titre Consulter le nombre mensuel des visiteurs

Acteur principal Utilisateur, administrateur

Pré-condition L’utilisateur s’authentifie pour accéder à l’application

L’administrateur s’authentifie pour accéder à l’application

Post-condition L’utilisateur consulte le nombre mensuel des visiteurs

L’administrateur consulte le nombre mensuel des visiteurs

83
Chapitre IV. Release 2

Résumé Ce cas d’utilisation permettra à l’utilisateur et l’administrateur de


consulter le nombre des visiteurs par mois

La figure représente le diagramme de cas d’utilisation de « Se notifier »

Figure 79: Diagramme de cas d’utilisation « Se notifier »


La description textuelle détaillée du cas d’utilisation « Se notifier » est donnée par le
tableau suivant :

Tableau 37: Description textuelle du cas d’utilisation « Se notifier »

Titre Se notifier

Acteur principal Administrateur

L’utilisateur s’authentifie pour accéder à l’application


Pré-condition
L’administrateur s’authentifie pour accéder à l’application

Le système notifie l’utilisateur et l’administrateur en cas où il atteint le nombre


Post-condition
maximal des visiteurs.

Ce cas d’utilisation permettra à l’utilisateur et l’administrateur de se notifier en


Résumé
cas où le système atteint le nombre maximal des visiteurs

84
Chapitre IV. Release 2

4. Réalisation et Test

La figure ci-contre représente l’interface qui permet à l’utilisateur et à l’administrateur de


consulter le nombre des visiteurs par mois :

Figure 80: Interface « Consulter le nombre des visiteurs par mois »


Les figures ci-contre représentent l’interface qui permet à l’utilisateur et à l’administrateur
de se notifier en cas le système atteint le nombre maximal.

 Si le nombre actuel <Nombre paramétré ((Le nombre paramétré = nombre maximal -


Valeur souhaité par l’administrateur), dans notre cas le nombre paramétré =Nombre
maximal -20)

Figure 81: Interface 1 « Se notifier »

 Si le nombre actuel> = Nombre paramétré

85
Chapitre IV. Release 2

Figure 82: Interface 2 « Se notifier »


Et voilà l’espace final de l’administrateur et celui des utilisateurs sont montrés dans les
figures suivantes :

Figure 83: Interface finale « Espace de l’administrateur »

86
Chapitre IV. Release 2

Figure 84: Interface finale « Espace des utilisateurs »

Conclusion
A la fin de ce chapitre, nous avons réussi à produire un incrément répondant aux besoins
du client avec une amélioration. Nous clôturons ce rapport par une conclusion général.

87
Conclusion Générale

Conclusion générale
Durant la période du projet de fin d’étude, nous avons réussi à réaliser un système de
contrôle sanitaire basé sur l’intelligence artificielle, permettant à travers une interface visiteur
ergonomique le contrôle du port du masque développé par un algorithme basé sur le Deep
Learning et la création ainsi que le contrôle des QR code personnalisés. Pour gérer le flux des
visiteurs au bâtiment nous avons développé une application web avec le bibliothèque ReactJs.

Ce travail nous a permis d’apprendre avec précision, les différentes étapes de la conception
et la réalisation de notre projet en employant la méthodologie SCRUM.

Le développement de ce projet nous a permis également d’enrichir nos connaissances dans


les différents langages et outils auxquels nous avons eu recours, à savoir Python, Firebase,
ReactJs, Deep Learning etc. En ce qui concerne l’aspect humain, ce travail d’équipe nous a
donné un aperçu sur la vie professionnelle, à mieux nous organiser dans notre travail, afin
d’accomplir les tâches qui nous sont confiées dans les meilleures conditions et dans les plus
brefs délais.

Des perspectives d’amélioration de notre projet restent toutefois indispensables. Bien que
les principaux objectifs de notre projet aient été atteints, le projet que nous avons développé
pourrait être modulable et enrichi par d’autres fonctionnalités selon des nouveaux besoins
demandés par le client.

Nous proposons par exemple de :

 Utiliser comme backend le MongoDb au lieu de Firebase


 Amélioration au niveau du modèle de détection de port du masque, par
l’augmentation du nombre des Datasets utilisés.

88
Nétographie

Nétographie

[1] [Link]

[2] [Link]

[3] [Link]

[4] [Link]

[5] [Link]

[6] [Link]

[7] [Link]

[8][Link]
.pdf

[9] [Link]

[10][Link]
iennement%20nomm%C3%A9,sur%20les%20diff%C3%A9rents%20Raspberry%20Pi.

[11][Link]
20(VSC%20par,l'IDE%20propri%C3%A9taire%20de%20Microsoft.

[12] [Link]
outil-de-developpement-base-sur-les-flux-porte-la-version-minimale-de-Node-js-a-la-version-
12-il-ajoute-un-bouton-d-injection-rapide-du-noeud-Inject/

[13] [Link]

[14] [Link]

[15] [Link]

[16] [Link]
prototypage/#:~:text=Adobe%20XD%20(Adobe%20Experience%20Design,interfaces%20dig
itales%20agr%C3%A9ables%20et%20efficaces.

[17] [Link]

89
Nétographie

[18][Link]
:text=JavaScript%20est%20un%20langage%20de%20programmation%20qui%20permet%20
de%20cr%C3%A9er,avec%20quelques%20lignes%20de%20JavaScript.

[19] [Link]
definition-et-utilisation-de-ce-langage-
informatique/#:~:text=Qu’est%2Dce%20le%20langage,domaine%20du%20d%C3%A9velop
pement%20de%20logiciels.

[20] [Link]
hypertext-markup-langage5-definition-traduction/

[21] [Link]
cascading-style-sheets-definition-
traduction/#:~:text=Le%20CSS%20pour%20Cascading%20Style,via%20des%20balises%2C
%20notamment%20HTML.

[22] [Link]

[23][Link]
vaScript,construire%20des%20interfaces%20utilisateur%20composables.

[24][Link]
%20une%20extension,navigateur%20%3A%20l'API%20history.

[25] [Link]
choisir/

[26] [Link]
tutoriels-astuces-pratiques/

[27] [Link]

[28] [Link]

[29] [Link]
using-flask-in-python-3-fr

[30] [Link]
tensorflow-tout-savoir-sur-la-plateforme-de-deep-learning-de-google/

[31] [Link]
pytorch-tout-savoir-sur-la-bibliotheque-de-deep-learning-de-facebook/

90
Nétographie

[32] [Link]

[33] [Link]

[34] [Link]
ihm#:~:text=Une%20Interface%20Homme%2DMachine%20(IHM,d’interagir%20avec%20u
n%20appareil.

[35] [Link]

[36] [Link]
using-tensorflowjs/?cm_mmc=OSocial_Blog-_-Developer_IBM+Developer-_-WW_WW-_-
ibmdev-OInfluencer-YouTube-KA-node-red-
tensorflow&cm_mmca1=000037FD&cm_mmca2=10010797

91
Résumé
L’objectif principal de ce projet est d’élaborer un système intelligent de gestion des personnes
respectant le protocole sanitaire (port de masque, scan QR code etc.) à l’entrée d’un
établissement, qui est composé de deux parties :

La première partie représente les étapes de fonctionnement de système réalisée avec une carte
Raspberry pi et une application web qui comporte une partie Frontend développée avec
ReactJS et Back-end développée avec Cloud Firebase.

La deuxième partie représente une amélioration au niveau de système (Validation de QR code


et de port du masque) et l’application (Enrichissement avec d’autres fonctionnalités).

Mots clés: ReactJS, Cloud Firebase, Raspberry pi, protocole sanitaire.

Abstract
The main objective of this project is to develop an intelligent people management system
respecting the health protocol (wearing a mask, scanning QR code etc.) at the entrance of an
establishment, which is composed of two parts: The first part represents the system operating
steps carried out with a Raspberry pi card and a web application which includes a Frontend
part developed with ReactJS and Back-end developed with Cloud Firebase. The second part
represents an improvement at the system level (Validation of QR code and mask wearing) and
the application (Enrichment with other functionalities).

Keywords: ReactJS, Cloud Firebase, Raspberry pi, health protocol.

‫ملخص‬
،‫انهذف انشئُسٍ يٍ هزا انًششوع هى تطىَش َظاو ركٍ إلداسة األشخاص َحتشو انبشوتىكىل انصحٍ (استذاء انقُاع‬
:ٍَ‫ وانزٌ َتكىٌ يٍ جزأ‬،‫ ويا إنً رنك) عُذ يذخم انًُشأة‬،‫ويسح سيز االستجابت انسشَعت‬

‫ وتطبُق‬Raspberry pi ‫ وخطىاث تشغُم انُظاو انتٍ َتى إجشاؤها باستخذاو بطاقت‬،‫ ًَثم انجزء األول واجهت انزائش‬-
Cloud Firebase ‫ تى تطىَشِ باستخذاو‬Back-end ‫و‬ReactJS ‫ تى تطىَشِ باستخذاو‬Frontend ٍ‫وَب َتضًٍ جز ًءا ي‬

‫ ًَثم انجزء انثاٍَ تحسًُا عهً يستىي انُظاو (سيز االستجابت انسشَعت وانتحقق يٍ صحت األقُعت) وانتطبُق (انتعزَز‬-
.)‫بًُزاث أخشي‬

ReactJS, Cloud Firebase, Raspberry pi, protocol sanitaire :‫انكهًاث انًفاتُح‬

Vous aimerez peut-être aussi