Arduino Nano - Capteur d'alcool MQ3

Ce guide vous accompagne dans l'intégration du capteur d'alcool MQ3 avec Arduino Nano pour détecter et mesurer les vapeurs d'alcool et la concentration d'éthanol. Le capteur MQ3 est couramment utilisé dans les projets d'analyseurs d'haleine, les systèmes d'alarme alcool et les applications d'évaluation de la qualité de l'air.

Dans ce tutoriel, vous apprendrez :

Arduino Nano avec module capteur de gaz alcool MQ3

Matériel requis

1×Official Arduino Nano
1×Alternativement: DIYables ATMEGA328P Nano Development Board
1×Câble USB A vers Mini-B USB
1×Capteur d'alcool MQ3
1×Fils de connexion
1×Recommandé: Carte d'extension à bornier à vis pour Arduino Nano
1×Recommandé: Carte d'extension breakout pour Arduino Nano
1×Recommandé: Répartiteur d'alimentation pour Arduino Nano

Ou vous pouvez acheter les kits suivants:

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

Le MQ3 fonctionne comme un chémirésisteur à semi-conducteur d'oxyde métallique (MOS), identifiant l'alcool en mesurant les variations de résistance dans son matériau sensible. Conçu pour la détection de vapeurs d'éthanol, ce capteur offre des performances fiables à travers différents niveaux de concentration.

L'élément de détection du capteur consiste en un matériau de Dioxyde d'étain (SnO2) déposé sur un substrat en céramique fait d'Oxyde d'aluminium. Lorsqu'il est chauffé, la couche SnO2 devient chimiquement réactive aux molécules d'alcool dans l'air environnant. Une grille protectrice en acier inoxydable protège les composants internes tout en permettant aux molécules de gaz d'atteindre la chambre de détection.

Les applications courantes incluent les éthylotests DIY, les systèmes de détection de conduite en état d'ivresse, les alarmes de vapeurs d'alcool et la surveillance des niveaux d'alcool atmosphérique.

Spécifications techniques

  • Tension de fonctionnement : 5V DC
  • Résistance de charge : 200 KΩ
  • Résistance du 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

Qu'est-ce que ppm ? Les parties-par-million (ppm) décrivent la proportion de molécules de gaz cible par rapport au total de molécules de gaz. Par exemple, 500 ppm signifie qu'il y a 500 molécules d'alcool pour chaque 1 000 000 molécules de gaz, tandis que les 999 500 autres molécules sont des composants de l'air ambiant.

Brochage

Le module capteur MQ3 présente quatre connexions de broches :

  • Broche VCC : Connecter à l'alimentation +5V.
  • Broche GND : Connecter à la masse (0V).
  • Broche DO : La sortie numérique passe à LOW lorsque l'alcool dépasse le seuil, HIGH lorsqu'il est en dessous du seuil. Ajustez le seuil en utilisant le potentiomètre intégré.
  • Broche AO : La sortie analogique délivre une tension proportionnelle à la concentration d'alcool. Des niveaux d'alcool plus élevés produisent des tensions plus élevées.
Schéma de brochage du module capteur d'alcool MQ3

Un retour visuel est fourni par deux LED intégrées :

  • PWR-LED : S'allume lorsque le module reçoit l'alimentation.
  • DO-LED : Reflète l'état de la sortie numérique—s'illumine lors de la détection d'alcool, reste éteinte sinon.

Fonctionnement

Le MQ3 fonctionne grâce aux changements de résistance dans son matériau semi-conducteur en Dioxyde d'étain (SnO2) :

Dans l'air propre : La surface SnO2 chauffée attire les molécules d'oxygène atmosphérique, qui piègent les électrons et forment une couche d'appauvrissement. Ce piégeage d'électrons crée une barrière de conduction, maintenant une résistance électrique élevée.

Lorsqu'exposé à l'alcool : Les molécules d'alcool réagissent avec l'oxygène de surface, libérant les électrons piégés dans le réseau de dioxyde d'étain. Cette libération d'électrons augmente considérablement la conductivité—des concentrations d'alcool plus élevées résultent en des valeurs de résistance plus faibles.

Le capteur fournit deux modes de sortie distincts :

Sortie numérique (broche DO) :

  • Le niveau de seuil est ajustable via le potentiomètre de réglage intégré.
  • La détection au-dessus du seuil fait passer DO à LOW et allume la LED indicatrice.
  • Les lectures en dessous du seuil maintiennent DO à HIGH avec la LED éteinte.

Sortie analogique (broche AO) :

  • La tension de sortie change proportionnellement avec la concentration d'alcool.
  • Vapeur d'alcool plus élevée = tension de sortie augmentée.
  • Vapeur d'alcool plus faible = tension de sortie diminuée.
  • Note : Le potentiomètre de réglage affecte seulement le seuil numérique, pas le signal analogique.

Réchauffage et étalonnage

Exigences de préchauffage

Pour un fonctionnement précis, le capteur MQ3 nécessite un chauffage adéquat :

  • Première utilisation ou après un stockage prolongé (30+ jours) : Faites fonctionner le chauffage en continu pendant 24-48 heures pour stabiliser le capteur et obtenir des lectures cohérentes.
  • Fonctionnement de routine : Une période de réchauffage rapide de 5-10 minutes est adéquate. Les premières lectures peuvent montrer des valeurs élevées mais se stabiliseront à la normale en quelques minutes.

Réchauffez le capteur en connectant ses broches VCC et GND à 5V et à la masse respectivement—soit par une alimentation ou directement depuis les broches d'alimentation de votre Arduino Nano.

Trouver vos valeurs de seuil

Les capteurs de gaz à base de chauffage comme le MQ3 peuvent dériver après des périodes de stockage. Pour les implémentations d'éthylotest, déterminez les valeurs de seuil appropriées grâce à ce processus d'étalonnage :

  1. Enregistrer la ligne de base dans l'air propre : Faites fonctionner le capteur dans l'air frais sans présence d'alcool. Notez la lecture analogique (typiquement 100-150).
  2. Tester avec des vapeurs d'alcool : Approchez de l'alcool isopropylique ou du désinfectant pour les mains près du capteur (sans contact), permettant aux vapeurs d'atteindre le détecteur. Enregistrez les valeurs élevées (habituellement 400-900 selon la force des vapeurs).
  3. Définir les plages de détection : Basé sur vos mesures, créez des zones de seuil :
  • État sobre : Valeurs en dessous de la ligne de base + 20 (par exemple : < 120)
  • Niveau modéré : Valeurs dans la plage moyenne (par exemple : 120-400)
  • Niveau élevé : Valeurs au-dessus de la limite modérée (par exemple : > 400)

Note : Chaque unité de capteur et environnement de fonctionnement produit des valeurs différentes. Étalonnez avec votre matériel réel avant d'utiliser dans toute application.

Réglage du seuil numérique

Ajustez le point de déclenchement de la broche DO en utilisant le potentiomètre du module :

  1. Exposez le capteur aux vapeurs d'alcool.
  2. Tournez le potentiomètre dans le sens horaire jusqu'à ce que la LED s'allume.
  3. Tournez lentement dans le sens antihoraire jusqu'à ce que la LED s'éteigne.
  4. Votre seuil numérique est maintenant étalonné.

Schéma de câblage

Le module MQ3 fournit des sorties numériques et analogiques. Utilisez soit une sortie individuellement soit les deux ensemble selon les besoins de votre projet.

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

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

Voir Comment alimenter un Arduino Nano..

Code Arduino Nano - Lecture de sortie numérique

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-mq3-alcohol-sensor */ #define PIN_DO 2 // The Arduino Nano pin connected to the DO pin of the MQ3 sensor void setup() { // Initialize serial communication Serial.begin(9600); // Initialize the Arduino Nano pin as an input pinMode(PIN_DO, 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(PIN_DO); if (gasState == HIGH) { Serial.println("Alcohol is NOT detected"); } else { Serial.println("Alcohol is detected"); } delay(1000); }

Étapes rapides

  • Copiez le code dans Arduino IDE
  • Cliquez sur le bouton Upload pour transférer le code vers Arduino Nano
  • Placez une source de vapeurs d'alcool près du capteur (utilisez du désinfectant pour les mains ou de l'alcool à friction sur un coton-tige)
  • Vérifiez le Moniteur série pour les résultats
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  

Conseil : Si les résultats de détection ne correspondent pas à la réalité (faux déclenchements ou détections manquées), ajustez le potentiomètre sur le module. Tournez dans le sens horaire pour augmenter la sensibilité ou dans le sens antihoraire pour la diminuer jusqu'à ce que la détection devienne précise.

Code Arduino Nano - Lecture de sortie analogique

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-mq3-alcohol-sensor */ #define PIN_AO A0 // The Arduino Nano pin connected to the 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(PIN_AO); Serial.print("MQ3 sensor AO value: "); Serial.println(gasValue); delay(1000); }

Étapes rapides

  • Collez le code dans Arduino IDE
  • Cliquez sur le bouton Upload pour programmer Arduino Nano
  • Exposez le capteur aux vapeurs d'alcool (vapeurs de désinfectant pour les mains ou d'alcool isopropylique)
  • Surveillez les valeurs changeantes 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  

Avec les sorties numériques et analogiques disponibles, vous pouvez implémenter une logique basée sur des seuils pour déclencher des alarmes, activer des indicateurs visuels ou enregistrer des données pour les applications d'éthylotest.

Code Arduino Nano - Éthylotest avec détection de seuil

Cet exemple montre comment interpréter les lectures analogiques en utilisant des seuils étalonnés pour estimer les niveaux de consommation d'alcool.

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-mq3-alcohol-sensor */ #define PIN_AO A0 // The Arduino Nano pin connected to the 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(PIN_AO); // 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

  • Important : Étalonnez d'abord votre capteur en utilisant l'exemple de lecture analogique pour déterminer les valeurs de seuil appropriées pour votre capteur spécifique.
  • Modifiez les constantes SOBER_THRESHOLD et DRUNK_THRESHOLD dans le code avec vos valeurs étalonnées.
  • Téléchargez le code mis à jour vers Arduino Nano
  • Testez en introduisant des vapeurs d'alcool (vapeurs d'alcool isopropylique ou de désinfectant pour les mains)
  • Observez les mises à jour 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 : Ceci est un projet éducatif uniquement. N'utilisez pas cet appareil comme éthylotest officiel ou pour déterminer la sécurité de conduite.

Vidéo

Références de fonctions

Tutoriels connexes

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