ESP32 - Capteur d'alcool MQ3
Ce tutoriel vous guide pour interfacer le capteur d’alcool MQ3 avec l’ESP32 afin de détecter et de mesurer les concentrations d’éthanol et de vapeurs d’alcool dans l’air ambiant. Le capteur MQ3 constitue un composant fondamental pour les projets d’éthylotest, les systèmes de détection d’alcool et les applications de surveillance de la qualité de l’air.
Dans ce guide, nous allons couvrir :
- Connecter le capteur d'alcool MQ3 à l'ESP32
- Programmer l'ESP32 pour lire et interpréter les niveaux de vapeurs d'alcool

Préparation du matériel
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Démarrage DIYables ESP32 (ESP32 inclus) | |
| 1 | × | Kit de Capteurs DIYables (30 capteurs/écrans) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos du capteur d'alcool MQ3
Classé comme un Chemiresistor, le MQ3 utilise une technologie MOS (semi-conducteurs à oxyde métallique) pour détecter l’alcool par des variations de résistance dans sa couche de détection. Ce capteur démontre une sensibilité exceptionnelle à la vapeur d’éthanol sur des niveaux de concentration variables.
Le cœur du capteur est constitué d'oxyde d'étain (SnO2) déposé sur un substrat céramique en oxyde d'aluminium. Le chauffage de ce matériau lui permet d'interagir avec les molécules d'alcool. Une grille protectrice en acier inoxydable (écran anti-explosion) entoure l'élément du capteur, protégeant le composant de chauffage tout en permettant la diffusion des gaz dans la chambre de détection.
Des applications courantes comprennent des éthylotests, des équipements de détection de la conduite en état d'ébriété, des systèmes d'alarme liés à l'alcool et la surveillance des vapeurs d'alcool ambiantes.
Spécifications techniques
- Tension d'alimentation : 5 V CC
- Résistance de charge : 200 kΩ
- Résistance du chauffage : 33 Ω ± 5 %
- Consommation de chauffage : < 800 mW
- Résistance de détection : 1 MΩ – 8 MΩ
- Gamme de détection : 25 – 500 ppm (parties par million)
- Temps de préchauffage : 24–48 heures pour la première utilisation
À propos des ppm : Les parties par million (ppm) expriment le rapport de concentration des molécules cibles par rapport au nombre total de molécules de gaz. Par exemple, une mesure de 500 ppm signifie que 500 molécules d'alcool existent pour 1 000 000 de molécules totales, les 999 500 restants étant d'autres composants atmosphériques.
Schéma de brochage
Le module capteur MQ-3 comporte quatre broches de connexion :
- Broche VCC : Connectez-la à l'alimentation +5 V.
- Broche GND : Connectez-la à la masse (0 V).
- Broche DO : Sortie numérique — passe à BAS lorsque le seuil d'alcool est dépassé, et à HAUT sinon. Ajustez le seuil via le potentiomètre intégré.
- Broche AO : Sortie analogique — la tension varie avec la concentration d'alcool. Une concentration d'alcool plus élevée produit une tension plus élevée.

Les indicateurs visuels comprennent deux diodes électroluminescentes:
- PWR-LED: S'allume lorsque le module est alimenté.
- DO-LED: Reflète l'état de la sortie numérique — s'allume lors de la détection d'alcool, reste éteinte sinon.
Comment ça marche
Le MQ3 fonctionne grâce à des variations de résistance dans son matériau semi-conducteur en dioxyde d'étain (SnO2) :
État d'air pur : Le chauffage du SnO2 provoque l’adsorption des molécules d’oxygène sur sa surface, captant des électrons et formant une couche de déplétion. Cette capture d’électrons crée une barrière de conductivité, maintenant une résistance élevée.
Présence d'alcool : Les molécules d'alcool réagissent avec l'oxygène de surface, rompant les liaisons et libérant les électrons piégés dans le dioxyde d'étain. Cela augmente la conductivité — des teneurs en alcool plus élevées signifient une résistance plus faible.
Le capteur offre deux modes de sortie :
Sortie numérique (broche DO):
- Réglage du seuil via le potentiomètre intégré.
- Les sorties DO fournissent un niveau bas (LED allumée) lorsque l’alcool dépasse le seuil.
- Les sorties DO fournissent un niveau haut (LED éteinte) lorsque l’alcool reste en dessous du seuil.
Sortie analogique (broche AO):
- Sortie de tension proportionnelle à la concentration d'alcool.
- Plus d'alcool = tension de sortie plus élevée.
- Moins d'alcool = tension de sortie plus faible.
- Note : le potentiomètre n'affecte que la sortie numérique, et non les lectures analogiques.
Échauffement et calibration
Exigences de préchauffage
Le MQ-3 nécessite un préchauffage avant de produire des mesures précises:
- Première utilisation ou stockage prolongé (30+ jours) : Maintenir l'alimentation pendant 24 à 48 heures pour la stabilisation du capteur et la précision des mesures.
- Utilisation fréquente : Un préchauffage de 5 à 10 minutes suffit. Les premières lectures peuvent présenter des pics, mais se stabiliseront.
Il suffit de brancher VCC et GND sur une alimentation de 5 V ou sur les broches d'alimentation de votre ESP32 pendant la période de préchauffage.
Détermination des valeurs seuils
Les capteurs chauffés, comme le MQ-3, peuvent dériver pendant le stockage. Établissez des seuils d'éthylotest précis grâce à cette calibration :
- I. Ligne de base de l'air propre : Faites fonctionner le capteur dans l'air propre et enregistrez les valeurs analogiques (généralement 100-150).
- I. Exposition à l’alcool : Placez de l’alcool isopropylique ou du gel hydroalcoolique près du capteur (sans le toucher), en ne laissant atteindre que les vapeurs. Notez les lectures élevées (généralement 400-900 selon la force des vapeurs).
- I. Établir les plages : Utilisez les valeurs enregistrées pour définir les zones :
- État de sobriété : Inférieur à la ligne de base + 20 (par exemple < 120)
- Conso légère : Valeurs de milieu (par exemple 120-400)
- Conso élevée : Au-dessus du seuil modéré (par exemple > 400)
Critique : Les caractéristiques des capteurs varient entre les unités et les environnements. Calibrez toujours votre matériel spécifique avant utilisation.
Réglage du seuil numérique
Réglez le niveau de déclenchement de la broche DO à l'aide du potentiomètre de trim :
- Exposez le capteur à la vapeur d’alcool.
- Tournez le potentiomètre dans le sens des aiguilles d'une montre jusqu'à ce que le voyant LED s'allume.
- Tournez lentement le potentiomètre dans le sens inverse des aiguilles d'une montre jusqu'à ce que le voyant LED se désactive.
- Le seuil est maintenant calibré.
Diagramme de câblage
Le module MQ-3 offre les deux broches de sortie. Utilisez-en une ou les deux selon les besoins de votre projet.
| MQ3 Alcohol Sensor | ESP32 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| DO | GPIO 19 |
| AO | GPIO 36 (ADC0) |

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, consultez les instructions dans le tutoriel suivant : Comment alimenter l'ESP32..
Code ESP32 - Lecture de la sortie numérique
Étapes rapides
- Si c'est la première fois que vous utilisez l'ESP32, consultez Installation du logiciel ESP32..
- Copiez le code ci-dessus et ouvrez-le dans l’IDE Arduino
- Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur l'ESP32
- Placez une source de vapeur d’alcool près du capteur MQ3 (du gel hydroalcoolique sur coton fonctionne bien ou de l’alcool isopropylique sur coton).
- Voir le résultat dans le moniteur série.
Note : Si les lectures ne correspondent pas à la réalité (faux déclenchements ou détections manquées), ajustez le potentiomètre du module. Dans le sens des aiguilles d'une montre, la sensibilité augmente ; dans le sens inverse des aiguilles d'une montre, elle diminue. Affinez le réglage jusqu'à ce que la précision s'améliore.
Code ESP32 - Lecture de la sortie analogique
É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'ESP32
- Exposez le capteur à la vapeur d'alcool (gel désinfectant pour les mains ou alcool isopropylique)
- Vérifiez le résultat dans le moniteur série
Avec une sortie numérique ou analogique, vous pouvez mettre en œuvre une logique de seuil pour déclencher des alarmes, activer des voyants d'alerte ou enregistrer des données pour des applications d'éthylotest.
※ Note:
Ce tutoriel utilise la fonction analogRead() pour lire les valeurs d'un ADC (convertisseur analogique-numérique) connecté à un capteur ou à un composant. L'ADC de l'ESP32 convient aux projets qui n'exigent pas une grande précision. Cependant, pour les projets nécessitant des mesures précises, gardez à l'esprit ce qui suit:
- L'ADC de l'ESP32 n'est pas parfaitement précis et peut nécessiter un calibrage pour obtenir des résultats corrects. Chaque carte ESP32 peut varier légèrement, donc un calibrage est nécessaire pour chaque carte individuelle.
- Le calibrage peut s'avérer difficile, surtout pour les débutants, et peut ne pas toujours produire les résultats exacts que vous souhaitez.
Pour les projets nécessitant une grande précision, envisagez d'utiliser un ADC externe (par exemple ADS1115) avec l'ESP32 ou d'utiliser un autre Arduino, comme l'Arduino Uno R4 WiFi, qui dispose d'un ADC plus fiable. Si vous souhaitez tout de même calibrer l'ADC de l'ESP32, reportez-vous au Pilote de calibration ADC ESP32.
Code ESP32 - Éthylotest avec détection de seuil
Cet exemple montre comment interpréter la sortie analogique à travers des seuils calibrés pour estimer les niveaux d’ivresse.
Étapes rapides
- Important : Calibrez votre capteur d'abord en utilisant l'exemple de lecture analogique pour trouver les valeurs de seuil appropriées pour votre configuration.
- Modifiez les constantes SOBER_THRESHOLD et DRUNK_THRESHOLD avec vos valeurs calibrées.
- Copiez le code modifié et ouvrez-le avec l'IDE Arduino.
- Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur l'ESP32.
- Testez avec une vapeur d'alcool (alcool isopropylique ou vapeur de gel hydroalcoolique).
- Vérifiez les messages d'état sur le Moniteur série.
Avertissement : Ce projet est à des fins éducatives uniquement. N'utilisez jamais cet appareil à des fins d'alcootest légal ou d'évaluations de la sécurité routière.