Vous êtes sur la page 1sur 61

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR

ET DE LA RECHERCHE SCIENTIFIQUE

Université Libre de Tunis

*******
²

Logo de la

Projet de Fin d’Etudes Société

En vue de l’obtention du Diplôme National de Licence Appliquée en Électromécanique

Elaboré par :

Ben Jemaa Houssein & Jeribi Mohamed Walid

Système de supervision des paramètres


d’ambiance
Réalisé au sein de

Exploit-Consult

Encadré par :

Encadrant(s) universitaire(s) Encadrant(s) professionnel(s)

Chenchah Farah Sfayhi Hichem

Année universitaire
2015 - 2016
1
Remerciements

Au terme de ce travail, nous profitons de cette


occasion pour remercier en premier notre encadrant
académique Mme Chenchah Farah et notre
encadrant professionnel Mr Sfayhi Hcihem pour
leur assistance et leur soutien et en particulier leurs
suivis réguliers accompagné de conseils tout au long
de la période d’exécution de notre projet. Nos
compliments.

Comme nous offrons le résultat de nos efforts à nos


parents et nos collègues pour leurs encouragements
tout au long de la réalisation de ce projet.

Nous avons l'honneur et le plaisir d'exprimer nos


remerciements à toutes les personnes, de près ou de
loin qui nous ont aidés pendant la réalisation de ce
projet.

Nous exprimons également notre gratitude aux


membres du jury, qui nous ont honorés en acceptant
de juger notre travail.

2
Table des matières

Remerciements ........................................................................................ Erreur ! Signet non défini.


Table des matières ....................................................................................................................... 3
Liste des Figures ........................................................................................................................... 5
Liste des Tableaux ........................................................................................................................ 7
Listes des abréviations.................................................................................................................. 7
Introduction générale ................................................................................................................... 8
CHAPITRE 1 : ................................................................................................................................ 9
1. Introduction ...................................................................................................................... 10
2. Présentation de l’organisme de l’accueil : ........................................................................... 10
a. Les services ............................................................................................................ 10
b. Produits : ............................................................................................................... 12
3. Objectifs du projet ............................................................................................................. 14
4. Analyse fonctionnelle ........................................................................................................ 15
a. La bête à corne ...................................................................................................... 15
b. Diagramme pieuvre ............................................................................................... 16
c. Diagramme Fast ..................................................................................................... 17
5. UML ................................................................................................................................. 18
a. Diagramme de cas d’utilisation générale................................................................. 19
b. Diagramme de cas d’utilisation générale de l’administrateur .................................. 20
c. Diagramme de cas d’utilisation de l’utilisateur ........................................................ 21
6.Planning de projet .............................................................................................................. 22
7. Conclusion ......................................................................................................................... 22
CHAPITRE 2 : .............................................................................................................................. 23
1. Introduction ...................................................................................................................... 24
2. Etude et conception du système......................................................................................... 24
3. La partie Hardware ............................................................................................................ 24
a. Les cartes électroniques .......................................................................................... 24
b. Les différents types des carte Arduino ..................................................................... 26
c. La Carte Arduino Uno .............................................................................................. 27
d. Les capteurs............................................................................................................ 27
e. La connexion internet ............................................................................................. 28
f. Module Carte mémoire SD ....................................................................................... 31

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

Figure 1 Logo Exploit-Consult ........................................................................................................................... 10


Figure 2: Produit NetFarm Express.................................................................................................................... 13
Figure 3: Produit NetAvicole ................................................................................................................................ 13
Figure 4 : Schéma descriptif ................................................................................................................................ 14
Figure 5: Diagramme bête à corne ...................................................................................................................... 15
Figure 6 : Diagramme Pieuvre ............................................................................................................................ 16
Figure 7 : Diagramme Fast ................................................................................................................................. 17
Figure 8 : UML .................................................................................................................................................... 18
Figure 9 : Diagramme de cas d’utilisation générale........................................................................................... 19
Figure 10 : Diagramme de cas d’utilisation générale de l’administrateur ........................................................ 20
Figure 11 : Diagramme de cas d’utilisation générale de l’administrateur ........................................................ 21
Figure 12 : Le Raspberry Pi ................................................................................................................................ 24
Figure 13 : STM32 ............................................................................................................................................... 24
Figure 14 : Arduino ............................................................................................................................................. 24
Figure 15 : DHT11 Figure 16 : DHT 22 .................................................. 28
Figure 17 : Shield Wi-Fi Arduino: ...................................................................................................................... 29
Figure 18 : Shield Ethernet ................................................................................................................................. 30
Figure 19 : Shield ESP8266 ................................................................................................................................ 30
Figure 20 : Module Carte mémoire SD ............................................................................................................... 31
Figure 21 : Afficheur alphanumérique LCD 16*2 ............................................................................................. 32
Figure 22 : logiciel Arduino ................................................................................................................................ 33
Figure 23 : barre du menu du logicielle ARDUINO .......................................................................................... 34
Figure 24 : Moniteur série Arduino .................................................................................................................... 34
Figure 25 : Logo ThingSpeak .............................................................................................................................. 35
Figure 26 : Allure des courbes offertes par Thingspeak .................................................................................... 36
Figure 27 : Logo Android .................................................................................................................................... 36
Figure 28 Schéma global ..................................................................................................................................... 38
Figure 29 : Schéma d’acquisition des données ................................................................................................... 38
Figure 30 : Extrait du code pour le capteur ........................................................................................................ 39
Figure 31 : Affichage moniteur série .................................................................................................................. 39
Figure 32 : Schéma de sauvegarde des données ................................................................................................. 40
Figure 33 : Extrait du code pour le Module SD .................................................................................................. 40
Figure 34 : Schéma de l'affichage sur l'écran LCD ........................................................................................... 41
Figure 35 : Affichage sur l'écran ........................................................................................................................ 41
Figure 36 : Schéma du transfert des valeurs vers une base de données ............................................................ 41
Figure 37 Extrait du code Arduino pour connecté à un réseau ......................................................................... 43
Figure 38 : Extrait du code pour envoyer les données ....................................................................................... 44
Figure 39 : réponse du moniteur série ................................................................................................................ 44
Figure 40 : Key du Thingspeak ........................................................................................................................... 45
Figure 41 : Emplacement du Key dans le code Arduino .................................................................................... 45
Figure 42 : Interface Android studio ................................................................................................................... 46
Figure 43 : interface Genymotion ....................................................................................................................... 47
Figure 44 : Cycle de vie d’une application Android ........................................................................................... 48
Figure 45 : Exportation des données depuis le Thingspeak ............................................................................... 50
Figure 46 : Web-Service offer par Thingspeak ................................................................................................... 51

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

Tableau 1: Planning du projet ............................................................................................................................. 22


Tableau 2 : Tableau comparatif des microcontrôleurs ........................................................................................ 25
Tableau 3 : Différents types des carte Arduino ................................................................................................... 26
Tableau 4 : Tableau comparatif des capteurs ..................................................................................................... 28
Tableau 5 : Les commandes AT utilisées pour connecter a un réseau .............................................................. 42
Tableau 6 : Les commandes AT utilisées pour transférer les données .............................................................. 43

Liste des abréviations

UML : Unifie Modeling Language


API: Application Programming Interface)
JSON: JavaScript Object Notation.
XML: extensible Markup Language
IT: Information technology
RTOS: real-time operating system
IDE Integrated Development Environment

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.

2. Présentation de l’organisme de l’accueil


Exploit-Consult est une société de développement et de conseil informatique spécialisé dans le
développement des logiciels spécifiques et systèmes d’information, elle est reconnue pour son
savoir-faire professionnel, technologique et humain. Elle propose du conseil et de
l’accompagnement efficace en système d’information et en réseaux tout en répondant au plus
près de vos attentes.

Figure 1 Logo Exploit-Consult

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.

 Service SSII : Maintenance et gestion du parc informatique


L’informatique est une activité à part dans l’entreprise. Les matériels, les techniques et les
compétences évoluent rapidement. La majorité des problèmes rencontrés est problème de coûts.
L’objectif de la société est de répondre aux attentes des clients.
Parmi les interventions et les services de gestion de parc et d’infogérance, on trouve :

• Fourniture et mise en production des serveurs (Windows, linux ou Snap Server)


• Fourniture et mise en production des postes clients
• Prestations de conseils et d’audit en informatique

• Fourniture, installation et gestion des matériels réseaux (switch, câbles, etc.)


• Administration réseau
• Maîtrise d’œuvre de projets informatique
• Maintenance bureautique
• Support utilisateur : helpdesk, dépannages sur site
• Formations aux logiciels bureautiques MS Office et OpenOffice
• Configuration de services d’email, d’antivirus, de firewall ou d’intranet
• Achats de matériels et logiciels sur devis
• Gestion des garanties.
 Solutions informatiques
La gestion électronique des documents (GED ou EDM1 pour Electronique Document
Management en anglais) désigne un procédé informatisé visant à organiser et gérer des
informations et des documents électroniques au sein d’une organisation. Le terme GED désigne
également les logiciels permettant la gestion de ces contenus documentaires :

 Solutions collaboratives (groupage, ERP…)


 Gestion électronique des documents (GED)
 Solutions de messagerie d’entreprise

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.

 Serveurs Windows:Windows Serveur 2008, Windows Serveur 2003, Windows


Serveur 2000.
 Serveurs Linux : RedHat, Fedora, Debian, etc…
 Serveur Snap: Overland :Overland Snap Server.
Sécurité :
 L'intégrité
C’est-à-dire garantir que les données sont bien celles que l'on croit être.
 La confidentialité
Consistant à assurer que seules les personnes autorisées aient accès aux ressources échangées.
 La disponibilité
Permettant de maintenir le bon fonctionnement du système d'information.
 La non répudiation
Permettant de garantir qu'une transaction ne peut être niée.
 L'authentification
Consistant à assurer que seules les personnes autorisées aient accès aux ressources.

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.

Figure 2: Produit NetFarm Express

 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.

Figure 3: Produit NetAvicole

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

Il peut être représenté via ce schéma :

:
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.

Figure 5: Diagramme bête à corne

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.

Figure 6 : Diagramme Pieuvre

Fonction Principale 1 (FP1) : Afficher les valeurs mesurées dans l’application

Fonction Complémentaire 1 (FC1) : Mesurer la température et l’humidité à travers un capteur

Fonction Complémentaire 2 (FC2) : Sauvegarder les données mesurées dans une base de
données

Fonction Complémentaire 3 (FC3) : Etablir la communication entre la base de données et


l’application

Fonction Complémentaire 4 (FC4) : Permettre l’envoi des données

Fonction Complémentaire 5 (FC5) : Alimenter le système.

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.

Figure 7 : Diagramme Fast

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

Sauvgarder les valeurs mésurées dans la


BD
Consulter les valeurs mesurées de <<extend>>
<<include>>
la température et de l’humidité
depuis l'application mobile

Figure 9 : Diagramme de cas d’utilisation générale


Gestion de la Base de Donnée
<<include>>
Adminstrateur
a. Diagramme de cas d’utilisation générale

Suivre les variations de la température <<include>> se connecter


et de l’humidité a partrir des courbes
d'utilisation générale pour notre système (Figure 9) :

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).

Gestion des unités de mésure

Sauvgarder les valeurs mésurées dans la


BD

<<extend>>

<<include>>

Gestion de la Base de Donnée se connecter


Adminstrateur

<<include>>

Gestion des capteurs

Figure 10 : Diagramme de cas d’utilisation générale de l’administrateur

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).

Suivre la variation des valeurs mésurées


instantanément sur un afficheur LCD

Consulter les valeurs mésurées depuis la


carte SD

<<include>>
Surveiller l'état des capteurs

Consulter les valeurs mesurées de la température <<include>>


et de l’humidité depuis l'application mobile en
temps réel

Suivre les variations de la température <<include>> se cnnecter


et de l’humidité a partrir des courbes

Utilisateur

<<include>>
Consulter les alertes

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

Figure 11 : Diagramme de cas d’utilisation générale de l’administrateur

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.

Tableau 1: Planning du projet

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.

2. Etude et conception du système


La réalisation d’un système de supervision des paramètres d’ambiance passe par plusieurs
étapes. En premier lieu, nous nous sommes intéressés à la mesure de la température et de
l’humidité à travers des capteurs, ces mesures vont être sauvegardé dans une base de données
externe. Une deuxième étape consiste à la récupération et l’affichage de ces données dans une
application mobile instantanément. Une dernière étape, et la plus importante pour le
fonctionnement du projet, consiste à établir la communication entre la partie qui concerne la
mesure des donnés et celle qui concerne l’affichage de ces données en temps réel sur une
application mobile.

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

Le Raspberry Pi est un nano ordinateur que l'on peut brancher


à un écran et utilisé comme un ordinateur standard. Le
Raspberry pi un produit idéal pour tester différentes choses.
Évidemment, mais pour mettre en ligne des projets à montrer
au client ou expérimenter avec linux c'est largement suffisant.
Figure 12 : Le Raspberry Pi

Le STM32 un circuit intégré à base d’un microcontrôleur avec


un processeur APK, une mémoire RAM et une interface de
débogage

Figure 13 : STM32

La carte Arduino C’est un circuit intégré à base d’un


microcontrôleur. Elle peut se programmer avec le logiciel
Arduino. Elle est utilisée pour produire et analyser des signaux
électriques de façon à effectuer des tâches précises.

Figure 14 : Arduino

24
Tableau 3 : Tableau comparatif des microcontrôleurs

Nom De La Carte Arduino UNO STM32 Le Raspberry Pi


Naissance 2005 2007 2012
Processeur Atmega328 8 bits 32 bits 700 MHz
RAM 2Ko 128Ko 512Mo
Mémoire Flash 32Ko 2048Ko Micro-SD 32Go
Système d'exploitation RTOS RTOS Linux
Prix en Dinars Tunisien(DT) 50 65 95

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.

Tableau 4 : Différents types des cartes Arduino

Types cartes ARDUINO


UNO R3
Uno R3
Caractéristiques Ethernet
(Classique &
(Classique & Leonardo Mega 2560 Nano
CMS)
POE)

ATmega ATmega ATmega ATmega ATmega


Microcontrôleur
328P 328P 32u4 2560 328P

Cadencement Horloge 16MHz 16MHz 16MHz 16MHz 16MHz

Tension d’entrée 7-12 V 7-12 V 7-12 V 7-12 V 7-9 V

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 (Flash) 32 Ko 32 Ko 32 Ko 256 Ko 32 Ko

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

Dimensions 68×53mm 68×53mm 68×53mm 101×53mm 45×18mm

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

c. La Carte Arduino Uno


La carte Arduino Uno est un circuit imprimé qualifié de libre et open-source. La carte comporte
un microcontrôleur qui peut être programmé pour analyser et produire des signaux électriques.
En ce qui concerne l’acquisition des données via des capteurs, le programme de l'Arduino traite
les informations données par le capteur et déclenche des actions (comme allumer, éteindre,
augmenter, diminuer...). Il peut être utilisé pour effectuer des tâches très diverses comme la
charge de batteries, la domotique (le contrôle des appareils domestiques (éclairage,
chauffage...), le pilotage d'un robot, etc. Arduino peut être utilisé pour construire des objets
interactifs indépendants (prototypage rapide), ou bien peut être connecté à un ordinateur pour
communiquer avec ses logiciels.

Figure15 : Description carte Arduino Uno

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

Figure 15 : DHT11 Figure 16 : DHT 22

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 :

 Alimentation : 5 Vcc (via carte Arduino).

 Connexion : via réseau 802.11b/g.

 Version : R3.

 Indications leds : LINK, L9, ERROR et DATA.

 Support pour port mini USB (pour la mise à jour du firmware).

 Dimensions : 75 x 53 x 25 mm.

Figure 17 : Shield Wi-Fi Arduino:

 Shield Ethernet

Le Shield Ethernet permet de connecter la carte Arduino à internet et se connecte à la carte


Arduino par des fils. Il dispose d'un connecteur microSD qui permet de stocker des fichiers
utilisés sur le réseau Compatible avec les Arduino Uno et Mega (utilise la librairie Ethernet).

Ses caractéristiques sont :

 Tension d'utilisation 5V.


 Contrôleur Ethernet W5100 avec buffer 6K interne.
 Vitesse de connexion 10/100MB.
 Connexion avec l'Arduino grâce au port SPI.

29
 Protection de surcharge et de court-circuit.
 Isolation 1500V (Entrée vers Sortie).
 Tension d'entrée 36V à 57V.
 Faible ondulation et bruit.

Figure 18 : Shield Ethernet

 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.

Ses caractéristiques sont :

 802.11 b/g/n protocole, +20dBm en sortie, support d’antenne suivant module.


 Alimentation : 3.3V.
 Wifi 2.4 GHz, support WPA/WPA2.
 Très petit format : 11.5mm x 11.5mm.
 Intégré 10-bit ADC.
 TCP/IP protocol stack (ipv4).
 Électronique de protection et de régulation interne.
 Consommation en sommeil <10uA, <1 mW en sommeil.
 Temps de transmission en réveil < 2ms.
 Température supportes -40C à +25C.

Figure 19 : Shield ESP8266

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.

f. Module Carte mémoire SD


Ce module SD permet de lire, écrire et sauvegarder des données sur la carte SD à l'aide de la
carte Arduino il est facilement interfacé grâce à la programmation,

Figure 20 : Module Carte mémoire SD

Ses caractéristiques sont :

 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.

Figure 21 : Afficheur alphanumérique LCD 16*2

Ses caractéristiques sont :

 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 :

 Programmer la carte Arduino pour pouvoir mesurer des données spécifiques.


 Sauvegarder ces données sur une carte mémoire et les.
 Se connecter à un réseau à travers le Wifi et envoyer les valeurs mesurées à une base de
données externe.
 Afficher les données mesurées sur un afficheur instantanément.

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.

Figure 22 : logiciel Arduino

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.

Figure 24 : Moniteur série Arduino

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 :

 Créer un canal et recueillir des données

 Analyser et Visualiser les données.

 Agir sur les données en utilisant des applications.

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.

Figure 25 : Logo ThingSpeak

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.

Figure 27 : Logo Android

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

Ce chapitre a été dédié à la présentation des différents composants principaux de notre


système de supervision des paramètres d’ambiance. Dans un premier temps, nous avons étudié
la partie hardware tel que : le microcontrôleur, le capteur, la connexion internet et l’outil de
sauvegarde des données. Ensuite, la deuxième partie a été consacré à la partie software où nous
nous sommes intéressé : au logiciel de programmation du microcontrôleur, à la base de données
externes qui récupère les données mesurées et finalement à l’outil de développement de
l’application mobile.

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

2. Schéma global de fonctionnement du système


Ce schéma présente les différents composants que nous avons utilisés dans notre système :

Figure 28 Schéma global

3. Acquisition des données

Figure 29 : Schéma d’acquisition des donné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.

L’intégration de la bibliothèque spécifique pour


le capteur DH22

Extrait du code pour la


mesure de la température
et l’humidité

Figure 30 : Extrait du code pour le capteur

L’affichage des valeurs dans le moniteur série d’Arduino

Figure 31 : Affichage moniteur série

39
4. Sauvegarde des données

Figure 32 : Schéma de 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

Si les valeurs ne sont


pas enregistrées, le
moniteur série affiche
un message d’erreur

Figure 33 : Extrait du code pour le Module SD

40
5. Affichage sur un écran LCD

Figure 34 : Schéma de l'affichage sur l'écran LCD

Pour suivre l’évolution du fonctionnement de notre capteur d’humidité et de température, nous


avons utilisé un afficheur LCD 16*2.

Figure 35 : Affichage sur l'écran

6. Envoie des données vers une base de données


Pour qu’on puisse envoyer les données vers la base il faut que d’abord le module WIFI est
déjà connecté à un réseau

Figure 36 : Schéma du transfert des valeurs vers une base de données

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 :

Tableau 6 : Les commandes AT utilisées pour connecter à un réseau

42
Nous présentons dans la figure 32 un extrait de notre code :

Figure 37 Extrait du code Arduino pour connecté à un réseau

Pour envoyer les données nous avons utilisé les commandes suivantes :

Tableau 7 : Les commandes AT utilisées pour transférer les données

AT+CIPSTART
Permet d’initialiser une connexion

AT+CIPSEND Démarre l'envoie de données sur une


connexion.
AT+CIPCLOSE Ferme une connexion.

43
Extrait du code pour envoyer les données

Figure 38 : 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

Figure 39 : réponse du moniteur série

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.

Figure 40 : Key du Thingspeak

Figure 41 : Emplacement du Key dans le code Arduino

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 :

 Création de l'interface graphique de l’application en XML.


 Développement de l’application en Java.
 Ouverture d’une connexion entre l’application et la base de données.

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.

Figure 42 : Interface Android studio

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.

Figure 43 : interface 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.

c. Cycle de vie d’une application Android


Une activité peut être représenté en plusieurs états :
 Active : en premier plan
 EnPause : perte de focus mais visible
 Stoppée : effacer par une autre activité ou notification
 Morte : l'activité n'est pas démarrée.

47
Figure 44 : Cycle de vie d’une application Android

Le système appelle les méthodes correspondantes en fonction de l’utilisateur

 La méthode onCreate est appelée :

 Au premier lancement de l'activité


 Si l'activité est reproduite
 Si l'état du terminal change et que l'activité est associée à cet état (passage du mode
portrait au mode paysage)

 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

9. Accès à la base de données depuis Android


Pour la communication entre l’application et la base de données, l’Android a besoin de fichier
XML ou JSON pour la lecture 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.

Les avantages de XML :

 XML est extensible quant au langage.


 Il est largement utilisé et reconnu par tous les langages de programmation.
 Il est plus facile à lire et convient mieux pour les fichiers destinés aux non
programmeurs.

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

Figure 45 : Exportation des données depuis le Thingspeak

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

Figure 46 : Web-Service offer par Thingspeak

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.

Figure 47 : Intégration du bibliothèque JSON dans le code Android

51
Il faut ensuite définir le lien du web-service et ces paramètres dans le code :

Figure 48 : Définition des paramètres du Web-Service 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

Figure 49 : Méthode onPreExecute


La deuxième étape est utilisée pour effectuer le calcul de fond qui peut prendre beaucoup
de temps : doInBackground

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

Figure 51 : Méthode 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

Figure 52 : Définition des paramètres du Web-Service

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…

Figure 53 : Paramétrage du courbe

54
Il faut aussi configurer les axes des abscisses et des coordonnées.

Figure 54 : Paramétrage des axes

12. Fonctionnement de l’application

Après avoir terminé le développement de l’application, la partie suivante consiste à modifier le


design. Comme nous avons dit dans la description de l’outil de développement, la partie XML
est la partie responsable de la modification du design de l’application.
La première page de l’application contient le menu pour choisir à consulter la variation de la
température, l’humidité ou de consulter l’historique des alertes. Si l’utilisateur choisit de
consulter le premier choix, une autre activité s’ouvre où il faut choisir d’afficher toutes les
valeurs mesurées ou de choisir d’afficher les valeurs entre deux dates choisies. En appuyant
sur le bouton « show me data », une page s’ouvre où il y a un tableau qui est divisé en deux
parties, la valeur mesurée et la date où elle était mesurée. Au-dessous de la page se trouve un
bouton « graphe humidité », ce bouton est pour l’affichage des valeurs sous forme des courbes.

55
Figure 55 : Page 1 : Page d'accueil Figure 56 Page 2 : Menu de choix entre la température,

L’humidité et les alertes

Figure 57 : Page 2.1 Figure 58 : Page 2.1.1

On peut choisir d’afficher toutes les valeurs ou L’affichage des valeurs


des valeurs comprissent entre deux dates selon accompagner par leurs dates de
nos choix mesure

Figure 59 : L'allure de la courbe des valeurs mesurées en fonction du temps

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.

Figure 61 : page 3.2 Figure 62 : Page 2 Figure 60 : Affichage de la notification


d’alerte
Appuyant sur le Le choix de consulter Dans la zone de notification
bouton des l’historique des alertes s’affiche un message d’erreur
ALERTS d’humidité ou de température qu’il un dépassement

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.

Nous Avons ainsi reparti notre projet en 3 étapes :

 La première étape était réservée pour la description de l’organisme d’accueil et pour


donner une idée générale sur notre projet à travers des diagrammes et des analyses.
 Une deuxième étape présente les différents choix qu’on a effectué selon nos besoins
dans la partie Hardware et Software pour pouvoir fonctionner notre système
 La dernière étape donne un aperçu de la réalisation de ce projet et les résultats que nous
avons atteints.

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

Apprendre le fonctionnement du Thingspeak :


http://www.mathworks.com/help/thingspeak/channelsettings.html?requestedDomain=www.mathw
orks.com

Installation du module ESP8266 :

http://les-electroniciens.com/videos/arduino-ep16-installation-du-module-wifi-esp8266

59
Résumé

Notre projet est basé en premier lieu sur le développement


mobile, plus précisément l’environnement Android.
L’application à réaliser, génère la communication à distance
avec une carte électronique.
Le but de ce travail est de réaliser une application Android,
qui permet à l’utilisateur de contrôler et de visualiser la
variation de la température et de l’humidité depuis le
Smartphone. L’application peut aussi alerter l’utilisateur en
cas dépassement des critères de références et des
prescriptions techniques.

Abstract

Our project is based on mobile development, specifically Android


environment, the application is able to communicate remotely with
an electronic card.
The aim of this project is to develop an Android application that
allows the users to control and visualize the change in temperature
and humidity from their Smartphone. The application also allows
the user to establish a fixed threshold and is able to warn him when
a value exceeding it.

60

Vous aimerez peut-être aussi