ESP8266 - MQ3 Alkohol Sensor

Diese Anleitung erklärt, wie Sie ESP8266 mit dem MQ3 Alkohol Sensor verbinden, um Ethanol und Alkoholdampf in der Umgebung zu messen. Der MQ3 Sensor ist wertvoll für Atemtestgeräte, Alkoholerkennungsalarme und Luftqualitätsüberwachungsanwendungen.

In diesem Leitfaden behandeln wir:

ESP8266 NodeMCU mit MQ3 Alkohol Gas Sensor Modul

Benötigte Hardware

1×ESP8266 NodeMCU ESP-12E
1×Empfohlen: ESP8266 NodeMCU ESP-12E (Uno-form)
1×USB Kabel Type-C
1×MQ3 Alkohol Sensor
1×Jumper Kabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über den MQ3 Alkohol Sensor

Der MQ3 ist als Metalloxid-Halbleiter (MOS) Chemiresistor konzipiert und erkennt Alkohol über Widerstandsveränderungen in seinem aktiven Material. Dieser Sensor spezialisiert sich auf Ethanol-Dampf-Erkennung mit zuverlässiger Empfindlichkeit über seinen gesamten Messbereich.

Seine Sensorkomponente verfügt über eine Zinndioxid (SnO2) Schicht auf einer Aluminiumoxid-Keramikgrundlage. Die Erwärmung aktiviert das SnO2, um auf luftübertragene Alkoholmoleküle zu reagieren. Ein schützendes Edelstahlgitter umgibt das Element und schützt es, während es Gaszugang zur Erkennungszone ermöglicht.

Häufige Anwendungen umfassen DIY-Breathalyzer-Konstruktion, Beeinträchtigungserkennungssysteme, Alkohldampf-Warngeräte und atmosphärische Alkoholmessungen.

Technische Spezifikationen

  • Betriebsspannung: 5V DC
  • Lastwiderstand: 200 KΩ
  • Heizwiderstand: 33Ω ± 5%
  • Heizverbrauch: < 800mW
  • Sensorwiderstand: 1 MΩ – 8 MΩ
  • Erkennungsbereich: 25 – 500 ppm (parts per million)
  • Vorheizzeit: 24-48 Stunden für erste Verwendung

Was ist ppm? Die ppm-Messung (parts-per-million) zeigt das Konzentrationsverhältnis an. Bei 500 ppm haben Sie 500 Alkoholmoleküle pro 1.000.000 Gasmoleküle gesamt, wobei die verbleibenden 999.500 atmosphärische Gase sind.

Pinbelegung

Vier Pins sind am MQ3 Sensor Modul vorhanden:

  • VCC Pin: Versorgen Sie hier mit +5V Spannung.
  • GND Pin: Mit Masse (0V) verbinden.
  • DO Pin: Digital Output wird LOW, wenn Alkohol den Schwellenwert überschreitet, HIGH wenn darunter. Schwellenwert mit Onboard-Potentiometer einstellbar.
  • AO Pin: Analog Output-Spannung skaliert mit Alkoholkonzentration. Höherer Alkoholwert ergibt höhere Spannung.
MQ3 Alkohol Sensor Modul Pinbelegungsdiagramm

Zwei Anzeige-LEDs bieten visuelle Rückmeldung:

  • PWR-LED: Leuchtet, wenn das Modul Strom hat.
  • DO-LED: Spiegelt digitalen Ausgang wider—leuchtet während Erkennung, dunkel andernfalls.

Funktionsweise

Der Erkennungsmechanismus des MQ3 hängt von der Zinndioxid (SnO2) Widerstandsvariation ab:

In unbelasteter Luft: Das erhitzte SnO2 bindet Sauerstoffmoleküle an seine Oberfläche und fängt Elektronen in einer Verarmungsschicht ein. Diese eingefangenen Elektronen etablieren eine Leitungsbarriere und erzeugen hohen Widerstand.

Bei Alkoholpräsenz: Alkoholmoleküle interagieren mit Oberflächensauerstoff und setzen eingefangene Elektronen in die Zinndioxidmatrix frei. Freigesetzte Elektronen verbessern die Leitfähigkeit—mehr Alkohol bedeutet reduzierten Widerstand.

Zwei Ausgangsmodi werden bereitgestellt:

Digital Output (DO Pin):

  • Onboard-Potentiometer setzt den Schwellenwert.
  • Alkohol über dem Schwellenwert treibt DO auf LOW und aktiviert LED.
  • Alkohol unter dem Schwellenwert hält DO auf HIGH mit LED aus.

Analog Output (AO Pin):

  • Ausgangsspannung folgt der Alkoholkonzentration.
  • Erhöhter Alkohol = erhöhte Spannung.
  • Reduzierter Alkohol = reduzierte Spannung.
  • Hinweis: Potentiometer beeinflusst nur digitalen Schwellenwert, nicht analoge Spannung.

Aufwärm- und Kalibrierungszeit

Vorheizanforderungen

Ordnungsgemäßer MQ3 Sensor-Betrieb erfordert ausreichende Erwärmung:

  • Erste Inbetriebnahme oder längere Lagerung (30+ Tage): Halten Sie kontinuierliche Erwärmung für 24-48 Stunden aufrecht, um den Sensor für genaue Messungen zu stabilisieren.
  • Regelmäßige Nutzung: Eine schnelle 5-10 Minuten Aufwärmzeit genügt. Frühe Messwerte können erhöht sein, normalisieren sich aber schnell.

Erwärmen Sie den Sensor durch Verbindung von VCC und GND mit 5V und Masse—verwenden Sie entweder ein Netzteil oder ESP8266's Versorgungspins.

Ihre Schwellenwerte finden

Beheizte Sensoren wie der MQ3 können während der Lagerung driften. Für Breathalyzer-Anwendungen etablieren Sie Schwellenwerte durch dieses Kalibrierverfahren:

  1. Grundwert in sauberer Luft aufzeichnen: Betreiben Sie den Sensor in frischer Luft und notieren Sie den Analogausgang (typisch 100-150).
  2. Alkoholdampf einführen: Positionieren Sie Isopropylalkohol oder Handdesinfektionsmittel in der Nähe (ohne Berührung) des Sensors und lassen Sie Dampf ihn erreichen. Notieren Sie erhöhte Werte (gewöhnlich 400-900 abhängig von der Dampfdichte).
  3. Erkennungsbereiche festlegen: Definieren Sie aus Ihren Messungen Schwellenwert-Zonen:
  • Kein Alkohol vorhanden: Unter Grundwert + 20 (Beispiel: < 120)
  • Moderater Alkohol: Mittlere Bereichswerte (Beispiel: 120-400)
  • Hoher Alkohol: Über moderatem Bereich (Beispiel: > 400)

Kritisch: Einzelne Sensoren und Umgebungen ergeben unterschiedliche Werte. Kalibrieren Sie immer Ihre spezifische Hardware vor der Implementierung.

Digitalen Schwellenwert einstellen

Passen Sie den DO Pin-Auslösepegel mit dem Potentiometer des Moduls an:

  1. Setzen Sie den Sensor Alkoholdampf aus.
  2. Drehen Sie das Potentiometer im Uhrzeigersinn, bis die LED aktiviert wird.
  3. Drehen Sie langsam gegen den Uhrzeigersinn, bis die LED gerade deaktiviert wird.
  4. Der Schwellenwert ist konfiguriert.

Schaltschema

Da das MQ3 Alkohol Sensor Modul zwei Ausgänge hat, können Sie einen oder beide verwenden, je nach Ihren Bedürfnissen.

ESP8266 NodeMCU MQ3 Alkohol Sensor Schaltschema

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

ESP8266 Code - Digital Output Ablesung

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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); }

Schnelle Schritte

Um mit ESP8266 in der Arduino IDE zu beginnen, folgen Sie diesen Schritten:

  • Schauen Sie sich das Tutorial zur Einrichtung der Umgebung für ESP8266 in Arduino IDE an, wenn Sie ESP8266 zum ersten Mal verwenden.
  • Verkabeln Sie die Komponenten wie im Schaltschema gezeigt.
  • Verbinden Sie das ESP8266 Board mit Ihrem Computer über ein USB-Kabel.
  • Öffnen Sie Arduino IDE auf Ihrem Computer.
  • Wählen Sie das korrekte ESP8266 Board, wie z.B. NodeMCU 1.0 (ESP-12E Module), und den entsprechenden COM Port.
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit Arduino IDE
  • Klicken Sie auf Upload in Arduino IDE, um den Code auf ESP8266 hochzuladen
  • Platzieren Sie eine Alkohldampfquelle in der Nähe des MQ3 Sensors (Handdesinfektionsmittel oder Isopropylalkohol auf Watte funktioniert gut)
  • Überprüfen Sie das Ergebnis im Serial Monitor.
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  

Bitte beachten Sie, dass Sie das Potentiometer justieren können, um die Empfindlichkeit des Sensors feinzujustieren, falls Sie bemerken, dass der LED-Status konstant an oder aus bleibt.

ESP8266 Code - Analog Output Ablesung

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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); }

Schnelle Schritte

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit Arduino IDE
  • Klicken Sie auf Upload in Arduino IDE, um den Code auf ESP8266 hochzuladen
  • Führen Sie Alkoholdampf zum Sensor zu (Handdesinfektionsmittel oder Isopropylalkohol-Dämpfe)
  • Überprüfen Sie das Ergebnis im Serial Monitor.
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  

Aus den von DO oder AO gelesenen Werten können Sie schwellenwertbasierte Logik aufbauen, um Alarme auszulösen, Warnindikatoren zu steuern oder Daten für Breathalyzer-Funktionalität zu protokollieren.

ESP8266 Code - Breathalyzer mit Schwellenwert-Erkennung

Dieses Beispiel demonstriert die Verwendung des Analogausgangs mit kalibrierten Schwellenwerten zur Schätzung von Intoxikationslevels.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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 }

Schnelle Schritte

  • Kritisch: Kalibrieren Sie zuerst Ihren Sensor mit dem Analog-Lesebeispiel, um angemessene Schwellenwerte für Ihre Umgebung zu bestimmen.
  • Aktualisieren Sie die Konstanten SOBER_THRESHOLD und DRUNK_THRESHOLD im Code mit Ihren kalibrierten Zahlen.
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit Arduino IDE
  • Klicken Sie auf Upload in Arduino IDE, um den Code auf ESP8266 hochzuladen
  • Testen Sie mit Alkoholdampf (Isopropylalkohol oder Handdesinfektionsmittel-Dampf)
  • Überprüfen Sie das Ergebnis im Serial Monitor.
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  

Haftungsausschluss: Dieses Projekt dient ausschließlich Bildungszwecken. Verlassen Sie sich niemals auf dieses Gerät für rechtliche Breathalyzer-Funktionen oder Fahrsicherheitsbewertungen.

※ Notiz:

Diese Anleitung verwendet die analogRead() Funktion, um Daten von einem ADC (Analog-Digital-Wandler) zu erhalten, der mit einem Sensor oder einem anderen Teil verbunden ist. Der ADC des ESP8266 funktioniert gut für Projekte, bei denen Sie keine sehr präzisen Ablesungen benötigen. Aber denken Sie daran, dass der ADC des ESP8266 nicht sehr genau für detaillierte Messungen ist. Wenn Ihr Projekt sehr präzise sein muss, sollten Sie möglicherweise einen separaten ADC wie den ADS1115 mit dem ESP8266 verwenden oder Arduino wie den Arduino Uno R4 WiFi verwenden, der einen zuverlässigeren ADC hat.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!