ESP32 - MQ3-Alkoholsensor

Dieses Tutorial führt Sie durch die Anbindung des MQ3-Alkoholsensors an einen ESP32 mit MicroPython, um Ethanol- und Alkoholdampfkonzentrationen zu erkennen und zu messen. Im Einzelnen lernen wir:

ESP32 MicroPython MQ3-Alkoholsensor

Überblick über MQ3 Alcohol Sensor

Der MQ3-Alkoholsensor dient dazu, Ethanol- und Alkoholdampf in der Umgebungsluft zu erkennen. Er nutzt die Metalloxid-Halbleiter-Technologie (MOS), bei der ein Sensorelement aus Zinndioxid (SnO2) seinen Widerstand ändert, wenn es Alkoholmolekülen ausgesetzt ist. Der Sensor verfügt sowohl über einen digitalen als auch über einen analogen Ausgangspin zur Signalausgabe.

Der MQ3-Sensor wird häufig in Atemalkoholtestern, Alkoholerkennungssystemen, Geräten zur Erkennung von Trunkenheit am Steuer und zur Überwachung von Alkoholdämpfen in der Umgebung eingesetzt.

Pinbelegung

Das MQ3-Alkoholsensormodul hat vier Pins:

  • VCC-Pin: Verbinden Sie diesen Pin mit VCC (5V).
  • GND-Pin: Verbinden Sie diesen Pin mit GND (0V).
  • DO-Pin: Dies ist der digitale Ausgangspin. Er wird LOW, wenn Alkoholdampf erkannt wird, und HIGH, wenn kein Alkohol vorhanden ist. Sie können die Erkennungsschwelle mit dem Potentiometer auf der Platine einstellen.
  • AO-Pin: Dies ist der analoge Ausgangspin, der eine Spannung ausgibt, die sich je nach Alkoholkonzentration ändert. Höhere Alkoholwerte erhöhen die Spannung, niedrigere Alkoholwerte verringern sie.
MQ3-Alkoholsensor Pinbelegung

Der Sensor hat außerdem zwei LED-Anzeigen:

  • PWR-LED: Zeigt an, dass der Sensor mit Strom versorgt wird.
  • DO-LED: Leuchtet entsprechend dem Wert des DO-Pins, wenn Alkohol erkannt wird, und erlischt, wenn kein Alkohol erkannt wird.

Funktionsweise

Zum DO-Pin:

  • Das Modul hat ein Potentiometer, um seine Empfindlichkeit gegenüber Alkoholwerten einzustellen.
  • Wenn der Alkoholwert den eingestellten Schwellenwert überschreitet, wird der Ausgangspin des Sensors LOW und die DO-LED leuchtet.
  • Wenn der Alkoholwert unter dem eingestellten Schwellenwert liegt, wird der Ausgangspin des Sensors HIGH und die DO-LED erlischt.

Zum AO-Pin:

  • Mit steigender Alkoholkonzentration steigt die Spannung.
  • Mit sinkender Alkoholkonzentration sinkt die Spannung.

Das Potentiometer beeinflusst den Wert am AO-Pin nicht.

Aufwärmphase des MQ3-Sensors

Der MQ3-Alkoholsensor benötigt vor der Verwendung eine Aufwärmphase. Wenn der Sensor länger als einen Monat nicht verwendet wurde, lassen Sie ihn 24–48 Stunden aufwärmen, um genaue Messwerte zu erhalten. Wurde er kürzlich verwendet, genügt eine Aufwärmzeit von 5–10 Minuten. Anfangs können die Messwerte hoch sein, sie stabilisieren sich jedoch mit der Zeit.

Um den MQ3-Sensor aufzuwärmen, verbinden Sie seine VCC- und GND-Pins mit einer Stromquelle oder mit den VCC- und GND-Pins eines ESP32 und lassen Sie ihn für die erforderliche Zeit angeschlossen.

Verdrahtungsdiagramm

Da das MQ3-Alkoholsensormodul zwei Ausgänge hat, können Sie je nach Bedarf einen oder beide verwenden.

  • So verbinden Sie ESP32 und MQ3-Alkoholsensor über ein Breadboard (Stromversorgung über USB-Kabel)
ESP32 MQ3-Alkoholsensor Schaltplan

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

  • So verbinden Sie ESP32 und MQ3-Alkoholsensor über ein Breadboard (Stromversorgung über Vin-Pin)
ESP32 MQ3-Alkoholsensor Verdrahtungsanleitung

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

So verbinden Sie ESP32 und MQ3-Alkoholsensor
So verdrahten Sie ESP32 und MQ3-Alkoholsensor
MQ3-AlkoholsensorESP32
VCC3.3V
GNDGND
DOGPIO 16
AOGPIO 36 (ADC0)

ESP32 MicroPython-Code - Wert vom DO-Pin lesen

/* * Dieser ESP32 MicroPython Code wurde von newbiely.de entwickelt * Dieser ESP32 MicroPython 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/esp32-micropython/esp32-micropython-mq3-alcohol-sensor */ from machine import Pin import utime # For timing functions DO_PIN = Pin(16, Pin.IN) # The ESP32 pin GPIO16 as a digital input pin of the MQ3 alcohol sensor module while True: alcohol_state = DO_PIN.value() # Read the digital value from the pin if alcohol_state == 1: print("Alcohol is NOT detected") else: print("Alcohol is detected") utime.sleep(1) # Add a small delay to avoid spamming the output

Schnelle Schritte

So richten Sie Ihren MicroPython-Code auf dem ESP32 mit der Thonny IDE ein und führen ihn aus:

  • Stellen Sie sicher, dass die Thonny IDE auf Ihrem Computer installiert ist.
  • Vergewissern Sie sich, dass die MicroPython-Firmware auf Ihrem ESP32-Board installiert ist.
  • Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Erste Schritte mit Schritt-für-Schritt-Anweisungen.
  • Verbinden Sie das ESP32-Board gemäß dem Schaltplan mit dem MQ3-Alkoholsensor.
  • Verbinden Sie das ESP32-Board über ein USB-Kabel mit Ihrem Computer.
  • Öffnen Sie die Thonny IDE auf Ihrem Computer.
  • Gehen Sie in der Thonny IDE zu Tools Options.
  • Wählen Sie im Tab Interpreter aus dem Dropdown-Menü MicroPython (ESP32) aus.
  • Stellen Sie sicher, dass der richtige Port ausgewählt ist. Die Thonny IDE erkennt ihn normalerweise automatisch, eventuell müssen Sie ihn aber manuell auswählen (z. B. COM12 unter Windows oder /dev/ttyACM0 unter Linux).
  • Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
  • Speichern Sie den Code auf Ihrem ESP32:
    • Klicken Sie auf die Schaltfläche Save oder drücken Sie Ctrl+S.
    • Wählen Sie im Speicherdialog MicroPython device.
    • Nennen Sie die Datei main.py.
  • Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
  • Bringen Sie eine Alkoholdampfquelle in die Nähe des MQ3-Sensors (Handdesinfektionsmittel oder Reinigungsalkohol auf Watte eignet sich gut).
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot Alcohol is NOT detected Alcohol is NOT detected 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 detected
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

Wenn die LED ständig leuchtet oder gar nicht angeht, können Sie die Empfindlichkeit des Sensors durch Drehen des Potentiometers auf der Platine einstellen.

ESP32 MicroPython-Code - Wert vom AO-Pin lesen

/* * Dieser ESP32 MicroPython Code wurde von newbiely.de entwickelt * Dieser ESP32 MicroPython 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/esp32-micropython/esp32-micropython-mq3-alcohol-sensor */ from machine import ADC, Pin import utime # For timing functions AO_PIN = ADC(Pin(36)) # The ESP32 pin GPIO36 (ADC0) as an analog input pin of the MQ3 alcohol sensor module # Set the ADC width (resolution) to 12 bits AO_PIN.width(ADC.WIDTH_12BIT) # Set the attenuation to 11 dB, allowing input range up to ~3.3V AO_PIN.atten(ADC.ATTN_11DB) while True: alcohol_value = AO_PIN.read() # Read the analog value (0-4095) print("MQ3 sensor AO value:", alcohol_value) # Print the analog value utime.sleep(1) # Add a small delay to avoid spamming the output

Schnelle Schritte

  • Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
  • Speichern Sie den Code auf Ihrem ESP32-Board.
  • Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
  • Führen Sie dem Sensor Alkoholdampf zu (Handdesinfektionsmittel oder Isopropylalkohol).
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot 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
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

Sie können die Werte von DO oder AO verwenden, um das Vorhandensein von Alkohol zu erkennen, einen Alarm auszulösen oder Daten für Atemalkoholtester-Anwendungen zu protokollieren.

※ Notiz:

Dieses Tutorial zeigt, wie Sie mit der Funktion adc.read() Werte von einem ADC (Analog-Digital-Wandler) auslesen, der mit einem Alkoholsensor verbunden ist. Der ADC des ESP32 eignet sich für Projekte, die keine hohe Präzision erfordern. Wenn Ihr Projekt jedoch genaue Messungen benötigt, beachten Sie Folgendes:

  • Der ESP32-ADC ist nicht perfekt genau und muss für präzise Ergebnisse eventuell kalibriert werden. Jedes ESP32-Board kann leicht abweichen, daher ist eine Kalibrierung für jedes einzelne Board erforderlich.
  • Die Kalibrierung kann besonders für Anfänger schwierig sein und liefert nicht immer genau die gewünschten Ergebnisse.

Für Projekte mit hohen Präzisionsanforderungen sollten Sie einen externen ADC (z. B. ADS1115) mit dem ESP32 verwenden oder einen Arduino wählen, der einen zuverlässigeren ADC besitzt. Wenn Sie den ESP32-ADC dennoch kalibrieren möchten, lesen Sie den ESP32 ADC Calibration Driver.

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.

Verwandte Tutorials

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