L’objectif de ce tutoriel est de concevoir et de programmer un système de détection de fuite de gaz utilisant la carte ESP8266 NodeMCU et le capteur de gaz MQ-4.
Ce système permet de détecter la présence de gaz inflammables, notamment le méthane (CH₄), et d’émettre une alerte visuelle ou sonore en cas de fuite.
Grâce à ce projet, vous apprendrez à :
- connecter le capteur MQ-4 à la carte ESP8266 NodeMCU.
- lire et interpréter les valeurs analogiques fournies par le capteur.
- afficher les données sur un écran LCD I2C (optionnel).
- déclencher une alarme via un buzzer lorsqu’une fuite est détectée.
Le système repose sur l’utilisation du capteur MQ-4, un capteur semi-conducteur sensible aux gaz combustibles tels que le méthane (CH₄), le butane, et le propane.
Lorsque le capteur MQ-4 est exposé à un environnement contenant du gaz, la résistance interne de son élément sensible (SnO₂) diminue en présence de ces gaz réducteurs. Cette variation de résistance se traduit par une modification de la tension de sortie analogique du capteur.
La carte ESP8266 NodeMCU lit cette tension à travers son entrée analogique (A0) et l’interprète comme une valeur de concentration en gaz. Selon le niveau détecté :
Si la concentration de gaz est faible, le système considère que l’environnement est sûr.
Si la concentration de gaz dépasse un seuil prédéfini, le système estime qu’une fuite de gaz est présente.
Dans ce cas, plusieurs actions sont déclenchées simultanément :
- La LED s’allume pour signaler visuellement le danger.
- Le buzzer émet un son d’alarme pour avertir immédiatement l’utilisateur.
- L’écran LCD I2C affiche en temps réel la valeur mesurée par le capteur ainsi qu’un message d’alerte (“Fuite de gaz détectée !”).
1- Carte ESP8266 NodeMCU

La carte ESP8266 NodeMCU Sert de microcontrôleur principal pour lire les données du capteur et contrôler les sorties (LED, buzzer, écran LCD).
2- Capteur de gaz MQ-4

Le capteur de gaz MQ-4 Détecte la présence de gaz combustibles tels que le méthane, le butane ou le propane, et génère une tension analogique proportionnelle à la concentration du gaz.
3- Écran LCD I2C (20x4)

L'écran LCD I2C Affiche le message d'alerte “Gaz détectée”).
4- Buzzer

Le Buzzer produit un signal sonore d’alerte lorsque le niveau de gaz dépasse le seuil de sécurité.
5- LED rouge
![]()
La LED sert d’indicateur visuel pour signaler la détection d’une fuite de gaz.
6- Plaque d’essai (breadboard)

La plaque d'essai permet d’effectuer le câblage des composants sans soudure.
7- Fils de connexion (jumpers)

Les fils de connexion sont utilisés pour relier la carte ESP8266, le capteur, la LED, le buzzer et l’écran LCD.


Pour le Capteur de gaz MQ-4 :
- Connecter la broche VCC(+) du capteur MQ-4 à la broche VIN (5)V de la carte ESP8266
- Connecter la broche DO du capteur MQ-4 à la broche analogique A0 de la carte ESP8266
- Connecter la broche GND(-) du capteur MQ-4 à la broche GND de la carte ESP8266
Pour l'Afficheur LCD I2C :
- Connecter la broche VCC de l'afficheur à 5V de la carte ESP8266
- Connecter la broche GND de l'afficheur à GND de la carte ESP8266
- Connecter la broche SDA de l'afficheur à la broche D2 (GPIO4) de la carte ESP8266
- Connecter la broche SCL de l'afficheur à la broche D1 (GPIO5) de la carte ESP8266
Pour la LED
- Connectez la borne positive (anode) de la LED à la broche D0 (GPIO16) de la carte ESP8266.
- Connectez la borne négative (cathode) de chaque LED à la masse (GND) de la carte ESP8266.
Pour le buzzer
- Connecter la borne (+) du buzzer à la broche D3 (GPIO0) de la carte ESP8266.
- Connecter la borne (-) du buzzer à la broche GND de la carte ESP8266.
Voici un programme complet en MicroPython pour le système de fuite de gaz.
Bibliothèques requises : i2c_lcd et lcd_api → pour afficher les informations sur l’écran LCD I2C.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
from machine import Pin, SoftI2C , ADC from lcd_api import LcdApi from i2c_lcd import I2cLcd from time import sleep I2C_ADDR = 0x27 totalRows = 4 totalColumns = 20 # Configure I2C for LCD screen i2c = SoftI2C(scl=Pin(5), sda=Pin(4), freq=10000) lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns) # Configure buzzer and led pins redled_pin=Pin(16, Pin.OUT) buzzer_pin=Pin(0, Pin.OUT) mq4_pin = ADC(0) while True: mq4_value = mq4_pin.read()# Lecture de la valeur analogique retournee par le capteur if (mq4_value<200): # Seuil de détection (à ajuster selon le capteur) # Activate buzzer and LED redled_pin.value(1) buzzer_pin.value(1) # show alert message on LCD I2C display lcd.move_to(1,0) lcd.putstr("Attention!!!") lcd.move_to(1,1) lcd.putstr("GAS detected!!!") else: # Disable buzzer and LED redled_pin.value(0) buzzer_pin.value(0) lcd.clear() sleep(0.1) |
Explications du code :
Le capteur MQ-4 renvoie une valeur analogique entre 0 et 1023 (Plus la source de gaz est proche, plus la valeur diminue).
1- Si la valeur est inférieure à 200, le système :
- active le buzzer et la LED rouge.
- affiche “incendie detectee” sur l’écran LCD.
2- Sinon, il n'affiche rien et désactive les alertes.
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info