Skip to Content

Wie man den MQ-2 Gassensor mit Arduino und einem OLED verwendet

Wie man den MQ-2 Gassensor mit Arduino und einem OLED verwendet

In diesem Artikel lernen wir, wie man den MQ-2 Gassensor mit einem Arduino verwendet, um die Gaswerte auf einem OLED-Display anzuzeigen. Der MQ-2 Gassensor ist ein universeller Gassensor, der verschiedene Gase wie Methan, Butan, Propan, Alkohol, Rauch und mehr erkennen kann. Durch das Verbinden des MQ-2 Sensors mit einem Arduino und die Anzeige der Gaswerte auf einem OLED-Display können wir die Umgebungs-Gaskonzentration einfach überwachen.

In den folgenden Abschnitten besprechen wir die benötigten Teile für dieses Projekt, geben eine Einführung in den MQ-2 Sensor, erklären, wie man die Teile miteinander verbindet, und führen dich durch das Schreiben des Arduino-Codes. Abschließend fassen wir die wichtigsten Punkte zusammen und beantworten einige häufig gestellte Fragen.

Wenn du daran interessiert bist, ein Gasüberwachungssystem mit dem MQ-2 Universal Gassensor und Arduino zu bauen, dann lies weiter!

Benötigte Teile

Nachfolgend findest du die für dieses Projekt benötigten Teile. Wenn du bereits ein Widerstandsset und einige LEDs hast, benötigst du das vorgeschlagene Kit nicht. Für dieses spezielle Projekt wird nur eine einzelne rote LED und ein 220-Ohm-Widerstand benötigt.

Arduino Uno

Dupont wire set

Dupont-Kabelset

Half_breadboard56a

Breadboard

USB Data Sync cable Arduino

USB-Kabel für Arduino UNO

OLED display

OLED-Display

MQ-2 Gas Sensor

MQ-2 Gassensor

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Einführung in den MQ-2

Der MQ-2 ist ein recht universeller Gassensor, der verschiedene Gase wie Methan, Propan, Butan, Alkohol, Rauch und mehr erkennen kann. Er verfügt über eine hohe Empfindlichkeit und eine schnelle Reaktionszeit.

Im Gegensatz zum MQ-2 sind die anderen Sensoren der MQ-Serie auf die Erkennung bestimmter Gase optimiert. Zum Beispiel:

  • MQ-3: Hauptsächlich für die Erkennung von Alkohol ausgelegt.
  • MQ-4: Hauptsächlich für die Erkennung von Methan und Erdgas ausgelegt.
  • MQ-5: Für LPG und Erdgas ausgelegt.
  • MQ-6: Speziell für die Erkennung von LPG.
  • MQ-7: Fokussiert auf die Erkennung von Kohlenmonoxid (CO).
  • MQ-8: Hauptsächlich für die Erkennung von Wasserstoffgas.
  • MQ-9: Erkennt Kohlenmonoxid (CO) und brennbare Gase.

Beachte, dass wir Tutorials für einige dieser Sensoren haben:

Technische Daten des MQ-2 Gassensors

Nachfolgend findest du die technischen Spezifikationen des MQ-2 Gassensors:

  • Betriebsspannung: 5V DC
  • Heizspannung: 5V DC
  • Stromverbrauch: Ca. 150mA
  • Messwiderstand: 2KΩ bis 20KΩ in sauberer Luft
  • Empfindlichkeit: Über Potentiometer einstellbar
  • Vorheizzeit: Ca. 48 Stunden
  • Ansprechzeit: Weniger als 10 Sekunden
  • Erholungszeit: Weniger als 30 Sekunden
  • Betriebstemperatur: -10°C bis 50°C
  • Betriebsfeuchtigkeit: 95% RH (nicht kondensierend)

Beachte, dass diese Spezifikationen je nach Hersteller und Version des MQ-2 Gassensors leicht variieren können.

Aufbau des MQ-2 Gassensors

In diesem Abschnitt betrachten wir den inneren Aufbau des MQ-2 Sensors. Der Sensor verwendet eine Schicht aus Metalloxid (SnO2). Wenn Gas mit dieser Schicht in Kontakt kommt, reagiert es mit dem auf der Oberfläche des SnO2 vorhandenen Sauerstoff. Dies führt zu einer Widerstandsänderung.

Das folgende Bild stammt vom datasheet of the MQ-2 Sensor und zeigt seine Komponenten und interne Schaltung.

Wenn du genau hinsiehst, erkennst du, dass die Sensorschicht (1) von einer Heizwendel (4) umgeben ist. Diese liefert die Wärme, die für die chemische Reaktion des Gases mit SnO2 notwendig ist. Das Heizelement ist der Grund, warum sich der Sensor im Betrieb warm anfühlt.

Um die Sensorschicht und die Heizwendel befindet sich eine keramische Röhre (5) zum physischen Schutz und zur thermischen Isolierung. Das Gitter oben (6) sorgt dafür, dass das Gas durch die Heizung nicht explodiert.

Schließlich gibt es die Elektroden (2, 3), die aus Gold (Au) und Platin (Pt) bestehen. Sie sind an der Sensorschicht befestigt und messen die Widerstandsänderungen der Sensorschicht.

Empfindlichkeitsmerkmale des MQ-2 Gassensors

Der MQ-2 Gassensor ist dafür ausgelegt, Gase wie LPG (Flüssiggas), Methan (CH4), Propan, Alkohol, Wasserstoff (H2), Rauch und Kohlenmonoxid (CO) zu erkennen. Wie im folgenden Diagramm zu sehen ist, ist seine Empfindlichkeit bei diesen Gasen weitgehend einheitlich (gleiche Steigung).

Die Empfindlichkeit des Sensors bezieht sich auf das Verhältnis (Rs/Ro) des Sensorwiderstands in verschiedenen Gasen zum Sensorwiderstand in sauberer Luft. Je mehr Gas vorhanden ist (höhere ppm), desto niedriger ist der Widerstand.

Abhängigkeit von Feuchtigkeit und Temperatur des MQ-2 Gassensors

Beachte jedoch, dass der MQ-2 Gassensor von der Umgebungsfeuchtigkeit und -temperatur beeinflusst wird. Das folgende Diagramm zeigt die Widerstandsänderung in Abhängigkeit von Temperatur und Feuchtigkeit.

Feuchtigkeit kann die Leistung des Sensors beeinflussen, hauptsächlich weil Wasserdampf die aktiven Stellen auf der Zinnoxid-(SnO2)-Sensorschicht besetzen kann, an denen die Gasdetektionsreaktionen stattfinden.

Temperatur ist ein weiterer Faktor, der bei der Verwendung des MQ-2 Gassensors zu berücksichtigen ist. Der MQ-2 Sensor verfügt über eine eingebaute Heizung, um die notwendige Temperatur für die SnO2-Sensorschicht aufrechtzuerhalten. Dennoch kann die Umgebungstemperatur die Sensorwerte beeinflussen.

Wenn du genaue und stabile Messwerte benötigst, solltest du zusätzliche Temperatur- und Feuchtigkeitssensoren verwenden, um diese Abhängigkeiten zu kompensieren. Beachte auch, dass der MQ-2 Sensor aufheizen muss für mindestens 20 Sekunden, bevor seine Messwerte stabil und zuverlässig sind.

Pinbelegung des MQ-2 Gassensors

Anstatt den rohen MQ-2 Sensor zu verwenden, ist es einfacher, eines der MQ-2 Module zu nutzen, wie das oben aufgeführte. Diese Module haben vier Pins für eine einfache Anbindung an den Mikrocontroller. Der VCC-Pin ist für die 5V Stromversorgung, der GND-Pin muss mit Masse verbunden werden. Der A0-Pin liefert eine analoge Ausgangsspannung proportional zur Gaskonzentration. Und der D0-Pin gibt ein digitales Signal (HIGH oder LOW) aus.

Pinout of MQ-2 Gas Sensor
Pinbelegung des MQ-2 Gassensors

Auf der Rückseite des Moduls befindet sich ein Trimmer zur Einstellung des Schaltschwellenwerts für D0. Dort findest du auch eine rote Power-LED, die leuchtet, wenn das Modul mit Strom versorgt wird. Zusätzlich gibt es eine grüne Erkennungs-LED, die aufleuchtet, wenn Gas über dem eingestellten Schwellenwert erkannt wird (D0=HIGH).

Backside of the MQ2 gas sensor module
Rückseite des MQ-2 Gassensormoduls

Testen des MQ-2 Gassensors

Du kannst die Funktion des Moduls auch ohne Arduino einfach testen. Verbinde VCC und GND mit einer 5V Stromquelle, und die rote Power-LED auf der Rückseite des Moduls sollte leuchten. Warte nun einige Sekunden (für stabile Messwerte >20 Sekunden). Du wirst bemerken, dass das Sensormodul durch das Heizelement leicht warm wird.

Testing the MQ-2 gas sensor
Testen des MQ-2 Gassensors

Wenn du etwas Alkohol (Bildschirmreiniger, Parfüm, …) vor den Sensor sprühst, sollte die grüne Erkennungs-LED aufleuchten. Falls nicht, justiere den Trimmer auf der Rückseite des Moduls. Du kannst auch das Gas eines Feuerzeugs ausprobieren.

Im nächsten Abschnitt zeigen wir, wie man den MQ-2 Gassensor mit Arduino verbindet und den notwendigen Code schreibt, um Methangas zu erkennen.

Verbindung der Teile

In diesem Abschnitt verbinden wir den MQ-2 Sensor und das OLED-Display. Zuerst verbinden wir die Stromversorgung vom Arduino mit den Stromschienen des Breadboards (rote und blaue Kabel von 5V- und GND-Pin). Dann verbinden wir die Stromschienen mit dem MQ-2 Sensor und dem OLED-Display (rote und blaue Kabel).

Connecting the MQ-2 gas sensor and the OLED display to an Arduino

Aber Vorsicht! Es gibt zwei Versionen des SDD1306 OLED 128×64 Displays, bei denen die VCC- und GND-Pins vertauscht sind! Achte darauf, VCC mit +5V (oder +3V3, was ebenfalls funktioniert) zu verbinden. Wenn du mehr Details zur Verbindung und Nutzung des OLED benötigst, schau dir unser Tutorial zu How to Interface the SSD1306 I2C OLED Graphic Display.

Danach verbinde den analogen Ausgang A0 des MQ-2 Sensors mit dem analogen Eingang A0 des Arduino (gelbes Kabel). Schließlich müssen die I2C-Pins SCL und SDA mit den Pins A5 und A4 des Arduino verbunden werden (lila und grünes Kabel, SCL->A5, SDA->A4).

Damit ist die Verbindung der Teile abgeschlossen. Wenn du mehr Details zur Verkabelung der Komponenten benötigst, sieh dir die folgende Tabelle an.

Von Pin Kabel-Farbe Zu Pin
Arduino 5V Rot Breadboard Positive Schiene
Arduino GND Blau Breadboard Negative Schiene
MQ-2 GND Blau Breadboard Negative Schiene
MQ-2 VCC Rot Breadboard Positive Schiene
MQ-2 Out/Signal/A0 Gelb Arduino A0
OLED VCC Rot Breadboard Positive Schiene
OLED GND Blau Breadboard Negative Schiene
OLED SCL Lila Arduino A5
OLED SDA Grün Arduino A4

Im nächsten Abschnitt schreiben wir den Code, um die gemessenen Gaswerte auf dem OLED-Display anzuzeigen.

Arduino-Code schreiben

Der folgende Code liest Daten vom MQ-2 Sensor und zeigt den Sensorwert auf einem OLED-Display an. Er läuft kontinuierlich und aktualisiert die Anzeige jede Sekunde mit einem neuen Sensorwert.

#include "Wire.h"
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"

#define SCREEN_WIDTH 128 
#define SCREEN_HEIGHT 64 
#define SCREEN_ADDRESS 0x3C 

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {
  Serial.begin(115200);

  if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { 
    Serial.println("Can't find display!");
    for(;;);
  }
  delay(100);
  display.setTextSize(5);
  display.setTextColor(WHITE);  
}

void loop() {
  int sensorValue = analogRead(A0);
  Serial.print("Gas:");
  Serial.println(sensorValue);
  
  display.clearDisplay();
  display.setCursor(20, 16);
  display.println(sensorValue);
  display.display();

  delay(1000);
}

Um den Code besser zu verstehen, schauen wir uns seine Teile an. Wir beginnen mit den Bibliotheken und Konstanten.

Bibliotheken und Konstanten

Zuerst binden wir die notwendigen Bibliotheken für die I2C-Kommunikation mit dem OLED-Display ein.

#include "Wire.h"
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"

Danach definieren wir die Konstanten für Bildschirmbreite, -höhe und I2C-Adresse.

#define SCREEN_WIDTH 128 
#define SCREEN_HEIGHT 64 
#define SCREEN_ADDRESS 0x3C 

Achte darauf, die I2C-Adresse deines Displays zu überprüfen. Typischerweise ist diese 0x3C. Wenn du Glück hast, findest du diese Adresse auf der Rückseite des OLED-Moduls (linkes Bild unten). Du kannst die Adresse ändern, indem du den Widerstand an die zweite Position lötest.

Es gibt andere gängige OLED-Module, die auf der Rückseite die I2C-Adresse 0x78 anzeigen (rechtes Bild). Das ist irreführend (es ist die 8-Bit-Adresse im Gegensatz zur gewünschten 7-Bit-Adresse). Die I2C-Adresse für diese Displays ist ebenfalls 0x3C ! Lass dich nicht von der Beschriftung auf der Rückseite täuschen.

I2C address selector on two OLED modules
I2C-Adresswähler auf zwei OLED-Modulen

Wenn du es nicht zum Laufen bekommst und die I2C-Adresse finden musst, kannst du den I2CScanner library installieren, um das zu tun. Hier ist der code zum Ausführen eines Scans. Achte aber darauf, dass das Display korrekt verkabelt und mit Strom versorgt ist.

#include "I2CScanner.h"

I2CScanner scanner;

void setup() {
  Serial.begin(9600);
  while (!Serial) {};

  scanner.Init();
}

void loop() {
  scanner.Scan();
  delay(5000);
}

Display-Objekt

In dieser Zeile erstellen wir das display Objekt unter Verwendung der oben definierten Konstanten.

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

Display-Setup

In der setup() Funktion initialisieren wir die serielle Kommunikation und starten das OLED-Display. Wenn das Display nicht gefunden wird, geben wir eine Fehlermeldung aus und gehen in eine Endlosschleife.

void setup() {
  Serial.begin(115200);

  if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { 
    Serial.println("Can't find display!");
    for(;;);
  }
  delay(100);
  display.setTextSize(5);
  display.setTextColor(WHITE);  
}

Andernfalls warten wir kurz (100 ms) und setzen dann die Textgröße auf 5 und die Textfarbe auf Weiß. Eine Textgröße von 5 füllt das Display gut aus.

Daten lesen und anzeigen

In der loop() Funktion lesen wir zuerst den analogen Wert vom Pin A0, der mit dem MQ-2 Sensor verbunden ist. Dann geben wir den Gaswert im seriellen Monitor aus.

  int sensorValue = analogRead(A0);
  Serial.print("Gas:");
  Serial.println(sensorValue);

Anschließend löschen wir das OLED-Display, setzen den Cursor auf Position (20, 16), was den MQ-2 Sensorwert ungefähr in der Mitte des Displays anzeigt. Danach drucken wir den Sensorwert auf das Display. Der Wert erscheint jedoch erst, wenn wir das Display mit einem Aufruf von display.display() aktualisieren.

  display.clearDisplay();
  display.setCursor(20, 16);
  display.println(sensorValue);
  display.display();

  delay(1000);

Zum Schluss fügen wir eine Verzögerung von 1 Sekunde ein, bevor die Schleife wiederholt wird.

Ausgabe-Beispiel

Wenn du diesen Code ausführst und den Serial Plotter beobachtest, solltest du einen Ausschlag sehen, wenn du den MQ-2 Sensor Gas (Parfüm, Bildschirmreiniger, Feuerzeug) oder Rauch aussetzt. Das Bild unten zeigt die Sensorreaktion nach der Exposition gegenüber Dämpfen von Isopropylalkohol (Bildschirmreiniger).

MQ-2 sensor response to isopropyl alcohol
MQ-2 Sensorreaktion auf Isopropylalkohol

Da hast du es. Jetzt kannst du Gaswerte überwachen und ein Gaswarnsystem bauen!

Fazit

In diesem Tutorial haben wir gelernt, wie man den MQ-2 Universal Gassensor mit Arduino verwendet. Wir begannen mit der Vorstellung der benötigten Teile für dieses Projekt, darunter ein Arduino-Board, der MQ-2 Sensor, ein OLED-Display und einige Jumper-Kabel.

Anschließend haben wir den MQ-2 Sensor im Detail besprochen, seine Funktionsweise und die Gase, die er erkennen kann.

Danach sind wir zum praktischen Teil übergegangen und haben gezeigt, wie man den MQ-2 Sensor mit dem Arduino-Board verbindet. Wir haben ein klares Schaltbild bereitgestellt und die Funktion jeder Verbindung erklärt.

Um den Sensor zum Laufen zu bringen, haben wir dann einen einfachen Arduino-Code geschrieben, der den analogen Ausgang des MQ-2 Sensors liest und auf einem OLED-Display anzeigt. Wir haben den Code Schritt für Schritt erklärt, sodass er leicht verständlich ist.

Zusammenfassend ist der MQ-2 Universal Gassensor eine vielseitige und kostengünstige Option zur Erkennung verschiedener Gase. Mit Hilfe eines Arduino-Boards kannst du diesen Sensor einfach in deine Projekte integrieren und Gasüberwachungssysteme erstellen.

Wir hoffen, dieses Tutorial hat dir den Einstieg in den MQ-2 Sensor erleichtert. Wenn du weitere Fragen hast oder zusätzliche Unterstützung benötigst, schaue bitte in den Abschnitt mit den häufig gestellten Fragen oder hinterlasse einen Kommentar.

Viel Spaß beim Experimentieren mit dem MQ-2 Universal Gassensor und Arduino!

Häufig gestellte Fragen

Hier sind einige häufig gestellte Fragen zur Verwendung des MQ-2 Gassensors mit Arduino:

F: Wie funktioniert der MQ-2 Gassensor?

Der MQ-2 Gassensor arbeitet nach dem Prinzip der Gasleitfähigkeit. Er enthält ein Sensorelement aus Zinnoxid (SnO2), das mit Gas reagiert. Wenn Gas vorhanden ist, erhöht sich die Leitfähigkeit des Sensorelements, was vom Arduino gemessen werden kann.

F: Wie genau ist der MQ-2 Gassensor?

Die Genauigkeit des MQ-2 Gassensors kann je nach Kalibrierung, Umgebungsbedingungen und der Konzentration des erkannten Gases variieren.

F: Wie kann ich den MQ-2 Gassensor kalibrieren?

Um den MQ-2 Gassensor zu kalibrieren, musst du ihn einer bekannten Gaskonzentration aussetzen. Der datasheet gibt an:
Wir empfehlen, den Detektor für 1000 ppm Flüssiggas oder 1000 ppm Iso-Butan-Konzentration in Luft zu kalibrieren und einen Lastwiderstand (RL) von etwa 20 KΩ (5KΩ bis 47 KΩ) zu verwenden.

F: Kann ich den MQ-2 Gassensor für Sicherheitsanwendungen verwenden?

Obwohl der MQ-2 Gassensor brennbare Gase erkennen kann, ist er nicht für Sicherheitsanwendungen zertifiziert. Er ist hauptsächlich für Bildungs-, Forschungs- und Prototyping-Zwecke gedacht.

F: Kann ich den MQ-2 Gassensor mit ESP32 verwenden?

Ja, der MQ-2 Gassensor kann auch mit ESP32 verwendet werden. Die Verkabelung und der Code sind ähnlich wie bei Arduino. Achte jedoch darauf, die Spannungspegel und Pin-Kompatibilität zwischen Sensor und ESP32-Board zu prüfen.

F: Kann ich das Gasdetektionssystem mit Batterien betreiben?

Das ist möglich, erfordert aber recht große Batterien und ich würde es nicht empfehlen. Der MQ-2 Sensor verbraucht etwa 150 mA und muss mindestens 30 Sekunden aufgeheizt werden, um zuverlässige Messwerte zu liefern.

F: Wie lange ist die typische Lebensdauer des MQ-2 Sensors?

Die Lebensdauer des MQ-2 Sensors kann je nach Nutzung und Umgebungsbedingungen variieren. Im Durchschnitt hält er bei sachgemäßer Pflege mehrere Jahre.

F: Kann ich den MQ-2 Sensor im Außenbereich verwenden?

Der MQ-2 Sensor ist nicht für den Außeneinsatz konzipiert. Es wird empfohlen, ihn in Innenräumen zu verwenden, wo er genaue Gasdetektion bieten kann.

Siehe datasheet and documentation of the MQ-2 Gas Sensor für detailliertere Informationen und Spezifikationen.

Links

Hier einige weitere nützliche Links zum MQ-2 Sensor und dessen Verwendung mit Arduino.