Arduino Nano ESP32 - Capteur d'alcool MQ3

Ce tutoriel vous guide dans l'utilisation de l'Arduino Nano ESP32 avec le capteur d'alcool MQ3 pour détecter et mesurer les concentrations d'éthanol et de vapeur d'alcool. Le capteur MQ3 est idéal pour construire des systèmes d'analyse de souffle, des alarmes de vapeur d'alcool et des outils d'évaluation de la qualité de l'air.

Dans ce tutoriel, vous apprendrez à :

Arduino Nano ESP32 avec module capteur de gaz d'alcool MQ3

Matériel nécessaire

1×Arduino Nano ESP32
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×MQ3 Alcohol Sensor
1×Plaque d'essai
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 ESP32

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 d'alcool MQ3

Le MQ3 est un chimiorésisteur à semi-conducteur d'oxyde métallique (MOS) qui détecte la présence d'alcool en surveillant les variations de résistance dans son élément de détection. Ce capteur est spécialisé dans la détection de vapeur d'éthanol, offrant des performances constantes sur un large spectre de concentration.

Le composant actif du capteur présente une couche de Dioxyde d'Étain (SnO2) appliquée sur un substrat céramique en Oxyde d'Aluminium. L'activation thermique rend le matériau SnO2 réactif aux molécules d'alcool environnantes. Un maillage protecteur en acier inoxydable enveloppe le capteur, protégeant les composants internes tout en permettant aux molécules de gaz d'accéder à la chambre de détection.

Les applications typiques comprennent les systèmes maison d'alcootest, les appareils de détection de conduite altérée, les systèmes d'alerte de vapeur d'alcool et les stations de surveillance environnementale d'alcool.

Spécifications techniques

  • Tension de fonctionnement : 5V DC
  • Résistance de charge : 200 KΩ
  • Résistance de chauffe : 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 ? Le terme ppm (parties par million) exprime le rapport de concentration des molécules de gaz cible aux molécules totales. Par exemple, 500 ppm indique que 500 molécules d'alcool existent dans chaque 1 000 000 molécules de gaz, les 999 500 restantes étant d'autres composants atmosphériques.

Brochage

Le module capteur MQ3 offre quatre bornes de connexion :

  • Broche VCC : Connecter à une source d'alimentation +5V.
  • Broche GND : Connecter à la masse (0V).
  • Broche DO : La sortie numérique passe à LOW lorsque l'alcool dépasse le seuil, ou HIGH en dessous. Le seuil est ajustable via le potentiomètre intégré.
  • Broche AO : La sortie analogique fournit une tension proportionnelle à la concentration d'alcool. Plus d'alcool crée une tension de sortie plus élevée.
Schéma de brochage du module capteur d'alcool MQ3

Deux indicateurs LED offrent un statut visuel :

  • LED PWR : S'illumine lorsque le module est alimenté.
  • LED DO : Reflète le statut de la sortie numérique — s'allume lors de la détection d'alcool, reste éteinte sinon.

Comment ça fonctionne

Le principe de détection du MQ3 repose sur les variations de résistance dans son semi-conducteur de Dioxyde d'Étain (SnO2) :

Dans l'air propre : Le chauffage fait adhérer les molécules d'oxygène à la surface du SnO2, piégeant les électrons et formant une couche de déplétion. Ces électrons piégés créent une barrière de conduction, résultant en une haute résistance électrique.

Lors de l'exposition à l'alcool : Les molécules d'alcool interagissent avec l'oxygène de surface, brisant les liaisons et 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é — de plus grandes concentrations d'alcool produisent des valeurs de résistance plus faibles.

Le capteur offre deux modes de sortie :

Sortie numérique (broche DO) :

  • Un potentiomètre de réglage intégré contrôle le seuil de détection.
  • La détection d'alcool au-dessus du seuil met DO à LOW et active l'indicateur LED.
  • La détection en dessous du seuil maintient DO à HIGH avec la LED éteinte.

Sortie analogique (broche AO) :

  • La tension varie directement avec la concentration d'alcool.
  • Augmentation de la vapeur d'alcool = tension de sortie élevée.
  • Diminution de la vapeur d'alcool = tension de sortie réduite.
  • Remarque : Le potentiomètre de réglage affecte uniquement le seuil numérique, pas la sortie analogique.

Préchauffage et calibration

Exigences de préchauffage

Le capteur MQ3 a besoin d'un chauffage approprié pour des mesures fiables :

  • Premier déploiement ou stockage prolongé (30+ jours) : Maintenez un chauffage continu pendant 24-48 heures pour stabiliser le capteur et assurer la précision des mesures.
  • Utilisation récente : Un court préchauffage de 5-10 minutes est suffisant. Les valeurs initiales peuvent sembler élevées mais se normaliseront rapidement.

Pour réchauffer le capteur, connectez VCC et GND à 5V et à la masse — soit via une alimentation dédiée soit directement aux broches d'alimentation de votre Arduino Nano ESP32.

Trouver vos valeurs de seuil

Les capteurs de gaz avec éléments chauffants comme le MQ3 peuvent subir une dérive de calibration après le stockage. Pour les projets d'alcootest, établissez des valeurs de seuil appropriées grâce à cette séquence de calibration :

  1. Mesurer la ligne de base en air propre : Faites fonctionner le capteur dans de l'air frais sans alcool présent. Enregistrez la valeur analogique (typiquement 100-150).
  2. Tester avec de la vapeur d'alcool : Positionnez de l'alcool isopropylique ou du gel hydroalcoolique près du capteur (sans le toucher), permettant à la vapeur d'atteindre le détecteur. Enregistrez les lectures augmentées (généralement 400-900 selon la concentration de vapeur).
  3. Définir les seuils de détection : En utilisant vos données enregistrées, établissez des zones de détection :
  • Zone sobre : Valeurs inférieures à la ligne de base + 20 (exemple : < 120)
  • Zone modérée : Valeurs intermédiaires (exemple : 120-400)
  • Zone élevée : Valeurs dépassant la limite modérée (exemple : > 400)

Important : Les unités de capteur individuelles et les conditions environnementales produisent des valeurs variables. Calibrez toujours en utilisant votre matériel spécifique avant le déploiement.

Régler le seuil numérique

Configurez le point d'activation de la broche DO en utilisant le potentiomètre du module :

  1. Exposez le capteur à de la vapeur d'alcool.
  2. Tournez le potentiomètre dans le sens des aiguilles d'une montre jusqu'à ce que la LED s'active.
  3. Tournez progressivement dans le sens inverse jusqu'à ce que la LED se désactive juste.
  4. Le seuil numérique est maintenant calibré.

Schéma de câblage

Le module MQ3 offre des sorties numériques et analogiques. Sélectionnez l'une ou l'autre sortie ou utilisez les deux simultanément selon les besoins de votre application.

  • Le schéma de câblage entre Arduino Nano ESP32 et le capteur d'alcool MQ3 lors de l'alimentation via le port USB.
Schéma de câblage Arduino Nano ESP32 MQ3 capteur d'alcool

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

Capteur d'alcool MQ3Arduino Nano ESP32
VCC5V
GNDGND
DOD2
AOA5
  • Le schéma de câblage entre Arduino Nano ESP32 et le capteur d'alcool MQ3 lors de l'alimentation via la broche Vin.
Schéma de câblage du détecteur d'alcool Arduino Nano ESP32

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

Code Arduino Nano ESP32 - Lecture de la sortie numérique

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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-esp32/arduino-nano-esp32-mq3-alcohol-sensor */ #define PIN_DO D2 // The Arduino Nano ESP32's pin connected to the DO pin of the MQ3 sensor void setup() { // Initialize serial communication Serial.begin(9600); // Initialize the Arduino Nano ESP32's 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

  • Si c'est la première fois que vous utilisez Arduino Nano ESP32, consultez Installation du logiciel Arduino Nano ESP32..
  • Copiez le code ci-dessus dans Arduino IDE
  • Cliquez sur le bouton Téléverser pour programmer Arduino Nano ESP32
  • Approchez une source de vapeur d'alcool près du capteur MQ3 (le gel hydroalcoolique ou l'alcool à friction sur du coton fonctionne bien)
  • Consultez les résultats de détection dans le Moniteur Série
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Gardez à l'esprit que si le statut de la LED reste constamment allumé ou éteint, ajustez le potentiomètre pour affiner la sensibilité du capteur pour une détection précise.

Code Arduino Nano ESP32 - Lecture de la sortie analogique

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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-esp32/arduino-nano-esp32-mq3-alcohol-sensor */ #define PIN_AO A5 // The Arduino Nano ESP32's pin connected to the AO pin of the MQ3 sensor void setup() { // Initialize serial communication Serial.begin(9600); // Set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); // 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

  • Copiez le code ci-dessus dans Arduino IDE
  • Cliquez sur le bouton Téléverser pour programmer Arduino Nano ESP32
  • Introduisez de la vapeur d'alcool au capteur (vapeurs de gel hydroalcoolique ou d'alcool isopropylique)
  • Surveillez les valeurs dans le Moniteur Série
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

En utilisant les sorties numériques ou analogiques, vous pouvez créer une logique basée sur des seuils pour déclencher des alarmes, contrôler des indicateurs d'avertissement ou capturer des données pour les applications d'alcootest.

Code Arduino Nano ESP32 - Alcootest avec détection de seuil

Ce code démontre l'interprétation de la sortie analogique à travers des seuils calibrés pour évaluer les niveaux de consommation d'alcool.

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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-esp32/arduino-nano-esp32-mq3-alcohol-sensor */ #define PIN_AO A5 // The Arduino Nano ESP32's 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); // Set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); // 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

  • Essentiel : Calibrez d'abord votre capteur spécifique en utilisant l'exemple de lecture analogique pour trouver des valeurs de seuil appropriées.
  • Remplacez les constantes SOBER_THRESHOLD et DRUNK_THRESHOLD dans le code par vos valeurs calibrées.
  • Téléversez le code modifié sur Arduino Nano ESP32
  • Testez en exposant à de la vapeur d'alcool (vapeur d'alcool isopropylique ou de gel hydroalcoolique)
  • Observez les messages de statut dans le Moniteur Série

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