Arduino UNO Q - Capteur de Gaz

Le capteur de gaz MQ2 détecte le GPL, la fumée, l'alcool, le propane, l'hydrogène, le méthane et le monoxyde de carbone. Il produit un signal numérique (gaz/pas de gaz) et un signal analogique (niveau de concentration de gaz). Avec Bridge et Telegram, votre Arduino UNO Q peut envoyer des alertes instantanées de fuite de gaz sur votre téléphone.

Dans ce tutoriel, vous apprendrez :

Arduino UNO Q Capteur de Gaz

※ Note:

Utilisez le capteur de gaz uniquement pour une alerte précoce. Associez-le toujours à des détecteurs de gaz appropriés, une ventilation et des équipements de sécurité. Ne vous fiez jamais à ce seul capteur pour des applications de sécurité vitale.

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Capteur de gaz MQ2
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À Propos du Capteur de Gaz MQ2

Le MQ2 peut détecter : GPL, fumée, alcool, propane, hydrogène, méthane et monoxyde de carbone. Il ne distingue pas les gaz individuels — il mesure les niveaux globaux de gaz inflammables/nocifs.

Brochage du Capteur de Gaz MQ2

Brochage

  • Broche VCC : Alimentation 5V (l'élément chauffant interne nécessite 5V)
  • Broche GND : Masse
  • Broche DO : Sortie numérique — HIGH = pas de gaz, LOW = gaz détecté. La sensibilité est ajustée par le potentiomètre intégré.
  • Broche AO : Sortie analogique — valeur plus élevée = concentration de gaz plus élevée

Indicateurs LED

  • PWR-LED : Indicateur d'alimentation
  • DO-LED : S'allume quand du gaz est détecté (broche DO LOW)

Exigence de Préchauffage

Le MQ2 a un élément chauffant interne qui doit atteindre la température de fonctionnement avant des lectures précises :

  • Première utilisation après une longue pause (>1 mois) : Préchauffez pendant 24–48 heures
  • Utilisation normale : 5–10 minutes de préchauffage ; les premières lectures peuvent être élevées mais se stabiliseront

Le code inclut un délai de préchauffage de 20 secondes dans setup() comme minimum. Alimentez le capteur et attendez avant de faire confiance aux lectures.

※ Note:

La broche AO du MQ2 peut produire jusqu'à ~5V quand alimenté depuis 5V. La référence ADC du MCU Arduino UNO Q est 3,3V — des tensions supérieures à 3,3V satureront l'ADC à 4095. Utilisez la broche DO comme méthode principale de détection de gaz et AO pour l'intensité relative uniquement.

Schéma de Câblage

Schéma de Câblage Arduino UNO Q Capteur de Gaz MQ2

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Broche Capteur de Gaz MQ2 MCU Arduino UNO Q
VCC 5V
GND GND
DO D2
AO A0

Comment Programmer pour le Capteur de Gaz

  • Configurez la broche DO comme entrée numérique :
pinMode(DO_PIN, INPUT);
  • Lisez les deux sorties :
int do_state = digitalRead(DO_PIN); // HIGH = pas de gaz, LOW = gaz int ao_value = analogRead(AO_PIN); // 0-4095, plus élevé = plus de gaz
  • Vérifiez la détection de gaz :
if (do_state == LOW) { Serial.print("GAZ DÉTECTÉ! Concentration (AO): "); Serial.println(ao_value); }

Code Arduino UNO Q

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-gas-sensor */ // MQ2 Gas Sensor: // DO pin: HIGH = no gas, LOW = gas detected // AO pin: analog — higher value = more gas (12-bit ADC: 0-4095) // VCC = 5V (heating element requires 5V) // The MCU ADC reference is 3.3V. AO readings above 3.3V will saturate at 4095. // Use DO pin as the primary detection method for reliable gas alerts. #define DO_PIN 2 // The Arduino UNO Q MCU pin connected to DO of the MQ2 sensor #define AO_PIN A0 // The Arduino UNO Q MCU pin connected to AO of the MQ2 sensor void setup() { Serial.begin(9600); pinMode(DO_PIN, INPUT); Serial.println("Warming up the MQ2 sensor..."); delay(20000); // allow sensor to warm up Serial.println("Arduino UNO Q MQ2 Gas Sensor ready"); } void loop() { int do_state = digitalRead(DO_PIN); // HIGH = no gas, LOW = gas int ao_value = analogRead(AO_PIN); // 0-4095, higher = more gas if (do_state == LOW) { Serial.print("Gas DETECTED! Intensity (AO): "); Serial.println(ao_value); } else { Serial.print("No gas. AO value: "); Serial.println(ao_value); } delay(500); }

Étapes Rapides

Première utilisation de l'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q avant de continuer.

  • Connecter : Câblez le capteur MQ2 sur le MCU Arduino UNO Q comme indiqué dans le schéma de câblage.
  • Ouvrir Arduino App Lab : Créez une nouvelle application nommée GasSensor.
  • Coller le programme : Collez le code MCU dans sketch/sketch.ino.
  • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
Add sketch library in Arduino App Lab on Arduino UNO Q
  • Search for Arduino_RouterBridge created by Arduino and click the Install button.
My Apps / DIYables Apps
Run
Bricks
No bricks added...
Sketch Libraries
No sketch libra...
Files
python
sketch
.gitignore
README.md
app.yaml
sketch.ino
Add sketch library
Arduino_RouterBridge Arduino

This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

0.4.1
Install
More Info
  • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab.
Cliquer sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Attendez le préchauffage, puis exposez le capteur à de la fumée ou du gaz de briquet pour tester.

Sortie de la Console App Lab

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
Message (Enter to send a message to "Newbiely" on usb(2820070321))
New Line
9600 baud
[2026-04-29 09:00:01] MQ2 Gas Sensor warming up... please wait 20 seconds [2026-04-29 09:00:21] MQ2 Gas Sensor ready [2026-04-29 09:00:22] AO: 200 DO: No gas [2026-04-29 09:00:30] AO: 3800 DO: GAS DETECTED!

Bridge : Linux + MCU

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-gas-sensor */ #include "Arduino_RouterBridge.h" #define DO_PIN 2 // The Arduino UNO Q MCU pin connected to DO of the MQ2 sensor #define AO_PIN A0 // The Arduino UNO Q MCU pin connected to AO of the MQ2 sensor bool cached_gas = false; int cached_ao = 0; bool gas_event = false; bool prev_gas = false; unsigned long last_read_ms = 0; const unsigned long READ_INTERVAL = 500; String get_state(String arg) { return cached_gas ? "gas" : "no_gas"; } String get_value(String arg) { return String(cached_ao); } String get_event(String arg) { if (gas_event) { gas_event = false; return "gas_detected"; } return "none"; } void setup() { Bridge.begin(); Monitor.begin(); pinMode(DO_PIN, INPUT); Monitor.println("Warming up the MQ2 sensor..."); delay(20000); // warm-up before Bridge callbacks start serving data Bridge.provide("get_state", get_state); Bridge.provide("get_value", get_value); Bridge.provide("get_event", get_event); Monitor.println("Arduino UNO Q MQ2 Gas Sensor Bridge ready"); } void loop() { unsigned long now = millis(); if (now - last_read_ms >= READ_INTERVAL) { last_read_ms = now; int do_state = digitalRead(DO_PIN); // LOW = gas detected cached_ao = analogRead(AO_PIN); cached_gas = (do_state == LOW); if (cached_gas && !prev_gas) { gas_event = true; Monitor.print("GAS DETECTED! AO value: "); Monitor.println(cached_ao); } else if (!cached_gas && prev_gas) { Monitor.println("Gas cleared. Air quality normal."); } prev_gas = cached_gas; } }
/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-gas-sensor */ from arduino.app_utils import * import time def loop(): state = Bridge.call("get_state") value = Bridge.call("get_value") print(f"Gas state: {state} AO value: {value}") time.sleep(0.5) App.run(user_loop=loop)

Sortie de la Console App Lab

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
Message (Enter to send a message to "Newbiely" on usb(2820070321))
New Line
9600 baud
[2026-04-29 09:00:21] Gas Sensor Bridge ready [2026-04-29 09:00:22] AO: 200 DO: No gas [2026-04-29 09:00:30] AO: 3800 DO: GAS DETECTED!
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:22] No gas. AO: 200 [2026-04-29 09:00:30] ⚠️ GAS DETECTED! AO: 3800

Telegram

Recevez des alertes urgentes de fuite de gaz via Telegram.

Programme MCU : Conservez le même programme MCU de la section Bridge précédente.

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-gas-sensor */ from arduino.app_utils import * import requests import time TELEGRAM_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" CHAT_ID = "YOUR_CHAT_ID" last_update_id = 0 def get_updates(): global last_update_id url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/getUpdates" params = {"offset": last_update_id + 1, "timeout": 5} try: response = requests.get(url, params=params, timeout=10) data = response.json() if data["ok"]: return data["result"] except Exception as e: print(f"Error getting updates: {e}") return [] def send_message(chat_id, text): url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage" payload = {"chat_id": chat_id, "text": text} try: requests.post(url, data=payload, timeout=10) except Exception as e: print(f"Error sending message: {e}") def loop(): # Auto-alert on gas detection event = Bridge.call("get_event") if event == "gas_detected": value = Bridge.call("get_value") print(f"GAS DETECTED! AO value: {value}") send_message(CHAT_ID, f"⚠️ GAS DETECTED! Intensity (AO): {value}. Ventilate immediately!") # Handle Telegram commands updates = get_updates() for update in updates: last_update_id = update["update_id"] if "message" not in update: continue message = update["message"] chat_id = message["chat"]["id"] text = message.get("text", "").strip() print(f"Received: {text}") if text == "/start": send_message(chat_id, "Arduino UNO Q Gas Sensor Bot\n" "/state - Current gas state (gas / no_gas)\n" "/value - Read analog intensity (0-4095)\n" "Automatic alert when gas is detected!") elif text == "/state": result = Bridge.call("get_state") send_message(chat_id, f"Gas state: {result}") elif text == "/value": result = Bridge.call("get_value") send_message(chat_id, f"AO intensity value: {result}") else: send_message(chat_id, "Unknown command. Send /start for help.") time.sleep(0.3) App.run(user_loop=loop)

Sortie de la Console App Lab

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:01] Monitoring for gas leaks... [2026-04-29 09:00:30] ⚠️ GAS LEAK DETECTED! AO: 3800
Telegram
Telegram 12:45
Welcome to Telegram!
ArduinoBot 10:19
Chatting with Arduino...
telegram-botfather
BotFather Yesterday
Your bot has been created.

ArduinoBot

bot
Today
/state
10:15 AM ✓✓
Gas: NOT DETECTED AO: 200
10:16 AM
⚠️ GAS LEAK DETECTED! AO: 3800
10:17 AM

Intégration d'OpenClaw

Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.

Idées de Projets

  • Détecteur de Fuite de Gaz Domestique : Placez le capteur MQ2 près de la cuisinière à gaz — recevez une alerte Telegram immédiate en cas de fuite et déclenchez automatiquement une ventilation via un relais
  • Système d'Alerte de Fumée : Montez dans une cuisine ou un garage pour détecter la fumée de cuisson ou d'incendie précoce
  • Surveillance de la Qualité de l'Air : Journalisez les niveaux de gaz toutes les 5 minutes dans un fichier Linux et tracez des graphiques de tendance via le MPU Wi-Fi
  • Alarme de Sécurité Industrielle : Déployez dans un entrepôt ou une usine avec alertes Telegram multi-canaux pour plusieurs zones surveillées

Mettez-Vous au Défi

  • Facile : Ajoutez un buzzer qui sonne quand du gaz est détecté (en parallèle avec l'alerte Telegram).
  • Moyen : Ajoutez une commande /seuil <valeur> sur Telegram pour ajuster le seuil de détection analogique à distance.
  • Avancé : Combinez avec un capteur de flamme pour une alarme de sécurité combinée gaz + incendie avec journalisation dans un fichier Linux.

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !