Der Fermion VOC Analog-Gassensor von DFRobot ist ein kompaktes Modul zur Erkennung flüchtiger organischer Verbindungen (VOC), das für die Integration mit Mikrocontroller-Plattformen wie Arduino und ESP32 entwickelt wurde.
Er verwendet Mikroelektromechanische Systeme (MEMS) Technologie, um eine hohe Empfindlichkeit gegenüber einer Reihe von VOCs zu bieten, darunter Ethanol, Formaldehyd und Toluol im Bereich von etwa 1 – 500 ppm.
In diesem Tutorial lernst du, wie man VOC-Konzentrationen misst und einen Alarm auslöst oder eine LED blinken lässt, wenn die VOC-Konzentration zu hoch wird.
Benötigte Teile
Du benötigst einen Fermion VOC Gassensor von DFRobot. Als Mikrocontroller habe ich für dieses Projekt ein Arduino Uno verwendet, aber auch andere Arduinos oder ESP32 funktionieren.
Für unser Gasalarmsystem brauchen wir eine LED oder einen Summer, die du bei Amazon bekommst. Außerdem verwenden wir ein OLED-Display, um die gemessenen VOC-Werte anzuzeigen. Unten habe ich das kleine 128×64 SSD1306 OLED aufgelistet, das ich verwendet habe.

Fermion MEMS VOC Gassensor

Passiver Summer

Widerstands- & LED-Kit

OLED Display

Arduino Uno

USB-Kabel für Arduino UNO

Dupont-Kabelset

Breadboard
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.
Hardware des Fermion VOC Gassensors
Der Fermion VOC Analog-Gassensor von DFRobot ist eine kompakte Gassensorplatine, die flüchtige organische Verbindungen (VOCs) wie Ethanol, Formaldehyd, Toluol und andere erkennt.
Er basiert auf dem GM-502B Chip, der Mikroelektromechanische Systeme (MEMS) Technologie nutzt, um eine kleine Bauform mit geringem Stromverbrauch und schneller Reaktionszeit zu erreichen.
Die Platine misst etwa 13 mm × 13 mm bei einer Dicke von ca. 2,5 mm. Das Bild unten zeigt die Platine mit dem GM-502B Sensor oben und einem Spannungsregler darunter:

Das Modul ist für die qualitative Erkennung von VOC-Konzentrationen gedacht und nicht für präzise quantitative Analysen. Beachte, dass DFRobot auch kalibrierte Sensoren anbietet, die jedoch größer und teurer sind (link).
Elektrische Eigenschaften und Ausgang
Der Sensor arbeitet mit einer Versorgungsspannung von 3,3 V bis 5 V, was den Logikpegeln der meisten Arduino- und ESP32-Boards entspricht. Im Betrieb zieht das Gerät weniger als 20 mA Strom und erzeugt aufgrund seines MEMS-Designs nur sehr geringe Eigenwärme.
Die Gaskonzentration wird durch eine analoge Spannung am Ausgang dargestellt, die proportional zur Menge der in der Umgebungsluft detektierten VOCs variiert. Die Ausgangsspannung liegt im Bereich von 0 bis VCC.
Erfassungsbereich und Empfindlichkeit
Der Sensor kann gängige VOCs wie Ethanol, Formaldehyd und Toluol im Bereich von 1 ppm bis 500 ppm erkennen. Die Empfindlichkeit wird durch das Verhältnis des Widerstands in sauberer Luft (R0) zum Widerstand bei bekannter VOC-Konzentration (Rs) quantifiziert, mit einer typischen Spezifikation von R0/Rs ≥ 3 bei 50 ppm Ethanol. Wie bereits erwähnt, ist der Ausgang des Sensors jedoch nicht kalibriert.
Umwelt- und Lebensdauer-Spezifikationen
Das Sensorelement ist für den Betrieb in einem Umgebungstemperaturbereich von etwa -10 °C bis +50 °C und einer relativen Luftfeuchtigkeit von 15 % bis 90 % (nicht kondensierend) ausgelegt. Der Hersteller gibt eine Lebensdauer von mindestens fünf Jahren bei normaler atmosphärischer Nutzung ohne übermäßige Kontamination an.
Da VOC-Sensoren auf eine breite Klasse organischer Gase reagieren, können Umweltfaktoren wie Feuchtigkeit, Temperatur und das Vorhandensein anderer Gase den Ausgang ebenfalls beeinflussen.
Pinbelegung
Physisch bietet die Platine drei Anschluss-Pins: analogen Ausgang (A), Versorgungsspannung (VCC) und Masse (GND). Das Bild unten zeigt die Pinbelegung der Platine:

Schaltplan
Das folgende Bild zeigt den Schaltplan der Fermion VOC Gassensor Platine:

Man sieht den Spannungsregler und den GM-502B Sensorchip mit dem Lastwiderstand von 20 kΩ am Ausgang VOUT.
Vorbereitung
Der Gassensor wird mit einer Schutzfolie geliefert, die entfernt werden muss. Wenn du auf die Oberseite des Sensors schaust, siehst du eine gelbe Folie, die die Lufteinlasslöcher abdeckt. Verwende eine Pinzette, um die Folie abzuziehen. Die Fotos unten zeigen den Sensor mit vollständiger Schutzfolie, halb entfernt und komplett entfernt:

Beachte, dass der Sensor eine Aufwärmzeit benötigt, um betriebsstabil zu werden. Dies kann bei der ersten Nutzung mehrere Minuten dauern, bis die Messwerte stabil sind. Wenn der Sensor längere Zeit nicht benutzt wurde, empfiehlt es sich, ihn 24 bis 72 Stunden laufen zu lassen:

Technische Spezifikationen
Die folgende Tabelle fasst die technischen Spezifikationen des Fermion VOC Gassensors zusammen:
| Parameter | Spezifikation |
|---|---|
| Sensortyp | MEMS-basierter VOC Gassensor |
| Zielgase | Flüchtige organische Verbindungen (z. B. Ethanol, Formaldehyd, Toluol) |
| Erfassungsbereich | Ca. 1 ppm bis 500 ppm |
| Ausgangstyp | Analoger Spannungsausgang |
| Betriebsspannung | 3,3 V bis 5 V DC |
| Betriebsstrom | < 20 mA |
| Lastwiderstand (RL) | 20 kΩ (an Bord) |
| Betriebstemperatur | -10 °C bis +50 °C |
| Betriebsfeuchtigkeit | 15 % bis 90 % relative Luftfeuchtigkeit (nicht kondensierend) |
| Ansprechverhalten | Ausgangsspannung steigt mit zunehmender VOC-Konzentration |
| Aufwärmzeit | Mehrere Minuten (initiale Stabilisierung erforderlich) |
| Erwartete Lebensdauer | ≥ 5 Jahre (unter normalen Bedingungen) |
| Abmessungen | Ca. 13 mm × 13 mm × 2,5 mm (Sensorelement) |
| Schnittstellen-Pins | VCC, GND, Analog-Ausgang |
Und hier ist ein Link zum Datenblatt des GM-502B mit weiteren technischen Daten:
Fermion VOC Gassensor versus MQ-135 Gassensor
Eine gängige Alternative zum Fermion VOC Gassensor ist der ältere MQ-135 Gassensor. Im Folgenden ein kurzer Vergleich der beiden Sensoren.
Sensortechnologie und Funktionsprinzip
Der Fermion VOC Sensor nutzt MEMS-Technologie (mikroelektromechanische Systeme), die auf flüchtige organische Verbindungen mit einer Änderung des Innenwiderstands reagiert und eine proportionale analoge Spannung erzeugt. Sein Design ist auf niedrigen Stromverbrauch, kompakte Größe und qualitative VOC-Erkennung im Bereich von 1–500 ppm optimiert, mit minimaler Eigenwärme und schneller Erholung.
Im Gegensatz dazu ist der MQ-135 ein Metalloxid-Halbleiter (MOS) Sensor mit einer beheizten Zinnoxid-(SnO₂)-Sensorschicht. Der Sensor zeigt eine breite Kreuzempfindlichkeit gegenüber Gasen wie Ammoniak, Benzol, CO₂-Verbindungen und Rauch. MOS-Sensoren wie der MQ-135 haben einen deutlich höheren Stromverbrauch und benötigen eine längere Aufwärmzeit, bis die Messwerte stabil sind.
Betriebsbedingungen und Stromverbrauch
Der Fermion VOC Sensor arbeitet mit 3,3 V bis 5 V bei sehr niedrigem Strom (< 20 mA), was ihn für stromsparende Embedded-Systeme und kontinuierliche Überwachung ohne separaten Heizer geeignet macht.
Der MQ-135 hingegen läuft normalerweise mit ca. 5 V und benötigt einen erheblichen Heizstrom (oft ~100–200 mA oder mehr), was den Gesamtverbrauch erhöht.
Zielgase und Empfindlichkeit
Beide Sensoren reagieren auf VOCs, aber der Fermion ist speziell auf typische Innenraum-VOCs wie Ethanol, Formaldehyd und Toluol abgestimmt und liefert innerhalb seines spezifizierten Bereichs eine relativ konsistente analoge Antwort.
Der MQ-135 hingegen hat eine breite Empfindlichkeit gegenüber vielen Gasen, darunter Ammoniak, Rauch und verschiedene Luftschadstoffe; das kann für allgemeine Luftqualitätsanzeigen von Vorteil sein, aber die fehlende Selektivität erschwert die Unterscheidung einzelner Gase oder die Kalibrierung für präzise Konzentrationen.
Kalibrierung und Stabilität
MEMS-basierte Sensoren wie der Fermion stabilisieren sich schneller, benötigen kaum „Einbrennzeit“ und sind weniger temperaturempfindlich, da sie keine beheizte Kammer verwenden.
MQ-135 Sensoren benötigen meist eine Vor-Einbrennzeit (oft 24–48 Stunden) und regelmäßige Neukalibrierung für stabile Ergebnisse, und ihre Messwerte werden stark von Temperatur und Feuchtigkeit beeinflusst.
Anschluss des VOC Gassensors an Arduino UNO
Der Anschluss des Sensors an ein Arduino UNO ist einfach. Verbinde VCC mit 5V (oder 3,3V), GND mit Masse und A mit dem analogen Eingang A0, wie unten gezeigt:

Code-Beispiele
Gaskonzentration auslesen
Im ersten Beispiel lesen wir einfach die vom Gassensor gemessenen Werte aus und geben sie im Serial Monitor aus:
void setup() {
Serial.begin(9600);
}
void loop() {
int val = analogRead(A0);
Serial.println(val);
delay(100);
}
Du wirst Werte zwischen 0 und 1023 sehen, abhängig von der Menge der VOC-Gase in der Umgebung.
Wenn der Sensor noch nicht vollständig aufgewärmt ist, siehst du im Serial Monitor eine kontinuierlich abnehmende Wertefolge:

Nach einigen Minuten stabilisieren sich die Messwerte. In meinem Fall bei etwa 643:

Wenn du den Sensor dann Parfüm oder einem anderen VOC-Gas aussetzt, siehst du einen plötzlichen Anstieg des Messwerts:

Da der Sensor nicht kalibriert ist, kannst du ihn nicht verwenden, um tatsächliche ppm (Teile pro Million) oder mg/m 3 Konzentrationen von VOC-Gasen zu messen. Du kannst ihn jedoch nutzen, um einen Gasalarm zu bauen, was wir im nächsten Abschnitt machen.
Gasalarm mit LED
Der folgende Code implementiert einen einfachen Gasalarm. Er schaltet eine LED ein, wenn der gemessene VOC-Wert einen vordefinierten Schwellenwert von 700 überschreitet:
byte sensorPin = A0;
byte ledPin = 13;
int threshold = 700;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
int val = analogRead(sensorPin);
digitalWrite(ledPin, val > threshold ? HIGH: LOW);
delay(100);
}
Ich habe die LED mit einem 220-Ohm-Widerstand an GPIO 13 als Alarm-LED angeschlossen, wie unten gezeigt:

Beachte, dass du für ein zuverlässiges Alarmsystem eventuell auch einen Temperatur- und Feuchtigkeitssensor hinzufügen möchtest, da die Messwerte des Gassensors von Temperatur und Feuchtigkeit beeinflusst werden. Die folgende Abbildung zeigt die Abhängigkeit des Sensorwiderstands, der proportional zur vom Arduino gelesenen Spannung ist, von der relativen Luftfeuchtigkeit:

Gasalarm mit passivem Summer
Statt einer LED kannst du auch einen Summer als Alarmsignal verwenden. Im folgenden Code wird ein passiver Summer aktiviert, wenn der gemessene VOC-Wert den Schwellenwert überschreitet:
byte sensorPin = A0;
byte buzzerPin = 11;
int threshold = 700;
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
int val = analogRead(sensorPin);
if (val > threshold) {
tone(buzzerPin, 500);
} else {
noTone(buzzerPin);
}
delay(100);
}
Das folgende Bild zeigt, wie du den Summer an die Schaltung anschließt. Verbinde zuerst den Minuspol des Summers mit GND des Arduino (schwarzes Kabel). Dann verbinde den Pluspol über einen 100Ω Widerstand mit GPIO 11 (rotes Kabel):

Achte darauf, dass die Polarität des Summers korrekt ist und dass es sich um einen passiven Summer handelt, der an einen PWM-fähigen GPIO-Port angeschlossen wird. Weitere Informationen findest du im Active and Passive Piezo Buzzers with Arduino Tutorial.
Wenn du einen aktiven Summer hast, musst du den vorherigen LED-Alarm-Code verwenden, da dieser mit dem tone()-Befehl nicht richtig funktioniert.
Anzeige der VOC-Konzentration auf OLED
Im letzten Beispiel zeigen wir die gemessenen VOC-Werte auf einem kleinen OLED an. Der Code gibt „VOC“ und den Wert in der Mitte des Displays aus und aktualisiert den angezeigten Wert alle 100 ms:
#include "Adafruit_SSD1306.h" // Version 2.5.16
Adafruit_SSD1306 oled(128, 64, &Wire, -1);
void setup() {
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
oled.setTextColor(WHITE, BLACK);
oled.clearDisplay();
}
void loop() {
static char text[30];
int val = analogRead(A0);
oled.setTextSize(2);
oled.setCursor(45, 10);
oled.print("VOC");
sprintf(text, " %d ", val);
oled.setTextSize(2);
oled.setCursor(35, 40);
oled.print(text);
oled.display();
delay(100);
}
Beachte, dass du die Adafruit_SSD1306 Bibliothek installieren musst, um das OLED zu steuern. Du kannst sie wie gewohnt über den Library Manager installieren:

Der Anschluss des OLED an den Arduino ist einfach. Verbinde SDA und SCL des OLED mit den Pins A4 und A5 des Arduino. Für die Stromversorgung: Da das OLED mit 5V betrieben werden kann, können wir die Stromversorgungsleitungen teilen. Verbinde VCC mit 5V und GND mit GND. Das Bild unten zeigt die komplette Verkabelung:

Wenn du Hilfe mit dem OLED brauchst, schau dir das Use SSD1306 I2C OLED Display With Arduino Tutorial an.
Fazit
In diesem Tutorial hast du gelernt, wie man den Fermion VOC Gassensor mit einem Arduino UNO verwendet, um flüchtige organische Verbindungen (VOC) zu messen. Der Sensor lässt sich auch leicht mit anderen Mikrocontrollern wie dem ESP32 nutzen.
MEMS-Gassensoren haben den Vorteil, klein zu sein, sehr wenig Strom zu verbrauchen (< 20 mA) und eine kurze Aufwärmzeit zu haben. Dennoch werden sie von Umgebungstemperatur und Luftfeuchtigkeit beeinflusst.
Außerdem ist der hier verwendete Fermion VOC Gassensor nicht kalibriert und kann daher nicht direkt zur Messung tatsächlicher VOC-Konzentrationen in ppm-Einheiten verwendet werden. Theoretisch könntest du den Sensor selbst kalibrieren, aber praktisch ist das schwierig. DFRobot bietet auch kalibrierte Sensoren an, die jedoch größer und teurer sind (link).
Beachte, dass es eine ganze Reihe verschiedener MEMS-Sensoren gibt. Für einen Überblick siehe den Review of the DFRobot Fermion MEMS Gas Sensor Series Artikel und für Details unsere speziellen Beiträge:
- Fermion MEMS Smoke Sensor GM-202B with Arduino
- Fermion MEMS Odor Sensor GM-512B with Arduino
- Fermion MEMS Carbon Monoxide CO Gas Sensor GM-702B with Arduino
- Fermion MEMS Multi-Gas Sensor MiCS-5524 with Arduino
Wenn du Fragen hast, kannst du sie gerne im Kommentarbereich stellen.
Viel Spaß beim Tüfteln 😉

