Minist
Ministère de l'Enseignement Supérieur
et de la Recherche Scientifique
Faculté des Sciences de Université de Carthage
Département
Bizerte (FSB) Informatique
Code : P-TRT-18
Rapport de Projet
P de Fin d’Etudess
Pour l’obtention du diplôme de Licence appliquée en Réseaux Informatique
Intitulé :
Réalisé par :
Wiem Turki
Safa Mzoughi
Au sein de :
OpenDev
Encadré par :
M. Karim Fathallah OpenDev
Mme
me Dorsaf Omri Rapporteur
2016 / 2017
Remerciements
Nous tenons à exprimer notre profonde gratitude et nos scincères remerciments à nos
deux encadrant : Monsieur Nizar Ben Neji et Monsieur Karim Fathalah pour leur encadre-
ment, leur disponibilité et leur précieux conseils.
Merci également au corps administratif et à tout le cadre enseignant du département
informatique pour leur efforts durant ces trois années de notre formation à la faculté des
sciences de Bizerte.
Nos vifs remerciments aux membres du jury pour l’honneur qu’ils nous font en acceptant
de juger ce travail.
Aucune dédicace ne saurait exprimer mon respect, mon amour éternel et ma considé-
ration pour les sacrifices que vous avez consenti pour mon instruction et mon bien être.je
vous remercie pour tout le soutien et l’amour que vous m’avez donnez.
Merci
À mes chèrs parents
À ma chère soeur
À ma chère famille
À mes professeurs
Safa Mzoughi
Je dédie ce travail à ma famille avec tous mes sentiments de respect, d’amour, de gra-
titude et de reconnaissance pour tous les sacrifices déployés pour m’ élever dignement et
assurer mon éducation dans les meilleurs conditions .
Wiem Turki
2
Table des matières
Introduction générale 8
1 Contexte du projet 9
1.1 Organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Travail à faire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Méthodologie de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Organisation du rapport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6 Planification du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 État de l’art 12
2.1 Irrigation de précision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Étude de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Critique de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Spécification et Conception 18
3.1 Acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Besoins fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1 Modélisation des besoins . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.1.1 Diagramme de cas d’utilisation général . . . . . . . . . . . . 20
3.2.1.2 Gestion des utilisateurs . . . . . . . . . . . . . . . . . . . . 21
3.2.1.3 Gestion des projets d’irrigation . . . . . . . . . . . . . . . . 23
3.2.1.4 Gestion des besoins en irrigation des projets . . . . . . . . 25
3.2.1.5 Diagramme des classes des modèles . . . . . . . . . . . . . 26
3.3 Besoins non fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3
4 Réalisation du projet 30
4.1 Environnement logiciel et matériel . . . . . . . . . . . . . . . . . . . . . . . . 30
4.1.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.1.2 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Interfaces de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Conclusion générale 42
Annexe 43
4
Table des figures
5
4.13 consultation d’un projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.14 consultation détaillé d’un projet . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.15 consultation des besoins d’irrigation d’un projet . . . . . . . . . . . . . . . . . 40
4.16 routeur Meshlium équipé d’une carte sim et d’un module Xbee pro . . . . . . 43
4.17 connexion sur l’interface du routeur Meshlium . . . . . . . . . . . . . . . . . . 44
4.18 architecture Mechlium ZigBee GPRS AP . . . . . . . . . . . . . . . . . . . . . 44
6
Liste des tableaux
7
Introduction générale
Les agriculteurs d’aujourd’hui font face à un ensemble de défis : une demande mondiale
croissante de nourriture, un climat changeant et une quantité limitée d’eau .
Avec l’évolution de l’Internet des objets (IOT) qui s’est transformé en un concept initial
en solutions matérielles et logicielles réelles, on voit émerger aujourd’hui de nombreuses
applications logicielles dans le secteur agricole qui permettent une rationalisation de l’ex-
ploitation et une augmentation de la productivité comme celle de la traite des vaches, de
l’irrigation, de l’usage des fertilisants ou de l’alimentation des animaux. L’objectif de l’agricul-
ture inteligente donc n’est pas simplement de recueillir des données via des capteurs, mais
aussi de les analyser pour évaluer les interventions ou les changements nécessaires.
En Tunisie, l’utilisation de l’IOT pour l’irrigation est devenue indisponsable, pour cela nous
cherchons des meilleurs solutions afin d’améliorer la productivité et la qualité des produits
agricoles avec le moindre gaspillage d’eau possible.
Dans ce contexte, nous allons concevoir et mettre en place un système qui calcule le besoin
réelle des plantes en irrigation (irrigation de précision).
8
Chapitre 1
Contexte du projet
OpenDEV est une société de prestation de services qui a été créé en 2012. elle a été
spécialement conçue pour aider les sociétés à améliorer leurs performances, et aussi à les
accompagner dans leur croissance. La couverture fonctionnelle d’OpenDEV est exception-
nelle, ce qui lui permet d’être adapté à toutes sortes d’industries. Elle est en collaboration
avec la faculté des sciences de Bizerte d’où elle recrute chaque année des étudiants sta-
giaires.
1.2 Problématique
"L’eau est source de vie, préservons-la pour notre survie "Monique Moreau
9
F IGURE 1.1 – taux de l’utilisation de l’eau par secteur économique
Au niveau de ce projet, nous allons concevoir et mettre en place une solution d’irrigation
de précision qui va calculer les besoins réelles des plantes en eau. Le calcul nécessaire
pour la réalisation de cette tâche nécessite des données de l’environnement tel que la tem-
pérature, la radiation solaire, l’humidité et la vitesse du vent. Ces données seront collectées
soit par des web services gratuits soit par des capteurs placés sur les parcelles agricoles.
10
1.4 Méthodologie de travail
11
Chapitre 2
État de l’art
Ce chapitre a pour but de définir l’irrigation de précision et expliquer quelques notions ma-
thématiques utilisées dans notre projet et aussi d’étudier quelques applications existantes
de calcul des besoins de la plante en eau.
L’irrigation en général consiste en un apport artificiel d’eau sur des terres agricoles.
Les agriculteurs apportent généralement des quantités d’eau en surplus que les besoins de
la plantes où l’importance de l’irrigation de précision.
L’irrigation de précision est une approche d’irrigation qui consiste à apporter à la plante juste
la quantité d’eau nécessaire, elle peut être estimée selon plusieurs modèles mathématiques
Le standard internationale publié par l’Organisation des nations unies pour l’alimentation
et l’agriculture (FAO) en 1998 est le modèle le plus utilisé puisque il présente une grande
précision qui se base sur les observations climatiques et les attributs associés à la plante
ainsi que le sol pour calculer les quantités nécessaires d’eau pour l’irrigation.
La quantité d’eau nécessaire peut être estimée en appliquant l’équation 2.1 ci-dessous :
Où
12
• (P ) :Pluie efficace (mm).
• (HS) : Les réserves d’eau exploitable par la plante déjà disponible dans le sol.
ET = KS ⇤ KC ⇤ ET0 (2.2)
Où
• (KC) : Coefficient liée a la plante elle même, sa forme, son niveau d’évolution.
900
0.408 (Rn G) + T +273 u2 (es ea )
ET0 = (2.3)
+ (1 + 0.34u2 )
• (ET0 ) : Évapotranspiration de référence (mm/h).
13
F IGURE 2.1 – facteurs agissant sur l’évapotranspiration [2]
14
F IGURE 2.2 – l’application IRREY
Cette application permet aux agriculteurs de maîtriser le processus d’irrigation pour op-
timiser l’utilisation de l’eau en fonction de la nature de la culture , du sol et du climat .
Dans le formulaire d’ajout l’utilisateur indique le type de sa plante , date de la planta-
tion . La latitude et la longitude du champ seront obtenues automatiquement en utilisant la
géolocalisation.
L’application calcule chaque jour la quantité d’eau à irriguer selon les paramètres entrés
dans le formulaire
15
Récemment et avec l’évolution de l’IOT, une startup tunisienne I.T GROUP propose SEA-
BEX qui est un système embarqué equipé de capteurs pour controler l’irrigation selon les
besoins des parcelles . Cette application a permis à la présidente de ce startup de gagner «
Special recognition 1 : Ye ! Star – Female Entrepreneur prix » à The Global Inclusion Awards
2017 ,mais ce produit n’est pas encore disponible sur le marché
• Les applications existantes qui obtiennent les données de l’environnement à partir d’un
web service météo, certe elles sont gratuites ou peu coûteuses mais elle donnent des
mesures peu précises, en outre elle dependent des webservices météo qu’on peut pas
les controler (peuvent devenir indisponible à tout moment )
• Les applications existantes qui obtiennent les données de l’environnement à partir des
capteurs sont Résultats de recherche performantes (donnent des mesures précises)
mais elle sont payantes et généralement chères
On propose dans notre application que les données de l’environnement seront collectées
soit par un noeud de capteur :
le capteur envoie les données périodiquement sous forme d’un flux Json à notre webservice
afin de les enregistrer au base de données de l’application.
soit par un webservice météo :
On récupère les données par l’envoi d’une requête au webservice météo contenant les
coordonnées géographiques du lieu.
16
F IGURE 2.4 – architecture générale de l’application
Conclusion
17
Chapitre 3
Spécification et Conception
En se basant sur les informations collectées dans le chapitre précédent, nous avons
eu une vision plus concrète des besoins de notre application. Le présent chapitre nous
permettra de mieux comprendre le contexte du systéme par l’identification de toutes les
fonctionnalités de notre future application .
3.1 Acteurs
• Client : sera capable de créer un compte, gérer des projets d’irrigation, consulter les
besoins en irrigation de ses plantes .
Nous présentons dans ce qui suit tous les besoins fonctionnels classés par acteur
18
L’administrateur peut :
– Ajouter utilisateur
– Supprimer utilisateur
– Modifier utilisateur
– Consulter utilisateur
Le client doit :
• Créer un compte
Le client peut :
19
3.2.1 Modélisation des besoins
Le diagramme de cas d’utilisation décrit les relations entre le système et les acteurs en
déterminant les besoins de l’utilisateur. La figure ci-dessous présente les fonctionnalités of-
fertes pour le client et l’administrateur par le système :
Pour qu’il n’y ait aucune ambiguïté concernant le déroulement des cas d’utilisation nous
allons les détailler.
20
3.2.1.2 Gestion des utilisateurs
• Supprimer un utilisateur
21
• Modifier un utilisateur
22
3.2.1.3 Gestion des projets d’irrigation
23
• Ajouter un projet d’irrigation
24
3.2.1.4 Gestion des besoins en irrigation des projets
F IGURE 3.4 – cas d’utilisation de gestion des besoins d’irrigation des projets en
TABLE 3.5 – description du cas d’utilisation consulter les besoins d’irrigation d’un projet en
utilisant des capteurs
Nom cas d’utilisation Consulter les besoins en irrigation des projets en utilisant
un webservice
Acteur Client - (secondaire) Webservice météo
Pré condition Acteur authentifié et possède au moins un projet où les don-
nées climatiques sont obtenues via un webservice
Post condition L’acteur peut consulter les besoins d’irrigation de ses par-
celles
Enchaînement nominal
1. Le système présente les différents projets existants où
les données climatiques sont obtenues via un webser-
vice
25
• Consulter les besoins en irrigation d’un projet en utilisant les capteurs
TABLE 3.6 – description du cas d’utilisation consulter les besoins en irrigation d’un projet en
utilisant les capteurs
Nom cas d’utilisation Consulter les besoins en irrigation des projets en utilisant
les capteurs
Acteur Client - (secondaire) Capteurs
Pré condition Acteur authentifié et possède au moins un projet ou les don-
nées climatiques sont obtenues via des capteurs
Post condition L’acteur peut consulter les besoins d’irrigation de ses par-
celles
Enchaînement nominal
1. Le système présente les différents projets existants où
les données climatiques sont obtenues via des cap-
teurs
Le diagramme des classes suivant modélise tous les modèles et les attributs qui les
décrivent, il est obtenu par reverse engineering avec Django extension.
26
F IGURE 3.5 – diagramme des classe des modèles
27
• Classe Projet
Attributs Description
argile Taux d’argile dans le sol en pourcentage
date_cre Date de plantation
date_rec Date de récolte prévue
desc Description du projet
gravie Taux de graviés dans le sol en pourcentage
kc_in Coefficients liéé à la première phase de la croissance d’une
plante
kc_mid Coefficients liéé à la phase du milieu de la croissance d’une
plante
kc_end Coefficients liéé à la phase finale de croissance d’une
plante
lat Latitude du lieu du projet
lng Longitude du lieu du projet
nom_plante Nom de la plante
nom_projet Nom du projet
sable Taux de sable dans le sol en pourcentage
surface Surface de la parcelle du projet
type Choix de la source des données climatiques (capteurs ou
webservice )
28
• Classe climat
Ce sont des besoins permettant d’améliorer la qualité des services du site comme la
convivialité, l’ergonomie des interfaces et l’amélioration du temps de réponse. Parmi ces
besoins,on cite :
• Sécurité : le site doit obligatoirement fournir une garantie de sécurité aux utilisateurs.
• Ergonomie : l’application doit disposer d’une certaine clarté et une simplicité d’utilisa-
tion.
Conclusion
Dans ce chapitre nous avons énuméré les besoins fonctionnels et non fonctionnels de
notre application et nous avons fait une étude des différents cas d’utilisation de notre sys-
tème et définie nos modéles.
29
Chapitre 4
Réalisation du projet
Dans ce chapitre nous présentons l’environnement matériel et logiciel ensuite nous pré-
sentons quelques captures d’écran démontrant les fonctionnalités de notre application.
L’équipement mis à notre disposition pour la réalisation du projet a part d’un ordinateur
portable :
Waspmote se présente sous la forme d’une carte open source. Peut s’y connecter divers
modules de détection et de mesure ainsi que différents modules radio sans fil citons par
exemple 802.15.4/ZigBee, Wi-Fi, Global System for Mobile (GSM)/General Packet Radio
Service (GPRS), 3G, Sigfox mais plus généralement au format Xbee .
30
F IGURE 4.1 – shéma detaillé de la carte waspmote
31
• La carte agriculture
Elle est spécialement conçu pour surveiller les processus et les cultures agricoles. Le pan-
neau des capteurs agricoles pour waspmote permet la connexion de 14 capteurs météoro-
logiques différents en même temps. dans notre projet on a utilisé 5 capteurs : la température
de l’air, l’humidité de l’air, l’humidité du sol,vitesse du vent et rayonnement solaire.
• Gateway : Meshlium
Meshlium est un routeur Linux qui fonctionne comme la passerelle du capteur Waspmote
réseaux. Il peut contenir 5 interfaces radio différentes :
– WiFi 2.4GHz
– WiFi 5GHz
– 3G ou GPRS
– Bluetooth
– XBee ou LoRa
32
Pour notre projet on va utiliser l’interface XBee pour recevoir les données des capteurs
envoyées par Waspmote et l’interface GPRS pour envoyer les données obtenues vers notre
web service pour les stocker dans la base de données
Après avoir présenté les moyens matériels mis à notre disposition dans le cadre de
réalisation de ce projet , nous présentons les logiciel choisis et nos motifs :
• Langage :Python
33
faciliter les calculs.De plus il est adéquat pour les Webservice ayant une interfaçage avec
les réseaux de capteurs
• Framework : Django
Django est un framework web Python , permettant de développer rapidement des appli-
cations web,open source, avec moins de code. Il a une grande communauté des dévelop-
peurs et supporte l’architecture Modèle vue contrôleur (MVC) plutôt Modèle vue contrôleur
(MVT)
PyCharm Community Edition est l’édition gratuite et open source que propose py-
charm qui est un Integrated Development Environment (IDE) utilisé pour programmer en
Python.Cette édition offre la coloration syntaxique, l’auto-complétion du code, la vérifica-
tion de code en direct et un débogueur graphique, La gestion des environnements virtuels
(VirtualEnv). Il supporte aussi du HTML.
Django Rest Framework est une extension de Django pour développer rapidement des
webservices REST. Le grand avantage de REST est qu’il permet de requêter le webser-
vice avec de simples requêtes HTTP. Les requêtes GET vont permettre de récupérer des
ressources, les requêtes POST d’en modifier, les requêtes DELETE d’en supprimer[4].
34
• Tâches asynchrones : Celery
celery est le plus utilisé dans le monde de Django pour gérer des tâches asynchrones
parmi ses avantages c’est de planifier les tâches et les centraliser par celery via un broker
par exemple dans notre cas Redis
OpenweatherMap est un web service de météo gratuit. Pour avoir la météo il suffit d’ap-
peler son URL en précisant les coordonnées géographiques du lieu (Latitude et Longitude)
ou le nom d’une ville par exemple .
Google Maps JavaScript API pour afficher des cartes géographiques et avec diffé-
rentes fonctionnalités possible par exemple : (dessiner des formes sur les cartes , géocoder
une adresse , chercher une adresse)
35
4.2 Interfaces de l’application
• Authentification
Comme toute application, la sécurité d’accés est nécessaire.La figure ci-aprés donne l’in-
terface à travers laquelle l’utilisateur s’identifie pour accéder au menu principal pour cela il
saisit son login et son mot de passe.
36
• Interface d’accueil
Une fois authentifié, une interface d’acceuil s’affiche à l’utilisateur pour lui proposer les fonc-
tionnalités de l’application.
Lorsque l’utilisateur choisi « Ajout d’un projet d’irrigation » du premier écran un formulaire
s’affiche.
Tout d’abord il faut choisir entre la création d’un projet avec un service payant (utilisant
les capteurs) ou gratuit (utilisant un webservice OpenWeather) comme le montre la figure
ci-dessous.
37
Aprés, le client remplis les champs concernant la description générale du projet, la des-
cription de la plante et la description du sol comme l’indique la figure ci-dessous.
38
F IGURE 4.11 – interface d’ajout d’un projet (3)
Ensuite, une carte s’affiche pour que le client indique l’emplacement de son champ . le
client dessine ensuite sur la carte la parcelle à irriguer
39
• Consulter les projets
L’utilisateur peut consulter tout ses projets en cours en cliquant sur « Consulter les projets».
L’utilisateur peut aussi afficher toutes les informations en détails d’un projet sélectionné
Le client peut aussi consulter les besoins d’irrrigation de chaque parcelle comme le
montre la figure ci-dessous
40
Conclusion
Dans ce chapitre nous avons détaillé l’environnement matériel et logiciel de notre projet
ainsi les fonctionnalités de notre application à travers des captures d’écran.
41
Conclusion et Perspectives
Nous avons rencontré des contraintes à la phase de développement. En effet nous avons
pris beaucoup de temps à nous familiariser avec l’environnement matériel et logiciel puisque
c’etait la première fois qu’on manipule des capteurs et qu’on utilise le language de program-
mation python et une nouvelle infrastructure de développement.
En outre, le stage quotidien au sein de la société a été une occasion unique pour épa-
nouir nos capacité de communication dans un environement professionnel. Il nous a permis
d’approfondir nos connaissances théoriques,acquises tout le long de notre formation, par la
pratique des nouvelles technologies.
Toutefois ,nous espérons de rendre notre application disponible sur quelques plate-
formes mobile pour plus de flexibilité et d’accessibilité pour le cilent.Il est aussi possible
d’ajouter quelques nouveautés comme le pilotage du champ à distance (arroser son champ
).
Nous espérons enfin que le travail que nous avons effectué a été à la hauteur.
42
Annexe
Configuration Meshlium
F IGURE 4.16 – routeur Meshlium équipé d’une carte sim et d’un module Xbee pro
43
Le gateway Meshlium fournit le système Meshlium Manager comme un outil simple pour
configurer les interfaces de communication.l’acéss sur le passerelle se fait sur l’adresse IP
suivante 10.10.10.1 .
44
On définie les paramètres de l’opérateur mobile choisi. Il existe une liste avec certaines
configurations initiales selon le pays et l’opérateur. on saisie les informations requises pour
se connecter (Nom d’utilisateur, Mot de passe, Téléphone, Init, Composer) et on ajoute le
code PIN de la carte SIM utilisée (la laisser vide s’il n’y a pas de code PIN). Après avoir
configuré les paramètres GPRS et avant de les sauvegarder, on peut tester la connection
via le bouton "Connect now". Il essaiera de se connecter à votre opérateur et d’obtenir une
adresse IP valide. Une fois la connexion établie, la passerelle par défaut de la machine est
changée afin que tous les clients connectés via Wifi atteindra l’Internet via GPRS.7
les trames ZigBee sont stockées dans le fichier local et les bases de données avec le
préfixe Trame, on crée notre propre algorithme de capture et de stockage. On crée notre
algorithme de prompt (curl) sur le fichier ," zigbeeStorer.c ". on accède au Meshlium via la
ligne de commande (ssh).
45
46
Netographie
[4] Créez une api rest grâce au django rest framework ! <https://blog.juanwolf.fr/
programmation/creer-api-rest-django-rest-framework>.
47
Glossaire
48