Académique Documents
Professionnel Documents
Culture Documents
ET DE LA RECHERCHE SCIENTIFIQUE
*******
²
Logo de la
Elaboré par :
Exploit-Consult
Encadré par :
Année universitaire
2015 - 2016
1
Remerciements
2
Table des matières
3
g. Afficheur alphanumérique LCD ............................................................................... 32
4.La Partie Software ............................................................................................................. 32
a. Le logiciel Arduino ................................................................................................... 33
b. Base de données et Web-Service.............................................................................. 35
c. Android ................................................................................................................... 36
5. Conclusion ......................................................................................................................... 36
CHAPITRE 3 : .............................................................................................................................. 37
1. Introduction................................................................................................................ 38
2. Schéma global de fonctionnement............................................................................... 38
3. Récupération des données par le capteur .................................................................... 38
4. Sauvegarde des données dans une carte mémoire (SD) ................................................ 40
5. Affichage sur écran LCD ..................................................................................................... 41
6. Envoie des données vers une base des données externe ..................................................... 41
a. Les commandes AT .................................................................................................. 42
7. Acquisition des données par la base de données ................................................................ 45
8. Android ............................................................................................................................. 45
a. Android Studio ........................................................................................................ 46
b. Genymotion ............................................................................................................ 47
c. Cycle de vie d’une application Android ..................................................................... 47
9. Accès à la base de données depuis Android ........................................................................ 49
a. XML......................................................................................................................... 49
b. JSON ...................................................................................................................... 49
10. Le web-service ................................................................................................................. 51
11. L’affichage des valeurs sous forme des courbes ................................................................ 54
12. Fonctionnement de l’application ............................................................................... 55
13. Conclusion ....................................................................................................................... 57
Conclusion générale ................................................................................................................... 58
Références éléctroniques ........................................................................................................... 59
Résumé ...................................................................................................................................... 60
4
Liste des figures 1
5
Figure 47 : Intégration du bibliothèque JSON dans le code Android ................................................................ 51
Figure 48 : Définition des paramètres du Web-Service dans le code ................................................................. 52
Figure 49 : Méthode onPreExecute .................................................................................................................... 52
Figure 50 : Méthode doInBackground ................................................................................................................ 53
Figure 51 : Méthode onPostExecute ................................................................................................................... 53
Figure 52 : Définition des paramètres du Web-Service ...................................................................................... 54
Figure 53 : Paramétrage du courbe .................................................................................................................... 54
Figure 54 : Paramétrage des axes ....................................................................................................................... 55
Figure 55 : Page 1 : Page d'accueil..................................................................................................................... 56
Figure 56 Page 2 : Menu de choix entre la température, .................................................................................. 56
Figure 57 : Page 2.1 ....................................................................................................................................... 56
Figure 58 : Page 2.1.1 ..................................................................................................................................... 56
Figure 59 : L'allure de la courbe des valeurs mesurées en fonction du temps .................................................. 56
6
Liste des tableaux
7
Introduction générale
De nos jours, la technologie est désormais utile et indispensable dans tous les secteurs tel que
le secteur médical, celui de la gestion, des sports ou encore de la télécommunication…Parmi
ces différents secteurs, on trouve le secteur de l’agriculture où la technologie évolue petit à
petit, surtout dans notre pays. C’est ainsi que nous nous sommes intéressés à
des nouvelles techniques dans ce domaine. Le projet que nous avons réalisé consiste à
développer un système de supervision des paramètres d’ambiance, capable d’avertir
l’agriculteur, en temps réel, en cas de dépassement d’un seuil bien déterminé afin
d'éviter certains dégâts tel que la contamination des types d’élevage. Donc, alerter l’agriculteur
est d’une importance vitale vu que les dégâts peuvent être graves et imminents.
Ce projet s’intègre dans le cadre du projet de fin d’études de la spécialité Licence appliquée en
électromécanique au sein de l’Université Libre à Tunis, encadré par Madame Farah Chenchah
comme encadrante académique et Monsieur Hichem Sfayhi comme encadrant professionnel.
Pendant la période du stage et la réalisation du projet, nous avons rassemblé des nouvelles
connaissances dans les domaines des systèmes embarqués et de développement mobile qui sont
totalement nouveaux pour nous.
8
CHAPITRE 1 :
Présentation
Du projet
9
1. Introduction
Dans ce chapitre, nous allons nous intéresser à la présentation de la société Exploit-Consult où
nous avons effectué notre stage. Ensuite, nous donnerons une vue générale sur notre sujet et
quelques concepts de base. Enfin, nous allons faire une analyse fonctionnelle afin de définir les
besoins.
a. Les services
Exploi-Consult offre plusieurs services, parmi ces services on nomme :
IT-Solution :
IT Consulting
Exploit-Consult accompagne les clients dans les prises de décisions IT en mettant son expertise
à leurs dispositions. Elle apporte notamment audit, conseil, suivi, assistance.
Réseau informatique
Un réseau informatique permet de relier, physiquement ou via les ondes radio, un ensemble de
serveurs et de postes de travail dans le but d'échanger des données et des informations de façon
sécurisée. Parmi ces services, Exploit-consul offre :
• Conception et Déploiement d’infrastructures réseaux.
• Administration et Maintenance d’infrastructures réseaux.
• Câblages réseaux (conception, déploiement).
10
• Solutions de sauvegarde et récupération des données.
• Déploiement d’Intranet & Secs Associés.
Les solutions et projets de GED peuvent permettre des gains en qualité et en coût rapide pour
les organisations, qu’il s’agisse d’entreprises privées ou d’administrations. À titre d’exemple,
11
le retour sur l’investissement d’un projet « standard » de dématérialisation de factures est
inférieur à un an.
Services SSII : L’Administration Réseaux Windows /Linux
L’administration des serveurs nécessite des compétences particulières que vous avez peut-être
du mal à acquérir et/ou à maintenir dans votre entreprise. Vous souhaitez confier à un prestataire
compétent la mise en place et le suivi de vos équipements et logiciels réseaux. Vous voulez
mettre en place une solution d’administration permettant d’économiser du temps et des
ressources tout en garantissant un maximum de sécurité et de fiabilité. Votre administration
réseau doit s’appuyer sur une équipe organisée et disponible.
Interventions
Exploit-Consult met en place des solutions Windows ou Linux complètes et évolutives qui
seront testées généralement au sein de la société pour ses plateformes de production et de test
avant de les recommander à ses clients. Cette veille permet à la société de recommander à ses
clients une mise en œuvre la plus adaptée à leurs besoins et à leurs budgets.
b. Produits
Exploit-Consult offre plusieurs applications dans divers domaines spécialement pour le secteur
de l’agriculture. Parmi ces produits, on cite :
12
NETFARM EXPRESS
L’objectif de cette application est le stockage des données relatives à la production agricole
(agriculteur, ferme, cycle, ventes, dépenses…) et la détermination des indicateurs statistiques
relatifs aux divers cycles. Cette application n’est pas seulement un outil de gestion, mais aussi
un outil de prise de décision qui aide à fournir des comparatifs par localisation, période, centres
d’élevages…
La conduite du projet a suivi la méthode agile XP qui aide à répondre le plus fidèlement
possible, aux exigences du client dans les plus brefs délais.
NETAVICOLE
Net Avicole est une solution destinée aux éleveurs et aux gestionnaires d’élevage avicole. Ce
progiciel a été réalisé en collaboration avec des experts et des spécialistes de l’aviculture en
Tunisie.Net Avicole permet de suivre au quotidien la production (Aliments, vaccins,
antibiotiques, litière, hygiène…) tout en gardant une traçabilité des tâches et travails élaborés
au cours de la production.
Net Avicole n’est pas seulement un outil de traçabilité, mais c’est aussi un outil de prise de
décision. Il offre des comparatifs et des rapports techniques et financiers précis qui fournissent
à l’éleveur une visibilité globale afin d’identifier toute faille sur l’une de ses productions.
13
3. Objectifs du projet
Notre projet est basé sur le développement d’une application mobile de supervision des
paramètres d’ambiance. Ces paramètres sont la température et l’humidité, cette application doit
être connectée à un système de mesures pour ces deux paramètres. Le but de ce projet est que
l’application soit capable d’afficher et d’enregistrer les différentes valeurs mesurées par un
capteur depuis une carte électronique. Par conséquent, c’est un outil de gestion et un outil de
décision.
Notre travail consiste en plusieurs étapes :
- L’acquisition depuis le capteur
- L’enregistrement de ces données vers une base de données externe
- La récupération de ces données sur l’Android
- Le reporting et l’affichage des données sous forme des diagrammes
:
Figure 4 : Schéma descriptif
14
4. Analyse fonctionnelle
L’analyse fonctionnelle est une méthode de travail qui permet de définir les besoins d’un
produit en termes de fonctions, au prix le plus juste. Cette méthode utilise des outils qui
permettent d’identifier des fonctions d’usage et d’estime.
a. La bête à corne
La bête à corne est un outil d’analyse fonctionnelle du besoin. En matière d’innovation, il est
tout d’abord nécessaire de formuler le besoin sous forme de fonctions simples (dans le sens de
« fonctions de bases ») qui devra être en mesure de répondre aux exigences du produit ou du
service innovant.
15
b. Diagramme pieuvre
Le diagramme des interactions, aussi appelé « diagramme pieuvre », sert à déterminer les
interactions du produit avec les éléments du milieu extérieur directement en contact avec le
produit, afin d’en déduire les fonctions que celui-ci doit remplir Pour cela, il faut commencer
par lister les éléments du milieu extérieur directement en contact avec le produit.
Fonction Complémentaire 2 (FC2) : Sauvegarder les données mesurées dans une base de
données
16
c. Diagramme FAST
Un diagramme FAST présente une traduction rigoureuse de chacune des fonctions de service
en fonctions techniques, puis matériellement en solutions constructives. Le diagramme
FAST se construit de gauche à droite, dans une logique du pourquoi ou comment.
17
5. UML
UML (en anglais Unified Modeling Language ou « langage de modélisation unifié ») est un
langage de modélisation graphique à base de pictogrammes. Il est apparu dans le monde du
génie logiciel, dans le cadre de la « conception orientée objet ». Couramment utilisé dans les
projets logiciels, il peut être appliqué à toutes sortes de systèmes ne se limitant pas au domaine
informatique.
UML est un langage formel et normalisé. Il permet ainsi : Une précision exacte, un gage de
stabilité et l'utilisation d'outils.
Figure 8 : UML
UML est modélisé par plusieurs diagrammes, dont nous nous intéresserons à quelques-uns.
18
<<include>>
Surveiller l'état des capteurs
comportement fonctionnel d’un système. Nous présenterons par la suite le diagramme de cas
Les diagrammes de cas d’utilisations sont utilisés pour donner une vision globale du
Utilisateur
19
Consulter les alertes Gestion des capteurs
<<include>>
<<include>>
Condition : Si (T<= X ; H<=Y) <<extend>>
Vérification des valeurs
T : température
H : humidité
X, Y : les seuils des paramètres
d’ambiance
b. Diagramme de cas d’utilisation générale de l’administrateur
Ce diagramme permet à l’utilisateur de définir les paramètres et la gestion de la base des
données (Figure 10).
<<extend>>
<<include>>
<<include>>
20
c. Diagramme de cas d’utilisation de l’utilisateur
Ce diagramme offre à chaque utilisateur la possibilité de contrôler la variation de température
et d’humidité (figure11).
<<include>>
Surveiller l'état des capteurs
Utilisateur
<<include>>
Consulter les alertes
21
6. Planning de projet
Pour bien finir le travail dans la période exacte, nous avons fait un chronogramme comportant
les grandes parties et les différentes tâches.
7. Conclusion
Dans ce chapitre nous avons présenté l’entreprise où nous avons effectué notre stage.
Ensuite, nous avons donné une idée générale sur notre projet et ses différentes parties à travers
une analyse fonctionnelle. Nous allons consacrer le chapitre suivant pour le choix du matériel
et les outils de réalisation du système de gestion des paramètres d’ambiance.
22
CHAPITRE 2 :
Système de supervision
des paramètres
d’ambiance
23
1. INTRODUCTION
Dans ce deuxième chapitre, nous nous intéressons à l’étude et la conception du système de
supervision des paramètres d’ambiance. Nous présenterons les différents composants utilisés,
les modules de connexion et de sauvegarde et les outils de développement.
3. Partie Hardware
a. Les cartes électroniques
Nous exposons dans le tableau suivant quelques cartes électroniques généralement utilisées.
Tableau 2 : Types des cartes électroniques
Figure 13 : STM32
Figure 14 : Arduino
24
Tableau 3 : Tableau comparatif des microcontrôleurs
D’après le tableau comparatif, nous remarquons qu’il faut maîtriser Linux pour pouvoir
utiliser le RaspberryPi, en revanche l’Arduino ou STM32 sont compatibles sur tous les
systèmes d’exploitation.
Nous avons choisi la carte Arduino et non la carte STM32 car l’Arduino se caractérise par :
• Environnement de programmation clair et simple.
• Multiplateforme : tourne sous Windows, Macintosh et Linux.
• Nombreuses librairies disponibles avec diverses fonctions prédéfinis.
• Logiciel et matériel open source et extensible.
• Nombreux conseils, tutoriaux et exemples en ligne (forums, site perso, tutos, etc.…)
• Couts faible.
• Existence de « shield » (boucliers) : ce sont des cartes supplémentaires qui se connectent sur
le module Arduino pour augmenter les possibilités comme par exemple : afficheur graphique
couleur, interface Ethernet, GPS, WIFI,..
25
b. Différents types des carte Arduino
Il existe différents types de carte Arduino, ils sont classés selon plusieurs caractéristiques.
Entrée/Sortie numérique 5V 5V 5V 5V 5V
Entrée/Sortie (PWM)
14/6 14/4 20/7 54/15 14/6
analogique
Mémoire vive
2 Ko 2 Ko 2.5 Ko 8 Ko 2 Ko
(SRAM)
Mémoire morte
1 Ko 1 Ko 1 Ko 4 Ko 1 Ko
(EEPROM)
Micro- USB-B
Interface USB USB-B male USB-B male Mini-USB
USB male
Port UART 1 1 1 4 1
Carte SD X Oui X X X
Ethernet X Oui X X X
WI-FI X Oui X X X
26
Pour le développement de notre système, nous avons choisi de travailler avec la carte Arduino
UNO en se référant à sa :
- Disponibilité
- Capacité suffisante pour notre projet
- Rapport qualité prix
d. Les capteurs
Un des objectifs de notre système est la mesure des paramètres d’ambiance qui sont autre que
la température et l’humidité. La mesure de ces paramètres s’effectue avec plusieurs types de
capteurs dont les technologies dépendent de :
Gamme à mesurer
Milieu : solide, liquide ou gazeux, sous pression,
27
Précision souhaitée
Temps de réponse.
Après avoir fait une recherche conséquente, nous avons trouvé deux capteurs qui répondent à
nos besoins et qui sont disponibles :
Tableau 5 : Tableau comparatif des capteurs
Capteurs
Caractéristiques
DHT 11 DHT 22
Voltage 0-5 V 0-5 V
Plage humidité 20% -> 80% 0% -> 100%
Plage température 0% -> 50% -40% -> +80%
Précision humidité ± 5% ± 2%
Précision température ± 2 °C ± 0.5 °C
Résolution humidité 1% 0.1%
Résolution température 1 °C 0.1 °C
Distance 20m 20m
D’après le tableau comparatif entre ces 2 capteurs, le DHT22 est plus précis, utilisable en
dessous de 0°C et détecte entre 0-100% d'humidité relative alors que DHT11 détecte entre 20
et 20% d'humidité relative. Donc c’est pour cela, on a choisi de travailler avec le DHT22.
e. La connexion internet
Pour que la carte puisse envoyer les données vers la base de données, nous avons besoin d’une
connexion internet. Pour ce fait, nous avons trouvé plusieurs shields (composants
électroniques) qui permettent à la carte de se connecter à internet et d’envoyer les données.
28
Shield Wi-Fi Arduino
Le module Wi-Fi Shield Arduino permet à une carte Arduino (Uno, Leonardo ou Mega 2560)
de se connecter à internet via Wi-Fi. Le module est équipé d'un support pour carte mémoire
micro SD, un port mini USB, d'un bouton reset et de leds d'indication de statut et la connexion
est facile sur les cartes Uno et Mega 2560. Ses caractéristiques sont :
Version : R3.
Dimensions : 75 x 53 x 25 mm.
Shield Ethernet
29
Protection de surcharge et de court-circuit.
Isolation 1500V (Entrée vers Sortie).
Tension d'entrée 36V à 57V.
Faible ondulation et bruit.
Shield ESP8266
L'ESP8266 est un petit module Wifi qui permet à l'origine de s'interfacer en série avec d'autres
périphériques.
30
Dans notre projet, nous avons eu besoin d’une connexion à distance et non à travers des fils
connecteurs. Pour cela, nous avons éliminé le choix du shield Ethernet, et après une
comparaison entre les deux autres shields qui restent, nous avons choisi l’ESP8266 grâce à sa
disponibilité en Tunisie contrairement au shield WIFI Arduino qui se réfère au rapport
qualité/prix nous menant ainsi à choisir l’ESP866.
Parmi les avantages principaux de l’ESP8266 on site :
Ce shield coûte moins de 20 DT
Son code et son système de développement sont accessibles
Possibilité de se passer d'Arduino. Le module peut être flashé pour mettre son propre
firmware. Il peut fonctionner comme un microcontrôleur si l’application ne dépasse pas
2 entrées/sorties
On trouve un IDE comme pour l’Arduino adapté à l’occasion
On trouve un firmware, interpréteur embarqué en lu : nodemacu
Un bus SPI.
On bénéficie du chiffrement Wifi. (WPA/WPA2).
Le seul inconvénient, c'est qu’ESP8266 est assez consommateur de courant.
Facilement interfacé
Tension d’entrée : 3,3 V / 5 V
Taille : 51x304mm
Poids net : poids 8g
Emballage : 18g
31
g. Afficheur alphanumérique LCD 16*2
Les afficheurs LCD (Liquid Crystal Display) sont une interface homme-machine. Ils sont très
utilisés dans les montages à microcontrôleur, et permettent une grande convivialité. Ils peuvent
aussi être utilisés lors de la phase de développement d'un programme, car on peut facilement y
afficher les valeurs de différentes variables.
Nombre de ligne : 2
Nombre de caractères par ligne : 16.
Contrôleur : SPLC780D.
Rétroéclairage : LED Bleu.
Dimension : 80 x 11 x 36mm.
4. Partie Software
Pour réaliser notre projet de supervision des paramètres d’ambiance, nous avons besoin de :
32
Développer une application mobile sous Android qui récupère les valeurs de la base de
données et les affiche en temps réel.
a. Logiciel Arduino
L’Arduino Software est un IDE spécifique à la carte Arduino qui contient un éditeur de texte
où on peut écrire notre code basé principalement sut le langage Java, une zone de message, une
console de texte, une barre d'outils avec des boutons pour les fonctions communes et une série
de menue écriture. Il se connecte au matériel Arduino pour établit la communication entre la
carte et ses différents shield afin de réaliser une tache précise.
33
Figure 23 : barre du menu du logicielle ARDUINO
Le moniteur série nous permet d’envoyer des messages sur la voie série de notre ordinateur (qui
est émulée par l’Arduino) et de recevoir les messages que notre carte Arduino nous envoie (en
phase de fonctionnement). Dans ce moniteur série, on peut configurer quelques paramètres tels
que la vitesse de communication avec l’Arduino et l’autoscroll qui fait défiler le texte
automatiquement.
34
b. Base de données et Web-Service
Le Thingspeak permet d’accéder à une large gamme de systèmes embarqués et des services-
Web. ThingSpeak est une plate-forme open source de données et API pour l'internet des choses
(Internet of things) qui permet de collecter, de stocker, d’analyser, de visualiser et d’agir sur les
données provenant des capteurs ou d’actionneurs, comme Arduino, RaspberryPi et d’autres
matériels.
Par exemple, avec ThingSpeak il est possible de créer des applications de géolocalisation de
suivi, un réseau des capteurs avec des mises à jour de statut, de sorte qu’il est possible de
contrôler la maison en fonction de votre emplacement actuel depuis votre smartphone.
L’élément principal de ThingSpeak est la chaine, qui contient les champs de données,
les champs de localisation, et un champ d'état. Après avoir créé la chaine sur ThingSpeak, vous
pouvez ajouter des données, visualiser et afficher les données avec MATLAB, et de réagir aux
données avec des alertes. Le flux de travail de ThingSpeak permet de :
L'API ThingSpeak est disponible sur GitHub et comprend l'API ThingSpeak complet pour
le traitement des requêtes HTTP, le stockage des données numériques et alphanumériques,
le traitement de données numériques, le suivi de l’emplacement, et des mises à jour de statut.
Autre que la possibilité d’afficher, analyser et agir sur les données sur le Thingspeak, il est
possible de l’utiliser comme une base de données. Le Thingspeak donne un accès à sauvegarder
les données qu’il reçoit depuis le capteur. La base des données est sous forme de courbes qui
représentent les variations des valeur reçus au cours du temps. Les données reçus peuvent être
exporté sous plusieurs formats.
35
Figure 26 : Allure des courbes offertes par Thingspeak
c. Android
Android est un système d'exploitation édité par Google pour des appareils mobiles comme les
smartphones et les tablettes. On le retrouve aussi dans certains GPS, ordinateurs de bord de
voitures, télévisions, radios, et même des montres. De plus, de nombreux prototypes d'appareils
électroménagers, comme des réfrigérateurs oudes machines à laver, fonctionnant sous Android
ont été présentés ces derniers temps, permettant ainsi de lancer une machine à l'aide de son
téléphone, ou encore d'être prévenu par son frigo lorsqu'il manque certaines choses.
D'autre part, ce système est open-source, ce qui permet à n'importe qui de lancer sa propre
version d'Android. De nombreuses personnes utilisent ainsi des "ROM custom", c'est à dire des
versions modifiées par rapport au code de base fourni par l'éditeur.
5. Conclusion
36
CHAPITRE 3 :
Conception de
l’application réalisée
37
1. Introduction
Ce chapitre présente la partie conception de l’application. Nous allons présenter les démarches
de fonctionnement de notre système dès la collecte des données par le capteur jusqu’à
l’affichage en temps réel dans l’application passant par la communication entre les différents
composant utilisées
Nous avons utilisé dans un premier temps la carte Arduino Uno pour calculer la température et
l’humidité ambiante à travers le capteur DHT22 qui est composé de deux parties, un capteur
38
d'humidité capacitif et une thermistance, et il y a le circuit de gestion qui convertit des valeurs
analogiques en numériques.
39
4. Sauvegarde des données
L’avantage de sauvegarder les données dans une carte mémoire est que la possibilité de
récupération des données en cas de besoin ou s’il y a une coupure de l’électricité.
La sauvegarde des
valeurs mesurées dans
la carte SD
40
5. Affichage sur un écran LCD
41
Une fois que les données de température et d’humidité sont acquises, il faut l’envoyer vers une
base de données externe à travers une connexion internet. Comme précédemment énoncé, nous
avons choisi le module WIFI ESP8266 à cause de la disponibilité.Ce module est capable
de se connecter à un réseau WIFI, il dispose d’une antenne, une liaison série qui permet
l’échange des données et il comporte deux entrées digitales ce qui lui permet de fonctionner
comme un microcontrôleur si l'application à réaliser ne dépasse pas deux entrées/sorties.
a. Les commandes AT
Pour communiquer avec l'ESP8266, il faut utiliser les commandes AT. C'est un langage
développé à l'origine pour le modem Hayes Smart-modem 300. Pour notre système nous avons
utilisé les commandes suivantes :
42
Nous présentons dans la figure 32 un extrait de notre code :
Pour envoyer les données nous avons utilisé les commandes suivantes :
AT+CIPSTART
Permet d’initialiser une connexion
43
Extrait du code pour envoyer les données
On observe dans la figure suivante le résultat obtenu dans le moniteur série après avoir
téléverser le code dans la carte Arduino
44
7. Acquisition des données par la base de données
Le transfert des données vers une base de données externe a été l’un des plus grands
problèmes survenus pendant la réalisation de ce système. Mais après une recherche
approfondie, nous avons trouvé que le Thingspeak peut jouer le rôle d’une base de données
externe et en outre, il est facile à utiliser.
En créant un compte sur le site thingspeak.com, on trouve un key spécifique au compte qui est
l’élément à utiliser pour établir la communication avec le système de mesure.
Il faut définir dans le code Arduino, l’adresse du Thingspeak ou l’adresse IP qu’il offre, le key
et le nom des deux variables la température et l’humidité pour qu’on puisse les recevoir dans la
base de données, les convertir en chaines et les afficher sous forme de courbes
8. Android
La conception de l’application Android s’effectue selon trois étapes :
45
a. Android Studio
Android Studio est un nouvel environnement de développement
et de programmation, entièrement intégré qui a été récemment lancé par Google pour les
systèmes Android. Il a été conçu pour fournir un environnement de développement.
Lorsque vous commencez un nouveau projet avec Android studio, la structure des projets
apparaitra avec pratiquement tous les fichiers du répertoire SDK, ceci vous redirigera vers un
système de gestion conçu en Gradle offrant encore plus de flexibilité au processus de
construction. Android Studio permet de voir chacun des changements visuels que vous
effectuez sur votre application et en temps réel, vous pourrez aussi voir son effet sur différents
appareils Android, avec différentes configurations et configurations simultanément.
L’Android Studio est divisé en deux grandes parties, une première partie XML qui est
responsable de la configuration de l’application telle que le design, l’emplacement des boutons,
les fonds d’écrans… et une deuxième partie JAVA, c’est la partie où le développement du code
s’effectue.
46
b. Genymotion
L’un des avantages du Android Studio la disponibilité d’avoir un émulateur permettant de
vérifier le fonctionnement des applications. Dans notre cas nous avons utilisé l’émulateur
Genymotion.
Genymotion est un émulateur Android basé sur VirtualBox. Genymotion, il a l'avantage d'être
plus rapide que l'émulateur du Kit de développement Android et fournit de meilleures
performances générales.
47
Figure 44 : Cycle de vie d’une application Android
La méthode onDestroy est appelée lors de la mort de l'activité (soit naturelle, soit par
le système). Parfois, l'urgence du système détruira l'activité sans même appeler
onDestroy. Cette méthode doit libérer les ressources allouées dans la méthode onCreate.
La seule méthode qui est appelée avec certitude avant la destruction de l'activité est
onPause ().
48
Les méthodes onPause et onResume sont celles dans lesquelles l'activité doit
sauvegarder ses états et les restituer.
La méthode onResume est appelée immédiatement avant que l'activité ne passe au
premier plan. De ce fait, c'est le bon endroit pour reconstruire les données affichées par
l'IHM et mettre celle-ci à jour, quitte à lancer un thread de reconstruction des données
a. XML
XML est un langage à balises qui est la base de nombreux formats et langages d’interface :
RSS, SVG, OPML, XHTML, Open XML, XAML, etc. Il permet de décrire et analyser toutes
sortes de documents, sauf binaires, et de les conserver dans un fichier.
Tout contenu textuel se représente en XML et on y accède par l'identifier ou le nom de balise.
Mais le format prend beaucoup d'espace.
b. JSON
JSON est un format récursif compatible avec JavaScript qui est en fait, à la structure d'un objet
JavaScript. C'est un objet sauvegardé dans un fichier. Il date de 2002 et est
soudainement devenu populaire lorsqu'Ajax à commencer à être largement utilisé. On peut
stocker des fichiers JSON dans une base de données.
49
Les avantages de JSON :
La vitesse de traitement.
La simplicité de mise en œuvre.
JSON est reconnu par JavaScript.
Les contenus binaires peuvent être intégré et échangés sur le net avec une
représentation textuelle
Parmi les avantages qui nous mènent à choisir le Thingspeak pour l’utiliser comme base de
données c’est qu’il offre les deux types de fichiers, XML et JSON.
Nous avons choisi d’utiliser le format JSON car il est plus simple pour retirer des données sur
le serveur. Il est plus léger que XML et économise les ressources.
En appuyant sur le bouton DATA EXPORT une nouvelle fenêtre s’ouvre et affiche les types
de fichiers qu’on peut exporter depuis le Thingspeak
Autre que les formats XML et JSON, le Thingspeak offre aussi d’exporter les données sous
forme de fichier CSV, de type Excel
50
10. Web-service
Le Web-service est l’élément responsable de la communication entre l’application Android et
la base de données. Un web-service est un protocole qui permet à un logiciel d'appeler à distance
des fonctions d'un autre logiciel par le web (c'est à dire le protocole HTTP). Les deux
paramètres qui déterminent le web-service sont le key et l’id. Pour notre application nous avons
utilisé ‘ Created_at’ comme key c’est la date ou Thingspeak reçoit la valeur par le capteur et
le ‘’entry_id’’ comme id de la valeur mesurée par le capteur
Pour récupérer les données du web-service, il faut intégrer son lienet définir ses paramètres
dans le code Android.
D’abord il faut intégrer la bibliothèque des fichiers JSON et créer un nouveau tableau vide de
type chaines de caractère.
51
Il faut ensuite définir le lien du web-service et ces paramètres dans le code :
Pour pouvoir récupérerles données il y a plusieurs classes à utiliser, nous avons utilisé la classe
AsyncTask. Nous avons appris d’utiliser cette méthode durant la formation Android que nous
avons effectué.
Les AsyncTask permettent de réaliser des opérations de manière asynchrones comme la classe
Thread. La class Thread est une suite linéaire et continue d'instructions qui sont exécutées
séquentiellement les unes après les autres. Les AsyncTask sont faciles à utiliser et à
implémenter, l’utilisation de cette méthode est nécessaire car, dans une application Android,
les opérations consommatrices de ressources (requête HTTP, calculs, etc…) doivent s’effectuer
dans des Threads séparés. Lorsque l’on appelle une AsyncTask, un Thread secondaire est créé.
Il y a trois méthodes qui définissent la class Asynctask :
Invoquée sur le thread d'interface utilisateur avant que la tâche soit exécutée. onPreExecute
52
Figure 50 : Méthode doInBackground
La Dernière étape est de faire une appelle sur le thread d'interface après la fin du calcul. Le
résultat du calcul en arrière - plan est transmis à cette étape : onPostExecute
53
11. L’affichage des valeurs sous forme des courbes
Parmi les fonctionnalités que notre application offre est l’affichage des valeurs enregistrées
sous forme des courbes. Pour réaliser cette fonctionnalité nous avons utilisé une bibliothèque
MPAndroidChart. Pour la configuration de l’affichage des courbes il faut d’abord mentionner
le lien du web-service et de définir ces paramètres, comme dans la première partie
Après il faut définir la liste où les valeurs mesurées sont enregistrées et la configuration des
courbes comme le choix du couleur, la possibilité de zoomer…
54
Il faut aussi configurer les axes des abscisses et des coordonnées.
55
Figure 55 : Page 1 : Page d'accueil Figure 56 Page 2 : Menu de choix entre la température,
56
Parmi les avantages que notre application offre, l’avertissement de l’utilisateur lorsque la
température ou l’humidité dépasse un seuil bien déterminé. Nous avons utilisé une notification
d’alerte, la notification est un système qui fournit une indication permettant de prévenir
l’utilisateur de certains évènements (arriver d’un SMS, mail, appel en absence … en dehors de
l’application, Il apparaît d’abord comme une icône dans la zone de notification. Pour voir les
détails de la notification, l'utilisateur ouvre le tiroir de notification.
13. Conclusion
Dans ce chapitre nous avons citées différents outils de travail pour réaliser la conception de
l’application et on a présenté aussi les méthodes suivies pour établir une communication avec
le système de mesure des paramètres d’ambiance à travers une base de données externe et un
web-service.
57
Conclusion générale
Le projet que nous avons élaboré a été réalisé dans de le cadre de projet de fin d’études, licence
appliquée en électromécanique au sein de l’Université Libre de Tunis. Le but de notre projet
est de développer une application mobile capable de superviser les paramètres d’ambiance
mesuré par un système embarqué basé sur Arduino.
La réalisation de ce projet était une occasion pour nous pour apprendre des nouvelles
connaissances dans le domaine du développement mobile et des systèmes embarqués, une
opportunité de se familiariser avec plusieurs composants électronique, logiciels de conception
et d’approfondir nos connaissances cumulées durant les trois années de licence.
C’était une expérience pour nous surtout dans le travail d’équipe, la communication, la
répartition du temps et la répartition des tâches entre nous. C’était une expérience unique pour
avoir une idée sur le monde professionnel.
Notre projet est un projet ouvert en termes d'amélioration, nous avons déjà des idées
mélioratives au court et au long terme. L’une de ces idées est de trouver une solution pour
l’alimentation où nous avons déjà pensé à une cellule photovoltaïque, on peut développer un
site web, aussi on peut ajouter d’autres capteurs ce qui rendra notre système un système de
gestion des capteurs.
58
Références électroniques
Support Android :
https://openclassrooms.com/courses/creez-des-applications-pour-android
https://github.com/PhilJay/MPAndroidChart
Support Arduino :
https://openclassrooms.com/courses/programmez-vos-premiers-montages-avec-arduino
http://les-electroniciens.com/videos/arduino-ep16-installation-du-module-wifi-esp8266
59
Résumé
Abstract
60