Vous êtes sur la page 1sur 18

III.

1 Introduction

Dans ce chapitre, nous présentons les différentes étapes réalisées durant


l’implémentation de notre application, nous commençons à décrire la conception UML utilisé,
puis l’étude et la description de l’environnement du site expérimental et le logicielle
supportant notre application avec l’explication de l’utilité de chaque outil, ensuite nous
définissons les fonctionnalités de notre application, sans oublié de présenté la méthode KNN,
l’élément le plus important dans notre application et qui va améliorer les résultats obtenus.

III.2 Conception UML

Pour la conception, nous avons utilisé UML (Unified Modeling Languge - Le Langage
de Modélisation Unifié), Il s'agit du langage graphique le plus couramment employé pour
représenter les différentes composantes d'un système d'information.

III.2.1 Les diagrammes UML

Les diagrammes UML sont classés dans deux catégories : dynamiques et structurelles.

1- Les Diagrammes dynamiques

 Le diagramme des cas d’utilisation : il modélise les fonctionnalités que le système


doit fournir. Le cas d'utilisation est une unité fonctionnelle utilisée pour la description
du système. Il permet de décrire l’interaction entre les acteurs (utilisateurs du cas) et le
système.

 Le diagramme d'activité : modélise les flux d'informations et les flux d'activité du


système.

 Le diagramme de séquence : permet de décrire les scénarios de chaque cas


d’utilisation en mettant l’accent sur la chronologie des opérations en interaction avec
les objets.

 Le diagramme de séquence : peut accompagner le développement d’un projet à un


stade plus avancé que le diagramme de classe [28].

 Le diagramme d’état de transition : il représente les différents états que peut


prendre un élément ou une opération ainsi que ses réactions aux évènements
extérieurs.
 Le diagramme de collaboration : il représente les messages échangés entre les
objets (liens et interactions).

1- Les Diagrammes structurelles

 Le diagramme de Classe : il présente une vue immuable des composants du système,


de leurs caractéristiques et de leurs actions.

 Le diagramme de composants : il présente une illustration visuelle de la structure


interne du système, mettant en évidence les connexions et les interactions entre ses
différentes composantes.

 Le diagramme de Package : expose la structure globale du modèle.

 Le diagramme de déploiement : il décrit la répartition des éléments du logiciel sur


les composants matériels du système.

Pour répondre aux besoins de notre système, nous avons utilisé, les trois diagrammes :
le diagramme des cas d’utilisation, le diagramme de classe et le diagramme de séquence, et
pour dessiner ces digrammes, nous avons choisi StarUML pour dessiner des diagrammes
UML.

III.2.2 StarUML

Est un outil open source pour développer une plate-forme UML / MDA rapide,
flexible, extensible, fonctionnelle et disponible gratuitement. Compatible avec le méta-
modèle et les diagrammes standard UML 2.x: classe, objet, cas d'utilisation, composant,
déploiement, structure composite, séquence, communication, état, activité, minutage,
débordement d'interaction, flux d'informations et diagramme de profil.

 Diagramme de classe général

Nous avons construit le diagramme de classe pour permettre de représenter une vue
statique de notre système. La figure ci-dessous représente le diagramme de classe de notre
proposition :
Figure III.1 : Diagramme de classe.

 Diagramme de cas d’utilisation général


Figure III.2 : Diagramme de cas d’utilisation.

 Diagramme de séquence général

Figure III.3 : Diagrammes de séquence.


III.3 Implémentation

Etude et description de l’environnement du site expérimental.

III.3.1 Matériel végétal

Le géranium (Pelargonium) est une plante à fleurs très commune et est largement
cultivé dans les jardins et comme plante d’intérieur. Le sexe Pelargonium : Le géranium fait
partie du sexe Pelargonium, qui comprend plus de 200 types différents. Chaque type a des
caractéristiques uniques en termes de forme des feuilles, couleur et motif de fleur [30].

 Le géranium : en pratique

 Exposition : soleil / mi-ombre.

 Sol : tous types de sols bien drainé et ensoleillé.

 Type de végétation : vivace.

 Rusticité : les climats chauds, mais est souvent cultivé comme une plante annuelle
dans les zones plus froides.

 Maladies et parasites : / [31].

III.3.2 Environnement des logiciels

Dans cette partie on représente brièvement les outils de développement qu’on a utilisé
durant le développement de notre système

III.3.2.1 Structure générale du programme (IDE Arduino)

Arduino IDE (Integrated Development Environment)

Un logiciel open-source utilisé pour programmer les cartes de développement Arduino.


Il fournit un environnement convivial pour écrire, compiler et téléverser du code sur les
cartes Arduino.

Langage de programmation : Arduino IDE utilise une variante simplifiée du langage


de programmation C/C++, spécifiquement adaptée aux besoins des cartes Arduino. Il dispose
également d'une bibliothèque de fonctions préprogrammées, ce qui facilite le développement
de projets.

Figure III.5 : Interface IDE Arduino.

III.3.3.2 Présentation de Android Studio

Android est un système d’exploitation ouvert dont le code source est librement
accessible (contrairement aux systèmes de Apple ou Microsoft) ce qui permet à n’importe
quel fabricant de l’intégrer dans son système gratuitement.

Figure III.6 : Interface Android Studio.


III.4 Réalisation du système

III.4.1. Architecture du système

Notre système d’irrigation intelligent contient des capteurs (DHT11 et Capteur


d'humidité du sol et capteur niveau d’eau), un module RTC, Afficheur LCD 20x4, pompe
électrique et le module Relais.

Figure III.7 : Schéma fonctionnel de notre système d'irrigation intelligent.

Figure III.8 : Le système proposé 1.


Figure III.9 : Le système proposé 2.

III.4.1.1 NodeMCU ESP32

L'ESP32 est basé sur une architecture à double cœur cadencée à des fréquences allant
jusqu'à 240 MHz. Il dispose de connectivité Wi-Fi intégrée, ce qui lui permet de se connecter
à des réseaux sans fil.

Figure III.10 : NodeMCU ESP32.

III.4.1.2 La température & l’humidité

 Capteur utilisé : DHT11

Permet de mesurer la température ambiante et l'humidité relative. Il utilise un capteur


d'humidité à résistance variable et un thermistor pour la mesurer de la température.
Figure III.11 : Capteur DHT11.

Tableau III.1 : Caractéristiques du DHT11

Caractéristique Valeur
Plage de température 0°C à 50°C
Tension alimentation 3,3V à 5V
Plage d’humidité relative 20% à 90%
Protocole de communication Un fil série
Vitesse de transmission 1bit par second

Une fois le capteur installé sur Arduino, il fallait télécharger la bibliothèque DHT
depuis le référentiel GitHub : https://github.com/adafruit/DHT-sensor-library et l’installer
dans le fichier de bibliothèque Arduino.

Figure III.12 : Code d’initialisation du capteur DHT11.

III.4.1.3 Humidité du sol

 Capteur utilisé : Capteur capacitif d'humidité du sol 1.2V.

Ce capteur d'humidité permet de connaître la quantité d'eau dans le sol. Il est équipé de
deux sorties :
 Une sortie analogique qui délivre une valeur analogique précise en fonction de la
teneur en eau.

Figure III.13 : Capteur d’humidité du sol.

Le capteur possède 3 bornes, utilisées comme suit :

 Une borne reliée au 5 V de l’Arduino.

 Une borne GND reliée à la masse.

 Une borne AOUT ou A0 reliée à l’entrée analogique 0 de l’Arduino.

Tableau III. 2 : Caractéristiques techniques du capacitif d'humidité du sol 1.2V.

Tension de fonctionnement DC 3.3-5.5V


Tension de sortie DC 0-3.0V
Interface PH2.0-3P
Taille 99x16mm/3.9x0.63"

III.4.1.4 Capteur niveau d’eau

Le capteur de niveau d'eau est un dispositif utilisé pour mesurer le niveau d'eau dans un
réservoir, un puits, une cuve ou tout autre système de stockage d'eau.
Figure III.14 : Capteur niveau d’eau.

III.4.1.5 RTC Module (DS3231)

Une horloge temps réel (HTR) est un dispositif électronique qui permet de mesurer le
temps avec une grande précision, jusqu'à l'échelle des nanosecondes, afin de dater des
événements ou de déclencher des actions en fonction de l'heure.

Il est largement utilisé dans divers projets électroniques et applications qui nécessitent
une horloge précise, tels que la journalisation des données, la mise en timestamp et les
systèmes de réveil.

Un circuit RTC peut servir à de nombreuses choses : afficher l’heure en


synchronisation avec l’heure de l’ordinateur, lancer des actions à des heures précises,
horodater des lignes d’un log et surement d’autres choses. Il est composé de :

 La puce RTC (ici DS3231), elle gère le temps.

 Un quartz cadencé à 32.768kHz, pour donner la cadence à votre RTC.

 Et une pile type LIR2032 qui va permettre de faire fonctionner la puce RTC
Figure III.15 : Module RTC DS3231.

Une fois le Module installé sur Arduino, il fallait télécharger la bibliothèque RTClib.h
et l’installer dans le fichier de bibliothèque Arduino.

Figure III.16 : Code RTClib.h.

III.4.1.6 Afficheur LCD (Afficheur à cristaux liquides)

Les afficheurs à cristaux liquides sont des modules compacts intelligents et nécessitent peu de
composants externes pour un bon fonctionnement. Il est relativement bons marchés et
s’utilisent avec beaucoup de facilité. En utilisant librairie LCD. H et LiquidCrystal_I2C.h.

Figure III.17 : LCD 20x4 caractères.

III.4.1.7 Relais

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
Figure III.18 : Module relais

III.4.1.8 La pompe électrique

Une pompe est un dispositif permettant d'aspirer et de refouler un fluide, il existe une
panoplie de pompes adaptées à chaque besoin, le choix d’une pompe s’effectue toujours selon
son usage et la détermination des paramètres de performances.

Figure III.19 : Micro pompe à eau électrique submersible 12V.

Tableau III.3 : Caractéristiques techniques de la pompe 12v.

Module JT-1020
Débit 200L/H
Puissance 1-3W
Tension Cc 12V
Taille 39*38*28mm

III.4.1.9 Les fils de liaison


Ils sont utilisés pour connecter différents composants électroniques entre eux. Ils
peuvent transmettre des informations sous forme de signaux électriques ou optiques, selon le
type de connexion utilisé.

Figure III.20 : Les fils de liaison.

III.4.1.10 Breadboard

Un outil utilisé en électronique pour créer des prototypes de circuits électroniques sans
avoir à souder les composants.

Figure III.21 : MB102 Prototype Platine de prototypage.

III.4.2 Fonctionnement du système

Notre système se compose de senq sous-systèmes essentiels qui sont le sous-système


d’application, le sous-système de communication et le sous-système de contrôle.
Figure III.22 : Schéma globale de notre système.

III.4.2.1 Sous système de collecte de données

Le système de collecte de données comprend les différents capteurs. Un nœud capteur


est capable de collecter différents types de données environnementales. Après la mise sous
tension du système, les capteurs recueillent les données qui seront analysées par le
microcontrôleur qui va activer le système d’irrigation lorsqu’il est nécessaire.

III.4.2.2 Sous système de contrôle :

Le sous-système de contrôle basé sur NodeMCU ESP32 contient module Wifi, qui est
équipée d'un ensemble de capteurs, contrôle les paramètres de signale de la pompe. Au niveau
de ce système, et pour optimiser l’utilisation de l'eau ; et bien identifier les zones qui
requièrent une augmentation ou une diminution de l'arrosage, en fonction des besoins
spécifiques de chaque zone, et même pour améliorer les rendements agricoles, l'utilisation de
l'intelligence artificielle apparait comme la solution la plus appropriée pour résoudre ce
problème.

III.4.2.3 Sous système de communication :


Le sous-système de communication est un médiateur entre le sous-système
d’application et le sous-système de contrôle, où il est responsable de la transmission des
requêtes entre les deux systèmes.

Pour la transmission des données mesurées et l'état de la pompe (ou du système en


général), nous avons choisi le réseau Wifi comme passerelle pour assurer la communication
entre le système et l'application Android que nous avons développée.
III.4.2.4 Sous système de pompage de l'eau :

Le système est composé de :

-Une source d’eau : les sources d'eau peuvent être des puits profonds forés, des
ruisseaux, des sources, des étangs, des rivières, etc.

-Une pompe : C'est l'élément principal du système de pompage de l’eau

-Système de distribution d'eau : La croissance de la production végétale dépend


principalement du réseau d'irrigation [40]. Le système doit être capable d'améliorer l'efficacité
de la distribution d'eau à faible coût.

III.4.2.5 Sous système d’application :

Ce système se représente sous forme d’une application installé sur smartphone. Il


permet la communication entre notre système de contrôle et les différents dispositifs.

Dans la suite de notre présentation, nous allons vous montrer les différentes interfaces
de notre application mobile :
Figure III.19 : Interface de surveillance du système.

III.4. 3 Intelligence Artificielle

L'intelligence artificielle (IA) est un domaine de l'informatique qui se concentre sur la


création de systèmes et de machines capables d'effectuer des tâches qui normalement
nécessitent l'intelligence humaine. L'objectif principal de l'IA est de simuler des capacités
cognitives, telles que la perception, le raisonnement, l'apprentissage, la résolution de
problèmes et la prise de décision.

……………………..

Les systèmes d'irrigation basés sur l'IA utilisent des capteurs pour collecter des
données en temps réel sur l'humidité du sol, les conditions météorologiques et d'autres
facteurs. Ces données sont ensuite utilisées par des algorithmes d'IA pour déterminer la
quantité d'eau optimale à fournir aux cultures, en ajustant les cycles d'irrigation en fonction
des besoins réels.

L'IA utilise une combinaison de techniques, d'algorithmes et de modèles


mathématiques pour permettre aux machines de comprendre, d'apprendre et de résoudre des
problèmes.

III.4. 4 Apprentissage automatique (Machine Learning)


Une branche de l'IA qui se concentre sur l'utilisation d'algorithmes pour permettre aux
machines d'apprendre à partir de données.

Pour notre système d'irrigation, nous avons opté l’algorithme KNN pour la classification.

III.4. 5 Algorithmes KNN (K-Nearest Neighbors)

Algorithme populaire utilisé en intelligence artificielle et en apprentissage automatique


supervisé. Il est principalement utilisé pour la classification

Pour utiliser l'algorithme KNN dans le contexte de l'irrigation et du contrôle de la


pompe, voici les étapes générales :

 Collecte des données

 Prétraitement des données

 Définition des classes

 Entraînement de l'algorithme KNN

 Prédiction et décision de contrôle

 Évaluation et ajustement

III.5 Conclusion
Dans ce dernier chapitre, nous avons présenté la phase de conception de notre projet,
après nous avons décrire l’environnement matériel et logiciel de développement et
implémentation du système proposé. Enfin, nous avons présenté/expliqué les principaux
services et fonctionnalités offertes par ce système qui a pour objectif de garantir une
utilisation optimale de l'eau, tout en profitant de l’intelligence artificielle pour faciliter la
tâche de l'agriculteur.

Vous aimerez peut-être aussi