République Tunisienne
Ministére de l'Enseignement Supérieur
et de la Recherche
Scientifique
Université de Tuni El
Manar
Institut Supérieur
d'Informatique d'El Manar
Introduction générale
1
2
Chapitre I : Contexte
général et Eude Préalable
3
Introduction
Dans ce premier chapitre, nous commencerons par présenter la
société au sein de laquelle ce projet a été entrepris.
Ensuite, nous situerons le projet dans ce contexte global. Enfin, nous
conclurons ce chapitre en exposant la problématique, en présentant le
cahier des charges du projet et en expliquant notre choix de méthodologie
de conception.
1. Présentation AFT
Au cours de notre programme académique visant à décrocher notre
Diplôme en développement logiciel et nouvelles technologies, nous avons
accompli un stage d'une période de 4 mois effectué au sein de l'entreprise
AFT.
1.1. Organisme d’accueil
Fondée en 2019, AFT se distingue en qualité de société de conseil et
d'ingénierie de l’informatique, créé par des gestionnaires passionnés par
les technologies de l'information, forts Avec une expérience de plus de
quinze ans dans l'industrie. Depuis sa création, AFT s'est consacrée à
fournir des services d'accompagnement et de gestion de projet pour la
mise en place de solutions informatiques au sein d'entreprises, couvrant
des domaines tels que les ERP, les solutions satellites de gestion et la
gestion d'entreprise. L'expertise métier d'AFT vise à optimiser et améliorer
les systèmes d'information de gestion au sein des entreprises, tout en
offrant des conseils en organisation, en gestion et en pilotage d'entreprise.
De même, la société Ashbot Futur Technologies se spécialise dans
L'intégration de technologies innovantes, en étroite collaboration avec des
entreprises de conseil et des fabricants de robots, elle excelle dans
l'intégration de technologies innovantes, avec une expertise avancée dans
le domaine du développement d'applications mobiles, de l'ingénierie
logicielle et de la création d'applications web (en particulier en PHP, J2EE
4
et Angular). Ashbot Futur Technologies propose également des formations
variées, allant des systèmes embarqués au développement web, en
passant par l'utilisation de Git Hub, pour répondre aux besoins en
formation et en cours.
Figure 1:logo AFT
1.2. Organigramme de l’organisme
Les activités d’AFT s’articulent autour de 3 axes :
Prestations de développement web et mobile
Prestations système embarquent et IOT
Robotique et électronique
Les organigrammes sont des représentations graphiques qui décrivent
la configuration interne d'une organisation ou d'une entreprise. Ils sont
utilisés pour simplifier des structures complexes.
Cette figure présente l’Organigramme de l’entreprise.
5
Figure 2:organigramme AFT
1.3. Les activités d’AFT :
Robotique :
ASHBOT Il s'agit du tout premier club de robotique établi à la Cité de
jardin d'El Menzah. Ce club est spécialement conçu pour Les étudiants,
dont l'âge varie de 8 à 17 ans, sont rassemblés en groupes de dix. Les
inscrit sauront l'opportunité d'explorer une technologie académique
innovante qui vise à intégrer divers domaines académiques, notamment
l'informatique, à travers des projets de robotique pédagogiques.
Fabrication des robots :
- AFT es en train de fabriquer un robot sous-marin
- Fabrication des smart robots
- Fabrication des petits robots industriels
- Fabrication des mélangeurs des produits cosmétiques
Accompagnement des développements de startup
6
AFT est un fournisseur de services des nouvelles technologiques, AFT
soutenir les startups dans les domaines des robotique, développement, et
des nouvelles technologies en fournissant des formations, des espaces de
coworking, formation, aider à la réalisation des startups
1.4. Services :
Rédaction des brevets.
Formation dans les secteurs de la création web et mobile, Dans le
domaine de l'Internet des Objets (IoT) et de ses applications mécaniques.
Mise en place des systèmes de sécurité.
Maintenance des cartes électroniques.
Conception mécanique.
Conception des cartes électroniques.
Réalisation des projets IOT.
Développement des applications web et mobiles.
Domotique.
2. Présentation du projet
Dans cette section, nous décrirons Dans le cadre de notre projet, nous
définirons le contexte, formulons la problématique, et nous proposons une
solution, puis nous passerons aux méthodes de conception.
2.1. Cadre du projet
Ce stage fait partie intégrante de notre projet de fin d'études, réalisé
en vue de l'obtention d'une Licence Appliquée en Technologies de
l'Information et de la Communication, avec une spécialisation en Réseaux
IoT, délivrée par ISIE ARIANA. Nous avons réalisé ce stage au sein de la
société AFT, et le sujet de notre travail est intitulé "Conception et
Réalisation de l'application de transport public de Tunis".
2.2. Etude de l'existant
L'analyse de la situation actuelle revêt une importance capitale
afind’une compréhension approfondie du système en place. Son objectif
7
est d'examiner les points faibles du système actuel et de proposer la
solution appropriée, tout en fixant les objectifs à accomplir dans le cadre
du projet de fin d'études.
Lorsqu'il est nécessaire d'entreprendre une analyse de l'état actuel,
deux scénarios se présentent :
- Soit le produit est déjà en existence, auquel cas il convient de
perfectionner.
- Ou bien si le produit n'est pas déjà en existence encore, ce qui
implique sa création à partir de zéro.
Dans notre approche, nous adopterons Une approche hybride,
fusionnant ces deux approches. Dans la première section de notre
enquête, nous mettrons l'accent sur l'examen de la situation actuelle, en
identifiant les points critiques et en proposant des solutions.
Dans cette partie nous allons décrire quelques produits existent sur
le marché les suivants :
Tableau 1:comparaison entre les applications sumilairesexistent
sur le marché
Nom et Les Avantages Les Inconvénients
photo
- Interface conviviale : - Couverture géographique
L'application Transit propose une limitée :
interface utilisateur intuitive et Bien que Transit couvre des
conviviale, ce qui la rend nombreuses villes à travers le
L'applicatio Convivial pour les utilisateurs de monde, sa couverture
n Transit : tous niveaux d'expérience. géographique peut être limitée
- Elle offre une expérience fluide dans certaines régions moins
et agréable lors de la recherche desservies. Par conséquent,
d'itinéraires ou de la consultation tous les utilisateurs ne pourront
des horaires des transports en peut-être pas bénéficier
8
[1] commun. destoutes les fonctionnalités de
- Itinéraires en temps réel : l'application dans leur région.
Transit utilise des données en
- Fiabilité des données en
temps réel pour fournir des temps réel :
itinéraires précis et actualisés
Bien que Transit s'appuie sur
aux utilisateurs. Cela permet aux
des données en temps réel, la
utilisateurs de connaître les
fiabilité de ces données dépend
retards, les annulations ou les
de la disponibilité et de la
perturbations éventuelles dans
précision Les données fournies
les horaires des transports en
par les prestataires de services
commun, ce qui facilite la
de transport.
planification des déplacements.
- Multi-modalité : L'application Dans certains cas, les données
prend en charge différents en temps réel peuvent être
modes de transport en commun, incorrectes ou manquantes, ce
tels que les bus, les métros, les qui peut entraîner des erreurs
tramways, les trains, les vélos dans les itinéraires proposés.
en libre-service et les services de
- Dépendance à la
covoiturage. Elle intègre connectivité Internet :
également les horaires des bus
Pour utiliser pleinement toutes
régionaux et des trains
les fonctionnalités de Transit,
interurbains, offrant ainsi une
une connexion Internet est
solution complète pour les
nécessaire. Cela peut poser un
déplacements urbains.
problème dans les endroits où
la qualité du réseau est limitée
ou inexistante, ainsi l'utilisation
de l'application.
- Manque de fonctionnalités
avancées :
Bien que Transit propose des
nombreuses fonctionnalités
9
utiles, certaines fonctionnalités
plus avancées, telles que la
réservation de billets ou la
planification de trajets
complexes avec plusieurs
correspondances, peuvent être
absentes. Dans des tels cas, les
utilisateurs peuvent devoir
recourir à d'autres applications
ou sources d'informations
complémentaires.
- Facilité d'utilisation : - Adoption limitée :
Wassalni offre une interface Étant une application
conviviale et simple d'utilisation. spécifique à la Tunisie,
Les utilisateurs peuvent créer l'adoption de Wassalni peut être
des profils, publier des trajets limitée en dehors des zones
Application
disponibles et rechercher des urbaines ou des grandes villes.
wassalni Cela peut restreindre le nombre
trajets correspondants.
d'utilisateurs et la disponibilité
- Optimisation des trajets :
des trajets dans certaines
Wassalni propose des régions.
algorithmes des correspondances
[2] - Fiabilité des trajets :
intelligentes pour optimiser les
trajets et maximiser le taux de Comme pour toute application
remplissage des véhicules. Cela de transport public, la fiabilité
peut aider à réduire les distances des trajets dépend des
utilisateurs inscrits. Il peut y
parcourues, le temps de trajet.
avoir des annulations de
dernière minute ou des retards,
ce qui peut perturber les plans
de voyage des utilisateurs.
10
- Confidentialité et sécurité :
Wassalni doit prendre des
dispositions de sécurité et de
confidentialité adéquates pour
assurer la protection des
informations personnelles, des
utilisateurs, particulièrement en
ce qui concerne les
informations personnelles.
Coordonnées. Il est important
que l'application mettre en
œuvre des mesures de sécurité
solides pour... garantir la
confiance des utilisateurs.
- Support client :
Une bonne assistance client est
essentielle pour résoudre les
problèmes, répondre aux
questions et gérer les éventuels
différends entre les utilisateurs.
L'efficacité et la réactivité du
support client de Wassalni
peuvent influencer l'expérience
globale des utilisateurs.
2.3. Critique de l’existant
L'évaluation de la situation actuelle revêt une importance capitale et
intervient lors de l'étude de l'état actuel. Cette étape a pour but de
détecter et d'analyser les erreurs générées par l'utilisation manuelle du
système, en vue de proposer des solutions appropriées pour les corriger.
11
Les problèmes des transports en Tunisie peuvent varier en fonction
des différents facteurs, tels que la région spécifique et le mode de
transport considéré. Voici quelques problèmes couramment rencontrés
dans Le réseau de transport en Tunisie :
- Les principales agglomérations de Tunisie en particulier Tunis, souffrent
souvent des problèmes de congestion routière. Les routes surchargées et
le nombre élevé des véhicules contribuent à des retards, à des temps de
trajet plus longs et à une inefficacité générale du réseau routier.
- Bien que des services des moyens de transport collectif tels que les
autobus et les trains et les métros existent en Tunisie, leur couverture
peut être insuffisante dans certaines régions. Certains secteurs peuvent
être mal desservis où avoir des fréquences des services limités, ce qui
rend difficile pour les résidents d'accéder aux transports en commun de
manière pratique et fiable.
- Manque de coordination intermodale : L'intégration entre les divers
moyens de transport (bus, métro, train) peut parfois poser des problèmes,
ce qui rend difficile pour les passagers peuvent facilement changer d'un
mode de transport à un autre en toute fluidité. Des correspondances mal
synchronisées et des informations peu claires peuvent rendre les
déplacements plus complexes et moins pratiques.
- Tarification peu transparente : La transparence et la cohérence des tarifs
des transports en Tunisie peuvent poser problème. Il peut y avoir des
disparités de tarification entre les différents modes de transport et une
difficulté à comprendre les structures tarifaires, ce qui peut causer de la
confusion pour les utilisateurs.
En plus, d’après notre étude qui nous allons fait les deux applications
déjà existe sur lemarché ne permet pas aux voyageurs de réserver leurs
places via l'application elle-même. Elle fournit plutôt elle fournit des
informations en temps réel sur les horaires de transport, les temps
d'attente et les retards, trajets disponibles, ainsi que les choix de
12
transport, mais n'inclut pas de fonction directe pour la réservation
immédiate des billets ou des sièges.
2.4. Solution proposée
La solution proposée A pour ambition de se démarquer en proposant
des services de haute qualité, une expérience de navigation fluide et des
performances optimales.
Elle consiste à développer un système intelligent de suivi en temps
réel à distance des déférents moyens du transport en Tunisie via une
application mobile composée de :
- Réalisation d’une application mobile « wassalni »
- Réalisation d’un système IOT pour la traçabilité et le suivie de la
localisions en temps réel et l’ouverture de barrière pour permettre aux
citoyennes d’entrée à la gare
- Choix de réseaux pour la Connectivité entre l’application mobile et la
partie hard
- Utiliser une plateforme IOT pour le stockage et la sécurité de donner en
temps réel
- Réservation ticket et paiement en ligne
2.5. Cahier de charge
2.5.1. Contexte de projet
Wassalni est une application qui suit les véhicules TransTu (bus et métro,
y compris TGM) et vous indique l'heure à laquelle votre bus ou métro
atteindra votre arrêt. Alors maintenant, vous n'aurez plus jamais à
attendre à la gare.
Fini l'attente sans connaître l'heure d'arrivée estimée du prochain
véhicule
Actualisation automatique toutes les 20 secondes des positions des
véhicules ainsi que le temps d'arriver du véhicule à votre station de
départ.
13
Permettre de voir si le véhicule est en route (en mouvement) ou est
arrêter et combien de temps est stationné au même poste.
Réserver et payerson ticket en ligne.
2.5.2. Les objectifs et contribution de projet :
Pour rester informé des horaires et de la disponibilité des moyens de
transport dans la région géographique visée. Grand-Tunis, nous avons
développé une application mobile et un système IoT. Cette application a
été créée dans le but de faciliter la vie des utilisateurs. des lignes de bus,
de métro et du train de banlieue, notamment le TGM (Tunis-La Goulette-
La Marsa).
Elle offre aux citoyens la possibilité de savoir combien de temps il
faudra attendre avant que le prochain moyen de transport, ainsi que
les itinéraires à suivre pour atteindre leur destination. De plus, les
voyageurs peuvent suivre en temps réel les mouvements et
l’avancement du moyen de transport dans les différentes stations.
De plus, les utilisateurs ont la possibilité de consulter la tarification
des différents moyens de transport.
Réserver sa place à distance
Utiliser l’iot pour la réalisation de ce projet
Utiliser GPS pour le suivi de la localisation de moyen de transport en
temps réel
Détection le ticket pour permettre aux citoyennes d’ouvrir la barrière
La traçabilité en temps réel de la position des moyens de transport
offre de nombreux avantages, notamment :
Amélioration de la précision des horaires de transport : En suivant la
localisation des moyens de transport en temps réel, les opérateurs
peuvent fournir des horaires de transport plus précis aux passagers, ce
qui peut diminuer les délais d'attenteet améliorer la satisfaction des
clients.
14
Optimisation des itinéraires : En suivant la localisation des moyens de
transport en temps réel, les opérateurs peuvent optimiser les itinéraires
en temps réel pour éviter les embouteillages et minimiser le temps de
trajet.
Augmentation de la sécurité : La surveillance en temps réel permet de
suivre la position des moyens de transport et d'adopter rapidement des
mesures en cas d'urgence ou d'incident sur la route.
Amélioration de l'efficacité opérationnelle : En suivant la localisation des
moyens de transport en temps réel, les opérateurs peuvent diminuer les
périodes d'immobilisation et les temps de repos,
chargement/déchargement, ce qui améliore l'efficacité opérationnelle.
Réserver sa place à distance dans un moyen de transport peut apporter
des nombreux avantages aux passagers, notamment le confort, la
tranquillité, la disponibilité, la sécurité,la flexibilité et la réduction de la
fraude.
3. Méthodologie et formalisme adoptés :
Il revêt une grande importance de sélectionner la méthodologie et le
cadre conceptuel qui conviennent le mieux à l'organisation et aux objectifs
visés. La clarté et la simplicité sont Certains éléments essentiels doivent
être pris en considération pour rendre l'organigramme compréhensible et
utilisable par les membres de l'organisation.
3.1. Méthodologie de conception :
Pour notre projet, nous avons opté pour l'utilisation du langage de
modélisation unifié UML comme méthode de conception. L'acronyme UML
signifie Unified Modeling Language, ce qui en français se traduit par
« Langage de Modélisation Unifié » (UML). UML est un langage que nous
avons choisi de mettre en œuvre pour notre projetqui permet de spécifier,
de visualiser, de construire et de documenter divers éléments des
systèmes logiciels constitutifs des systèmes logiciels. Sa particularité
réside dans son indépendance à l'égard des langages de codage, de
domaines d'application, et de méthodologies de développement.
15
Cette polyvalence et sa flexibilité en font un langage universellement
reconnu pour la modélisation des systèmes informatiques. [3]
3.2. Méthodologie de travail :
Avant de concrétiser un projet informatique, il est essentiel de
sélectionner une méthodologie de travail et un processus de suivi
appropriés. Cette méthodologie offre un cadre visant à structurer les
phases initiales du développement d'un système, ce qui contribue à rendre
ce processus de développement en adéquation avec les exigences du
client.
Tableau 2 : Analyse comparative des approches classiques et
agiles
Critères Approche classique Approche Agile
Cycle de vie Phase séquentielle La nature itérative et
incrémentale
Planification Prédictive Adaptative
Changement Résistant au Accueil favorable
changement. au changement intégré
dans le processus
Processus lourd de
gestion des
changements acceptés.
Gestion des risques Processus strict et Gestion des risques
rigoureux de gestion intégrée dans le
des risques. processus global.
Mesure des succès Respect des Satisfaction du
engagements initiaux client par la livraison
en termes de cout, de de valeur souhaitée.
budget et de niveau de
16
qualité.
Équipe Équipe avec Équipe
ressources spécialisés responsabilisée,
dirigées par un chef de soutenue par le chef de
projet. projet.
Qualité Contrôle de la qualité Assurance
en fin de cycle de qualité.permanant au
développement. niveau du produit et du
processus.
3.2.1. Méthode Agile :
Suite à la comparaison effectuée d'après la comparaison effectuée
dans la section précédente, il est possible de remarquer que lorsque le
domaine du projet est bien défini et maîtrisé,la méthode traditionnelle est
adéquate.
Cependant, dans des situations où il est difficile de prévoir tous les
éléments dès le début ou lorsque les besoins sont incomplets, comme
c'est le cas dans notre projet, il est préférable d'opter pour des méthodes
itératives et incrémentales telles que les méthodes agiles. se révèle
essentielle.
Une méthode agile est une approche caractérisée par son caractère
incrémentiel et itératif, favorisant une collaboration étroite entre les
parties prenantes. Elle garantit une communication de qualité avec les
utilisateurs, une meilleure transparence pour le client concernant
l'avancement du projet, et un contrôle de qualité amélioré grâce à la
réalisation de tests continus, permettant ainsi une détection rapide des
problèmes. [4]
17
3.2.2. La méthode adoptée SCRUM :
Scrum est l'approche agile la plus largement utilisée parmi les
différentes méthodologies agiles disponibles,couramment employée parmi
les diverses méthodologies agiles existantes, et elle se caractérise par sa
simplicité de compréhension. L'idée principale de la méthodologie agile
Scrum est de diriger l'équipe de développement vers une mise en œuvre
itérative d'un ensemble de fonctionnalités, au sein de cycles répétés d'une
durée habituelle de deux à quatre semaines, appelés "Sprints".
Chaque Sprint vise à produire une version partielle du produit final.
Figure 3 : Processus Scrum[5]
Conclusion :
Tout au long de ce chapitre, nous avons présenté l'entité hôte,
Général. De plus, nous avons exposé le contexte global du projet et
détaillé notre décision concernant la méthodologie de développement
choisie.
Le chapitre suivant sera dédié à l'analyse préliminaire.
18
Chapitre 2 : Etudes préalable
19
Introduction :
Dans ce chapitre, nous entamerons la phase de spécification des
exigences, au cours de laquelle nous identifierons les besoins fonctionnels
et non fonctionnels que notre système doit satisfaire seront examinés
notre solution doit satisfaire. Ensuite, nous aborderons la gestion de notre
projet en utilisant la méthodologie Scrum.
1. Schéma synoptique de l’application wassalni :
Au cours de ce projet, nous avons approfondi notre compréhension
des aspects essentiels dans ce schéma synoptique générale ci-dessous par
ailleurs nous avons présenté les parties nécessaires sur lesquelles est
basé le système de supervision connecté :
La figure4 présente le schéma synoptique englobant les différents
modules de base du dispositif à réaliser
20
Figure 4:Schéma synoptique
Le schéma synoptique est constitué des :
1 : système IOT pour la détection de la localisation
2 : connectivité sans fil : une technologie de communication sans fil avec
laquelle les données seront transmises vers l’application.
3 : Application qui va recevoir la localisation, réservation et paiement en
ligne et les classer dans une interface agréable et compréhensible pour
l’utilisateur.
5 : une technologie de communication entre la base de données et
l'application mobile.
4 : Base des données en temps réel pour stocker les données, la
communication entre L'application mobile et la base de données doivent
fonctionner en étroite collaboration, permettant un échange bidirectionnel
de données.
2. Spécification des besoins :
Ceci marque le début du processus de conception, où nous
entreprenons une étude détaillée de la situation. Cette étude prend en
considération les limites, les éléments potentiellement problématiques,
ainsi que d'autres facteurs pertinents, dans le but d'assurer que le projet
ou le processus final réponde aux exigences spécifiées.
2.1. Diagramme FAST :
Le diagramme FAST est un outil de modélisation graphique utilisé pour
représenter la structure sémantique d'une expression ou d'une phrase. Il
est souvent utilisé en analyse du langage naturel pour aider à comprendre
la signification d'une expression. [6]
21
Figure 5: Diagramme FAST
22
2.2. Les acteurs de l’application :
Un acteur symbolise une entité externe au système en cours de
modélisation, et il engage des interactions directes avec ce système. En
réaction aux actions entreprises par un acteur, lesystème offre un service
dans le but de répondre aux exigences.de cet acteur. [7]
Utilisateur
Il s'agit de l'utilisateur doté des privilèges les plus élevés, ayant la
capacité de gérer l'ensemble des fonctionnalités offertes par l'application.
En outre, nous identifions ci-dessous les autres acteurs susceptibles
d'interagir avec notre système, dont le rôle principal est Utiliser
l'application pour obtenir des informations concernant les transports en
commun, planifier leurs trajets et améliorer leur mobilité en Tunisie.
2.3. Identification des besoins fonctionnels :
Nous allons maintenant détailler les diverses fonctionnalités du
système. Ces fonctionnalités sont conçues pour satisfaire les exigences du
Product Owner. Les besoins spécifiés doivent être durables, précis et
réalisables. Les besoins fonctionnels visent à répondre à la question
essentielle :
Quel est le but du système ?
Quelles sont les fonctionnalités du système ?
Suite à plusieurs réunions avec le Product Owner représenté par Mm
hammemi imen, nous avons cernés les besoins fonctionnels d’application
et nous avons organisés par fonctionnalités offerte pour l’utilisateur.
Recherche d'itinéraires : l’utilisateur peut utiliser l'application pour
rechercher des itinéraires en indiquant le point de départ et la destination.
L'application permettre à l’utilisateur des différentes options de
transports en commun disponibles, les horaires et les itinéraires les plus
appropriés.
- S’inscrire pour avoir un compte personnel de l’application mobile
23
- Effectuer une authentification pour accéder à l'application mobile.
- Consulter la liste des transports publics
- Choisir un moyen de transport
- Consulter les heures et les informations
- Réserver ticket : choisir un bus ou un autre moyen de transport puis
consulter l’horaire et les tarifs pour choisir et confirmer le choix
- Paiement
- Consultation des horaires et des arrêts : peut consulter les horaires
des bus, des métros ou utiliser d'autres modes de transport public
pris en charge par l’application mobile.
- Suivi la localisation en temps réel : notre application permettre de
fournir Des informations en temps réel concernant d'éventuels
retards, perturbations ou changements dans les horaires de
transport. Permettre de suivre la position des véhicules en temps
réel pour savoir quand la bus ou le métro arrivera.
2.4. Besoins non fonctionnels
Les besoins non fonctionnels englobent les objectifs liés aux
performances du système ainsi que les contraintes liées à son
environnement. Ces exigences techniques sont généralement formulées
sous forme d'objectifs précis que le système doit atteindre.
En plus des besoins fondamentaux, notre système doit répondre aux
exigences suivantes :
Fiabilité : garantissant la capacité du logiciel à produire des
résultats corrects, quelle que soit la situation d'exploitation, y
compris la tolérance aux pannes, qu'elles soient logicielles ou
matérielles.
Flexibilité : facilitant l'ajout, la modification ou la suppression
de fonctionnalités dans le programme.
Efficacité : mesurant le degré de réalisation des objectifs, où
une activité est considérée efficace si les résultats obtenus
correspondent aux objectifs fixés.
24
Sécurité et contrôle d'accès : la capacité du logiciel à se
protéger contre les altérations et à limiter l'accès aux
utilisateurs autorisés.
Modularité : permettant au logiciel d'être structuré en
composants ou modules indépendants.
Maintenabilité : caractérisant la facilité avec laquelle un défaut
peut être localisé, identifié et corrigé.
2.5. Diagramme de cas d’utilisation général
Nous avons donc identifié nos acteurs, maintenant Il s'agit d'établir
une définition plus approfondie ou plus détaillée le besoin de chaque
acteur en répondant à la question : QUI devra faire QUOI ?
25
Le diagramme de cas d’utilisation représente les fonctionnalités du
système c’est-à-dire l’ensemble des actions que devront réaliser nos
acteurs.
Figure 6:Diagramme de cas d'utilisation générale
3. Mise en œuvre
3.1. Équipe et Rôle
Dans le contexte de la méthodologie Scrum, l'équipe se structure en
suivant les trois principaux rôles, comme illustré dans le tableau ci-
dessous :
Tableau 3 : Equipe et Rôle de Scrum [9]
Equipe Rôle
26
Product Owner représente le produit, il peut s’agir
Product du client, qui a eu une formation ou une présentation à
Owner l’agile, il est nécessaire qu’ils acceptent toute
cequ’implique l’agilité.
Il est le membre clé de la bonne marche du projet,
car c’est lui qui définit
Le QUOI du projet.
Scrum Master rassemble un peu comme le chef
d’orchestre de la vie du projet, mais ce dernier qui
opèrerait depuis les coulisses à la différence du chef de
projet, il n’est pas là pour diriger, ni même décider, Il est
Scrum là dans un rôle de coach et de guide, il doit se montrer
force réflexion, mais pas les diriger.
Il est le garant de l’application des méthodes agiles dans
la vie du projet, il est le formateur du client, du Product
Master
owner et de la scrum équipe si ces derniers ne
connaissent pas encore cet environnement, il doit être
constamment dans l’analyse des interactions de son
équipe, et avec le client, il est là pour aiguiller les
informations, il n'est pas supérieur aux autres membres
de la scrum équipe. Il est le lien qui les unit, mais il est
leur égal.
L'équipe est composée des individus responsables de la
Equipe mise en œuvre des exigences du client. L'ensemble de
l'équipe partage la responsabilité du résultat final de
chaque sprint. La manière dont les tâches sont exécutées
bénéficie d'une grande liberté, dans le but de garantir la
livraison du produit dans les délais convenus.
Tableau 4 : Equipe de Scrum
27
Personnes Rôles Scrum
Mm.Hammemi Imen Product Owner
Mm. Chiraz Ben Jabeur Scrum Master
Arij Dachraoui& Rania Riahi Equipe de développement
3.2. Backlog du produit
Le Product Backlog représente une liste organisée en fonction des
priorités des besoins et des exigences du produit. Ces éléments,
également connus sous le nom d'"histoires utilisateur", sont formulés en
une ou deux phrases, décrivant de manière claire et précise la
fonctionnalité souhaitée par l'utilisateur. Habituellement, ils sont
structurés sous la forme suivante : "En tant que X, je souhaite Y, afin de
Z" [10].
Le tableau ci-dessous présente une liste d'histoires utilisateurs avec
leurs estimations. Les besoins et les exigences du produit sont ordonnés
par ordre croissant de priorité, et le tableau contient les champs suivants :
Identifiant : un numéro unique et auto-incrémenté attribué à
chaque histoire utilisateur.
Cas : la tâche à réaliser.
User Story : c’est une description courte de la tâche à réaliser.
Priorité : c’est l’importance attribuée par le Product Owner à cette
tâche (remarque : pour que le tableau soit lisible et clair, nous allons
nommer la " très haute priorité " par l’abréviation " TH ", la " Haute
priorité " par l’abréviation " H ", la " moyenne priorité " par l’abréviation "
M ", la " basse priorité " par l’abréviation "B ").
Story Point : la durée nécessaire pour réaliser une tâche.
Tableau 5 : Backlog du produit
28
Complexit
Id Thèmes Use case Priorité
és
Recherche
En tant qu’équipe de développement, je
et
0 veux documenter et rechercher lors de Must Moyenne
autoforma
la réalisation de notre projet
tion
En tant qu’utilisateur, je veux inscrire
1 S’inscrire Must Moyenne
pour avoir un compte
En tant qu’utilisateur, je veux
S’authentif
2 s’authentifier pour accéder à son espace Must Moyenne
ier
personnel
Choisir le
En tant qu’utilisateur, je veux choisir un
3 moyen de Must Difficile
moyen de transport
transport
Suivi la En tant qu’utilisateur, je veux consulter
4 localisatio la localisation du moyen de transport en Must Difficile
n temps réel
Réserver En tant qu’utilisateur, je veux réserver
5 Must Moyenne
un ticket un ticket
Ouverture Le système ouvre la barrière lorsque le
6 Must Difficile
barrière capteur détecté la carte.
3.3. Planification des Sprints
Les histoires des utilisateurs préalablement définies dans le Product
Backlog sont classées en fonction de leur priorité et de leur valeur métier.
L'objectif principal est de mettre en œuvre en premier lieu ce qui présente
le plus de valeur.
29
Après une réunion avec l'équipe, nous avons identifié un total de six
sprints et trois réalisations. Ces informations sont présentées dans le
tableau ci-dessous :
Tableau 6 : Planification des Sprints
Réalise Sprint Estimatio
n
Réalise 1 Sprint 0 : Recherche et autoformation 6
semaines
Sprint 1 : S’inscrire
Sprint 2 : S’authentifier
Réalise 2 Sprint 3 : Choisir le moyen de transport 8
semaines
Sprint 4 : Suivi la localisation
Réalise 3 Sprint 5 : Réserver un ticket 8
semaines
Sprint 6 : Ouverture barrière
4. Logiciels et technologies utilisés
Dans cette section, nous allons vous présenter les outils logiciels que
nous avons utilisés tout au long de la mise en œuvre de notre projet.
4.1. Arduino IDE
L'environnement de développement intégré (IDE) Arduino est un
logiciel gratuit et open source utilisé pour programmer les cartes de
développement électronique Arduino. L'IDE Arduino est disponible pour
Windows, Mac OS X et Linux.
30
Figure 7: IDE Arduino
4.2. Kodular
Kodular est un outil de développement logiciel basé sur le cloud qui
permet aux développeurs de créer des applications mobiles. Il fournit un
environnement intégré pour construire des applications natives Android,
basées sur des blocs de programmation visuels (Visual Programming
Blocks).
Les développeurs peuvent utiliser des blocs prédéfinis pour créer des
applications intuitives, personnalisées et dynamiques sans aucune
connaissance en programmation. Kodular aide les développeurs à créer
rapidement des applications de qualité professionnelle à l'aide des
nombreuses fonctionnalités, notamment des modèles de conception
prédéfinis, des blocs de programmation intuitifs, des thèmes, des API et
bien plus encore.
Kodular est un logiciel de création d'applications pour Android et iOS
développé par un groupe de développeurs indépendants à partir d'un
projet open source. Il est destiné aux débutants et amateurs et permet
aux utilisateurs de créer rapidement des applications mobiles, sans avoir
besoin de compétences en programmation. Kodular peut être utilisé par
des étudiants, des entrepreneurs et des entreprises pour créer des
applications mobiles de qualité professionnelle.
31
Figure 8: Logo Kodular
Les avantages de kodular
Création d'applications Android native à l'aide d'un bloc.
Utilisation de composants personnalisés et prédéfinis pour créer
des applications riches en fonctionnalités.
Intégration facile d'API natives et tierces.
Mise à jour rapide et sans contraintes pour des applications
publiées.
Utiliser le client Kodular pour partager des applications avec des
amis et afficher des mises à jour en un clic.
Gérer les builds, les autorisations et les profils d'utilisateur à
distance.
Utiliser la console pour tester et effectuer des optimisations.
Utiliser l'éditeur de thèmes Oxygen pour gérer l'apparence des
applications.
Intégration de modules externes et de périphériques.[12]
4.3. Technologies utilisées
Firebase est une plateforme mobile et web de développement
d'applications, qui a été créée en 2011 et acquise par Google en 2014. Elle
fournit une multitude de services de développement pour aider les
développeurs à créer et déployer des applications mobiles et web
rapidement et facilement.
Firebase offre une variété de services, notamment :
- L'authentification : permet de gérer l'authentification utilisateur avec
des services tels que Google, Facebook, Twitter, GitHub, etc.
- La base de données en temps réel : permet de stocker et de
synchroniser les données en temps réel entre les utilisateurs, les
appareils et les serveurs.
32
- Le stockage dans le Cloud : permet de stocker des fichiers dans le
cloud, avec une intégration facile avec les autres services Firebase.
- Les notifications push : permet de diffuser des notifications push en
temps réel aux utilisateurs sur iOS et Android.
- L'analyse : permet de suivre l'utilisation de l'application, de mesurer
l'engagement de l'utilisateur et d'obtenir des informations sur les
performances.
- Les tests et les rapports d'erreurs : permet de tester l'application et
de signaler les erreurs et les bogues.
Firebase est une plateforme flexible et évolutive qui peut être utilisée
par les développeurs débutants et expérimentés pour créer des
applications mobiles et web de haute qualité. Elle fournit des services clés
en main, permettant aux développeurs de se concentrer sur le
développement de l'application plutôt que sur la gestion de
l'infrastructure.
Figure 9:Firebase
3.3. Diagramme de classes global
Le diagramme de classe décortique le système en plusieurs classes,
chaque classe de ce diagramme est une description formelle d’un
ensemble d’objets qui ont une même sémantique et caractéristiques
communes.
33
Figure 10:Diagramme de classe globale
Conclusion
Dans ce deuxième chapitre, nous avons détaillé les différents besoins
ainsi que l’interaction de l’utilisateur avec le système. Par la suite nous
avons identifiée l’équipe de travail et de définir notre backlog du produit
qui nous a permis de préparer un terrain favorable pour les prochaines
phases et de déduire la planification des sprints de notre projet. Dans ce
qui suit nous allons entamer la phase de conception.
34
Chapitre 3 : Conception
35
Introduction :
Après avoir défini la spécification du projet, la phase de conception
vient pour mieux l’éclaircir. En premier temps, nous allons présenter
l’architecture générale de notre solution. En deuxième temps, on prend la
phase d’étude des besoins matériels à partir de l’architecture de la partie
hardware.
En troisième temps, nous allons détailler les technologies de
développement qui nous ont permis de le réaliser notre partie software.
En quatrième temps, nous allons décrire la conception technique qui se
base essentiellement sur quelque diagramme UML montrant la vue
statique et celle dynamique de notre projet.
1. Architecteur général de l’application :
36
Figure 11: Architecteur général de l’application
L’architecture de l’application « Wassalni » qu’on est en train de la
développer est fondée essentiellement sur la technologie internet of things
(IOT).
En effet le principe de l’IOT consiste à diviser l’application en trois
parties principalement, qui communiquent entre eux pour relier le monde
tangible des objets au monde virtuel des réseaux et du cloud.
• Partie hardware : le GPS commence par la détection des places et
leurs états.
• Partie de traitement et stockage des données : La mesure relevée
par le capteur est ensuite envoyée à la passerelle (ESP32) grâce à un
premier protocole :
Communication(HTTP). Le rôle de la passerelle est de traduire les
protocoles pour établir une communication entre les objets et le réseau (le
cloud). Grâce à l’intelligence embarquée la passerelle permet le traitement
et le stockage des données, ainsi que des fonctions de pilotage de l’objet.
Pour les protocoles courte portée en utilise le WIFI et le GSM/GPRS. La
passerelle est locale et se connecte souvent au box du fournisseur d’accès
à Internet et SIM.
• Partie client : L’utilisateur bénéficie, d’une interface dédiée sur son
terminal mobile. Il peut alors consulter les mesures en temps réel et
utiliser les différentes fonctionnalités prévues par la solution IoT.
2. Environnement du travail
Cette partie contient le dernier volet de ce rapport, elle a comme but
d’exposer notre travail achevé. Nous allons commencer par la
présentation de l’environnement matériel utilisé tout au long de la période
de développement.
37
2.1. Environnement matériel
Pour Manipuler le fonctionnement de la partie hard avec succès, le
matériel décrit ci-dessous est utilisé :
2.1.1. Choix de carte
Une carte programmable est une carte comportant des composants
électroniques, comprenant un ou plusieurs microcontrôleurs.
Un microcontrôleur est utilisé pour contrôler la carte, ce programme peut
être écrit dans plusieurs langages de programmation.
Pour choisir une carte convenable, il faut prendre en considération les
besoins comme se montre cette figure :
Figure 12 : Choix de Carte
Nous allons rechercher des cartes programmables, nous avons découvert
que des nombreuses cartes de développement modulaires sont apparues ces
dernières années.
Chaque carte a des avantages et des inconvénients, elles diffèrent par
leurs fonctionnalités, leur complexité et leur prix.
Cette section mentionne certaines des cartes programmables les plus
populaires et leurs caractéristiques, dans le but de choisir la plus optimale
pour notre projet.
38
Dans ce qui suit, nous présentons les différentes cartes électroniques
utilisées, parmi ces cartes on peut citer :
Tableau 7 : Les différentes cartes électroniques
Nom de la Arduin Raspberry Pi STM32 NodMcu ESP32
carte o UNO ESP8266
Naissance 2005 2012 2007 2014 2016
Prix 50 DT 200 DT 120 30 DT 46 DT
(Dinars) DT
Processeur ATmeg3 CPU intégrée Cortex RISC à 32 Tensilica
Xtensa LX6
28bits bits
RAM 2 Ko 512 Mo Max 128 64 Ko 50 Ko SRAM
ko
Mémoire 32 Ko MicroSD –32 Max 2048 512Ko 4 Mo
Flash G Ko
Consommat 0.5 W 3.5 W Basse Basse Basse
ion (w)
Ethernet Non Oui Non Non Non
USB Non 4 Micro-USB Micro-USB Micro-USB
Sortie vidéo Non HDMI Non Non Non
Système RTOS Linux RTOS RTOS RTOS
D’exploitati
on
39
A. Analyse du tableau comparatif
En tenant compte du tableau 7 on déduit qu’ESP32 représente un outil plus
performant et mieux adapté à nos besoins, il possède des connectiques
convenables au fonctionnement de notre système, de plus, son rapport
performance-prix est abordable.
On a décidé donc de travailler sur la carte ESP32dans la partie paiement et
ouverture de barrièreet notre choix peut être justifié par :
Connectivité Wi-Fi et Bluetooth : l’esp32 est équipé d'une
connectivité intégrée Wi-Fi et Bluetooth, ce qui permet une
communication sans fil facile avec d'autres dispositifs et systèmes IOT.
Cela facilite l'intégration de l'esp32 dans des réseaux IOT industriels et
permet des interactions avec d'autres équipements et systèmes.
Puissance de traitement : l’esp32 dispose d'un processeur puissant et
d'une quantité suffisante de mémoire, ce qui lui permet de gérer des
tâches complexes et de supporter des applications industrielles
exigeantes. Il peut exécuter des algorithmes de traitement des données,
des contrôles en temps réel et des protocoles de communication
avancés.
Faible consommation d'énergie : l’esp32 est conçu pour une faible
consommation d'énergie, ce qui est crucial dans les environnements
industriels. Il peut fonctionner sur batterie ou être alimenté par des
sources d'énergie limitées, ce qui en fait un choix idéal pour les
systèmes IOT.
Large gamme de périphériques intégrés : l’esp32 offre une variété
de périphériques intégrés tels que des interfaces GPIO, des interfaces
SPI, UART etc. Cela facilite l'interaction avec différents capteurs,
actionneurs et autres dispositifs utilisés dans les applications
industrielles.
Prise en charge de Framework IOT : l’esp32 est compatible avec
différents Framework IOT, tels que HTTP, etc. Cela simplifie l'intégration
de l’esp32 dans des infrastructures IOT existantes et facilite la
communication avec d'autres dispositifs et services.
40
Communauté active et support : l’esp32 bénéficie d'une
communauté d'utilisateurs et de développeurs active, ce qui signifie
qu'il existe une abondance de ressources, de tutoriels et de forums de
support pour vous aider à développer votre projet IOT industriel.
Figure 13 : Carte esp32
Sim808
Nous avons choisile module SIM808 pour la partie détection de la localisation
à cause de leur fonctionnement :
Le module SIM808 est un module de fonction trois-en-un GSM/GPS/BT.
Il est basé sur le dernier module GSM/GPS/BT SIM808 de SIMCOM, prend
en charge le réseau quadri-bande GSM/GPRS et combine la technologie GPS
pour la navigation par satellite. Il a une sensibilité de réception GPS élevée
avec 22 canaux de suivi et 66 canaux récepteurs d'acquisition. En outre, il
prend en charge A-GPS disponible pour la localisation en intérieur, et il prend
également en charge Bluetooth 3.0.
Le module est contrôlé par la commande AT via UART et prend en charge les
niveaux logiques 3,3 V et 5 V.
41
Figure 14:SIM808
2.1.2. Choix des capteurs
Le choix d'un capteur est souvent basé sur ses caractéristiques qui nous
indiquent s'il est convenable ou non, pour notre application.
Tableau 8 : Les caractéristiques générales d'un capteur
Caractéristiques
Etendue de Valeurs extrêmes pouvant être mesurées par le capteur
mesure
Résolution Plus petite variation de grandeur mesurable par le
capteur
Sensibilité Variation du signal de sortie par rapport à la variation du
signal d’entrée
Précision Aptitude du capteur à donner une mesure proche de la
valeur vraie.
Rapidité Temps de réaction du capteur
42
Ci-dessus on présente les capteurs RFID disponibles sur le marché qu’on
va utiliser afin de réaliser notre travail :
Le tableau suivant dresse un comparatif entre les systèmes actifs, semi-
actifs et passifs.
Tableau 9:Etude comparative entre les tags RFID
Tag Distance Données Durée de Cout
vie
Actif Importante Importantes Faible Important
Semi-passif Moyenne Moyenne Moyenne Moyenne
Passif Faible Faible Importante Faible
La RFID se développe sous différents supports :
Tableau 10:Etude comparative entre les tags RFID [14]
Type de support Objectifs
Identification des personnes
Paiement sans contact
Contrôle d’accès en entreprise
Transports Cartes de fidélité
Cartes RFID et badges RFID
Identification & traçabilité
3 formats d'étiquettes RFID
normes ISO
Étiquette PVC sans contact RFID Une technologie RFID performante
et abordable
43
4 types de puces RFID disponibles
Identification des biens
Stockage et inventaire
Lutte contre la contrefaçon
Traçabilité des produits
Étiquettes et stickers Promotion dans les événements
Identification des personnes
Paiement sans contact
Promotion dans les événements
Bracelets
Accès à des résidences, locaux et
parking
Badge RFID d’accès en entreprise
Porte-clés et tags
Identification d’animaux
Puces sous cutanés
Module RFID-MFRC522 :
Nous allons choisir le module RFID-MFRC522, à cause des certains
critères afin de nous assurer qu'il répondra à nos besoins spécifiques.
44
Figure 15: Module RFID-MFRC522
Les critères de choix à considérer :
Compatibilité : compatibilité du module RFID-MFRC522 avec plateforme
de développement ESP32
Bibliothèques et des exemples de code sont disponibles pour faciliter
l'intégration du module dans notre projet.
Type de cartes RFID pris en charge : Le module RFID-MFRC522 est
compatible avec plusieurs types de cartes RFID, notamment les cartes
MIFARE et les cartes NFC. Assurez-vous que les cartes que vous
prévoyez d'utiliser sont prises en charge par le module.
Distance de lecture
Puissance et alimentation : une alimentation de 3,3 V.
Prix
2.1.3. Choix des Actionneurs :
Un actionneur joue le rôle de la sortie lui permettant de produite une
action sur l’environnement extérieur, par exemples : les écrans LCD, Buzzer,
Afficheurs….
Buzzer électrique
Un buzzer est un composant électromécanique ou électronique qui produit
un son lorsqu'une tension lui est appliquée. Il est de fréquence fixe ou
variable, les deux types de cloches sont indiqués dans le tableau ci-dessous :
45
Tableau 11 : Choix de Buzzer
Type de Buzzer Les caractéristiques de Buzzer
Ce modèle est activé en leur appliquant une pression
A fréquence fixe avec une partie du corps humain.
Facile à mettre en œuvre dans circuit électrique ou
électronique.
Ce type de buzzer peut générer des bips graves, Ils
sont cependant plus complexes à mettre en œuvre
A fréquence dans un circuit électronique car il faut générer le signal
variable électrique de fréquence variable à leur appliquer.
Faible coûte.
Le choix de buzzer est fixé sur un buzzer de type fréquence variable ce type
et compatible avec le projet.
Figure 16 : Buzzer électrique
Choix des écrans LCD
Après avoir fait le bon choix pour les capteurs constituant notre système de
sécurité, le tour est le choisir les modules d’affichage.
La mise en place d’un LCD graphique dans ce projet est importante pour
obtenir une supervision sur terrain.
Notre choix est basé sur les critères suivants :
Compatibilité de LCD graphique avec microcontrôleur.
Disponibilité dans le marché.
Ce tableau présent les caractéristiques de deux afficheurs à savoir :
Tableau 12 : Les caractéristiques techniques des LCD graphique
46
LCD graphique Caractéristique
Résolution 240* 320 pixels
Possibilité d’afficher 262000 couleurs
LCD 2,16
Comprend un pavé tactile
Adapté pour Arduino, STM32
Adapté pour : STM 32, Raspberry, Arduino
LCD 3 ,5 INCH Une résolution de 320x480
Comprend un pavé tactile
Le choix a été fixé sur l’afficheur LCD 2.16.
Les écrans à cristaux liquides sont des modules compacts intelligents et
nécessitent peu de composants externes pour fonctionner correctement. Ils
nécessitent relativement peu de temps (1 à 5 minutes), sont relativement bon
marché et très faciles à utiliser.
Figure 17 : Afficheur
LCD 2.16
Choix du servomoteur :
Nous allons choisir Le servomoteur pour utiliser dans notre projet avec la
carte ESP32 pour le mouvement de barrière
47
Figure 18:Servomoteur
Lors du choix d'un servomoteur, plusieurs critères doivent être pris en
compte pour s'assurer qu'il convient à notre application spécifique. Voici
quelques critères de choix courants pour les servomoteurs :
Vitesse de rotation : La vitesse de rotation du servomoteur indique à
quelle vitesse il peut effectuer les mouvements. Elle est mesurée en
rotations par minute (RPM) ou en degrés par seconde (°/s).
Sélectionnez un servomoteur avec une vitesse de rotation adaptée
aux exigences de votre application.
Plage de mouvement : La plage de mouvement du servomoteur
détermine l'angle ou la rotation maximale qu'il peut atteindre.
Certains servomoteurs offrent une plage de mouvement de 180
degrés, tandis que d'autres peuvent offrir une rotation continue sur
360 degrés. Sélectionnez un servomoteur avec une plage de
mouvement appropriée pour votre application.
Précision : La précision du servomoteur est liée à sa capacité à
atteindre des positions cibles avec une grande précision. Cela peut
être important dans les applications qui nécessitent des
mouvements précis. Vérifiez les spécifications du servomoteur pour
connaître sa précision ou recherchez des avis d'utilisateurs pour
évaluer sa performance en termes de précision.
Tension d'alimentation : Vérifiez la tension d'alimentation requise
par le servomoteur. Certains servomoteurs fonctionnent avec une
tension de 5 V, tandis que d'autres peuvent nécessiter une tension
48
plus élevée. Assurez-vous que la tension d'alimentation du
servomoteur est compatible avec votre système d'alimentation.
Dimensions et poids : Les dimensions et le poids du servomoteur
peuvent être importants selon les contraintes d'espace et de poids
de votre application. Vérifiez les dimensions et le poids du
servomoteur pour vous assurer qu'il peut être intégré efficacement
dans votre système.
Durabilité : La durabilité du servomoteur est un facteur à prendre en
compte, en particulier si votre application implique des mouvements
fréquents ou des conditions environnementales difficiles. Recherchez
des servomoteurs de qualité et des avis d'utilisateurs pour évaluer
leur durabilité.
Coût : Enfin, considérez le coût du servomoteur, qui peut varier en
fonction de ses caractéristiques et de sa qualité. Déterminez votre
budget et trouvez un équilibre entre les performances requises et le
coût.
2.1.4. Les technologies de communication sans fil :
Un réseau IoT sert à doter un objet d’une connectivité à Internet pour
permettre le transfert d’informations.
Différents protocoles de communication sont disponibles sur le marché pour
effectuer cela.
Le tableau ci-dessous regroupe les principaux protocoles de communications
utilisés dans les projets IoT.
Tableau 13: Technologies des réseaux sans fils :
Technologie Inconvénient
Avantages Application Logo
s s
RFID Transfert des Perturbation Géo
données sans du transfert localisation de
contact radio par les zone
(même sans liquides et les
contact métaux (en
49
fonction de la
visuel) fréquence
utilisée)
adapté aux
Si la sécurité
technologies
n’est pas bien
Haut débit, portables telles
configurée
faible portée, que les
alors l’objet
quasiment oreillettes pour
s’expose à des
Bluetooth intégré dans les
failles des
tous les communication
sécurités telles
appareils du s voix ou aux
que le
quotidien raccordements
bluejacking et
d’équipements
le bluesnarfing
à un PC
Très haut
débit, haute Consommation
adapté à la
disponibilité, en batterie
télésurveillance
très bonne grande, prix
4G , aux
couverture de l’abonne-
smartphones
géographique ment
(IoT critique)
, gestion de important
la mobilité
Fonctionnalité
s multimédia
Appels vocaux,
(SMS, MMS),
GSM messages
accès Portée faible
(GPRS/ courts,
Internet et en zone rurale
EDGE) navigation
introduction
(partielle)
de la carte
SIM
50
Envoie
Faible Couverture d’informations
SigFox consommatio mondiale ponctuelles
n énergétique encore fait (géolocalisation
)
Non adapté
Très Haut aux objets
débit, qualité uniquement
du signal alimentés par Adapté aux
assurée, batterie. applications de
WIFI
connexion Couverture domotique, au
simple et réseau limitée contexte indoor
rapide à la à une faible
passerelle zone autour de
la passerelle
Nous avons opté pour le mode de communication WIFI, le GPRS,
Bluetooth et GSM pour l’envoi et la réception des données en temps
réel.
o Nous allons utiliser GPRS/GSM pour le suivi de la localisation
des véhicules en temps réel
o Wifi pour le paiement de place en ligne
Conclusion
Au long de ce chapitre, nous avons présenté la conception de notre
application. Le chapitre suivant intitulé « conception et Réalisation des
sprints », nous permettrai de présenter l’environnement matériel et
logiciel de développement ainsi que des imprimes écrans détaillés de
notre application.
51
52
Chapitre 4 : Release 1
Introduction
Le premier chapitre de réalise est composé par deux sprints le premier
sprint représente une étape importante et prioritaire pour la réalisation de
notre projet et le deuxième sprint présente la partie création de compte.
Ensuite, nous allons détailler les sprints avec Product backlog spécifique
avec l’expression des besoins, la conception et les interfaces réalisées.
53
1. Analyse de la réalise 1
La réalise 1 est composé par quatre sprints, le sprint 0 représente une
étape importante et prioritaire pour la réalisation de notre projet, le
premier sprint est l’inscription, le deuxième sprint présente la partie
authentification des utilisateurs.
Ensuite, nous allons détailler les sprints avec Product backlog
spécifique avec l’expression des besoins, la conception et les interfaces
réalisées.
La figure suivante présente le diagramme global du premier release :
Figure 19 : Diagramme de cas d'utilisation générale de réalise 1
2.1. Sprint 0 :
L'objectif de ce sprint est d'effectuer des recherches pour collecter des
informations et s’auto-former sur les technologies de développement et
préparer l’environnement de travail.
2.1.1. Sprint Backlog
Le tableau ci-dessous représente la première histoire de l’utilisateur :
Tableau 14 : Sprint Backlog
Histoires de l’utilisateur Type Semaine
54
Faire une comparaison entre les
produits similaires qui existent sur Histoire technique 4 semaines
le marché.
Spécification des besoins Histoire technique 2 semaines
fonctionnels et non fonctionnels.
Choix des technologies et les Histoire technique 3 semaines
outils de travail.
Installation du logiciel Histoire technique 4 semaines
nécessaire : Arduino IDE
Installation des bibliothèques Histoire technique 3 semaines
nécessaires.
2.2. Sprint 1 : Créer compte
L'objectif de ce sprint de réaliser la gestion des utilisateurs qui permet
à l’utilisateur d’enregistrer leur information dans leur propre compte et
appliquer des autres tâches.
2.2.1. Sprint Backlog
Ce tableau représente les histoires de l'utilisateur de ce sprint1.
Tableau 15 : Histoires de l’utilisateur de sprint 1
User Stories Type Jours
En tant qu’utilisateur, je User story 4 Jours
veux créer un compte.
2.2.2. Expression des besoins
L'expression des besoins dans le contexte du sprint 1, qui se concentre
sur la création d’un compte, consiste à identifier et à décrire clairement
les fonctionnalités et les exigences spécifiques liées à cette partie de
l'application.
55
Voici quelques exemples d'expressions des besoins pour ce sprint :
En tant qu'utilisateur : je veux pouvoir créer des nouveaux comptes
utilisateurs en fournissant leurs informations de base telles que le nom,
numéro de téléphone et mot de passe
2.2.3. Diagramme de cas d’utilisation de sprint 1 s’inscrire
La figure ci-dessous présente une vue raffinée du cas d’utilisation «
Inscription »
Figure 20 : Diagramme de cas d'utilisation de sprint 1
2.2.4. Description textuelle
Ce tableau représente la description textuelle détaillée du cas
d'utilisation « Créer compte »
Tableau 16 : Description textuelle « Créer Compte »
Cas Créer compte
d’utilisation
Acteur Utilisateurs
Précondition Accéder à l’application (utilisateur)
Post condition Créer compte
56
Description Ce cas d’utilisation permettra à l’utilisateur d’ajouter
un compte.
1.L’appui sur le bouton « signe up».
2.L’interface d’inscription s’affiche.
3.L’utilisateur remplir le formulaire
Scenario 4.L’utilisateur appui sur le bouton « signe up ».
nominal 5.L’enregistrement de nouvel utilisateur.
E1 : Si L’utilisateur n'a pas bien rempli le formulaire :
Le système affiche un message d'erreur
Exceptions E2 : Si l'utilisateur est déjà existé (numéro) :
Le système annule l'action et affiche un message
d’erreur
2.3. Sprint 2 : S’authentifier
2.3.1. Sprint Backlog
Le sprint 2 se concentre sur la fonctionnalité d'authentification de
l'application.
L'objectif principal est de permettre aux utilisateurs de s'authentifier,
c'est-à-dire de se connecter à l'application en utilisant leurs identifiants.
Ce tableau représente les histoires de l’utilisateur de ce sprint.
Tableau 17 : Histoire de l'utilisateur de sprint 2
Histoire de l’utilisateur Type Jours
En tant qu’utilisateur, je veux me Histoire de 7 jours
connecter afin d’accéder à mon l’utilisateur
Application.
En tant qu'utilisateur, je veux me Histoire de 7 jours
57
déconnecter l’utilisateur
2.3.2. Expression des besoins
L'expression des besoins dans le contexte du sprint 2, qui se concentre
sur l'authentification, consiste à identifier et à décrire clairement les
fonctionnalités et les exigences spécifiques liées à cette partie de
l'application.
Voici les expressions des besoins pour le sprint 2 :
En tant qu'utilisateur, je veux pouvoir saisir mon numéro de
téléphone et mon mot de passe pour accéder à l'application.
En tant qu'utilisateur, je veux recevoir un message d'erreur clair
lorsque mes identifiants sont incorrects.
En tant qu'utilisateur, je veux être redirigé vers une page d'accueil
après une authentification réussie.
En tant qu'utilisateur, je veux pouvoir me déconnecter de
l'application à tout moment.
2.3.3. Diagramme de cas d’utilisation
Diagramme de cas d'utilisation d'authentification est un sous-type
spécifique de diagramme de cas d'utilisation qui se concentre sur les
interactions liées au processus d'authentification dans un système. Il
permet de représenter les différentes actions et les acteurs impliqués lors
de l'authentification des utilisateurs.
La figure suivante représente le diagramme de cas d’utilisation
« s’authentifier »
58
Figure 21 : Diagramme de cas d'utilisation de sprint 2
2.3.4. Description textuelle
L'objectif de cette activité est de décrire textuellement des scénarios
de cas d'utilisation pour chaque graphique. Il doit indiquer comment ce
scénario commence, comment il se termine et les interactions de
l'utilisateur avec l'application.
La description textuelle détaillée du cas d'utilisation de
l'authentification pour l'administrateur, les utilisateurs est donnée par le
tableau suivant :
Tableau 18 : Description textuelle « s’authentifier »
Cas Authentification
d’utilisation
Acteurs Utilisateur
Pré- L’acteur lance l’interface d’authentification
condition
Post L’acteur s’authentifie
condition
Description Ce cas d’utilisation permettra à l’acteur
59
d’authentifier
Scenario 1. L’acteur saisit dans les champs du formulaire le
nominal numéro et le mot de passe
2. le système vérifié tout d’abord si les champs
sont bien remplis et valides.
3. Si les informations sont correctes :
L’authentification est réussie et l’application dirige
chaque acteur à son tableau de bord.
E1 : Si l’acteur n’a pas taper le numéro et le mot
de passe :
Exception
Le système affiche un message d’erreur
E2 : si le numéro ou le mot de passe est fausse
Le système affiche un message d’erreur
Ce tableau représente la description textuelle du cas d'utilisation « Se
déconnecter »
Tableau 19 : Description textuelle « se déconnecter »
Cas Se déconnecter
d’utilisation
Acteurs Utilisateur
Pré- L’acteur clique sur le bouton de déconnexion
condition
Post Acteur déconnecté
condition
Description Ce cas d’utilisation permettra à l’acteur de se
déconnecter
60
2. Conception
Après avoir terminé l’étape de raffinement des cas d’utilisation, nous
passons à la conception de notre application.
Nous présentons les diagrammes de séquence objet réalisés pour ce
sprint.
61
2.1. Diagramme de fonctionnement d’ESP32
L’ESP32 est un microcontrôleur polyvalent offrant une connectivité Wi-
Fi et Bluetooth, le diagramme suivant montre le fonctionnement de notre
MCU
Figure 22:Diagramme de fonctionnement d’ESP32
62
2.2. Diagramme de séquences « S’authentifier » :
Les diagrammes de séquences permettent de représenter des
collaborations entre objets selon un point de vue temporel. Les
diagrammes de séquences à illustrer le système global développé ainsi
que ses différents cas d’utilisation.
Cette figure représente le digramme de séquence de
l’authentification :
Figure 23 : Diagramme de séquence S'authentifier.
2.3. Diagramme de séquence objet « Créer compte »
La figure ci-dessous représente le diagramme de séquences du cas
d’utilisation « créer compte »
63
Figure 24 : Diagramme de séquence « créer compte »
2.4. Diagramme de séquence « déconnexion » :
Figure 25:Diagramme de séquence déconnexion
3. Diagramme de classe
Un diagramme de classe est utilisé pour représenter les classes, les
attributs et les relations entre les objets dans un système. Chaque classe
64
est représentée par un rectangle, qui contient le nom de la classe, ses
attributs et ses opérations. Les relations entre les classes sont
représentées par des lignes ou des flèches.
La figure suivante présente le diagramme de classe du premier release
Figure 26:Diagramme de classe du premier release
4. Réalisation
Dans cette section, nous allons présenter quelques interfaces qui sont
développées dans le premier Sprint.
4.1. Configuration ESP32 :
Tout d’abord, nous avons besoin du bon pilote (driver) pour la version
actuelle de notre carte donc il faut suivre les étapes suivantes :
1) Installer Arduino Core pour l’ESP32 dans l’IDE Arduino et
lancer des sketches à partir de L’IDE Arduino 1.8.9.
2) Installation de l’Arduino Core pour ESP32 Dev module en
utilisant l’Arduino Boards Manager :
3) Ajouter le lien. Json de l’ESP32dans l’IDE Arduino :
Dans l’IDE Arduino, aller dans Fichier – Préférences et coller le lien
copié précédemment comme sur l’image ci-dessus. Fermer et redémarrer
65
l’IDE Arduino.
Figure 27:Configuration de l’ESP32 étape 3
4) Tools – Boards Manager : Outils – Type de carte –
Gestionnaire de carte chercher ‘ESP32’ et installer la librairie nommée
ESP32 by ESP community.
Figure 28:installation de la carte ESP32
5) Sélectionner ESP32 Board dans l’IDE Arduino : Dans le menu
Outils – Type de carte sélectionner ESP32 (ESP32 Dev Module) plus bas
dans la liste.
66
6) Choisir le Port sur lequel est connectée la carte ESP32. Laisser
les autres paramètres tels qu’ils sont.
Figure 29:Configuration ESP32 étape 6
7) Installation des bibliothèques :
- Lcd_i2c
- Wifi
- Firbase-esp32
- Servo
- RFID MFRC522
4.2. Interface inscription :
Lors de l’ouverture de notre application mobile, une interface
d’inscription s’affichera comme décrit la figure ci-dessous
67
Figure 30:Interface d'accueilFigure 31:Interface d'inscription
Dans cette interface L’utilisateur doit remplir les trois champs
d’inscriptions par son NOM et numéro et son mot de passe afin qu’il puisse
de créer un compte personnel.
S’il est un utilisateur, il doit d’abord s’inscrire en cliquant sur « SignUp»
qui l’amène vers la page qui contient le formulaire d’inscription comme la
figure présentée ci-dessous.
Si vous n'avez pas de compte, vous pouvez en créer un nouveau.
Pour ajouter un déposant, renseigner les champs et appuyer sur le bouton
Inscription
Nom : chaine de caractères
Téléphone : nombre de 8 chiffres
68
Mot de passe : Format chaine de caractère
Figure 32 : Interface compte crée
En cas d’erreur s’affichera comme décrit la figure ci-dessous :
69
Figure 33:Interface d'inscription en cas d’erreur
4.3. Interface login :
L’utilisateur doit remplir les deux champs d’authentification par son
numéro et son mot de passe afin qu’il puisse accéder à son espace privé.
L’interface suivant présente l’authentification des utilisateurs via
l’application mobile
Figure 34:Interface d’authentification
Avant toute opération, l’utilisateur doit tout d’abord s’authentifier.
Cette opération se base sur la saisie du couple login et mot de passe
d’utilisateur.
Le système vérifie les données et soit il autorise l’accès, soit il affiche
un message d’erreur.
En cas d’échec, un message d’alerte s’affiche :
70
Figure 35:Interface d’authentification en cas d’erreur
Conclusion
A l'issue de cette phase, nous avons pu compléter les fonctions
définies dans cette version, qui répondent à l'objectif d'une application
mobile destinée aux citoyens, lors de ce chapitre nous avons présenté
l'aspect graphique et technique de chaque course ainsi que la mise en
œuvre partie.
71
Chapitre 5 : Release II
72
Introduction
Le deuxième chapitre de réalise est composé par deux sprints le premier
sprint représente une étape importante et prioritaire pour la réalisation de
notre projet et le deuxième sprint présente la partie création de compte.
Ensuite, nous allons détailler les sprints avec Product backlog spécifique
avec l’expression des besoins, la conception et les interfaces réalisées.
1. Analyse de la release II
Au sein de ce sprint, Les user stories va passer par les quatre étapes
du cycle Scrum, plus précisément, l’analyse, la conception, le
développement et on achève les tests.
Figure 36:Diagramme de cas d'utilisation release 2
1.1. Sprint 3 : « Choisir moyen de transport »
L'objectif du sprint 3 est de mettre en place la fonctionnalité
permettant aux utilisateurs de choisir leur moyen de transport préféré
73
dans l'application mobile, offrant ainsi une expérience personnalisée et
facilitant la planification de leurs déplacements.
1.1.1. Sprint backlog
Le tableau suivant : représente les user stories de ce sprint 3
Tableau 20:Backlog sprint 3
Id User Stories Type Semaine
3.1 En tant qu'utilisateur, je veux pouvoir User story 1 Semaine
sélectionner mon moyen de transport
préféré lors de la configuration initiale
de l’application (Bus, Métro, Train)
3.2 En tant qu’utilisateur, je veux consulter User story 1 Semaine
et rechercher les moyens de transport
3.3 En tant qu'utilisateur, je veux planifier User story 1Semaine
le trajet et l’heure.
1.1.2. Expression de besoin :
L'objectif de ce sprint doit permettre aux utilisateurs de définir et de
modifier facilement leur moyen de transport préféré, afin de personnaliser
leurs expériences de planification de trajet et l’heure.
Cette fonctionnalité devrait également offrir des recommandations
pertinentes et des informations adaptées à chaque choix de transport,
améliorant ainsi la pertinence et l'utilité des suggestions fournies par
l'application.
1.1.3. Diagramme des cas d’utilisation du Sprint 3 « Choisir
moyen de transport »
La figure 37 illustre le diagramme de cas d’utilisation du sprint 3
« Choisir moyen de transport » :
74
Figure 37:Diagramme de cas d'utilisation « Choisir moyene de
transport »
1.1.4. Description textuelle
Le tableau suivant fournir une description textuelle détaillée pour
chaque user story du sprint "Choix de Moyen de Transport".
Tableau 21 : Description textuelle de sprint 3
Cas
d’utilisation Choisir Moyen de Transport
Acteur Utilisateur
Pré condition Choisir Moyen de Transport
Post Moyen de Transport choisie
condition
Description Ce cas d’utilisation permettra à l’utilisateur un moyen de
transport
L’utilisateur sélectionner le moyen de transport préféré
: Lors de la configuration initiale de l'application, je devrais
75
Scénario être en mesure de choisir parmi une liste d'options de
nominal transport, telles que Bus, Métro, Train.
Ce choix initial personnalisera les recommandations et
les informations fournies par l'application pour la
planification de mes trajets futurs. De plus, je devrais
pouvoir modifier mon choix à tout moment à partir des
paramètres de l'application, ce qui me permettra de
m'adapter à mes besoins changeants en matière de
déplacement. Lorsque je choisis un moyen de transport,
celui-ci devrait être clairement affiché lors de la
planification de trajets ultérieurs, pour garantir que les
itinéraires recommandés correspondent à mes
préférences. Cette fonctionnalité me permettra d'obtenir
des suggestions plus pertinentes et une expérience de
planification de trajet plus adaptée à mes préférences
personnelles.
1.2. Sprint 4 : « Suivi la localisation en temps réel »
Le Sprint 4 a pour objectif de mettre en œuvre le suivi de la
localisation de métro, bus ou train en temps réel, permettant ainsi une
surveillance et une gestion efficaces des ressources. Cette fonctionnalité
essentielle offrira une visibilité en temps réel sur les déplacements et les
emplacements, favorisant une prise de décision informée et une
optimisation des opérations.
1.2.1. Sprint backlog
Ce tableau représente les user story de sprint 4 :
Tableau 22 : User story de sprint 4
User Story Type Semaine
Recherche sur la Technical story semaine
76
méthode qui détermine
la localisation des
moyennes de transport
Installation des API Technical story semaine
nécessaires
L’étape de Technical story semaine
communication entre la
partie hard et
l’application pour
assurer l’envoie des
données de Gps en
temps réel
En tant que User story semaine
utilisateur, Je veux
suivi la localisation en
temps réel
1.2.2. Expression des besoins :
L’objectif de ce sprint de permettre l’utilisateur de suivi en temps réel
des moyens de transport afin de fournir aux utilisateurs des informations
précises sur la localisation et l'état actuel des véhicules.
L'application affiche une carte interactive avec des marqueurs
indiquant les positions actuelles des véhicules.
Les informations de localisation sont mises à jour en temps réel.
L'utilisateur peut zoomer et de zoomer sur la carte pour voir plus de
détails.
L'application permet à l'utilisateur de sélectionner un point de départ
et une destination.
L'application affiche les options de transport disponibles, en tenant
compte de la position actuelle des véhicules.
77
L'utilisateur peut voir les horaires estimés de départ et d'arrivée en
fonction de la localisation actuelle des véhicules.
1.2.3. Diagramme des cas d’utilisation du Sprint 4
La figure 38 illustre le diagramme de cas d’utilisation du sprint 4 :
Figure 38:Diagramme de cas d'utilisation de sprint 4
1.2.4. Description textuelle
Ce tableau présente une description textuelle détaillée pour chaque
user story du sprint "suivi la localisation en temps réel".
Tableau 23:Description textuelle de «suivi la localisation en temps réel»
Titre suivi la localisation en temps réel
Acteurs utilisateur
Précondition
L’utilisateur consulte les données
Scénario nominal
L’Utilisateur consulte son espace de suivi la localisation en temps
réel
L’Utilisateur clique sur Dashboard « suivi la localisation en temps
78
réel.
Le système affiche le positon de bus sur la carte
2. Conception
Après avoir terminé l’étape de raffinement des cas d’utilisation, nous
passons à la conception de notre application.
Nous présentons les diagrammes de séquence objet réalisés pour ce
sprint.
2.1. Diagramme de séquences
Le diagramme de séquence suivant implique que l'utilisateur choisi un
moyen de transport à localiser. Le contrôleur sollicite ces détails auprès de
l'entité de géolocalisation. Ensuite, l'interface affiche la carte de Google
Maps, où un marqueur est positionné pour représenter les caractéristiques
du bus
Figure 39: diagramme de séquence choisir moyenne de transport
Ce schéma présente la communication pour effectuer une recherche
cartographique :
79
Pour lancer la recherche sur la carte, il est nécessaire d'activer l'interface
de recherche. Une zone de texte s'affichera alors, vous permettant de
saisir l'emplacement souhaité (nom). Une fois la participation validée, les
résultats seront affichés sur une carte géographique (Google Maps).
Figure 40:Diagramme de séquence de suivi la localisation en
temps réel
2.2. Organigramme du programme de la partie hard
L’organigramme suivant simplifié la partie matérielle (hardware) du
suivi de la localisation en temps réel à l'aide d'une carte Arduino Uno et du
module SIM808 :
Cet organigramme peut nécessiter des ajustements en fonction des
fonctionnalités exacte implémenté, des erreurs possibles à gérer, etc…
pour bien comprendre le fonctionnement du module SIM808 et la carte
arduino pour mettre en œuvre cette solution.
80
Figure 41:Organigramme de code arduino de suivi de la
localisation en temps réel
Ce schéma décrit les étapes principales du programme pour le suivi de
la localisation en temps réel. Voici ce que chaque étape implique :
Initialisation des composants : Au démarrage, le programme
initialise la carte Arduino, le module SIM808 (qui gère la communication
cellulaire et le GPS).
Tant que le programme est actif : Cette boucle principale s'exécute
en continu tant que le programme est actif.
81
Lire les données de localisation : Le programme interagit avec le
module SIM808 pour lire les données de localisation fournies par le GPS.
Cela peut inclure la latitude, la longitude, l'altitude, la vitesse, etc.
Mettre à jour les capteurs : Si des capteurs supplémentaires sont
utilisés, le programme peut lire les données de ces capteurs et les mettre
à jour en conséquence.
Transmettre les données : Les données de localisation (et
éventuellement d'autres données) sont transmises via la communication
série (par exemple, UART) vers d'autres dispositifs ou systèmes pour
traitement ou affichage. Cela peut inclure l'envoi des données à un
ordinateur, un smartphone ou un service en ligne.
Fin du programme : Le programme se termine lorsque nous
décidons de l'arrêter ou lorsque nous atteignions une condition de sortie
spécifique.
82
2.4. Diagramme de classe
Les diagrammes de classes sont utilisés pour représenter les classes,
les propriétés et les relations entre les objets d'un système. Chaque classe
est représentée par un rectangle contenant le nom de la classe, ses
propriétés et ses opérations. Les relations entre les classes sont
représentées par des lignes ou des flèches.
La figure suivante présente le diagramme de classe du release 2
Figure 42:Diagramme de classe du release 2
83
3. Réalisation
Dans cette section, nous présenterons quelques-unes des interfaces
développées lors du deuxième Sprint et les étapes de réalisation
matérielle.
3.1. Interface choisir un moyen de transport
L'interface « Sélectionner la méthode d'expédition » donne aux
utilisateurs la possibilité de choisir la méthode d'expédition qui correspond
le mieux à leurs besoins. En proposant plusieurs options, comme le bus, le
métro ou le train, l'interface permet aux utilisateurs de personnaliser
l'expérience en fonction de leurs préférences et de la nature de leur
déplacement. Grâce à des icônes intuitives et des descriptions claires pour
chaque mode de transport, les utilisateurs peuvent prendre des décisions
éclairées qui tiennent compte des distances, des retards et des spécificités
de chaque option. Une fois le moyen de transport sélectionné, les
itinéraires et horaires respectifs peuvent être affichés, ce qui facilite la
planification et la navigation de leur voyage. En somme, l'interface
"Choisir moyen de transport" contribue à rendre l'expérience de
déplacement plus pratique, personnalisée et efficace pour les utilisateurs.
84
Figure 43: les interfaces de choisir moyen de transport
3.2. Interface suivi la localisation en temps réel
L'interface « Suivi de localisation en temps réel » offre aux utilisateurs
une fenêtre instantanée sur les trajets en cours, leur permettant de
surveiller avec précision la position et les mouvements du véhicule sur une
carte interactive. Avec des mises à jour en temps réel, cette interface
fournit des informations actualisées sur la position, la vitesse et la
direction, offrant ainsi une visibilité complète sur les trajets en cours. Les
utilisateurs peuvent zoomer et faire défiler la carte pour obtenir des
détails plus détaillés, tandis que des marqueurs dynamiques et des
chemins tracés garantissent une compréhension claire de l'itinéraire
emprunté. Qu'il s'agisse de suivi de transports en commun, de
surveillance de véhicules ou de suivi de mouvements, cette interface
permet aux utilisateurs de rester
informés et connectés en temps
réel.
85
Figure 44: les interfaces de suivie la localisation en temps réel
3.3. Collecter les données Firbase :
Dons cette partie nous allons situer les étapes de collecter les données
La mise en place d'un projet Firebase implique plusieurs étapes clés
pour configurer et utiliser les services fournis par Firebase. Voici un aperçu
des étapes typiques pour démarrer un projet Firebase :
1. Création d'un compte Firebase :s’inscrire sur la plateforme
Firebase (https://firebase.google.com/).
Figure 45: Création d'un compte Firebase
2. Création d'un projet Firebase : Une fois connecté à notre compte
Firebase, créer un nouveau projet en lui donnant un nom et une URL
unique.
86
Figure 46: Création d'un compte Firebase
3. Connecter Firebase avec code Arduino :
Tout d'abord, nous créons un espace Firebase sécurisé pour la
référence en temps réel et le stockage des données requises.
Après la réalisation de notre espace, nous allons obtenir deux
références pour la connexion entre la carte arduino et la base de données
représentée dans la figure suivante.
Figure 47:références de l’autorisation et de l’host sur
programme Arduino
Et enfin la connexion entre Firebase et la carte arduino forme une
table de donnée en temps réel qui réalise la communication entre la partie
hard et l’application de notre projet.
87
Figure 48: table de donnée en temps réel
3.4. Câblage arduino et sim808
Cette figure présente Le câblage entre un Arduino et un module
SIM808 peut varier en fonction de la configuration exacte de notre projet.
Cependant, voici un schéma de câblage de base pour connecter un
Arduino à un module SIM808 :
88
Figure 49: Câblage arduino et SIM808
Alimentation(VCC et GND) :
Connecter le fil rouge (VCC) du module SIM808 au pin 5V de
l'Arduino.
Connecter le fil noir (GND) du module SIM808 au pin GND de
l'Arduino.
Communication série (TX et RX) :
Connecter le fil TX du module SIM808 (transmission) au pin RX de
l'Arduino (Pin 10).
Connecter le fil RX du module SIM808 (réception) au pin TX de
l'Arduino (Pin 11).
3.5. Test du module GPS
Le système GPS comprend au moins 24 satellites en orbite autour de
la Terre à une distance d’environ 20 000 km. Il fonctionne par
triangulation et permet de déterminer facilement la localisation par
latitude et longitude.
89
Figure 50 : Test du module gps
Conclusion
A l'issue de cette phase, nous avons pu compléter les fonctions définies
dans cette version, répondant à l'objectif d'une application mobile pour les
citoyens, dans ce chapitre nous avons présenté cet aspect graphique et
technique de chaque course ainsi que la mise en œuvre.
90
Chapitre 6 : Release III
91
Introduction
Ce chapitre fait l'objet d'une présentation du dernier release du projet.
L'étude de ce release Couvre l'analyse, la conception, la réalisation et
les tests fonctionnels.
Ce release vise à développer la dernière partie de notre projet, à
savoir :
Réserver ticket
Ouverture barrière
1. Analyse de la release II
Dans cette version, les user stories passeront par les quatre phases du
cycle Scrum, plus précisément l'analyse, la conception, le développement
et nous réalisons les tests.
Dans cette section, nous présentons la phase d'analyse à l'aide d'un
diagramme de cas
Ensuite, l’utilisation d’une description textuelle est la plus importante de
toutes.
La figure suivante présente le diagramme de cas d’utilisation générale de
la troisième release :
92
Figure 51: Diagramme de cas d'utilisation Release 3
1.1. Analyse de sprint 5 « Réserver ticket »
1.1.1. Backlog du sprint
Ce tableau simplifié représentant le backlog du sprint 5 pour la
fonctionnalité "Réserver un ticket". Ce tableau présente les éléments clés
du backlog, y compris les histoires utilisateur, les tâches associées, les
états de progression et les priorités.
Tableau 24 : Backlog sprint de sprint 5
ID User Story ID Tâche Estimation
Tâch (Jour)
e
5.1 Interface de sélection de 7 jours
date/heure
5 Réserver
ticket
5.2 Gérer la réservation de ticket 7 7 Jours
5.3. Paiement 8 4 jours
5.4 Afficher une confirmation de 9 2 jours
réservation
1.1.2. Expression de besoin
Objectif du sprint : Mettre en place la fonctionnalité de réservation
des tickets pour permettre aux utilisateurs de sélectionner et de réserver
des voyages en fonction du moyen de transport, de la date et de l'heure
souhaités.
93
Histoire utilisateur : Réserver un ticket En tant qu'utilisateur, je
veux être capable de réserver un ticket pour un voyage spécifique en
sélectionnant le moyen de transport, la date et l'heure, afin de planifier
mes déplacements en conséquence.
1.1.3. Diagramme des cas d’utilisation « Sprint 5 :
Réserver un ticket »
Ce diagramme de cas d'utilisation simplifié concerne Sprint 5
"Ticketing". Ce schéma illustre l'interaction entre les acteurs (utilisateurs)
et le système (fonction ticketing) :
Figure 52: Réserver ticket
1.1.4. Description textuelle « Sprint 5: Réserver un
ticket»
Ce tableau décrit de manière textuelle les différentes étapes et
conditions du cas d'utilisation "Réserver un ticket" dans le sprint 5.
Tableau 25 : Description textuelle « Sprint 5: Réserver
un ticket»
Cas Réserver un ticket
d’utilisation
Acteur Utilisateur
Pré Accéder à l’application (utilisateur)
94
condition
Post Le ticket est réservé et enregistré dans la base de
condition données.
Description Les utilisateurs réservent leurs billets pour un trajet en
précisant le moyen de transport, la date et l'heure. Le
système vérifie la disponibilité de la chambre, enregistre la
réservation et affiche la confirmation. Si une erreur se
produit, le message approprié s'affichera.
6.L’appui sur le bouton « réserver ».
7.L’interface de réserver ticket s’affiche.
8.L’utilisateur sélectionner moyenne de transport
Scenario 9.L’utilisateur sélectionner l’heur et le date
nominal 10. Paiement
11. L’utilisateur appui sur le bouton « payer ».
12.L’enregistrement de réservation
2. Réalisation
Dans cette section, nous allons présenter quelques interfaces qui sont
développées dans le Sprint 5 ainsi que la partie hard
2.1. Teste afficheur LCD_I2C :
Dans la partie suivante, nous allons présenter la communication entre
la carte Esp32 et afficheur LCD_I2C et nous allons afficher les messages
préférés sur l’écran LCD-I2C
La figure 53 présente le code de l’affichage local sur l’LCD :
95
Figure 53:Le Code de l’affichage sur LCD_I2C
La figure suivante présente le code de scan de l’adresse hexadécimal
du module I2C de l’LCD :
Figure 54: Le Code de scan module I2C de l’lcd
2.2. Simulation afficheur LCD_I2C :
Cette figure représente la simulation de La carte ESP32 avec LCD I2C
96
Figure 55: Scan I2C de l’lcd
Figure 56: Affichaged’un message sur l’écran LCD
2.3. Câblage RFID et ESP32
Le câblage entre un lecteur RFID (Radio-Frequency Identification) et la
carte ESP32 peut varier en fonction de la configuration exacte de notre
projet. Cependant, voici un schéma de câblage de base pour connecter un
lecteur RFID à la carte ESP32 :
97
Figure 57: Câblage RFID et ESP32
Pour la communication de l’ESP32 et la lecteur RFID MCF522 nous
allons utiliser l’interface SPI
La figure suivant représentela communicationdes broches du lecteur
RFID MCF522 aux broches correspondantes de l'ESP32 :
o MISO du MCF522 -> GPIO du SPI MISO de l'ESP32.
o MOSI du MCF522 -> GPIO du SPI MOSI de l'ESP32.
o SCK du MCF522 -> GPIO du SPI SCK de l'ESP32.
o SS (Slave Select) du MCF522 -> GPIO du SPI CS/SS de l'ESP32.
o RESET du MCF522 -> GPIO de réinitialisation de l'ESP32.
Nous avons Connecté également la masse (GND) du MCF522 à la
masse (GND) de l'ESP32 pour une référence commune.
Figure 58: Cablage RFID MCF522 et ESP32
98
Nous avons utilisé la bibliothèque SPI pour configurer et communiquer
avec le lecteur RFID MCF522 et la bibliothèque "MFRC522" pour faciliter
la communication RFID.
Voici le code pour lire une carte RFID avec le lecteur MCF522 et
l'ESP32 :
Figure 59:Code MCF522 et l'ESP32
La figure suivante présente les résultats sur le moniteur série
99
Figure 60: Résultats de MFRC522 RFID sur le moniteur série
2.4. Câblage servomoteur et ESP32
Pour connecter un servomoteur à une carte ESP32, nous devrons
établir trois connexions essentielles : l'alimentation 5V, la masse (GND),
et le signal de contrôle. Voici comment nous allons procéder pour câbler
un servomoteur à la carte ESP32 :
Figure 61:Câblage Servo-moteur
2.5. Les interfaces de l’application mobile de Sprint 3
Dans le cadre du Sprint 3, nous avons développé des nouvelles
interfaces pour notre application mobile afin d'améliorer l'expérience
utilisateur.
Ces interfaces visent à offrir aux utilisateurs une navigation plus fluide
et des fonctionnalités améliorées.
2.5.1. Interface de paiement :
Dans le cadre de l'interface de paiement Sprint 5, nous avons
simplifié le processus de paiement pour offrir une expérience utilisateur
plus rapide et plus intuitive.
Cette interface permet aux utilisateurs de choisir leur mode de
paiement préféré et de finaliser facilement leur transaction.
100
Figure 62: Interface de paiement
2.5.2. Interface de suivi la localisation en temps réel :
L'interface de localisation en temps réel, mise en œuvre dans Sprint 6,
fournit une expérience de suivi en temps réel pour nos utilisateurs. Grâce
à cette interface, les utilisateurs peuvent suivre la localisation des
véhicules en temps réel sur une carte interactive, permettant une gestion
plus efficace et une coordination plus facile des opérations.
101
Figure 63: Interface de suivi la localisation
Conclusion
Au cours de cette phase du projet, nous avons conçu et mis en œuvre
notre troisième version. Il se compose de deux sprints, un pour la
facturation et un pour le suivi de la localisation des véhicules en temps
réel, dans ce chapitre nous analyserons les sprints ainsi que la conception
et final c'est que nous déploierons les interfaces de notre mobile app et
nos étapes de réalisation de prototype.
102
103