Arduino - Capteur d'alcool MQ3

Ce tutoriel démontre l'interfaçage d'un capteur d'alcool MQ3 avec Arduino pour surveiller les niveaux d'éthanol et de vapeurs d'alcool dans votre environnement. Le capteur MQ3 trouve une utilisation répandue dans les dispositifs d'éthylotest DIY, les alarmes de détection d'alcool et les projets de surveillance de la qualité de l'air.

Vous découvrirez :

Arduino avec module capteur de gaz alcool MQ3

Matériel requis

1×Arduino Uno R3
1×Câble USB 2.0 type A/B
1×Capteur d'alcool MQ3
1×Fils de liaison
1×Recommandé: Shield à bornier à vis pour 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 Démarrage DIYables STEM V3 (Arduino inclus)
1×Kit de Capteurs DIYables (30 capteurs/écrans)
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 d'alcool MQ3

Fonctionnant comme un Chémirésistor, le MQ3 est un dispositif à semiconducteur à oxyde métallique (MOS) qui identifie la présence d'alcool par des changements de résistance dans son matériau de détection. Ce module excelle dans la détection de vapeur d'éthanol avec une haute sensibilité à travers une gamme de concentrations.

À sa base, le capteur emploie une couche de dioxyde d'étain (SnO2) déposée sur une base céramique d'oxyde d'aluminium. Le chauffage active le SnO2, le rendant sensible aux molécules d'alcool. Un maillage protecteur en acier inoxydable (écran anti-explosion) entoure le capteur, protégeant l'élément chauffant tout en permettant aux molécules de gaz de passer vers la chambre de détection.

Les utilisations populaires de ce capteur couvrent la construction d'éthylotests, les équipements de détection d'alcool au volant, les systèmes d'alarme d'alcool et les applications de surveillance environnementale de l'alcool.

Spécifications techniques

  • Tension de fonctionnement : 5V DC
  • Résistance de charge : 200 KΩ
  • Résistance de chauffage : 33Ω ± 5%
  • Consommation de chauffage : < 800mW
  • Résistance de détection : 1 MΩ – 8 MΩ
  • Plage de détection : 25 – 500 ppm (parties par million)
  • Temps de préchauffage : 24-48 heures pour la première utilisation

Comprendre les ppm : L'abréviation ppm signifie parties-par-million, représentant le rapport des molécules de gaz cible au total des molécules. En termes pratiques, une lecture de 500 ppm indique que 500 molécules d'alcool existent parmi chaque 1 000 000 de molécules de gaz totales, les 999 500 restantes étant d'autres gaz atmosphériques.

Brochage

Quatre broches de connexion sont disponibles sur le module de capteur MQ3 :

  • Broche VCC : Alimentez avec +5V par cette connexion.
  • Broche GND : Connectez à la masse (0V).
  • Broche DO : Sortie numérique qui passe à LOW lors de la détection d'alcool au-dessus du seuil, ou HIGH quand en dessous. Le potentiomètre intégré permet l'ajustement du seuil.
  • Broche AO : Sortie analogique fournissant une tension variable correspondant aux niveaux d'alcool. Une augmentation d'alcool produit une augmentation de la tension de sortie.
Diagramme de brochage du module capteur d'alcool MQ3

Deux LEDs indicatrices fournissent un retour visuel :

  • PWR-LED : S'illumine quand l'alimentation est fournie au module.
  • DO-LED : Reflète l'état de la sortie numérique—s'allumant pendant la détection d'alcool et restant éteinte autrement.

Comment ça fonctionne

Le mécanisme de détection du MQ3 repose sur les variations de résistance dans son élément semiconducteur de dioxyde d'étain (SnO2) :

Conditions d'air pur : La chaleur appliquée au SnO2 fait que l'oxygène se lie à sa surface, piégeant les électrons et créant une couche de déplétion. Ce piège à électrons génère une barrière qui restreint la conductivité électrique, maintenant la résistance élevée.

Exposition à l'alcool : Les molécules d'alcool interagissent avec l'oxygène de surface, brisant les liaisons d'oxygène et libérant les électrons piégés dans la structure de dioxyde d'étain. Cela augmente significativement la conductivité—une plus grande concentration d'alcool signifie une résistance électrique plus faible.

Deux modes de sortie sont disponibles sur ce capteur :

Sortie numérique (broche DO) :

  • Un potentiomètre ajustable définit le niveau de seuil de détection.
  • Quand l'alcool détecté dépasse le réglage du seuil, DO sort LOW tandis que l'indicateur LED s'illumine.
  • Quand l'alcool reste en dessous du seuil, DO reste HIGH et la LED reste éteinte.

Sortie analogique (broche AO) :

  • La sortie de tension se corrèle directement avec les niveaux d'alcool détectés.
  • Plus de vapeur d'alcool présente = lecture de tension plus élevée.
  • Moins de vapeur d'alcool présente = lecture de tension plus faible.
  • Note : L'ajustement du potentiomètre n'affecte que la sortie numérique, pas le signal analogique.

Réchauffage et calibrage

Exigences de préchauffage

Des mesures précises du MQ3 nécessitent un chauffage approprié avant fonctionnement :

  • Utilisation initiale ou stockage prolongé (30+ jours) : Permettez 24-48 heures de chauffage continu pour la stabilisation du capteur et des mesures fiables.
  • Utilisation régulière : Un bref réchauffage de 5-10 minutes suffit. Les lectures initiales peuvent paraître élevées mais se normaliseront rapidement.

Pour réchauffer le capteur, connectez simplement VCC et GND à une alimentation 5V ou directement aux broches d'alimentation de votre Arduino, maintenant la connexion pendant toute la durée de réchauffage.

Trouver vos valeurs de seuil

Un stockage prolongé peut causer une dérive de calibrage dans les capteurs basés sur chauffage comme le MQ3. Établissez des valeurs de seuil précises pour les applications d'éthylotest en suivant cette procédure :

  1. Établir une ligne de base d'air pur : Faites fonctionner le capteur dans l'air frais et notez la sortie analogique (attendez-vous à des valeurs près de 100-150).
  2. Introduire de la vapeur d'alcool : Tenez de l'alcool isopropylique ou du désinfectant pour les mains près (pas sur) du capteur, permettant seulement aux vapeurs de l'atteindre. Enregistrez les lectures élevées (communément 400-900 basé sur la densité de vapeur).
  3. Définir les zones de détection : Utilisez vos valeurs enregistrées pour établir des gammes :
  • Pas d'intoxication : Lectures sous ligne de base + 20 (exemple : < 120)
  • Consommation modérée : Valeurs de milieu de gamme (exemple : 120-400)
  • Intoxication élevée : Lectures dépassant le seuil modéré (exemple : > 400)

Important : Les caractéristiques des capteurs varient entre les unités et les environnements. Effectuez toujours un calibrage avec votre matériel spécifique avant le déploiement.

Réglage du seuil numérique

Configurez le point de déclenchement de la broche DO via le potentiomètre de réglage intégré :

  1. Positionnez de la vapeur d'alcool près du capteur.
  2. Tournez le potentiomètre dans le sens horaire jusqu'à ce que vous voyiez la LED s'activer.
  3. Tournez lentement dans le sens antihoraire jusqu'à ce que la LED se désactive juste.
  4. Le seuil de déclenchement est maintenant correctement calibré.

Schéma de câblage

Les deux broches de sortie sont disponibles sur le module MQ3. Sélectionnez l'une ou utilisez les deux simultanément selon les exigences de votre projet.

Capteur d'alcool MQ3Arduino
VCC5V
GNDGND
DOPin 2
AOA0
Schéma de câblage Arduino et capteur d'alcool MQ3 montrant les connexions des broches

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

Code Arduino - Lecture de sortie numérique

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino-mq3-alcohol-sensor */ #define DO_PIN 2 // The Arduino pin connected to DO pin of the MQ3 sensor void setup() { // Initialize serial communication Serial.begin(9600); // Initialize the Arduino pin as an input pinMode(DO_PIN, INPUT); // Warm-up message Serial.println("Warming up the MQ3 sensor"); delay(20000); // 20 seconds warm-up time for recently used sensor } void loop() { int gasState = digitalRead(DO_PIN); if (gasState == HIGH) { Serial.println("Alcohol is NOT detected"); } else { Serial.println("Alcohol is detected"); } delay(1000); }

Étapes rapides

  • Ouvrez le code ci-dessus dans Arduino IDE
  • Téléversez vers votre carte Arduino via le bouton Upload
  • Positionnez une source de vapeur d'alcool près du capteur MQ3 (désinfectant pour les mains ou alcool à friction sur coton fonctionne bien)
  • Surveillez la sortie dans le Moniteur série
COM6
Send
Alcohol is NOT detected Alcohol is NOT detected Alcohol is NOT detected Alcohol is detected Alcohol is detected Alcohol is detected Alcohol is detected Alcohol is NOT detected Alcohol is NOT detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Note : Quand les lectures ne correspondent pas aux conditions réelles (faux positifs ou détections manquées), ajustez finement le seuil de détection en utilisant le potentiomètre du module. La rotation dans le sens horaire augmente la sensibilité ; dans le sens antihoraire la diminue. Ajustez jusqu'à ce que la précision de détection s'améliore.

Code Arduino - Lecture de sortie analogique

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino-mq3-alcohol-sensor */ #define AO_PIN A0 // The Arduino pin connected to AO pin of the MQ3 sensor void setup() { // Initialize serial communication Serial.begin(9600); // Warm-up message Serial.println("Warming up the MQ3 sensor"); delay(20000); // 20 seconds warm-up time for recently used sensor } void loop() { int gasValue = analogRead(AO_PIN); Serial.print("MQ3 sensor AO value: "); Serial.println(gasValue); delay(1000); }

Étapes rapides

  • Chargez le code dans Arduino IDE
  • Téléversez via le bouton Upload
  • Introduisez de la vapeur d'alcool au capteur (désinfectant pour les mains ou alcool isopropylique)
  • Observez les lectures dans le Moniteur série
COM6
Send
MQ3 sensor AO value: 120 MQ3 sensor AO value: 125 MQ3 sensor AO value: 128 MQ3 sensor AO value: 450 MQ3 sensor AO value: 620 MQ3 sensor AO value: 850 MQ3 sensor AO value: 920 MQ3 sensor AO value: 980 MQ3 sensor AO value: 950 MQ3 sensor AO value: 680 MQ3 sensor AO value: 420
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

En utilisant soit les sorties numériques ou analogiques, vous pouvez implémenter des décisions basées sur des seuils pour activer des alarmes, contrôler des indicateurs d'avertissement, ou enregistrer des données pour la fonctionnalité d'éthylotest.

Code Arduino - Éthylotest avec détection de seuil

Cet exemple démontre l'interprétation de sortie analogique par des seuils calibrés pour estimer les niveaux d'intoxication.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino-mq3-alcohol-sensor */ #define AO_PIN A0 // The Arduino pin connected to AO pin of the MQ3 sensor // Threshold values - REPLACE THESE with your calibrated values! // Run calibration first to find these values for your sensor #define SOBER_THRESHOLD 120 // Below this = sober #define DRUNK_THRESHOLD 400 // Above this = drunk, between = drinking but within limits void setup() { // Initialize serial communication Serial.begin(9600); // Warm-up message Serial.println("MQ3 Alcohol Sensor - Breathalyzer"); Serial.println("Warming up sensor..."); delay(20000); // 20 second warm-up for recently used sensor Serial.println("Sensor ready!"); Serial.println(); } void loop() { int gasLevel = analogRead(AO_PIN); // Read the analog value from sensor // Print sensor value Serial.print("Sensor Value: "); Serial.print(gasLevel); Serial.print(" | Status: "); // Determine status based on thresholds if (gasLevel < SOBER_THRESHOLD) { Serial.println("Stone Cold Sober"); } else if (gasLevel >= SOBER_THRESHOLD && gasLevel < DRUNK_THRESHOLD) { Serial.println("Drinking but within limits"); } else { Serial.println("DRUNK"); } delay(1000); // Wait 1 second between readings }

Étapes rapides

  • Critique : Calibrez d'abord votre capteur en utilisant l'exemple de lecture analogique pour déterminer les valeurs de seuil appropriées pour votre environnement.
  • Mettez à jour les constantes SOBER_THRESHOLD et DRUNK_THRESHOLD dans le code avec vos nombres calibrés.
  • Chargez et téléversez le code modifié vers Arduino
  • Testez avec de la vapeur d'alcool (vapeur d'alcool isopropylique ou désinfectant pour les mains)
  • Révisez les messages de statut dans le Moniteur série
COM6
Send
Sensor Value: 115 | Status: Stone Cold Sober Sensor Value: 118 | Status: Stone Cold Sober Sensor Value: 350 | Status: Drinking but within limits Sensor Value: 480 | Status: DRUNK Sensor Value: 520 | Status: DRUNK Sensor Value: 290 | Status: Drinking but within limits Sensor Value: 125 | Status: Stone Cold Sober
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Avertissement : Ce projet sert exclusivement des fins éducatives. Ne vous fiez jamais à cet appareil pour des fonctions d'éthylotest légales ou des évaluations de sécurité de conduite.

Vidéo

Références de fonctions

※ 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 !