Académique Documents
Professionnel Documents
Culture Documents
Sous le thème
JE dédie ce travail à
.A mes parents, frère et sœurs
,A tous ceux qui m’a procuré
A tous ceux qui n'ont épargné aucun effort, de près ou de loin,
pour me permettre d'accomplir Ce travail.
Remerciement
L’objectif de mon projet était d’acquérir les données d’un capteur quelconque et les transmettre vers
un site web par un microcontrôleur.
J’ai choisi le concept du système de détection de gaz ; Un système de sécurité (composé du capteur
de gaz, ventilateur et Buzzer) qui permet de protéger les habitants contre les fuites de plusieurs types
de gaz, les incendies… Aussi on a choisi l’ESP8266 qui permet la connexion en WIFI pour la
transmission des données du capteur de gaz vers le site web, ce qui nous facilite de visualiser
toujours le taux de gaz à distance.
Ce rapport se propose de faire la synthèse du travail que j’ai effectué, ses parties principales sont les
suivant :
- Le premier chapitre aborde une généralité sur la chaine d’acquisition des capteurs.
- Le deuxième chapitre est consacré au traitement des données du capteur de gaz par un
microcontrôleur.
- Le troisième chapitre présente la transmission des données du capteur de gaz vers un site
web.
- Le quatrième chapitre aborde la réalisation de notre projet.
Les chaines d'acquisition de données ont pour objectif l'acheminement d'informations entre
différents éléments du système.
La communication qui nous intéresse est de nature monodirectionnelle et se fait d'un ensemble de
producteurs de données (les capteurs) vers un ensemble de consommateurs (les applications de
contrôle).
2.1 Principe:
Une chaine d'acquisition numérique peut se présenter selon la figure suivante:
i. Capteur :
Le capteur est l'interface entre le monde physique et le monde électrique. Il va délivrer un signal
électrique image d’un phénomène physique que l'on souhaite numériser. Il est toujours associé à un
circuit de mise en forme.
Pour choisir le capteur le plus adéquat, pour mesurer une grandeur physique donnée, plusieurs
critères peuvent être pris en compte :
Il faut évidemment d'abord vérifier que la plage de mesures du capteur couvre les valeurs
qu'il faudra être capable de mesurer.
Ensuite, il faut s'intéresser aux éventuelles contraintes imposées par le projet, et s'assurer
que les caractéristiques du capteur soient compatibles avec ces dernières. Il se peut, par
exemple, qu'un certain niveau de précision, qu'une résolution minimale ou encore qu'un
temps de réponse minimal soit imposé.
Le capteur actif fonctionnant en "générateur", il est généralement fondé dans son principe sur
un effet physique qui assure la conversion d'une composante de puissance propre à la grandeur
physique à prélever (thermique, mécanique, magnétique...) en une grandeur électrique.
Le capteur passif :
Le capteur passif est un dipôle dont l'impédance varie en fonction de la grandeur mesurée.
Cette variation d'impédance résulte :
Soit d'une variation de dimension du capteur, c'est le principe de fonctionnement d'un grand nombre
de capteur de position, potentiomètre…
Soit d'une déformation résultant de force ou de grandeur s'y ramenant, pression accélération
(Armature de condensateur soumise à une différence de pression…)
iv. L'échantillonneur :
Son rôle est de prélever à chaque période d'échantillonnage la valeur de signal.
Conclusion :
Dans ce chapitre, on a présenté une description générale de la chaine d'acquisition, malgré qu'il y a
des capteurs déjà amplifié, filtre et échantillonné, et pour cela on passe directement à l'étape de la
conversion analogique numérique des données. C'est ce qu'on a fait à notre capteur MQ qu'on a
utilisé.
Le but de cette étape est de récupérer toutes les données provenant des plusieurs capteurs pour les
traiter, et pour les analyser et prendre des décisions. Le traitement des données consiste en une
interprétation des signaux électriques reçus des captures, selon leur type.
"16F876A" dont le numéro 16 signifie qu'il fait partie de la famille "Middle-Range", c'est la
famille de PIC qui travaille sur des mots de 14 bits. La lettre F indique que la mémoire programme
de ce PIC est de type "Flash". Les trois derniers chiffres permettent d'identifier précisément la
référence du PIC, ici c'est un PIC de type 876.
Le microcontrôleur PIC possède de plusieurs PORT selon le type de PIC par exemple ce
PIC16F876A se compose de 3 PORT (A, B et C) lui permettant de communiquer avec d'autres
circuits, il possède :
Initialiser l’ADC
OUI
MQ-value==5
Afficher sur LCD
sur I.C.1.1 « Fuite NON
de gaz »
Afficher sur LCD sur
I.C.1.1 « Pas de fuite »
Port C =1
Proteus (ISIS): est une suite logicielle destinée à l'électronique. Développé par la société
Labcenter Electronics.
Le logiciel ISIS de Proteus est principalement connu pour éditer des schémas
électriques. Et il permet aussi de simuler ces schémas ce qui permet de décaler certaines erreurs dès
l'étape de conception.
Les images au-dessous montrent une simulation de MQ5 avec le PIC16F876A, qui montre le
fonctionnement de programme qu'on a déjà cité :
Conclusion :
Dans ce chapitre, on a traité les données qui proviennent du capteur MQ par un programme exécuté
sur le microcontrôleur PIC16F876A.
Dans cette étape, nous allons présenter comment on peut effectuer une communication (sans fil) via
un serveur web en utilisant le microcontrôleur ESP8266 connecté en WIFI.
2. Le Protocole de communication :
Un protocole de communication est l'ensemble des règles qui indiquent la méthode de
fonctionnement d'une communication entre deux terminaux.
C'est un protocole de communication client-serveur développé pour le WWW (World Wide Web) et
de la couche d'application qui peut fonctionner sur n'importe quelle connexion fiable.
3. L'environnement client-serveur :
L'environnement client/serveur est un mode de communication entre plusieurs programmes d'un
réseau qui distingue un ou plusieurs postes clients du serveur : chaque logiciel client peut envoyer
des requêtes à un serveur, qui lui fournit des services. Ces services sont des programmes fournissant
des données (fichiers, connexion…). Par exemple, dans notre projet le client sera un navigateur
(Chrome, Firefox…) et le serveur sera l'ESP8266 en mode WIFI.
4. Serveur Web :
Le serveur Web est un endroit qui stocke, traite et fournit des pages Web aux clients Web. Le client
Web n'est rien d'autre qu'un navigateur Web sur nos ordinateurs, portables et nos smartphones. La
communication entre le client et le serveur s'effectue à l'aide du protocole HTTP.
Dans ce protocole, un client initie la communication en faisant une demande pour une page Web
spécifique via HTTP et le serveur répond avec le contenu de cette page Web ou un message d'erreur
s'il ne peut pas le faire (comme avec la célèbre erreur 404). Les pages fournies par un serveur sont
principalement des documents HTML (Hyper Text Mark up Langages).
Conclusion
Dans ce chapitre, nous avons présenté le moyen de communication sans fil (module ESP8266) et le
protocole de communication (HTTP) qu'on a utilisé.
Figure 8: ESP8266
- Caractéristique:
Ce microcontrôleur possède:
On a utilisé ce capteur MQ5 qu'on a déjà cité, qui détecte la présence de différente type gaz. Ce
module est compatible Arduino, ESP et Raspberry Pi via une sortie analogique, une sortie digitale
est également disponible, son seuil de déclanchement est réglable via un potentiomètre.
- Caractéristique :
Alimentation : 5Vcc
Plage de mesure : 50 à 10000 ppm
Sortie analogique et digitale
Sensibilité : ≥ 4ppm (sur 1000ppm de butane)
Temps de réponse : ≤ 10s
Température de service : -20 à 50 °C
Compatibilité : Arduino et Raspberry Pi
Dimensions : 52 x 20 x 18 mm
Poids : 8 g
1.4. Ventilateur :
Un ventilateur est un appareil destiné à créer un vent artificiel, un courant d’air. Il est exploitable
dans le domaine de refroidissement. On l’utilise dans notre projet pour diminuer le taux de gaz dans
l’air.
Ce ventilateur a une tension nominale 12V et pour cela, il n’est pas possible de l’alimenter
directement en le reliant a une sortie de l’ESP8266. Il faut donc le relier a un relais et une batterie de
12V ou un adaptateur 12V.
Un programme Arduino, appelé sketch, est compilé dans le langage machine puis téléverser dans la
mémoire Arduino et à la fin, chargé sur le microcontrôleur ESP8266.
On lance le logiciel IDE Arduino. Ensuite dans fichier Préférences on fait les modifications
suivantes :
Après l'installation d'ESP8266, on a trouvé la nouvelle carte sur Outils Type de carte
Une fois qu'on a configurer la carte, on a appelé en début de code la bibliothèque suivante pour
connecter notre ESP8266 à notre réseau WIFI :
Par exemple, dans mon projet si on tape l’URL http://192.168.1.183 / dans un navigateur. Le
navigateur envoie ensuite une requête HTTP à l'ESP8266 pour traiter cette requête. Lorsque
l'ESP8266 lit cette demande, il sait que l'utilisateur souhaite de connaitre s’il y a une fuite de gaz ou
non. Ainsi, il envoie une page Web dynamique au navigateur affichant la valeur du gaz.
Mais la méthode qu’on a choisie c’est de charger et appeler une page html avec l’ESP web serveur.
En créant la page web avec HTML, CSS et on utilise aussi le JavaScript pour récupérer les données
envoyées directement par ESP et mettre à jour la page régulièrement.
Bref l’ESP web serveur reçoit une demande d’un client Web (navigateur en tapant le
lien :192.168.1.183) et il envoi le contenu de la page crée avec des valeurs mis à jour chaque 2
secondes.
-SendHTML () : Cette fonction est chargée de générer une page Web chaque fois que le serveur Web
ESP8266 reçoit une demande d’un client Web. Il concatène simplement le code HTML dans une
grosse chaîne et retourne à la fonction server. send ().
- server.send () : La fonction prend la valeur du gaz en tant que paramètre pour générer
dynamiquement le contenu HTML.
A. Bloc de détection :
L’élément principale de détection utilisé dans notre système est le MQ-5. Ce capteur est relié avec la
carte ESP8266 via une sortie analogique A0.
Lors du contact entre la couche sensible du MQ5 et le gaz, la résistance entre les électrodes
métalliques change proportionnellement à la concentration du gaz.
Suivant la variation de cette concentration dans l’air, le signal analogique de sortie généré par le
capteur varie entre 0 V et 5 V.
Le contrôle de ces éléments (activation ou désactivation) est géré via un programme téléversé vers la
carte ESP. Si la valeur de gaz est supérieure ou égale 42ppm, les éléments activent. Dans le cas
inverse, le Buzzer sera désactivé et le ventilateur fonctionne jusqu’à la valeur devient inférieure à
32ppm.Les images au-dessous présentent le câblage du Buzzer et le ventilateur.
Loop :
Affichage de l’adresse IP
Attente de demande du client
Démarrage de serveur
Fin de sous-prg
AdcVal1 OUI
>=42ppm
Afficher « fuite de Envoyer la page web vers le
gaz » sur le moniteur navigateur
NON
série
Buzzer ne fonctionne
pas.
Fonctionnement de Fin de sous-
Buzzer Prg : mon_site
Fonctionnement du
ventilateur
AdcV1al OUI
<32ppm
Arrêter le
fonctionnement du
NON
ventilateur
Envoyer la valeur
ADC au client
Afficher la valeur
AdcVal1 sur le
moniteur série
Fin de sous-
prg :ADC-val
Le site web présente un graphique dont l’axe des ordonnées montre les valeurs de gaz et l’axe des
abscisses présente le temps et au-dessous un tableau présente aussi les valeurs de gaz en fonction du
temps, et qui s’actualisent chaque 2secondes régulièrement.
Conclusion
Dans ce dernier chapitre, on a présenté les matériels utilisés, comment configurer ESP 8266 dans
Arduino IDE, comment l’utiliser comme un serveur web et le résultat final de notre travail.
Mon projet s’est focalisé sur l’acquisition des données d’un capteur quelconque et les transmettre
vers un site web par un microcontrôleur. Pour faire, on a choisi le capteur de gaz MQ5 qui détecte
plusieurs types de gaz toxiques, l’ESP8266 qui permet la connexion en Wifi ce qui facilite la
transmission des données et la création du site web.
J’ai ajouté aussi un ventilateur et Buzzer pour plus de sécurité, Si la valeur de gaz augmente, ces
deux éléments fonctionnent, le Buzzer donne une alarme et le ventilateur crée un vent artificiel pour
démunie le taux de gaz dans l’air.
J’ai étudié et réalisé dans ce mémoire un système de sécurité à base de l’ESP8266 et le capteur de
gaz, ce qui m’a permis d’une part, d’apprendre à programmer l’ESP dans Arduino IDE et comment
l’utiliser comme un serveur web. Aussi il m’a permis de développer mes connaissances.
Ce projet m’a été profitable au niveau de l’amélioration de mes connaissances dans le domaine de la
transmission des données vers un site web.
//Connections du LCD
//Fin de connections
float MQ_value;
Char txt [10] ;
Char txt1 [10] ;
Void main(){
TRISC=0; //Tout le PORT C en sortie
PORTC=0x00; //LED éteint