ESP32 - MQ3 Alcoholsensor
Deze handleiding helpt u bij het aansluiten van de MQ3 alcoholsensor op de ESP32 om de concentratie ethanol en alcoholdampen in de omgevingslucht te detecteren en te meten. De MQ3 sensor is een fundamenteel onderdeel van breathalyzer projecten, alcoholdetectiesystemen en toepassingen voor het monitoren van luchtkwaliteit.
In deze gids behandelen we:
- Het aansluiten van de MQ3 alcoholsensor op de ESP32
- Het programmeren van de ESP32 om alcoholdampniveaus te lezen en interpreteren

Hardware Vereist
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over de MQ3 Alcoholsensor
Geclassificeerd als een Chemiresistor, maakt de MQ3 gebruik van Metal Oxide Semiconductor (MOS) technologie om alcohol te detecteren via weerstandswijzigingen in de detectielaag. Deze sensor heeft een uitstekende gevoeligheid voor ethanol dampen bij verschillende concentraties.
Het hart van de sensor bestaat uit tin dioxide (SnO2) gecoat op een keramische aluminiumoxide-substraat. Door dit materiaal te verwarmen, kan het reageren met alcoholmoleculen. Een beschermend gaasje van roestvrij staal (antiexplosienet) omhult het sensorelement, waardoor het verwarmingsgedeelte beschermd wordt, terwijl gasdiffusie naar de meetkamer mogelijk blijft.
Veelvoorkomende toepassingen zijn ademtestapparaten, DUI-detectie (driving under influence), alcoholalarm-systemen en monitoring van alcoholdampen in de omgeving.
Technische Specificaties
- Bedrijfsspanning: 5V DC
- Belastingsweerstand: 200 kΩ
- Verwarmingsweerstand: 33 Ω ± 5%
- Vermogen verwarming: < 800 mW
- Meetweerstand: 1 MΩ – 8 MΩ
- Detectiebereik: 25 – 500 ppm (parts per million)
- Opwarmtijd: 24-48 uur voor eerste gebruik
Over ppm: Parts-per-million (ppm) geeft de verhouding aan van doelmoleculen ten opzichte van het totaal aantal gasmoleculen. Bijvoorbeeld: een waarde van 500 ppm betekent dat er 500 alcoholmoleculen zijn per 1.000.000 totale moleculen, waarbij 999.500 uit andere atmosferische componenten bestaan.
Pinout
De MQ3 sensormodule heeft vier aansluitpinnen:
- VCC pin: Verbind met +5V voedingsspanning.
- GND pin: Verbind met aarde (0V).
- DO pin: Digitale uitgang – wordt LOW als de alcoholconcentratie boven de drempelwaarde komt, anders HIGH. Drempel instelbaar via potentiometer op de module.
- AO pin: Analoge uitgang – spanning varieert proportioneel met alcoholconcentratie. Hoe hoger de alcohol, hoe hoger de spanning.

Visuele indicatoren op de module:
- PWR-LED: Gaat branden zodra de module stroom ontvangt.
- DO-LED: Volgt de digitale uitgang – brandt bij alcoholdetectie, uit als er geen alcohol wordt waargenomen.
Werking
De MQ3 werkt door veranderingen in de weerstand van het tin dioxide (SnO2) halfgeleidermateriaal:
Schooneluchttoestand: Door het SnO2 te verwarmen hechten zuurstofmoleculen zich aan het oppervlak en vangen elektronen weg, waardoor een laag met verminderde geleiding ontstaat. Dit zorgt voor een hoge weerstand.
Aanwezigheid van alcohol: Alcoholmoleculen reageren met de zuurstof aan het oppervlak, waarbij de bindingen verbreken en gevangen elektronen vrijkomen. Dit verhoogt de geleiding en verlaagt de weerstand – naarmate de alcoholconcentratie stijgt, daalt de weerstand.
De sensor heeft twee uitgangsmodes:
Digitale uitgang (DO pin):
- Drempel instelbaar met potentiometer.
- DO wordt LOW (LED aan) als alcohol boven drempelwaarde is.
- DO wordt HIGH (LED uit) als alcohol onder drempelwaarde blijft.
Analoge uitgang (AO pin):
- Spanning is evenredig met alcoholconcentratie.
- Meer alcohol betekent hogere spanning.
- Minder alcohol betekent lagere spanning.
- Let op: de potentiometer beïnvloedt alleen de digitale uitgang, niet de analoge.
Opwarmen en Kalibratie
Voorverwarming
De MQ3 heeft een opwarmperiode nodig voor nauwkeurige metingen:
- Eerste gebruik of langdurige opslag (30+ dagen): Continu voeding geven gedurende 24-48 uur voor stabilisatie.
- Regelmatig gebruik: 5-10 minuten opwarmen is voldoende. Vroege metingen kunnen grillig zijn maar stabiliseren snel.
Sluit VCC en GND gewoon aan op 5V voeding of de voedingspinnen van de ESP32 gedurende deze periode.
Bepalen van Drempelwaarden
MOS-sensoren zoals de MQ3 kunnen tijdens opslag drift vertonen. Stel nauwkeurige drempels in via kalibratie:
- Schoonluchtniveau meten: Meet analoge waarden bij zuivere lucht, doorgaans tussen 100-150.
- Alcoholblootstelling: Houd isopropylalcohol of handdesinfecterend middel dicht bij (zonder aanraking) de sensor, zodat alleen damp binnenkomt. Noteer de hogere waarden (meestal 400-900 afhankelijk van dampsterkte).
- Bereiken vaststellen: Definieer zones aan de hand van gemeten waarden:
- Nuchter: Lager dan schoonluchtniveau + 20 (bijv. < 120)
- Licht alcoholgebruik: Middenbereik (bijv. 120-400)
- Zwaar alcoholgebruik: Boven matige drempel (bijv. > 400)
Belangrijk: Sensorwaarden verschillen per module en omgeving. Kalibreer altijd met uw eigen hardware.
Digitale Drempel Instellen
Stel het triggerniveau van de DO pin in met de trim potentiometer:
- Blootstelling aan alcoholdamp.
- Draai de potentiometer met de klok mee tot LED aangaat.
- Draai tegen de klok in tot LED net uitgaat.
- Drempel is nu ingesteld.
Aansluitschema
De MQ3 module biedt beide uitgangen. Gebruik een of beide afhankelijk van uw projectwens.
| MQ3 Alcoholsensor | ESP32 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| DO | GPIO 19 |
| AO | GPIO 36 (ADC0) |

This image is created using Fritzing. Click to enlarge image
ESP32 Code - Digitale Uitgang Lezen
Snelle stappen
- Als u voor het eerst werkt met ESP32, bekijk dan hoe u de ESP32-ontwikkelomgeving instelt in Arduino IDE.
- Kopieer bovenstaande code en open deze in Arduino IDE.
- Klik op de Upload-knop in Arduino IDE om de code naar de ESP32 te uploaden.
- Breng een alcoholdampbron dicht bij de MQ3 sensor (handdesinfecterend middel of isopropylalcohol op watje werkt goed).
- Bekijk het resultaat in de Seriële Monitor.
Opmerking: Als de metingen niet overeenkomen met de werkelijkheid (valse triggers of missen van detecties), stel dan de potentiometer van de module bij. Met de klok mee verhoogt u de gevoeligheid; tegen de klok in verlaagt u deze. Fijninstellen tot de nauwkeurigheid verbetert.
ESP32 Code - Analoge Uitgang Lezen
Snelle stappen
- Kopieer de bovenstaande code en open met Arduino IDE.
- Klik op de Upload-knop om code naar ESP32 te laden.
- Breng alcoholdamp aan op de sensor (bijvoorbeeld handdesinfecterend middel of isopropylalcohol).
- Bekijk de resultaten in de Seriële Monitor.
Met zowel digitale als analoge uitgang kunt u drempellogica implementeren voor het activeren van alarmen, waarschuwingslichten of het loggen van gegevens voor breathalyzer toepassingen.
※ Notiz:
Deze handleiding gebruikt de functie analogRead() om waarden te lezen van een ADC (Analog-to-Digital Converter) die is aangesloten op een sensor of component. De ADC van de ESP32 is geschikt voor projecten die geen hoge precisie vereisen. Houd echter rekening met het volgende bij projecten die nauwkeurige metingen wensen:
- De ADC van de ESP32 is niet perfect nauwkeurig en kan kalibratie nodig hebben voor correcte resultaten. Elke ESP32-module kan iets verschillen, dus kalibratie per bord is aan te raden.
- Kalibreren kan uitdagend zijn, vooral voor beginners, en zal niet altijd de exacte gewenste resultaten opleveren.
Voor projecten met hoge precisie overweeg een externe ADC (bijvoorbeeld ADS1115) te gebruiken met de ESP32 of een ander board zoals de Arduino Uno R4 WiFi die een betrouwbaardere ADC heeft. Wilt u toch de ESP32 ADC kalibreren, raadpleeg dan de ESP32 ADC Calibratie Driver.
ESP32 Code - Breathalyzer met Drempeldetectie
Dit voorbeeld laat zien hoe u de analoge uitgang interpreteert met gekalibreerde drempels voor het schatten van intoxicatieniveaus.
Snelle stappen
- Belangrijk: Kalibreer eerst uw sensor met het analoge voorbeeld om passende drempelwaarden te bepalen.
- Pas de constanten SOBER_THRESHOLD en DRUNK_THRESHOLD aan met uw gekalibreerde waarden.
- Kopieer de aangepaste code en open die in Arduino IDE.
- Klik op de Upload-knop om code naar ESP32 te uploaden.
- Test met alcoholdamp (bijv. isopropylalcohol of handdesinfecterend middel damp).
- Check statusberichten in de Seriële Monitor.
Disclaimer: Dit project is alleen bedoeld voor educatieve doeleinden. Gebruik dit apparaat nooit voor officiële breathalyzer-toepassingen of verkeersveiligheidsbeoordelingen.
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.
Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u sneller aan de slag te gaan.