Académique Documents
Professionnel Documents
Culture Documents
A celle qui m’a toujours soutenu, supportant mes sauts d’humeur et mon stress,
inconditionnellement présente auprès de moi, ma maman NAJIA.
A mon cher papa MOHAMMED, sans qui je ne serai jamais arrivé là, cet homme qui a
toujours su être présent pour moi, à tout moment et en toutes circonstances, faisant tous les
sacrifices possibles, soucieux toujours de me propulser vers le meilleur, un très grand merci
papa.
A mes cousins CHAFIK et HANANE qui sont toujours été présents pour les bons conseils.
Votre affection et votre soutien m’ont été d’un grand secours au long de ma vie
professionnelle et personnelle.
A tous mes amis, vous qui ensoleillez ma vie, et avec qui j’ai ce très grand plaisir de partager
des instants de bonheur continu.
Yousra
Nulle dédicace ne saurait exprimer l’amour, la reconnaissance et le respect que j’ai toujours
éprouvés à votre égard. Ce travail est le fruit d’innombrables sacrifices que tu as adhérés
pour me permettre de franchir cette étape de ma vie. Tu t’es dépensé pour moi sans compter.
Que cet humble travail témoigne mon affection et ma reconnaissance.
À ma chère mère,
Aucune dédicace ne saurait exprimer mon amour, mon respect, mon affection et ma
considération pour toi, pour tous les sacrifices que tu as consentis pour mon éducation et mon
bien-être. J’espère être à la hauteur de ce que tu m’as inculqué, tout en sachant que tout ce
que je pourrai faire ne peut égaler ce que tu m’as donné. Que Dieu, le tout puissant, vous
garde et vous procure bonheur et santé.
À toute ma famille,
Vous m’avez toujours fait preuve d’amour et d’affection, c’est pour cette raison que je vous
remercie pour vos encouragements et je vous souhaite bonheur, santé et prospérité à vous et
vos enfants.
Najia
Nous voudrions également exprimer notre ample gratitude envers les membres de jury
qui ont bien voulu nous donner l’honneur d’évaluer et d’apprécier ce travail ainsi que pour leur
transparence et leurs efforts à garantir les meilleures conditions lors de la soutenance.
Au début de ce projet, on a optimisé un système d’irrigation qui il existe dans notre faculté en
changeant leur principe de fonctionnement : on détermine en temps réel le moment de départ et
de la fermeture de la pompe et les jours que nous voulons activer ce paramètre.
L’objectif principal de ce projet est réalisé et conçu une application Android pour piloter à
distance le système que nous avons optimiser. Cette application permet de contrôler notre
système indépendamment ou l’endroit où l’on se trouve.
Le fruit de ce travail sera une application mobile Android nommée « SmartIrrigation », qui va
afficher les données météorologiques de notre jardin et contrôler à distance notre système par
deux modes : soit manuel ou par une planification.
Summary
This document is the result of our work on the internship at Univalor Morocco in the Dhar El
Mehraz Faculty of Sciences. This internship is considered a technological and professional
program designed to provide comprehensive and practical training in the field of Industry 4.0.
At the beginning of this project, we optimized an irrigation system that exists in our faculty by
changing their operating principle: we determine in real time the time of departure and closure
of the pump and the days that we want to activate this parameter.
The main objective of this project is realized and designed an Android application to remotely
control the system we have optimizing. This application allows us to control our system
independently or where we are.
The result of this work will be an Android mobile application called «SmartIrrigation», which
will display the weather data of our garden and remotely control our system by two modes:
either manual or by planning.
1. Introduction ...................................................................................................................... 2
5 Problématiques ................................................................................................................. 7
7 Charte de projet................................................................................................................ 7
9 Conclusion ....................................................................................................................... 12
Chapitre II : Optimisation du système d'irrigation
1 Introduction .................................................................................................................... 13
RTC3231.................................................................................................................. 19
Définition ............................................................................................................. 19
Fonctionnement .................................................................................................. 19
Régler l’heure...................................................................................................... 19
4 Conclusion ....................................................................................................................... 23
Chapitre III : Modélisation et Conception de l'application
1 Introduction .................................................................................................................... 24
3 L’UML ............................................................................................................................. 24
5 Analyse ............................................................................................................................ 26
8 Conclusion ....................................................................................................................... 33
Chapitre IV : Réalisation
1 Introduction .................................................................................................................... 34
2 Environnement de développement................................................................................ 34
Android.................................................................................................................... 34
Historique ............................................................................................................ 34
Architecture Android ......................................................................................... 35
6 Conclusion ....................................................................................................................... 50
Conclusion générale…………………………………………………………………………51
En général, on parle de « l'irrigation » pour les petites surfaces (jardinage), réserver le terme «
irrigation » pour les grandes surfaces (champ de l'agriculture, de l'horticulture), mais il n'y a pas
de norme dans ce domaine.
L'irrigation à la main est fastidieuse, perde du temps et dispendieux en eau. Afin d'assurer
que nos plantes restent vertes et saines, pour gagner du temps, nous permet de partir en vacances
en toute tranquillité, plus besoin de demander de l’aide à nos voisins ou à la famille, voilà
pourquoi nous réaliserons le projet du système irrigation à distance qu’on peut le piloter par
deux méthodes : compteur lié en horloge en temps réel et application Android.
Dans ce contexte le travail développé dans ce projet est d’optimiser un système d’irrigation qui
irriguer d’une façon manuelle, on le rendre programmé par une planification, et développée une
application Android pour même besoin. Notre système facilite la vie humaine et soulevé le
problème de suivre le jardin. En fin, l’internet des objets et Android a prouvé sa présence dans
tous les domaines.
1. Introduction
Du 03 mars au 29 juin 2022 on a fait un stage professionnel d’une durée de cinq mois chez
UniValor Maroc au faculté science Dhar El Mahraz, portant sur l’implémentation d’un système
d’irrigation automatique.
Dans ce chapitre, après une brève présentation de UniValor Maroc, nous allons cadrer notre
projet, en définissant le contexte, la problématique, l’objectif souhaité, et la solution proposée
et en synthétisant tous cela dans une charte de projet.
dans les zones arides, Elle permet de choisir des variétés à haut rendement en appliquant les
fertilisants nécessaires et rend ainsi ces cultures économiquement intéressantes. Elle a pour effet
de favoriser l’augmentation des rendements, et d’une façon générale d’intensifier et de stabiliser
la production en se libérant des variations climatiques. La figure 2 montre clairement l’intérêt
de l’irrigation sur le rendement des cultures irriguée et des cultures pluviale. [1]
Irrigation localisée
L’irrigation localisée ou micro-irrigation (Figure4) consiste à apporter l’eau sur une partie
du sol seulement par petites doses fréquentes. A la limite, la compensation de
l’évapotranspiration se fait quotidiennement et l’eau est apportée par des distributeurs, ce qui
crée dans le sol des zones humides appelées « bulbes d’arrosage ou d’humidification » [1].
3 L’origine du projet
Il existe dans notre faculté des sciences DHAR EL MAHRAZ un système d’irrigation à base
d’ESP32 qui exécute l’irrigation par un compteur programmé d’une façon manuelle. On se voit
d’améliorer, développer ce système et le piloter à distance par une application Android.
4 Objectif du projet
Objectif général du projet
L’objectif général du projet est de participer au développement du secteur agricole du Maroc
par la proposition d’un système d’irrigation efficace qu’on peut le contrôler et le piloter à
distance.
5 Problématiques
L’eau entre dans les besoins fondamentaux de toutes les plantes. Bien arroser, selon les besoins
de chaque plante est donc le secret de la réussite d’un beau jardin. Mais supposons que vous
voulez voyager pendant quelques semaines dans ce cas-là il sera nécessaire d’arroser votre
jardin à distance.
6 Solution proposée
• Optimisation d’un système d’irrigation par intégration d’une horloge en temps réel
qui permet de planifier le jour et le temps de démarrage et l’arrêt de la pompe.
• Développement d’une application Android mis en communication WIFI qui permet
de contrôler et gérer l’arrosage à distance.
7 Charte de projet
La charte du projet regroupe les informations relatives à la définition du projet en termes
d’objectifs, délai, acteurs et gains attendus :
Charte du projet
Titre du projet
Piloter un système d’irrigation à distance
Origine
Système d’irrigation installés dans la faculté.
Département
concernée Physique.
• Définition 1 : Internet des Objets est un réseau qui relie et combine les objets avec l’Internet
suivant des protocoles qui assurent leur communication et échange d’informations à travers une
variété de dispositifs.
• Définition 2 : L’Internet des objets peut être défini aussi comme étant un réseau de réseaux
qui permet, via des systèmes d’identification électroniques normalisés et unifiés, et des
dispositifs mobiles sans fil, d'identifier directement et sans ambiguïté des entités numériques et
des objets physiques et ainsi, de pouvoir récupérer, stocker, transférer et traiter les données sans
discontinuité entre les mondes physiques et virtuels.
• Définition 3 : L’Internet des objets est une extension de l'Internet actuel envers tout objet
pouvant communiquer de manière directe ou indirecte avec des équipements électroniques eux-
mêmes connectés à l’Internet.
Dans le cadre de notre travail, nous adoptons la définition proposée dans qui est : "L’Internet
des Objets (Ido) se définit comme un réseau mondial de services interconnectés et d’objets
intelligents de toutes natures destinés à soutenir les humains dans les activités de la vie
quotidienne grâce à leurs capacités de détection, de calcul et de communication. Leurs aptitudes
à observer le monde physique et à fournir des informations pour la prise de décision, seront
partie intégrante de l’architecture de l’Internet du futur".
Couche de Perception
La couche de perception (peut être appelé "couche de périphérique", "couche sensorielle" ou
"couche de reconnaissance") qui est la couche la plus basse de l'architecture IoT, est
responsable de la capture des informations du monde réel et leur représentation au format
numérique. Elle inclut les technologies utilisées pour la détection (collecte des données de
l’environnement), l’identification (identification d’objets), l’activation (réalisation données
détectées) et la communication (établissement de la connectivité entre appareils intelligents
hétérogènes) avec un minimum d'interaction humaine. Selon les fonctionnalités qu'elle assure,
cette couche peut être divisée en deux sous-couches : les nœuds de perception (ou nœuds
sensoriels) et le réseau de perception (comme réseau des capteurs).
Couche de Transmission
La couche de transmission (appelée aussi « couche de transport » ou « couche réseau ») est
responsable de transmission des données collectées par les nœuds de perception à l'unité de
traitement de l'information (ou unités de prise de décision de haut niveau) à travers un réseau
ou une interconnexion des réseaux. Cette couche permet alors une intégration d'une variété de
réseaux, de technologies et de protocoles hétérogènes. Cette couche peut être divisée en trois
sous-couches : réseau d'accès, réseau cœur et réseau local et étendu
Couche Application
C’est la couche la plus haute de l’architecture IoT visible par l’utilisateur final. La couche
application a pour but de gérer et de fournir les applications globales en se basant sur la les
informations collectées par la couche de perception. Elle fournit aux utilisateurs finaux un
accès aux services personnalisés sur le réseau, en fonction de leurs besoins, grâce à
l’utilisation de divers appareils mobiles et équipements terminaux. Cette couche peut être
divisée en deux sous-couches : couche de support d’application et applications Ido.
3 : les systèmes qui traitent les données vers / depuis les choses.
D’une autre manière, nous pouvons définir également un objet connecté comme un équipement
possédant les sept attributs suivants :
• Capteurs
• Connectivité à internet
• Processeurs
• Efficacité énergétique
• Coût optimisé
• Fiabilité
• Sécurité
L’importance d’IoT
L’importance de l’IoT devient considérable, puisqu’il s’agit de la première véritable évolution
de l’Internet. Celle-ci donnera lieu à des applications révolutionnaires capables de transformer
profondément notre mode de vie, et notre façon d’apprendre, de travailler et de nous divertir.
L’IoT a déjà doté l’Internet de capacités sensorielles (température, pression, vibration,
luminosité, humidité, tension), ce qui nous permet d’anticiper plutôt que de simplement réagir.
En outre, l’Internet couvre maintenant des endroits jusqu’alors inaccessibles. Des patients
ingèrent même des dispositifs connectés qui aident les médecins à diagnostiquer certaines
pathologies et à en déterminer les causes. Des capteurs extrêmement miniaturisés peuvent être
placés sur des plantes, des animaux et des sites géologiques, et connectés à l’Internet.
• Une étiquette physique identifie chaque objet / une étiquette virtuelle identifie chaque
lieu.
• Les informations sur les objets sont gérées dans des pages existantes du web.
9 Conclusion
Dans ce chapitre, nous avons réalisé un cadrage du projet, en précisant le contexte, la
problématique, l’objectif, les acteurs ainsi qu’une proposition de solution.
1 Introduction
L’optimisation des systèmes permet de trouver une configuration idéale, à savoir l’obtention de
gain, d’effort, de temps ,d’argent ,d’énergie qui rend le fonctionnent de ce système satisfaisant
.Dans ce chapitre on va travailler sur l’optimisation d’un système d’irrigation ,donc nous
commençons par une description bien détaillée de notre système d’irrigation de base avant
de passer à l’optimisation de ce système.
Alimentation
Le système et alimenter à l’aide d’un adaptateur qui reçoit une tension de 220V dans un secteur
d’alimentation situe dans la faculté et délivre une tension de 3,3 V demande par L’ESP32.
Les pompes et les électrovannes aussi sont alimenter de la même façon mais cette fois
l’adaptateur reçoit une tension de 220V et délivre une tension de 12V.
Bloc d’entrée
Bloc de traitement
Dans notre système c’est la carte ESP32 qui joue le rôle de bloc de traitement car elle
permet de collecter les informations via les capteurs pour pouvoir ensuit contrôler l’ensemble
du système en fournissant l’ordre nécessaires aux organes de sortie d’une façon manuelle au
à distance.
Bloc de sortie
Ce bloc comprend un afficheur LCD permettant de visualiser tonte les séquences de
l’exécution des différentes tâches. Nous avons aussi certains LEDS relié a les broches de la
carte ESP32 qui fonctionnent comme des informations visuelles indiquant l’état en réservoir,
pompe et électrovannes, La commande de la pompe est affectée à l’aide de compteur ; lors de
démarrage de ce dernier il doit actionner un relais qui est relie à notre pompe. Ensuite après la
mise en marche de la pompe on peut basculer entre deux buttons qui sert à actionner deux relais
relient à deux électrovannes ses deux boutons nous permis de choisir la zone qui doit être
irriguer (zone A, zone B ou bien les deux en même temps).
Principe de fonctionnement
D’abords le système sert de contrôler l’irrigation de deux zones A et B. Alors comment
le système fonctionne ?
En entré on a :
Un Capteur d’humidité, deux capteurs de sol, un capteur de niveau et 7 boutons qui sert à
régler divers paramètres.
En sortie :
Afficheur LCD, Pompe, Electrovanne, LED (informations visuels). D’abord à chaque instant
on reçoit des informations sur l’humidité (sol et air), température d’air, le niveau d’eau dans
notre bassin et l’états de pompe et des électrovannes (ON/OFF). Lorsque le capteur d’eaux
détecte que le niveau d’eau est en « haut » l’afficheur affiche « niveau haut » avec l’allumage
d’une led spéciale pour ce niveau, aussi pour le niveau « bas » l’afficheur affiche « niveau bas
» avec l’allumage d’une deuxième led spéciale pour ce niveau, et si on a un bassin qui est vide
l’afficheur affiche « pas d’eau », de plus l’afficheur toujours affiche le pourcentage d’humidité
de sol et d’air. Et à l’aide d’un bouton « SET » on peut se balancer dans l’afficheur LCD pour
Afficher les informations de chaque capteur.
Pour régler le temps de marche de la pompe on a quatre boutons qui sert à actionner un
compteur ou le premier bouton sert à incrémenter le compteur et faire un start, le deuxième sert
à décrémenter le compteur et de faire un stop, le troisième c’est un SET sert de se balancer entre
4 paramètres (secondes, minutes, heures, pompe), et le quatrième c’est un RESET qui sert à se
remise à zéro le système. Une LED s’allume lors de la mise en marche de la pompe.
Aussi on deux boutons chaqu’un commande une électrovanne ; une électrovanne qui se
trouve en zone A et le deuxième dans la zone B. aussi on a deux led chaqu’une est en relation
avec la mise en marche de l’électrovanne (A et B).
électrovannes, aussi on peut recevoir les mêmes informations délivrées par l’afficheur LCD et
les leds dans notre interface d’application. [2]
Partie programme
A part la programmation de l’application portable, aussi nous avons programmé dans le logiciel
Arduino un programme principal qui assure le fonctionnement de notre capteur DHT22, capteur
de sol, capteur de niveau, la commande de la pompe et les électrovannes à l’aide des boutons
et l’affichage des informations à l’aide de LCD (+leds) .ci-dessous on a les organigrammes qui
résument notre partie programmation.
3 Optimisation du système
La partie à optimiser
Pour régler le temps de marche de la pompe on a quatre boutons qui sert à actionner un
compteur, mais la difficulté rencontrée, on reste toujours besoin un personne pour déplacer à
chaque fois au système pour régler le compteur.
RTC3231
Définition
Un module Real Time Clock (RTC) est un composant électronique qui permet de garder l’heure.
Il est utile pour des applications qui nécessitent une cadence de cycles très précise ou pour
envoyer des impulsions lorsque l’alarme programmée sonne. Cette dernière caractéristique peut
s’avérer utile pour réveiller un Arduino endormi (deep sleep mode).
Fonctionnement
Le RTC est un composant électronique qui permet de garder une heure précise. Il est possible
de le régler de plusieurs manières dépendant de la librairie téléchargée. L’intérêt de ces modules
vient du fait qu’ils sont souvent accompagnés d’une pile qui permet de garder l’heure même
lorsqu’ils ne sont plus alimentés par le microcontrôleur. Si l’on veut réveiller un Arduino
endormi (deep sleep mode), il est nécessaire d’avoir un RTC avec une alarme qui puisse
déclencher une interruption. C’est pourquoi j’ai choisi un RTC avec une puce DS3231. Malgré
tout, plusieurs modèles existent dans le commerce et il faut choisir le bon.
Régler l’heure
On ajoute le RTClib-master à notre bibliothèque Arduino.
Description de la solution
Schéma de montage dans FRITZING
Le schéma en utilisant FRITZING
Principe de fonctionnement
Le principe de fonctionnement de ce nouvel compteur est comme suit : on a quatre boutons qui
sert à actionner ce compteur, le premier bouton (Up) sert à incrémenter cette minuterie et
balancer entre ces quatre pages, le deuxième (Sel) sert à balancer entre les éléments des pages
et enregistrer les données de ce compteur, pour le troisième bouton (Down) sert à décrémenter
La deuxième page est l’interface ON/OFF, ici nous pouvons modifier les temps de marche et
d’arrêt de la pompe : on appuyé sur le bouton de sélection pour entrer dans le sous menu, une
flèche sera placée devant chaque élément, on incrémenter et dés incrémenter par Up/down
pour régler l’heure, la minute et la seconde.
Nous introduisons une nouvelle page ou nous pouvons sélectionner le jour pour activer le relais
et cela fonctionne de la même manière que les autres :la flèche indique l’élément (Lundi, Mardi,
Mercredi ……), si vous appuyez sur le bouton Up, vous mettrez un 1 ce jour sera activé. Si
vous appuyez sur le bouton Down, vous mettrez un 0 et le jour sera désactivé.
Partie programme
C’est une partie d’intégration du RTC dans le système. Nous avons connecté le RTC et le LCD
en même temps au bus i2c (analogique 21 SDA, analogique 22 SCL).
Après, cette opération d’intégration, nous avons téléversé un nouveau programme qui contient
la planification de temps et de jour pour activer et désactiver la pompe. On peut établir
finalement le bon fonctionnent de système.
4 Conclusion
Dans ce chapitre nous avons pu optimiser notre système d’irrigation de base avec lequel on a
pu entamer ce travail, cette optimisation était à l’aide de différentes critères (critères
d’optimisation) cependant elle n’est pas unique alors ce système est renouvelable.
1 Introduction
La conception de toute solution informatique est d’une grande importance, elle doit être traitée
avec rigueur et précision, car elle constitue la base du système à développer. Avant de s’engager
dans la conception, il est impératif de passer par la phase d’analyse qui permet d’identifier les
différents acteurs qui interagissent avec le système ainsi que leurs besoins.
Puis on passe à la conception, qui en s’appuyant sur les résultats de la phase d’analyse, donnera
la description détaillée du système ciblé et des objectifs à atteindre.
Pour ce faire nous avons adopté la conception avec l’UML (UnifiedModelling Language), qui
permet de bien représenter la dynamique d’une application par la série des diagrammes qu’il
offre.
Notre application mobile et pour la commande d’irrigation à distance basé sur le Cloud. Nous
avons choisi le service Cloud Realtime database qu’offre la plateforme Google Firebase pour
sa simplicité, sa facilité à mettre en œuvre ainsi que la sécurité qui est assuré grâce aux comptes
personnels des utilisateurs.
3 L’UML
Définition
UML traduit en « langage de modélisation objet unifié » est un langage de description orienté
objet qui permet de modéliser une application selon une vision objet. Un objet est décrit par les
attributs qui le compose et les traitements, appelé méthodes, qui peuvent lui être appliqués. [3]
Diagrammes d’UML
UML propose 9 diagrammes de modélisation, réparties sur trois axes du niveau conceptuel
La modélisation proposée par le langage UML se réalise principalement sous forme graphique,
en utilisant divers types de diagrammes spécifiques, répartis en trois groupes, comme l’illustre
la figure (19) [5] :
Analyse
Identification Diagramme de
des besoins cas d’utilisation
Identification
des acteurs
Conception
Diagrammes de
séquences
Diagrammes de
classes
5 Analyse
Il s'agit d'une étape cruciale dans la réalisation d'une application donnée. Le futur d'une
application dépend beaucoup de cette phase, elle nous permet d'éviter le développement d'une
application non satisfaisante. Pour cela le client et le développeur doivent être en étroites
relations, voire avoir un intermédiaire entre eux.
La relation d’inclusion (include) : Elle indique que le cas d’utilisation source contient aussi
le comportement décrit dans le cas d’utilisation destination. Cette relation permet de
décomposer des comportements et de définir les comportements partageables entre plusieurs
Cas d’utilisation.
La relation d’extension (Extend) : Elle indique que le cas d’utilisation source ajoute son
comportement au cas d’utilisation destination. L’extension peut être soumise à des conditions.
Lors de la phase d’analyse nous avons pu identifier les acteurs ainsi que les cas d’utilisation
associés à ces derniers. Ce qui nous donne l’opportunité d’élaborer le diagramme des cas
d’utilisation suivant :
Acteurs et rôles
Tableau 1: Acteurs et rôles
Acteur Rôles
Utilisateur Authentifier
Consulter les informations
Gérer le jardin par deux fonctionnements : manuel
ou par une planification
Diagramme
6 Diagramme de séquence
Le diagramme de séquence montre quels sont les objets qui participent à l’exécution du cas
d’utilisation et quels sont les messages qu’ils échangent : description des interactions entre les
objets d’un point de vue temporel
Température de l’air.
Humidité de l’air.
Humidité du sol.
Niveau d’eau dans le bassin.
Planification du système
But Gérer par planification la pompe
Acteur Utilisateur
Précondition Application Android
Scénario normal 1. L’utilisateur détermine le temps et choisir les jours d’activation de la
pompe.
2. L’utilisateur détermine le temps et choisir les jours de désactivation
de la pompe.
3. L’application envoi la demande vers le cloud Firebase lorsque le temps
programmé est arrivé.
4. Le cloud Firebase envoi la demande (d’activation et désactivation) au
système.
5. Le système exécute l’action
Scénario 1.L’utilisateur n’a pas établie la connexion WiFi.
d’exception 2.Problème dans le fonctionnement de la pompe.
3.Problème dans la carteESP32.
7 Diagramme de classes
Diagramme de classes : représente la description statique du système en intégrant dans chaque
classe la partie dédiée aux données et celle consacrée aux traitements. C'est le diagramme pivot
de l'ensemble de la modélisation d'un système.
8 Conclusion
Dans ce chapitre, nous avons introduit les fonctionnalités de notre application. Pour les
atteindre, nous avons proposé une solution fondée sur une analyse et une conception modélisée
à l’aide du langage de modélisation unifié UML. Pour cela, nous avons défini l’acteurs de notre
application, les tâches qu'il assure et les scénarios associés à chaque tâche. Nous avons élaboré
Le diagramme de cas d’utilisation, élaboré les diagrammes de séquence et le diagramme de
classe générale. Le but de ce chapitre est de donner une vue panoramique et de rendre les choses
plus claires et concrètes, Finalement, la conception nous a aidé à expliquer et mettre le
projet compréhensible chez les lecteurs.
Dans le prochain chapitre nous allons présenter la phase de réalisation de notre application et
leurs outils de développement.
1 Introduction
Ce chapitre est consacré à la partie pratique de la mise en œuvre de notre application
mobile.
Sur le thème de la création d’une application mobile pour la commande de système d’irrigation
basé sur le Cloud. Il comprend une description des outils de développement utilisés comme
l’environnement de travail Android Studio avec le langage de programmation Java et le langage
2 Environnement de développement
Dans cette section, nous définissons le système d'exploitation Android et l'outil de
développement Android Studio. Les outils que nous utiliserons pour développer notre
application mobile.
Android
Historique
Si je dis "Android", une grande majorité d'entre vous diront "Google". Vous avez raison, pour
l'instant, mais l'histoire commence bien avant que Mountain View n'entre dans le système
d'exploitation. En fait, tout a commencé avec une société américaine appelée Android, fondée
en 2003.
Elle a ensuite été rachetée par Google deux ans plus tard (en 2005). L'objectif principal était de
développer un système d'exploitation qui permettrait à l'utilisateur d'interagir avec lui.
Vous le savez peut-être déjà, mais dans le passé, chaque fabricant a développé son propre
système intégré. Il était donc impossible de concevoir une application compatible sur tous les
appareils, sans parler des bibliothèques de développement fournies, qui étaient limitées de
manière à ce que les secrets commerciaux de la marque ne soient pas divulgués.
Au cours du premier mois de 2007, la marque Apple a présenté une véritable révolution :
l'iPhone. C'est alors que tout a changé. Le système IOS était censé être moderne, bien en
avance sur la technologie actuelle, et l'annonce d'Apple a été une grande claque. Comment
cela aurait-il pu être mieux ? Les différentes marques de téléphones y ont pensé.
Pour la première fois, ils sont parvenus à un accord, et de cet accord est née l'Open Handset
Alliance en novembre de la même année. Concrètement, elle a réuni pas moins de 35
entreprises, dont Google, qui avait suggéré le développement d'un système d'exploitation open
source, pour révolutionner le marché des mobiles, offrir quelque chose de nouveau, et balayer
la concurrence (Windows Mobile à l'époque et IOS surtout).
Aujourd'hui, le projet Android est un grand succès avec près de 85% de part de marché dans
le secteur des nouveaux Smartphones vendus (premier trimestre 2016). [8]
Architecture Android
Le choix de l’architecture Android est basé sur l’idée de maîtriser les ressources et la
consommation. Les applications Android s’exécutent sur un système contraint (mémoire
disponible, consommation de batterie, différence d’affichage, stockage disponible). [9]
Vous devez en tant que développeur faire attention à plusieurs points [9] :
• La création de nouveaux objets.
• L’utilisation des ressources (processeur, RAM, stockage, GPS, etc.).
• La consommation de la batterie.
• La diversité des tailles et des résolutions des écrans et des configurations matérielles.
• La diversité des versions d’Android disponibles sur le marché.
Android Studio
Android Studio représente la plateforme officielle, soutenue par Google, pour le développement
d’applications Android. Il repose sur IntelliJ (Community Edition) de Jet Brainet devrait
permettre aux développeurs d’être plus rapides et plus productifs. Il offre toutes les possibilités
nécessaires pour développer une application Android complète.
Tout projet Android doit respecter une hiérarchie bien précise qui permettra au compilateur de
retrouver les différents éléments et ressources lors de la génération de l’application. Cette
hiérarchie favorise la modularité des applications Android.
A la création du projet, Android Studio crée automatiquement des dossiers pour contenir les
fichiers de code Java, les fichiers XML, et les fichiers multimédias.
Les dossiers les plus utilisés sont java et res. Le premier contient le code Java qui définit le
comportement de l’application (situé dans le répertoire de votre projet sous app\src\main) et la
seconde comporte des sous dossiers (dans app\src\main\res) où sont stockées les ressources qui
définissent l’interface de l’application (l’apparence).
Cloud Computing
Définition du Cloud Computing
Le Cloud Computing est un terme général employé pour désigner la livraison de ressources et
de services à la demande par internet. Il désigne le stockage et l’accès aux données par
l’intermédiaire d’internet plutôt que via le disque dur d’un ordinateur. Il s’oppose ainsi à la
notion de stockage local, consistant à entreposer des données ou à lancer des programmes
depuis le disque dur. La notion de Cloud ne doit pas non plus être confondue avec celle du
Network Attached Storage (NAS), utilisée par beaucoup d’entreprises via un serveur en
résidence. Ces réseaux locaux n’entrent pas dans la définition du Cloud. Cependant, certains
NAS permettent d’accéder aux données à distance depuis Internet
De manière générale, on parle de Cloud Computing lorsqu’il est possible d’accéder à des
données ou à des programmes depuis internet, ou tout du moins lorsque ces données sont
synchronisées avec d’autres informations sur internet. Il suffit donc pour y accéder de
bénéficier d’une connexion internet. [10]
Caractéristiques
Le modèle Cloud Computing se différencie par les cinq caractéristiques essentielles suivantes
[11] :
La mise en œuvre des systèmes est entièrement automatisée et c’est l’utilisateur, au moyen
d’une console ou à travers des outils et des logiciels spécifiques, qui mettent en place et gèrent
la configuration à distance.
Ces centres de traitement sont généralement raccordés directement sur le backbone internet
pour bénéficier d’une excellente connectivité. Les grands fournisseurs répartissent les centres
de traitement sur la planète pour fournir un accès aux systèmes en moins de 50 ms de n’importe
quel endroit.
La mise en ligne d’une nouvelle instance d’un serveur est réalisée en quelques minutes, l’arrêt
et le redémarrage en quelques secondes. Toutes ces opérations peuvent s’effectuer
automatiquement par des scripts. Ces mécanismes de gestion permettent de bénéficier
pleinement de la facturation à l’usage en adaptant la puissance de calcul au trafic instantané.
• Facturation à l’usage :
Il n’y a généralement pas de coût de mise en service (c’est l’utilisateur qui réalise les
opérations). La facturation est calculée en fonction de la durée et de la quantité de ressources
utilisées. Une unité de traitement stoppée n’est pas facturée.
Firebase
Définition
Firebase est le nom d’une plateforme mobile de Google qui facilite la création de back-end à
la fois scalable et performant. En d’autres termes, il s’agit d’une plateforme qui permet de
développer rapidement des applications pour mobile et pour le web.
De plus, la plateforme peut être exploitée par plusieurs utilisateurs en même temps sans
connaître un quelconque bug. La praticité est également au rendez-vous grâce à ses
fonctionnalités intuitives. Depuis le rachat de la plateforme par Google en 2014, Firebase sdks
a connu de nombreuses améliorations et n’a de cesse de satisfaire ses utilisateurs.
Firebase est le nom d’une plateforme mobile de Google qui facilite la création de back-end à
la fois scalable et performant. En d’autres termes, il s’agit d’une plateforme qui permet de
développer rapidement des applications pour mobile et pour le web. [12]
Le secret de Firebase
Dans Firebase, vous trouverez des API intuitives regroupées dans un SDK unique. Ces API,
en plus de vous faire gagner du temps, vous permettent de réduire le nombre d’intégrations
que vous devez gérer par le biais de votre application.
Vous profiterez ainsi d’une offre sur mesure ainsi qu’une intégration étroite entre lesdifférents
produits que vous exploitez. Étant donné que Firebase utilise l’infrastructure de
Google, la plateforme n’a aucun mal à s’adapter à l’évolution de votre application.
Ainsi, vous pourrez développer votre Firebase appli dans les meilleures des conditions,
d’autant plus que la plateforme met à votre disposition une solution complète, évolutive et
boostée par Google. [12]
3 Architecture de l’application
L’architecture de l’application décrit d’une manière symbolique et schématique les différents
éléments d’un système informatique d’une manière à savoir leurs interrelations et leurs
interactions. La navigation entre les différentes parties de notre application est présentée par la
figure ci-dessous :
Lancement de
L’application
Authentification
Page d’accueil
Température Par
Manuellement
planification
Humidité
Démarrer/arrêter
pompe
Niveau d’eau
Logo de l’application
Interface d’authentification
Cette interface permet aux utilisateurs de saisir leurs mot de passe et leurs login afin d’accéder
à leurs interface.
Firebase Authentification fournit des services de backend, des SDK faciles à utiliser et des
bibliothèques d'interface utilisateur prêtes à l'emploi pour authentifier les utilisateurs auprès de
votre application.
L'authentification Firebase s'intègre étroitement aux autres services Firebase et s'appuie sur les
normes de l'industrie telles qu’OAuth 2.0 et OpenID Connect, afin de l'intégrer facilement à
votre backend personnalisé.
La base de données Firebase Realtime est une base de données hébergée dans le cloud. Les
données sont stockées au format JSON et synchronisées en temps réel avec chaque client
connecté. Lorsque vous créez des applications multiplateformes avec nos plates-formes Apple,
Android et les SDK JavaScript, tous vos clients partagent une instance de base de données en
temps réel et reçoivent automatiquement des mises à jour avec les données les plus récentes
[13].
6 Conclusion
Dans ce chapitre nous avons présenté les aspects pratiques liés à la réalisation du notre
application mobile, à savoir les outils de développement nécessaires pour le fonctionnement
de l’Application. En dernier, nous avons illustré quelques interfaces graphiques de notre
Application SmartIrrigation.
Dans un premier temps, nous avons cadrer notre projet en définissant, le contexte, la
problématique et les objectifs à atteindre, de plus nous avons présenté une généralité sur
l’internet des objets.
Dans une deuxième étape, nous avons commencé à décrire en détail un système existant dans
notre faculté avant de tenter de l’optimiser en modifiant leur principe de fonctionnement.
Et dans la suite de ce mémoire, nous avons conçu et réalisé une application Android pour piloter
à distance un système d’irrigation. Pour cela nous avons étudier le système Android tout en
présentant un bref historique. les fonctionnalités que nous pouvons trouver sur ce système
d’exploitation et l’architecture d’Android à savoir les principaux composants du système.
Au cours de la réalisation de ce projet nous avons enrichis notre savoir et développé nos
connaissances informatiques, notamment dans le domaine de la programmation et de la
mobilité.
En effet, l’application a exigé des connaissances du langage JAVA, XML, etc…, et des outils
de développement indispensables à sa réalisation. La mise en œuvre de notre travail a exigé des
connaissances très approfondies en la matière ainsi qu’une bonne maitrise de la configuration
d’Android studio et de l’environnement Android.
Et enfin, notre travail ainsi présenté reste un prototype sur lequel nous espérant apporter plus
de connaissance pour le rendre meilleur et plus fonctionnel.
[3] : https://uml.developpez.com/livres/index/?page=Les-livres-francais
[4] : http://www.volle.com/travaux/umlimp.htm
[6] : https://fr.wikipedia/Diagramme_des_cas_d'utilisation
[11] : H. Slim, « Etude et Mise en Place d’une Solution Cloud Computing Privé au sein de
Tunisie Télécom », 2015.
[13] : https://firebase.google.com/docs/database