Académique Documents
Professionnel Documents
Culture Documents
DIPLOME DE LICENCE EN
C’est grâce à Dieu que tout a commencé, et c’est à lui que je rends grâce.
Le reste n’est que dédicace.
À ceux qui ont sacrifié leur vie pour mon aisance et mon confort a ceux que leur présence et
leur support me valent la vie à ceux qui m’ont élevé avec amour et tendresse Je dédie ce
modeste travail
À mes parents Habib et khadija.
À mes chers frères Chawki, Chokri, Issam et Youssef.
À ma belle sœur Zeineb.
À la femme de mon frère Rawdha.
À tous mes chers amis.
Qui m’ont tant motivé et soutenu pour effectuer ce travail. Merci pour votre amour,
encouragement et soutien moral.
,
.
Mohamedamine Fejjari
INTRODUCTION GÉNÉRALE 1
1 Présentation du Projet 3
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.10.1 IOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2 Analyse et conception 20
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.1 UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.1.1 Acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3 Installation du système 44
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3 Description du système d’irrigation intelligent par smart Olla et de ses composants 45
3.4.1 ESP32 : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4.2.2 Caractéristique : . . . . . . . . . . . . . . . . . . . . . . . . 48
3.4.3.2 Caractéristiques : . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.4.2 Caractéristiques : . . . . . . . . . . . . . . . . . . . . . . . 50
3.4.5.2 Caractéristique : . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.6 Pompe : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.4.6.2 Caractéristiques : . . . . . . . . . . . . . . . . . . . . . . . 53
3.5.2 Fritzing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4 Réalisation 60
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3.1.2 XAMPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.2.3 JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.3.2.4 PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
CONCLUSION GÉNÉRALE 79
BIBLIOGRAPHIE 80
BIBLIOGRAPHIE 82
4.25 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Cependant, malgré ces avancées technologiques, l’irrigation reste l’un des aspects clés
de l’agriculture qui nécessite une attention particulière. L’eau est une ressource précieuse et
limitée, et son utilisation efficace et rationnelle est essentielle pour garantir une production
agricole durable et optimale.
C’est là que le projet de l’irrigation par Smart Olla entre en jeu. Ce projet propose
une solution innovante en réalisant un système intelligent assurant l’irrigation d’une manière
automatique et sans intervention humaine. Ce système est constitué d’un ensemble de jarraes
en argiles intelligentes (Smart Ollas). Ces Smart Ollas sont conçues pour fournir de l’eau d’une
manière automatisée et précise aux plantes, en s’adaptant aux besoins spécifiques de chaque
culture.
Le présent document expose en détail l’évolution du projet s’étalant sur quatre chapitres
définis comme suit. Le premier chapitre, présentation du projet, nous permet de situer le projet
dans son contexte général à travers une présentation de l’organisme d’accueil, des concepts de
base nécessaires pour notre projet ainsi qu’une étude de l’existant et une analyse des besoins
fonctionnels et non fonctionnels du système à réaliser avec une architecture de notre application.
Ce rapport se clôture par une conclusion générale et quelques perspectives comme une
extension à ce travail.
Chapitre
1
Présentation du Projet
1.1 Introduction
La présentation du cahier du charge d’un projet constitue une étape préliminaire pour
la réalisation correcte d’une application. En effet, ce cahier permet d’analyser, d’évaluer et
de critiquer l’existant afin de produire des solutions plus efficaces. Dans ce chapitre, nous
présenterons, tout d’abord, le cadre du projet et la société accueillante. Ensuite, nous définirons
les notions de base sur lesquelles s’appuie notre projet. Par ailleurs, nous exposerons une étude
de l’existant qui permet de décortiquer les fonctionnalités des systèmes existants et leurs limites
et qui nous amène à dégager la spécification des besoins fonctionnels et non-fonctionnels de la
société.
Ce projet s’englobe dans le cadre d’un projet de fin d’études au sein de la Faculté des
Sciences de Sfax pour l’obtention du diplôme de Licence en ingénierie des systèmes Informatiq-
ues :
systèmes embarqués et internet des objets. Il a été réalisé au sein de la société DBEX.
DBEX [1] propose une offre de conseils, de formations et de coaching aux entreprises qui
souhaitent initier ou optimiser les chances de succès de leurs transformations agile. DBEX
mise sur la complémentarité de ses expertises issues du terrain (delivery agile, digital et big
data) pour accompagner les PME/PMI et les grandes organisations dans leurs chantiers de
transformation et pour faire émerger de nouveaux modes de collaboration et de nouvelles
manières de produire et/ou de vendre. Les consultants et coachs de DBEX ont déjà conduit
de nombreux projets de transformations auprès de clients prestigieux. Leurs connaissances des
Framework d’entreprise Lean et Agile (SAFe®, LeSS, Nexus, SSwS, DaD, RAGE, eScrum,. . .)
permettent aux consultants et coachs de DBEX de proposer à leurs clients un accompagnement
personnalisé en fonction de l’objectif prioritaire visé et du contexte organisationnel tout en
évaluant régulièrement l’atteinte des objectifs :
— Amélioration de la collaboration.
L’irrigation par Smart ollas (jarres en argile) assistée par une station de surveillance
intelligente peut être une solution efficace pour arroser les arbres. Les stations de surveillance
intelligentes peuvent être connectées aux ollas (jarres en argile) pour surveiller en continu le
niveau d’eau dans les ollas (jarres en argile) et les besoins en eau des plantes. Les données
recueillies peuvent être utilisées pour ajuster automatiquement la quantité d’eau qui est libérée
dans le sol, en fonction des besoins réels de la plante.
Cela peut aider à éviter l’arrosage excessif ou insuffisant, et donc économiser de l’eau tout
en maintenant une hydratation adéquate des racines des arbres. Cette technologie permet de
surveiller les plantes à distance, nous donnant la possibilité de surveiller l’état de notre jardin
même lorsque nous ne sommes pas chez nous.
1.5 Problématique
L’irrigation par des ollas (jarres en argile) peut présenter des inconvénients en ce qui
concerne la gestion de l’eau, tels que la difficulté à mesurer la quantité exacte d’eau fournie
aux plantes et à réguler l’irrigation en fonction des conditions météorologiques. De plus, cette
technique peut nécessiter une expertise et un temps considérable pour sa mise en place. La
régulation de l’eau représente particulièrement une problématique, car l’eau est directement
fournie aux racines des plantes à partir des jarres en argile, rendant difficile la mesure précise
de la quantité d’eau reçue par chaque plante. Cela peut entraîner un gaspillage d’eau et une
croissance excessive des plantes, qui peuvent finalement affecter leur santé. Cependant, avec
l’avancée des technologies, des systèmes d’irrigation automatisés, tels que ceux utilisant des
capteurs intelligents, peuvent désormais être utilisés pour assurer une irrigation automatique
sans intervention humaine.
Dans ce cadre, nous sommes appelés à réaliser ce système avec ses services d’irrigation en
l’ajoutant un assistant virtuel embarqué et une application web/mobile. Ce système permet aux
utilisateurs de mieux gérer leurs besoins en leur procurant ces avantages :
Pour atteindre ces objectifs, notre projet à réaliser doit englober les fonctionnalités suivantes :
— Régulation de l’irrigation en temps réel pour chaque plante en fonction des données
collectées par les capteurs.
Rachio [2] est une entreprise qui a développé une plateforme d’irrigation intelligente pour
les pelouses et les jardins. La plateforme utilise des données météorologiques en temps réel
pour adapter l’irrigation aux conditions locales, en veillant à ce que les plantes ne soient pas
sur ou sous-arrosées.
La plateforme Rachio est conçue pour être facile à utiliser et à installer, et elle peut être
intégrée à d’autres systèmes de maison intelligente tels que Alexa d’Amazon et Google Home
pour une commande vocale pratique. En utilisant la plateforme Rachio, les utilisateurs peuvent
économiser de l’eau et de l’argent tout en ayant un jardin plus sain et plus vert.
— Coût initial élevé : Le coût initial de la plateforme Rachio peut être élevé par rapport à
d’autres systèmes d’arrosage plus simples.
Le système d’irrigation intelligent Gro [3] est un système d’irrigation automatique pour les
jardins et les pelouses qui utilise la technologie pour aider les plantes à rester en bonne santé
tout en économisant l’eau. Ce système utilise des capteurs de sol et de météo pour déterminer
les besoins en eau des plantes et ajuster automatiquement l’arrosage en conséquence. Il peut
également être contrôlé à distance via une application mobile.
Le système Gro comprend un hub qui se connecte à Internet et communique avec les
différents capteurs et vannes d’arrosage. Les capteurs de sol mesurent l’humidité du sol et la
température du sol, tandis que les capteurs météorologiques mesurent la température, l’humidité
et la pluviométrie. Le système utilise ces informations pour déterminer si les plantes ont besoin
d’eau et ajuster automatiquement la durée et la fréquence de l’arrosage en conséquence.
Le système Gro est facile à installer et peut être configuré en quelques minutes. Il est
également compatible avec la plupart des systèmes d’arrosage existants, ce qui facilite la mise
à niveau vers un système intelligent. Le système est conçu pour économiser de l’eau en arrosant
uniquement lorsque cela est nécessaire, ce qui peut aider à réduire la consommation d’eau et à
préserver les ressources naturelles.
— Limitations de la taille de la zone d’arrosage : Le système Gro peut ne pas être adapté
aux grandes zones d’arrosage, car il a une capacité limitée en termes de zones couvertes
et de débits d’eau.
— Difficulté à installer : L’installation du système d’irrigation intelligent Gro peut être plus
complexe que les systèmes d’irrigation traditionnels.
En plus du capteur de sol intelligent, CropX [4] propose également un système d’irrigation
intelligent qui utilise les données collectées par les capteurs pour optimiser l’arrosage des
cultures. Le système d’irrigation CropX est conçu pour être facile à installer et à utiliser, et
il est compatible avec une grande variété de systèmes d’irrigation existants.
Le système d’irrigation CropX utilise des algorithmes sophistiqués pour analyser les données
des capteurs de sol et de météo et déterminer les besoins en eau des cultures. Il peut ensuite
ajuster automatiquement les paramètres d’irrigation pour fournir la quantité d’eau nécessaire
tout en minimisant les pertes d’eau et les coûts énergétiques.
— Limitation des types de sols considérés : Le système CropX est conçu pour fonctionner
avec des sols spécifiques et peut ne pas fonctionner de manière optimale avec d’autres
types de sols, ce qui peut limiter sa capacité à améliorer l’efficacité de l’irrigation.
— Limitation des régions concernées : Le système CropX est conçu pour fonctionner dans
des conditions environnementales spécifiques et peut ne pas être efficace dans toutes les
régions. Les utilisateurs doivent vérifier que le système fonctionnera correctement dans
leur région avant d’investir dans le système.
— Coût initial élevé : Le coût initial élevé du système CropX peut ne pas être rentable pour
les petites exploitations agricoles ou les propriétaires de maison avec des jardins plus
petits.
— Nécessite une formation : Le système CropX nécessite une formation pour l’installer et
l’utiliser correctement, ce qui peut être difficile pour certains utilisateurs.
AquaSpy [5] est un système d’irrigation intelligent qui utilise des capteurs de sol pour
surveiller l’humidité, la température et la conductivité électrique du sol en temps réel. Les
données collectées par les capteurs sont envoyées à une plateforme en ligne où les agriculteurs
peuvent visualiser et analyser les informations pour prendre des décisions éclairées sur
l’irrigation.
Le système AquaSpy utilise des capteurs sans fil qui sont installés dans le sol pour mesurer
les niveaux d’humidité, la température et la conductivité électrique à différentes profondeurs.
Ces données sont ensuite transmises à une passerelle sans fil qui les envoie à une plateforme
en ligne. Les agriculteurs peuvent accéder à la plateforme en ligne à partir de n’importe quel
appareil connecté à Internet pour surveiller l’état de l’humidité du sol et déterminer le moment
optimal pour arroser les cultures.
— Économie d’eau : En utilisant les données collectées par les capteurs de sol, le système
AquaSpy peut aider les agriculteurs à économiser de l’eau en évitant une irrigation
excessive ou insuffisante.
— Réduction des coûts : Le système AquaSpy peut aider les agriculteurs à réduire leurs
coûts en évitant l’arrosage excessif et en optimisant l’utilisation des ressources.
endommagés ou doivent être remplacés pour une raison quelconque, les coûts peuvent
être élevés. Cela peut être un problème pour les agriculteurs disposant de budgets limités.
— Difficulté de mise en place : La mise en place initiale du système AquaSpy peut être
difficile et nécessiter une expertise technique.
— Limitations en termes de portée : Le système AquaSpy utilise des capteurs sans fil pour
mesurer les niveaux d’humidité du sol, mais leur portée est limitée.
Le tableau 1.1 représente une comparaison entre les différents travaux déjà étudiés dans la
section précédente.
1. Administrateur :
— Ajouter, supprimer ou modifier les jarres en argile (OLLAS) pour chaque plante.
1. Sécurité : L’application doit être développée en prenant en compte les aspects de sécurité
des données, y compris la confidentialité, l’intégrité et la disponibilité des données.
2. Fiabilité : L’application doit être conçue pour garantir une disponibilité maximale,
minimiser les temps d’arrêt et éviter la perte de données.
3. Scalabilité : L’application doit être conçue pour permettre une évolutivité facile et une
augmentation de la capacité en cas de besoin.
4. Interface utilisateur : L’application doit offrir une interface utilisateur intuitive, facile à
utiliser et accessible pour les utilisateurs avec des besoins différents.
En respectant ces critères non fonctionnels, l’application de gestion de Smart Ollas (jarres
en argile) pourra offrir une expérience utilisateur optimale, une sécurité renforcée, des
performances élevées, une fiabilité accrue et une évolutivité facile pour répondre aux besoins
des utilisateurs tout en étant compatible avec différents environnements et plates- formes.
aider les agriculteurs à prendre des décisions éclairées en matière d’irrigation. En somme, le
projet Smart Ollas (jarres en argile) utilise les technologies IoT, les capteurs électroniques, les
microcontrôleurs, MQTT pour fournir une solution innovante et pratique pour la gestion de
l’irrigation. Le système de communication MQTT permet une transmission de données fiable
et efficace, tandis que le Dashboard web offre une interface utilisateur conviviale pour surveiller
l’irrigation à distance.
La figure 1.6 représente l’architecture de l’application.
1.10.1 IOT
IoT signifie « Internet of Things » ou en français « Internet des objets ». Il permet d’accéder
et de contrôler les équipements et les appareils utilisables au quotidien via Internet.
Selon l’Union Internationale des Télécommunications (UIT), L’Internet of Things (IoT) est
«une infrastructure mondiale pour la société de l’information, qui permet de disposer de
services évolués en interconnectant des objets (physiques ou virtuels) grâce aux technologies
de l’information et de la communication interopérables existantes ou en évolution» [6] . L’IoT
peut se définir aussi comme étant «un réseau qui relie et combine les objets avec l’Internet, en
suivant les protocoles qui assurent leur communication et leur échange d’informations à travers
une variété de dispositifs»
Autrement, l’IOT est un système avancé d’automatisation et d’analyse qui traite de
l’intelligence artificielle, des capteurs, des réseaux, de l’électronique, de la messagerie cloud,
etc. Le système créé par l’IoT offre une transparence, un contrôle et des performances.
La figure 1.7 représente les avantages de l’internet des objets
De nos jours, de plus en plus d’entreprises ont recours au Cloud Computing afin de
se décharger des informations stockées sur leurs postes de travail et de la complexité de
l’infrastructure matérielle. Ce nouveau concept informatique consiste à proposer les services
à la demande accessibles à n’importe quel ordinateur avec accès d’Internet. Il se base sur le
principe de centralisation du stockage, des traitements et la bande passante en utilisant des
serveurs distants. De ce fait, les entreprises n’ont plus besoin de serveurs propres, mais elles
confient cette ressource à une entreprise qui leur garantit une puissance de calcul et de stockage
à la demande.
Nous distinguons trois formes de Cloud Computing : les clouds privés, les clouds publics et les
clouds hybrides.
Chacun de ces types englobe trois classes de services [7] :
— Software as a Service (SaaS) :C’est un modèle qui met à la disposition des utilisateurs des
solutions exposées sous forme de services disponibles sur Internet à travers une interface
homme-machine (navigateur, Smartphone).
— Infrastructure as a Service ( IaaS ) : C’est le service de plus bas qui consiste à offrir
un accès à un parc informatique virtualisé : des machines virtuelles sur lesquelles
le consommateur peut installer un système d’exploitation et des applications. Le
consommateur est ainsi dispensé du coût d’achat de matériel informatique.
La figure 1.8 représente les différentes formes ainsi que les services offerts par le cloud
computing.
1.11 Conclusion
Ce chapitre présente une étude préliminaire du projet où nous avons tout d’abord exposé le
cadre de notre projet. Puis nous avons étudié et critiqué quelques travaux excitants. Ensuite,
nous avons défini la spécification des besoins fonctionnels et non-fonctionnels de notre
application. Nous avons ainsi clôturé ce chapitre par la définition des concepts de base qui
constituent l’environnement du projet.
Dans le chapitre suivant, nous allons entamer la phase de conception de notre système.
Chapitre
2
Analyse et conception
2.1 Introduction
La conception présente une phase primordial pour la facilité du développement et l’efficacité
de l’application.
Ainsi, nous détaillerons dans ce chapitre la conception par l’identification des acteurs et des
cas d’utilisation et la présentation des diagrammes de séquences, d’activités et de classes.
Nous justifierons tout d’abord le choix du langage de modélisation et de la méthodologie de
développement
2.2.1 UML
UML “Unified Modeling Language” [8] est un langage de modélisation standardisé par
l’OMG (Object Management Group) en 1997. Le choix de l’UML n’était pas arbitraire. Il
est justifié par le fait qu’il est devenu le standard en termes de modélisation objet. Par ailleurs,
il est indépendant du langage de programmation et facilite la compréhension de représentations
abstraites complexes.
Nous utiliserons le logiciel Diagrams [9] comme un outil d’analyse et de conception UML pour
son utilité simple et facile, son interface intuitive et conviviale et pour sa puissance. Ce logiciel
couvre toutes les fonctionnalités nécessaires pour notre conception. Il supporte l’UML2.
Le choix du processus unifié (RUP, eng.Rational Unified Process) [10] est le résultat d’une
contrainte majeure qui est la complexité et le volume important des fonctionnalités du système
à mettre en place. Donc, un processus piloté par les cas d’utilisation sera le bon choix. RUP est
un processus de développement logiciel utilisé conjointement avec UML et défini par Rational
Software (IBM).
Ce processus est :
— Guidé par les risques : Les risques majeurs du projet sont traités en priorité.
— Centré sur l’architecture : RUP vise la conception d’une architecture stable du système
dès les premiers incréments.
— Piloté par les cas d’utilisation : Le développement d’un logiciel doit être centré sur
l’utilisateur et ses besoins. Les cas d’utilisation permettent d’exprimer ces besoins.
2.3.1.1 Acteurs
Client
Cet acteur est l’utilisateur ou le propriétaire du système d’irrigation. Il a l’accès aux modules
suivants :
— S’authentifier.
Administrateur
Cet acteur est responsable de la gestion des clients et de la maintenance du système :
La figure 2.1 suivante présente le diagramme des cas d’utilisation qui regroupe les différents
modules de notre application.
Chaque cas d’utilisation est détaillé dans le tableau 2.1.
— Ajouter un client.
— Supprimer un client.
— Modifier un client.
— Ajouter un olla.
— Supprimer un olla.
— Modifier un olla.
— Ajouter un capteur.
— Supprimer un capteur.
— Modifier un capteur.
Description textuelle
Ce cas d’utilisation permet à un utilisateur de s’authentifier au système afin d’accéder à ses
différentes fonctionnalités.
— Scénario nominal :
— Scénario alternatif :
* A1 : Le mot de passe ou le login est invalide.
L’enchainement A1 démarre au point 3 du scénario nominal.
Description textuelle
Ce cas d’utilisation permet à un administrateur de gérer les clients. Il comporte les cas
suivants :
a. Ajouter un client
— Acteur : Administrateur.
— Scénario nominal :
— Scénario alternatif
* A1 : Les informations obligatoires sont erronées. L’enchaînement A1 démarre au
point 2 du scénario nominal.
b. Modifier un client
— Acteur : Administrateur.
— Pré condition :
— Scénario nominal :
— Scénario alternatif
* A1 : Les informations obligatoires sont erronées. L’enchaînement A1 démarre au
point 2 du scénario nominal.
c. Supprimer un client
— Acteur : Administrateur.
— Pré condition :
— Scénario nominal :
— Scénario alternatif
* A1 : L’administrateur annule la suppression.
L’enchainement A1 démarre au point 3 du scénario nominal.
Diagramme de séquence :
La figure 2.3 représente le diagramme de séquence qui décrit le cas d’utilisation «Gérer les
clients».
Description textuelle
Ce cas d’utilisation permet à un client de gérer les plantes. Il comporte les cas suivants :
— Acteur : client.
— Scénario nominal :
— Scénario alternatif
* A1 : Les informations obligatoires sont erronées. L’enchaînement A1 démarre au
point 2 du scénario nominal.
5. Le système indique au client que les informations saisies sont erronées ou non
valables.
6. Le client saisit de nouveau les informations.
Scénario nominal reprend au Point 2.
— Acteur : client.
— Pré condition :
— Scénario nominal :
2. Le système vérifie que tous les champs obligatoires sont renseignés et valides.
3. Le système enregistre et met à jour les informations.
— Scénario alternatif
* A1 : Les informations obligatoires sont erronées. L’enchaînement A1 démarre au
point 2 du scénario nominal.
4. Le système indique au client que les informations saisies sont erronées ou non
valables.
5. Le client saisit de nouveau les informations.
Scénario nominal reprend du point 2.
— Acteur : Client.
— Pré condition :
— Scénario nominal :
— Scénario alternatif
* A1 : Le client annule la suppression.
L’enchaînement A1 démarre au point 3 du scénario nominal.
Diagramme de séquence :
La figure 2.4 représente le diagramme de séquence qui décrit le cas d’utilisation «Gérer les
plantes».
Description textuelle
Ce cas d’utilisation permet à un client de consulter son tableau de bord.
— Acteur : client.
— Scénario nominal :
— niveau d’eau.
Diagramme de séquence :
La figure 2.5 représente le diagramme de séquence qui décrit le cas d’utilisation « Consulter
tableau de bord ».
Description textuelle
Ce cas d’utilisation permet à un client de recevoir des notifications.
— Acteur : client.
— Scénario nominal :
Diagramme de séquence :
La figure 2.6 représente le diagramme de séquence qui décrit le cas d’utilisation « Recevoir
des notifications ».
Les cas d’utilisation "Gérer les Ollas" et "Gérer les capteurs" se réalisent de la même manière
que celui de "Gérer les plantes".
Le diagramme d’activités permet de mettre l’accent sur les traitements. Il permet ainsi de
représenter le déroulement d’un cas d’utilisation.
La figure 2.11 identifie la structure des classes de notre système, y compris les attributs et les
méthodes de chaque classe.
Dans cette section, nous présentons la conception de notre base de données. Le modèle
relationnel de la base de données du système est le suivant :
2.4 Conclusion
Dans ce chapitre, nous avons abordé la conception de notre application à l’aide des
diagrammes de cas d’utilisations, de séquences, d’activités et de classes. L’objectif du chapitre
suivant est de présenter la réalisation de notre projet.
Chapitre
3
Installation du système
3.1 Introduction
Dans ce chapitre, nous aborderons les différentes étapes nécessaires à l’installation pratique
de notre système d’irrigation par smart olla.
— ESP32.
— Les capteurs :
— Relai électromécanique.
— Les actionneurs :
3.4.1 ESP32 :
— Connectivité sans fil intégrée : L’ESP32 prend en charge le Wi-Fi 802.11 b/g/n, ce qui
permet une connexion rapide et stable aux réseaux sans fil. Il est également compatible
avec le Bluetooth 4.2 et 5.0, offrant ainsi une connectivité sans fil fiable pour les appareils
et les accessoires.
— Faible consommation d’énergie : L’ESP32 est conçu pour une consommation d’énergie
optimisée, ce qui le rend idéal pour les applications alimentées par batterie ou nécessitant
une efficacité énergétique.
— Sécurité : L’ESP32 offre des fonctionnalités de sécurité intégrées telles que le support de
la sécurité WPA/WPA2 pour les connexions Wi-Fi et la prise en charge du chiffrement
matériel.
— Grande capacité de stockage : L’ESP32 dispose d’une mémoire flash intégrée qui peut
être utilisée pour le stockage du programme et des données.
Ce module de capteur d’humidité du sol est utilisé pour détecter l’humidité du sol. Il mesure
le contenu volumétrique de l’eau dans le sol et nous donne le niveau d’humidité comme sortie.
Le module dispose de sorties numériques et analogiques et d’un potentiomètre pour ajuster le
niveau du seuil.
Ce module de détection d’humidité est composé d’un capteur d’humidité, de résistances, d’un
condensateur, d’un potentiomètre, d’un comparateur LM393 IC, d’une LED d’alimentation et
d’état dans un circuit intégré.
La figure 3.4 représente le capteur d’humidité du sol.
3.4.2.2 Caractéristique :
Un capteur de niveau d’eau est un dispositif utilisé pour mesurer et indiquer le niveau d’eau
dans un réservoir, une cuve ou tout autre conteneur. Ces capteurs peuvent être utilisés dans de
nombreux domaines, tels que l’agriculture, l’industrie, les systèmes de gestion de l’eau, etc.
La figure 3.5 représente le capteur de niveau d’eau.
3.4.3.2 Caractéristiques :
Le capteur DHT11 est un composant abordable et largement utilisé pour mesurer l’humidité
relative et la température ambiante. Sa facilité d’utilisation, son interface simple et sa
précision acceptable en font un choix populaire pour les projets nécessitant une surveillance
de l’environnement et le contrôle de l’humidité et de la température.
La figure 3.6 représente le capteur de Température et d’humidité.
3.4.4.2 Caractéristiques :
— Interface à un seul fil : Le capteur DHT11 utilise une interface à un seul fil pour la
communication de données. Cela signifie qu’il utilise un seul fil pour l’alimentation et
la transmission des données, ce qui simplifie le câblage et facilite l’intégration dans les
projets.
— Faible consommation d’énergie : Le capteur DHT11 est conçu pour une consommation
d’énergie minimale, ce qui le rend adapté aux applications alimentées par batterie ou
nécessitant une efficacité énergétique.
— Sortie numérique : Le capteur DHT11 émet des données de mesure sous forme de
signal numérique. Il utilise un protocole de communication simple où les données sont
transmises en série à l’aide d’un signal de démarrage, suivi de bits de données et d’un bit
de parité.
Un relais est un interrupteur à commande électrique qui peut être activé ou désactivé, laissant
passer ou non le courant, et qui peut être contrôlé avec de faibles tensions, comme les 5V fournis
par les broches Arduino.
La figure 3.7 représente le relais.
3.4.5.2 Caractéristique :
3.4.6 Pompe :
"R385 12V 3M DC Diaphragm Pump Micro Small Tank Aquarium Fish Bar" est
principalement utilisé dans l’aquarium, modèle expérimental, piscine gonflable, lavage de
voiture, arrosage, calendrier de remplissage d’eau minérale, etc.
La figure 3.8 représente la pompe.
3.4.6.2 Caractéristiques :
— Tête maximale : 3 m.
— Température : 80.
— Dimensions : 86 x 43 m.
Thonny [11] est un logiciel de programmation de la carte ESP32 de code (Python). Une fois,
le programme tapé ou modifié au clavier, il sera transféré et mémorisé dans la carte travers
de la liaison USB. Le câble USB alimenté à la fois en énergie la carte et transporte aussi
l’information, ce programme appelé Thonny.
Le logiciel Thonny est un environnement de développement (IDE) open source et gratuit.
La figure 3.9 représente le logo de logiciel "Thonny".
3.5.2 Fritzing
Fritzing [12] est un logiciel Open Source développé par l’université de Postdam aux
Pays-Bas. Ce logiciel permet de :
La figure 3.11 représente le schéma explicatif par Fritzing de montage qui nous montre la
connexion entres les différents modules avec la carte ESP32 .
Après avoir présenté dans la section précédente les outils utilisés pour réaliser notre projet,
nous allons décrire les étapes de la réalisation de notre système. Tout d’abord, chaque capteur
est monté et testé séparément. Ensuite, après avoir expérimenté les composants selon le schéma
de la figure précédente, nous les avons réalisés et testés.
Les figures 3.12 et 3.13 illustrent le système d’irrigation par smart Olla (jarre en argile) réalisé.
La création de notifications dans les systèmes d’irrigation par Smart Olla peut être réalisée
à l’aide de plateformes telles qu’Ubidots. Ubidots est une plateforme Internet des objets (IoT)
qui permet de collecter, visualiser et analyser les données provenant de capteurs et d’appareils
connectés.
les figures 3.14 et 3.15 représentent le processus de création de notification d’état d’irrigation.
3.8 Conclusion
Dans ce chapitre, nous avons entamé notre réalisation pratique. Pour cela, nous avons essayé
de raconter les procédures et les étapes que nous avons menées afin d’arrivé à notre but.
Chapitre
4
Réalisation
4.1 Introduction
Après avoir achevé la phase de conception de l’application, nous entamons dans ce chapitre
la phase de la réalisation. Elle consiste à réaliser une application englobant les besoins
fonctionnels mentionnés dans le premier chapitre et qui est accessible depuis un navigateur
web.
— Modèle : Cette partie gère les données de notre site. Son rôle est de récupérer les
informations brutes dans la base de données, de les organiser et de les assembler pour
qu’elles puissent ensuite être traitées par le contrôleur. On y trouve donc entre autres les
requêtes SQL.
— Vue : Cette partie se concentre sur l’affichage. Elle ne fait presque aucun calcul et se
contente de récupérer des variables pour savoir ce qu’elle doit afficher. On y trouve
— Contrôleur : Cette partie gère la logique du code qui prend des décisions. C’est en quelque
sorte l’intermédiaire entre le modèle et la vue : le contrôleur va demander au modèle
les données, les analyser, prendre des décisions et renvoyer le texte à afficher à la vue.
Lecontrôleur contient exclusivement du TypeScript. C’est notamment lui qui détermine
si le visiteur a le droit d’accéder à la page ou non (gestion des droits d’accès).
— Une conception claire est efficace grâce à la séparation des données de la vue et du
contrôleur.
— Une plus grande souplesse pour organiser le développement du site entre différents
développeurs (indépendance des données, de l’affichage (webdesign)).
Inconvénients du MVC :
L’inconvénient majeur du modèle MVC n’est visible que dans la réalisation de petits projets,
de sites internet de faible envergure. En effet, la séparation des différentes couches nécessite la
création de plus de fichiers (3 fois plus exactement) :
Il n’est donc pas très intéressant de recourir à ce système dans ce cas là.
Visual Studio Code [15] est un éditeur de code extensible développé par Microsoft pour
Windows, Linux et macOS. Il peut être utilisé avec une variété de langages de programmation,
notamment Python, Java, JavaScript et C++.
La figure 4.2 représente le logo de Visual Studio Code.
4.3.1.2 XAMPP
XAMPP [16], multi-plateforme (X pour cross), Apache (A), MariaDB (M), PHP (P) et Perl
PHP (P), est une application Apache légère permettant aux développeurs de créer un serveur
Web local ou un serveur FTP à des fins de test et de déploiement. Il prend en charge les
serveurs d’applications, les bases de données et le langage de script afin d’exécuter littéralement
la plupart des sites Web et des applications Web directement à partir du logiciel. XAMPP
comprend le serveur Web Apache, PHP, MySQL, Perl, le serveur FTP et phpMyAdmin, le
serveur de messagerie Mercury et le serveur JSP Tomcat.
La figure 4.3 représente le logo de "XAMPP".
HTML5 [17] est la dernière version du langage de représentation web HTML. Il correspond
à l’évolution du HTML4 et du XHTML. Son choix n’était pas arbitraire. En effet, ce langage
apporte une souplesse de développement et offre plusieurs avantages notamment des effets
d’animation ,une gestion de vidéos (sans passer par des plugins externes comme flash),une
optimisation sur le temps de chargement des pages (moins d’images, moins de codes, moins de
fichiers flash, etc).
La figure 4.4 représente le logo de HTML 5.
Le CSS [18] est un langage informatique utilisé sur l’internet pour mettre en forme
les fichiers HTML ou XML. Ainsi, les feuilles de style, aussi appelées les fichiers CSS,
comprennent du code qui permet de gérer le design d’une page en HTML.
La figure 4.5 représente le logo de CSS.
4.3.2.3 JavaScript
4.3.2.4 PHP
PHP [20] (Hypertext Preprocessor) est un langage de script côté serveur très populaire
et largement utilisé pour le développement web. Il est conçu spécifiquement pour le
développement d’applications web dynamiques et interactives.
La figure 4.7 représente le logo de PHP.
La figure 4.8 représente l’interface d’authentification qui permet l’accès aux différentes
fonctionnalités pour l’administrateur ou le client. Quant à la figure 4.9 représente les
messages d’erreurs possibles si on passe au bouton "Se connecter" sans remplir les champs
d’authentification obligatoires. La figure 4.10 représente ainsi les messages d’erreurs possibles
en cas où les champs à remplir sont invalides.
La figure 4.11 représente l’interface de ré-initialisation du mot de passe. Après avoir cliquer
sur "Mot de passe oublié ?" dans l’interface d’authentification, une nouvelle interface s’affiche
pour donner à l’utilisateur l’accès d’écrire son adresse mail puis il clique sur le boutton
"Envoyer". Il faut ensuite recevoir un mail afin de changer son mot de passe et enfin de
l’enregistrer. Maintenant, il peut s’authentifier avec le nouveau mot de passe
La figure 4.13 présente la liste des clients existants. L’administrateur peut visualiser les
informations de chaque client, et a la possibilité de supprimer un client en cliquant sur le bouton
"Supprimer" correspondant à ce client.
Lorsque l’administrateur clique sur le bouton "Modifier" d’un client spécifique dans la liste
(figure 4.13), il accède au formulaire de modification du client (figure 4.14). L’administrateur
peut alors apporter les modifications nécessaires aux champs tels que le nom, le prénom et le
téléphone du client. Une fois les modifications terminées, l’administrateur peut enregistrer les
nouvelles informations du client.
Lorsque le client se connecte à l’interface d’accueil après l’authentification en tant que client,
il est accueilli avec un message de bienvenue personnalisé. L’accueil offre une expérience
conviviale et propose quatre boutons permettant au client de gérer différentes fonctionnalités.
Ces fonctionnalités comprennent la gestion des plantes, la gestion des jarres, la gestion des
capteurs et la consultation des données d’irrigation. Chaque bouton représente une action
spécifique que le client peut effectuer pour interagir avec le système Smart Olla et gérer ses
paramètres selon ses besoins.
La figure 4.15 représente l’Interface du tableau de bord pour un client
Lorsque le client clique sur le bouton "Gérer les plantes" dans l’interface d’accueil, il est
redirigé vers l’interface de gestion des plantes, le client dispose de fonctionnalités telles que
l’ajout, la suppression et la modification des plantes.
Dans la figure 4.16, le client peut utiliser le formulaire d’ajout de plante pour saisir les
informations d’une nouvelle plante. Les champs tels que le nom de la plante, type de la plante,
forme, longitude et latitude doivent être remplis. En soumettant le formulaire, la nouvelle plante
sera ajoutée à la liste des plantes.
La figure 4.17 présente la liste des plantes existantes. Le client peut visualiser les
informations de chaque plante et a la possibilité de supprimer une plante en cliquant sur le
bouton "Supprimer" correspondant à cette plante.
Lorsque le client clique sur le bouton "Modifier" d’une plante spécifique dans la liste (figure
4.17), il accède au formulaire de modification de la plante (figure 4.18). Le client peut alors
apporter les modifications nécessaires aux champs. Une fois les modifications terminées, le
client peut enregistrer les nouvelles informations de la plante.
Lorsque le client clique sur le bouton "Gérer les ollas" dans l’interface d’accueil, il est
redirigé vers l’interface de gestion des ollas, le client dispose de plusieurs fonctionnalités pour
gérer ses ollas.
Dans la figure 4.19, le client peut utiliser le formulaire d’ajout d’olla pour saisir les informations
d’une nouvelle olla. Les champs tels que la taille d’olla et capacité de l’olla doivent être remplis.
En soumettant le formulaire, la nouvelle plante sera ajoutée à la liste des ollas.
La figure 4.20 présente la liste des ollas existantes. Le client peut visualiser les informations
de chaque olla et a la possibilité de supprimer une olla en cliquant sur le bouton "Supprimer"
correspondant à cette olla.
Lorsque le client clique sur le bouton "Modifier" d’une olla spécifique dans la liste (figure
4.20), il accède au formulaire de modification de l’olla (figure 4.21). Le client peut alors
apporter les modifications nécessaires aux champs. Une fois les modifications terminées, le
client peut enregistrer les nouvelles informations de l’olla.
Lorsque le client clique sur le bouton "Gérer les capteurs" dans l’interface d’accueil , il est
redirigé vers l’interface de gestion des capteurs, le client dispose de fonctionnalités telles que
l’ajout, la suppression et la modification des capteurs.
Dans la figure 4.22, le client peut utiliser le formulaire d’ajout capteur pour saisir les
informations d’un nouvelle capteur. Les champs tels que le nom de capteur et type de capteur
doivent être remplis. En soumettant le formulaire, le nouveau capteur sera ajoutée à la liste des
capteurs.
La figure 4.23 présente la liste des capteurs existants. Le client peut visualiser les
informations de chaque capteur et a la possibilité de supprimer un capteur en cliquant sur le
bouton "Supprimer" correspondant à ce capteur.
Lorsque le client clique sur le bouton "Modifier" d’un capteur spécifique dans la liste (figure
4.23), il accède au formulaire de modification de capteur (figure 4.24). Le client peut alors
apporter les modifications nécessaires aux champs. Une fois les modifications terminées, le
client peut enregistrer les nouvelles informations de capteur.
Lorsque le client clique sur le bouton "Consulter les données d’irrigation" dans l’interface
d’accueil , il est redirigé vers le cloud "ubidots", Le client dispose de la fonctionnalité de
consultation des données d’irrigation.
La figure 4.26 représente l’historique de l’humidité du sol sous forme d’une courbe.
4.5 Conclusion
Dans ce chapitre, nous avons décrit, en premier lieu, l’architecture de l’application et les
technologies utilisées dans notre projet. La deuxième partie a été dédiée à la présentation de
notre travail moyennant des captures d’écran et une description des fonctionnalités offertes par
les différentes interfaces de l’application développée.
Le travail réalisé dans le cadre de ce projet concerne une nouvelle thématique sur les réseaux
à internet des objets et la réalisation d’un système d’irrigation par smart ollas (des jarres en
argile).
Nous avons pris plaisir à travailler sur ce thème, parce que ce projet est une idée extraordinaire
qui nous aide dans notre vie quotidienne et surtout pour les agriculteurs, ce système est un
élément nécessaire qui peut aider à améliorer l’économie du pays par une série de réparations au
niveau de l’agriculture qui permet d’éviter la dépendance et de réaliser la sécurité alimentaire.
Nous avons commencé, dans le premier chapitre, par une présentation générale mettant en
œuvre le cadre et les concepts de base de notre projet. Nous avons entamé par la suite une
étude des besoins fonctionnels et non fonctionnels. Cette dernière a été couronnée, dans le
deuxième chapitre, par une conception générale et détaillée de l’application de notre système
en présentant des diagrammes UML tel que le diagramme de cas d’utilisation, les diagrammes
de séquence, les diagrammes d’activités et le diagramme de classes. Le troisième chapitre,
intitulé "Installation du système", nous permet de situer le projet dans son contexte spécifique
en fournissant une architecture matérielle détaillée du système, une description approfondie
de ses composants, ainsi que les outils et logiciels utilisés pour sa réalisation. Le dernier
chapitre, nous avons passé à la réalisation web. D’abord, nous avons présenté l’architecture de
l’application et l’environnement de développement logiciel. Nous avons ensuite décrit quelques
interfaces réalisées dans l’application web.
En termes de perspectives, et à court terme, il est essentiel de fournir une formation et un
soutien continu aux agriculteurs pour les aider à comprendre et à adopter le système d’irrigation
par Smart Olla, ou encore améliorer l’efficacité énergétique du notre système en utilisant
des technologies telles que l’énergie solaire pour alimenter les dispositifs, en optimisant
la consommation d’énergie et en réduisant les coûts opérationnels. Aussi, et à long terme,
des perspectives d’extension et d’amélioration sont envisageables, telles que l’intégration de
capteurs supplémentaires, l’utilisation de modèles d’intelligence artificielle pour une irrigation
prédictive, ou encore la mise en place de systèmes de gestion plus complexes.
[6] IoT.UIT-T, “Présentation générale de l’Internet des objets,” Sect. LA Norm. DES
Telecommun. L’UIT, no. 1, p. 24, 2012.