ESP8266 - Capteur d'alcool MQ3

Ce tutoriel explique comment interfacer l'ESP8266 avec le capteur d'alcool MQ3 pour mesurer l'éthanol et la vapeur d'alcool dans l'environnement. Le capteur MQ3 s'avère précieux dans les dispositifs de dépistage par respiration, les alarmes de détection d'alcool et les applications de surveillance de la qualité de l'air.

Dans ce guide, nous allons couvrir :

ESP8266 NodeMCU avec module capteur de gaz MQ-3 pour alcool

Préparation du matériel

1×ESP8266 NodeMCU ESP-12E
1×Recommandé: ESP8266 NodeMCU ESP-12E (Uno-form)
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×Fils de connexion
1×Recommandé: Carte d'extension à bornier à vis pour ESP8266
1×Recommandé: Répartiteur d'alimentation pour ESP8266 Type-C

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

Conçu comme une chimioresistance à base de semi-conducteur à oxyde métallique (MOS), le MQ3 détecte l’alcool grâce à des variations de résistance dans son matériau actif. Ce capteur se spécialise dans la détection des vapeurs d’éthanol avec une sensibilité fiable tout au long de sa plage de mesure.

Son composant de détection comporte une couche de dioxyde d'étain (SnO2) sur un substrat en céramique d'oxyde d'aluminium. Le chauffage active le SnO2 pour réagir aux molécules d'alcool présentes dans l'air. Un maillage en acier inoxydable protège l'élément, l'entourant tout en permettant l'accès des gaz à la zone de détection.

Les mises en œuvre courantes comprennent la construction d'éthylomètres faits maison, des systèmes de détection d'altération des capacités, des dispositifs d'avertissement des vapeurs d'alcool et la mesure de l'alcool dans l'atmosphère.

Spécifications techniques

  • Tension d'alimentation : 5 V en courant continu
  • Résistance de charge : 200 kΩ
  • Résistance chauffante : 33 Ω ± 5%
  • Puissance de chauffage : < 800 mW
  • 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 lors de la première utilisation

Qu'est-ce que le ppm ? La mesure en ppm (parties par million) indique le rapport de concentration. Avec 500 ppm, vous avez 500 molécules d'alcool pour 1 000 000 molécules de gaz au total, les 999 500 restantes étant des gaz atmosphériques.

Schéma des broches

Quatre broches sont présentes sur le module capteur MQ3 :

  • Broche VCC: Fournissez ici une alimentation de +5V.
  • Broche GND: Connectez-la à la masse (0V).
  • Broche DO: La sortie numérique passe à BAS lorsque la concentration d'alcool dépasse le seuil, et à HAUT lorsqu'elle est inférieure au seuil. Réglez le seuil avec le potentiomètre intégré.
  • Broche AO: La tension de sortie analogique varie avec la concentration d'alcool. Plus la concentration d'alcool est élevée, plus la tension est élevée.
Diagramme de brochage du module capteur d’alcool MQ-3

Deux voyants LED d’indication fournissent un retour visuel :

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

Comment cela fonctionne

Le mécanisme de détection du MQ-3 dépend de la variation de la résistance du dioxyde d'étain (SnO2) :

Dans un air non contaminé : Le SnO2 chauffé lie les molécules d'oxygène à sa surface, capturant des électrons dans une couche de déplétion. Ces électrons capturés établissent une barrière de conduction, produisant une résistance élevée.

En présence d'alcool : Les molécules d'alcool interagissent avec l'oxygène de surface, libérant les électrons capturés dans la matrice du dioxyde d'étain. Les électrons libérés améliorent la conductivité — plus d'alcool signifie une résistance réduite.

Deux modes de sortie sont fournis :

Sortie numérique (broche DO) :

  • Le potentiomètre embarqué règle le niveau de seuil.
  • L’alcool au-dessus du seuil fait passer la sortie DO à l’état bas et active la LED.
  • L’alcool en dessous du seuil maintient la sortie DO à l’état haut avec la LED éteinte.

Sortie analogique (broche AO) :

  • La tension de sortie suit la concentration d'alcool.
  • Plus d'alcool = tension accrue.
  • Moins d'alcool = tension réduite.
  • Remarque : Le potentiomètre agit uniquement sur le seuil numérique, et non sur la tension analogique.

Échauffement et calibration

Exigences de préchauffage

Le bon fonctionnement du capteur MQ-3 nécessite un chauffage adéquat :

  • Premier déploiement ou stockage prolongé (30 jours et plus) : Maintenez un chauffage continu pendant 24 à 48 heures pour stabiliser le capteur et obtenir des mesures précises.
  • Utilisation régulière : Un préchauffage rapide de 5 à 10 minutes suffit. Les lectures initiales peuvent être élevées mais se normalisent rapidement.

Alimentez le capteur en reliant VCC et GND à +5 V et à la masse — utilisez soit une alimentation externe, soit les broches d'alimentation de l'ESP8266.

Trouver vos valeurs seuils

Les capteurs chauffés comme le MQ3 peuvent dériver pendant le stockage. Pour les usages d'un éthylotest, établissez des seuils par le biais de cette procédure d'étalonnage :

  1. Enregistrer la ligne de base dans l'air pur : Faites fonctionner le capteur dans l'air frais et enregistrez la sortie analogique (généralement 100-150).
  2. Introduire la vapeur d'alcool : Placez de l'alcool isopropylique ou du gel hydroalcoolique près du capteur (sans le toucher), en laissant la vapeur atteindre le capteur. Notez des lectures élevées (généralement 400-900 selon la densité de la vapeur).
  3. Établir les plages de détection : À partir de vos mesures, définissez des zones seuils :
  • Aucun alcool présent : En dessous de la ligne de base + 20 (exemple : < 120)
  • Alcool modéré : Valeurs intermédiaires (exemple : 120-400)
  • Alcool élevé : Au-delà de la plage modérée (exemple : > 400)

Critique : Des capteurs et des environnements individuels produisent des valeurs différentes. Calibrez toujours votre matériel spécifique avant la mise en œuvre.

Réglage du seuil numérique

Ajustez le niveau de déclenchement de la broche DO à l'aide du potentiomètre du module :

  1. Exposez le capteur à la vapeur d'alcool.
  2. Tournez le potentiomètre dans le sens des aiguilles d'une montre jusqu'à ce que la LED s'allume.
  3. Tournez lentement le potentiomètre dans le sens inverse des aiguilles d'une montre jusqu'à ce que la LED se désactive.
  4. Le seuil est configuré.

Diagramme de câblage

Étant donné que le module de capteur d’alcool MQ3 possède deux sorties, vous pouvez choisir d’utiliser l’une ou les deux, selon vos besoins.

Schéma de câblage du capteur d'alcool MQ-3 pour ESP8266 NodeMCU

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

Pour plus d'informations, consultez Brochage ESP8266. et Comment alimenter l'ESP8266..

Code ESP8266 - Lecture de la sortie numérique

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-mq3-alcohol-sensor */ /* * This ESP8266 NodeMCU code was developed by newbiely.com * * This ESP8266 NodeMCU code is made available for public use without any restriction * * For comprehensive instructions and wiring diagrams, please visit: * https://newbiely.com/tutorials/esp8266/esp8266-mq3-alcohol-sensor */ #define PIN_DO D7 // The ESP8266 pin D7 connected to the DO pin of the MQ3 sensor void setup() { // Initialize serial communication Serial.begin(9600); // Initialize the ESP8266 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

Pour commencer avec l'ESP8266 dans l'IDE Arduino, suivez ces étapes :

  • Consultez le tutoriel Installation du logiciel ESP8266. si c'est la première fois que vous utilisez ESP8266.
  • Branchez les composants tels qu'indiqués sur le schéma.
  • Branchez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez l'IDE Arduino sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, par exemple NodeMCU 1.0 (ESP-12E Module), et son port COM correspondant.
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers l'ESP8266.
  • Placez une source de vapeurs d'alcool près du capteur MQ3 (du gel hydroalcoolique ou de l'alcool isopropylique sur du coton fonctionnent bien).
  • Vérifiez le résultat sur 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  

Veuillez noter que si vous remarquez que la LED reste constamment allumée ou éteinte, vous pouvez ajuster le potentiomètre pour affiner la sensibilité du capteur.

Code ESP8266 - Lecture de la sortie analogique

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-mq3-alcohol-sensor */ /* * This ESP8266 NodeMCU code was developed by newbiely.com * * This ESP8266 NodeMCU code is made available for public use without any restriction * * For comprehensive instructions and wiring diagrams, please visit: * https://newbiely.com/tutorials/esp8266/esp8266-mq3-alcohol-sensor */ #define PIN_AO A0 // The ESP8266 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

  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur l'ESP8266
  • Exposez le capteur à la vapeur d'alcool (gel hydroalcoolique ou vapeurs d'alcool isopropylique)
  • Vérifiez le résultat 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  

À partir des valeurs lues sur les sorties DO ou AO, vous pouvez construire une logique basée sur des seuils pour déclencher des alarmes, contrôler des voyants d'avertissement ou enregistrer des données pour la fonctionnalité d'éthylotest.

Code ESP8266 - Éthylomètre avec détection de seuil

Cet exemple montre l'utilisation d'une sortie analogique avec des seuils calibrés pour estimer les niveaux d'ivresse.

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-mq3-alcohol-sensor */ /* * This ESP8266 NodeMCU code was developed by newbiely.com * * This ESP8266 NodeMCU code is made available for public use without any restriction * * For comprehensive instructions and wiring diagrams, please visit: * https://newbiely.com/tutorials/esp8266/esp8266-mq3-alcohol-sensor */ #define PIN_AO A0 // The ESP8266 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

  • Critique: Commencez par calibrer votre capteur en utilisant l'exemple de lecture analogique pour déterminer les valeurs seuil appropriées pour votre environnement.
  • Mettez à jour les constantes SOBER_THRESHOLD et DRUNK_THRESHOLD dans le code avec vos valeurs calibrées.
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur l'ESP8266.
  • Testez avec la vapeur d'alcool (alcool isopropylique ou vapeur de gel hydroalcoolique).
  • Vérifiez le résultat 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 est exclusivement destiné à des fins pédagogiques. Ne vous fiez jamais à cet appareil pour des fonctions d’éthylotest légales ou des évaluations de la sécurité routière.

※ Note:

Ce tutoriel utilise la fonction analogRead() pour obtenir des données à partir d'un ADC (convertisseur analogique-numérique) qui est connecté à un capteur ou à un autre composant. L'ADC de l'ESP8266 fonctionne bien pour les projets où vous n'avez pas besoin de lectures très précises. Mais n'oubliez pas que l'ADC de l'ESP8266 n'est pas très précis pour des mesures détaillées. Si votre projet doit être très précis, vous pourriez envisager d'utiliser un ADC séparé comme le ADS1115 avec l'ESP8266, ou utiliser une carte Arduino telle que l'Arduino Uno R4 WiFi, qui possède un ADC plus fiable.

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 !