Der Fermion: MEMS CO-Gasdetektionssensor ist ein kompakter Breakout-Board-Sensor, der zur Erkennung von Kohlenmonoxid (CO) Gas unter Verwendung moderner mikroelektromechanischer Systeme (MEMS) Technologie entwickelt wurde. Er integriert ein GM-702B MEMS-Sensorelement, das auf CO-Konzentrationen in der Luft reagiert, indem es eine analoge Spannung proportional zur Gaspräsenz liefert.
CO ist extrem giftig und verursacht jährlich etwa 400 Todesfälle in den USA. Häufige Quellen sind unsachgemäß gewartete oder verwendete Heizgeräte, Gasgeräte, Holzkohlegrills und laufende Motoren in geschlossenen Räumen. Da es für die menschlichen Sinne nicht wahrnehmbar ist, ist ein CO-Alarm die einzige Möglichkeit, seine Anwesenheit zu erkennen.
In diesem Tutorial lernst du, wie man Kohlenmonoxid mit dem Sensor erkennt. Wir bauen ein einfaches Alarmsystem, das eine LED blinken lässt oder einen Summer ertönen lässt, wenn die Kohlenmonoxidkonzentration zu hoch wird.
Benötigte Teile
Du benötigst einen Fermion CO-Sensor von DFRobot. Als Mikrocontroller habe ich für dieses Projekt ein Arduino Uno verwendet, aber auch andere Arduino-Modelle oder ein ESP32 funktionieren.
Für unser Alarmsystem brauchen wir außerdem eine LED und einen Summer, die du bei Amazon bekommst. Außerdem verwenden wir ein kleines SSD1306 OLED-Display, um den gemessenen CO-Wert anzuzeigen.

Fermion MEMS CO Sensor

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 Kohlenmonoxid (CO) Sensors
Der Fermion MEMS Kohlenmonoxid (CO) Sensor Breakout basiert auf einem kleinen MEMS-Gassensorelement. Dieses Element ist eine mikroelektromechanische Struktur, die mit einem proprietären Sensormaterial beschichtet ist, das seine elektrischen Eigenschaften ändert, wenn es CO-Molekülen ausgesetzt wird.
Das Breakout-Board enthält unterstützende passive Bauteile und liefert ein einzelnes analoges Ausgangssignal. Stromversorgung und Masse werden über Standard-3,3 V/5 V Logikpegel geführt.
Funktionsprinzip
Der Sensorkern nutzt MEMS-Technologie zur Erkennung von CO-Gas. Diese Technologie beruht auf der Wechselwirkung zwischen CO-Molekülen und einer chemisch empfindlichen Oberfläche der MEMS-Struktur. Bei Anwesenheit von CO ändert sich der Widerstand des Sensormaterials.
Die interne Schaltung des Breakout-Boards wandelt diese Widerstandsänderung in eine proportionale analoge Spannung am Ausgangspin um. Es gibt keine digitale Verarbeitung an Bord, daher muss das rohe analoge Signal vom Mikrocontroller gelesen und interpretiert werden.
Elektrische Eigenschaften
Der Sensor arbeitet mit einer Versorgungsspannung zwischen 3,3 V und 5 V. Der typische Betriebsstrom ist niedrig, im Bereich von einigen zehn Milliampere, was den Einsatz in batteriebetriebenen Systemen mit geeigneter Energieverwaltung ermöglicht.
Die analoge Ausgangsspannung variiert mit der Gaskonzentration, ist jedoch nicht auf kalibrierte Einheiten bezogen. Das Signal muss über einen Analog-Digital-Wandler des Host-Mikrocontrollers abgetastet werden.
Signalverhalten und Aufwärmzeit
Der Sensor benötigt nach dem Einschalten eine kurze Aufwärmzeit, bevor die Messwerte stabil sind. Während dieser Zeit erreicht das MEMS-Element ein thermisches und elektrisches Gleichgewicht. Nach dem Aufwärmen ändert sich die Ausgangsspannung entsprechend der CO-Konzentration.
Einschränkungen
Der Sensor verfügt nicht über eine integrierte Temperatur- oder Feuchtigkeitskompensation. Diese Umgebungsfaktoren können die analoge Ausgangsspannung beeinflussen, daher können zusätzliche Sensoren in Systemen mit stabileren Messungen erforderlich sein. Außerdem erfordert die unkalibrierte Ausgabe eine externe Kalibrierung gegen bekannte Referenzwerte, um absolute CO-Konzentrationen zu bestimmen.
Technische Spezifikationen
Die folgende Tabelle fasst die technischen Spezifikationen des Fermion CO Sensors GM-702B zusammen:
| Parameter | Spezifikation |
|---|---|
| Sensorelement | GM-702B MEMS Gassensor |
| Zielgas | Kohlenmonoxid (CO) |
| Erkennungsbereich | 5 ppm bis 5000 ppm (typisch) |
| Ausgangssignal | Analoge Spannung |
| Betriebsspannung | 3,3 V bis 5 V DC |
| Betriebsstrom | < 20 mA (typisch) |
| Schnittstellentyp | Einzelner analoger Ausgangspin |
| Reaktionstyp | Widerstandsänderung, in Spannung umgewandelt |
| Betriebstemperatur | −10 °C bis +50 °C |
| Betriebsfeuchtigkeit | 15 % bis 90 % relative Luftfeuchtigkeit (nicht kondensierend) |
| Kalibrierung | Keine werkseitige Kalibrierung vorhanden |
Pinbelegung
Physisch stellt das Breakout-Board drei Pins zur Verbindung bereit: analoger Ausgang (A), Versorgungsspannung (VCC) und Masse (GND). Das folgende Bild zeigt die Pinbelegung des Boards:

Schaltpläne
Das folgende Bild zeigt den Schaltplan des Fermion CO Gas Sensors GM-702B Boards:

Man sieht den Spannungsregler und den GM-702B Sensorchip mit einem Lastwiderstand von 10K am Ausgang VOUT.
Vorbereitung
Der Sensor wird mit einer Schutzfolie geliefert, die entfernt werden muss. Auf der Oberseite des Sensors befindet sich eine gelbe Folie, die die Luftzufuhrlöcher abdeckt. Verwende eine Pinzette, um die Folie abzuziehen. Die Fotos unten zeigen den Sensor mit Schutzfolie, halb entfernt und vollständig entfernt (von links nach rechts):

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 48 bis 168 Stunden laufen zu lassen:

Technische Spezifikationen
Die folgende Tabelle fasst die technischen Spezifikationen des Fermion CO Sensors GM-702B zusammen:
| Spezifikation | Details |
|---|---|
| Sensormodell | GM-702B |
| Erkanntes Gas | Kohlenmonoxid (CO) |
| Erkennungsbereich | ~5 ppm bis 5000 ppm CO |
| Ausgangstyp | Analoge Spannung (proportional/indikativ) |
| Versorgungsspannung | 3,3 V – 5 V DC |
| Betriebsstrom | < 20 mA |
| Empfindlichkeit | R₀ (in Luft) / Rₛ (bei 150 ppm CO) ≥ 3 |
| Betriebstemperatur | -10 °C bis +50 °C |
| Betriebsfeuchtigkeit | 15 % – 90 % relative Luftfeuchtigkeit (nicht kondensierend) |
| Aufwärmzeit | Empfohlen ≥ 5 min (länger nach Lagerung) |
| Lebensdauer | ≥ 5 Jahre (in Luft) |
| Breakout-Board Größe | ~13×13×2,5 mm (inkl. PCB) |
| Schnittstelle | 3-Pin: A (analog out), VCC, GND |
| Typische Anwendungen | CO-Leckalarme, Umweltüberwachung, Sicherheitserkennungssysteme |
Hier ist ein Link zum Datenblatt des GM-702B Sensors mit weiteren technischen Daten:
Fermion GM-702B CO Sensor versus MQ-7 CO Sensor
Der Fermion MEMS Kohlenmonoxid (CO) Sensor und der MQ-7 CO-Gassensor werden beide häufig in Hobbyanwendungen zur Erkennung von Kohlenmonoxid eingesetzt, unterscheiden sich jedoch im Sensorkonzept, in den Leistungsmerkmalen und den Integrationsanforderungen.
Sensortechnologie
Der Fermion MEMS Sensor verwendet ein mikroelektromechanisches System (MEMS) Sensorelement, das auf CO mit einer Änderung seiner elektrischen Eigenschaften reagiert. Diese Änderung wird auf dem Breakout-Board in eine proportionale analoge Spannung umgewandelt.
Der MQ-7 hingegen ist ein Metalloxid-Halbleiter (MOX) Sensor. Er basiert auf einer beheizten Zinnoxid-Oberfläche, deren Widerstand sich ändert, wenn CO-Moleküle mit der beheizten Sensorschicht interagieren. Dieses Prinzip führt dazu, dass der MQ-7 typischerweise einen höheren durchschnittlichen Stromverbrauch als der Fermion MEMS Sensor hat.
Stromverbrauch und Aufwärmzeit
Der MEMS Sensor stabilisiert sich in der Regel schneller und verbraucht weniger Strom, da er keinen separaten Heizer mit hohem Strom antreibt.
Der MQ-7 verwendet dagegen ein periodisches Heizzyklusverfahren, um die Empfindlichkeit zu erreichen, und muss mit spezifischen Spannungen und Zeitabläufen betrieben werden, um reproduzierbare Messwerte zu liefern. Dies erhöht die Komplexität der Firmware und den Energieverbrauch.
Ausgangssignal
Beide Sensoren liefern ein analoges Ausgangssignal, das von einem Analog-Digital-Wandler eines Mikrocontrollers wie Arduino oder ESP32 gelesen werden muss. Keiner der Sensoren liefert jedoch von Haus aus einen kalibrierten digitalen Konzentrationswert.
Selektivität und Stabilität
In Bezug auf Selektivität und Stabilität zeigt der MEMS Sensor in der Regel eine geringere Kreuzempfindlichkeit und eine bessere Langzeit-Basislinienstabilität im Vergleich zu MOX-Sensoren wie dem MQ-7, die auf mehrere reduzierende Gase reagieren und von Umgebungsfeuchtigkeit und Temperatur beeinflusst werden.
Zusammenfassung
Insgesamt eignet sich der Fermion MEMS CO Sensor besser für Projekte, die niedrigen Stromverbrauch, schnellere Reaktion und einfachere Integration schätzen, während der MQ-7 für einfache CO-Erkennung zu geringeren Kosten attraktiv ist, aber eine sorgfältigere Stromsteuerung, Kalibrierung und Umweltkompensation in der Firmware erfordert.
Anschluss des Fermion CO Sensors 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
Kohlenmonoxid-Konzentration auslesen
Im ersten Beispiel lesen wir einfach die vom Sensor gemessenen Werte aus und geben sie jede Sekunde im Serial Monitor aus:
void setup() {
Serial.begin(9600);
}
void loop() {
int val = analogRead(A0);
Serial.println(val);
delay(1000);
}
Du wirst Werte zwischen 0 und 1023 sehen, abhängig von der Menge an Kohlenmonoxid in der Umgebung.
Wenn der Sensor noch nicht vollständig aufgewärmt ist, siehst du im Serial Monitor eine kontinuierlich abnehmende Wertefolge. Siehe unten:

Nach einigen Minuten stabilisieren sich die Messwerte. In meinem Fall bei etwa 130. Du kannst den Sensor testen, indem du darauf ausatmest. Du wirst einen plötzlichen Anstieg des Messwerts sehen:

Da der Sensor nicht kalibriert ist, kannst du ihn nicht verwenden, um tatsächliche ppm (Teile pro Million) oder mg/m 3 Konzentrationen zu messen. Du kannst ihn jedoch verwenden, um einen Kohlenmonoxid-Alarm zu bauen, was wir im nächsten Abschnitt tun werden.
Kohlenmonoxid-Alarm mit LED
Der folgende Code implementiert einen einfachen Kohlenmonoxid-Alarm. Er schaltet eine LED ein, wenn der gemessene CO-Wert einen vordefinierten Schwellenwert von 160 überschreitet:
byte sensorPin = A0;
byte ledPin = 13;
int threshold = 160;
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 Sensors von Temperatur und Feuchtigkeit beeinflusst werden. Alternativ könntest du auch ein gleitendes Fenster verwenden, um den Sensor-Drift durch Temperatur und Feuchtigkeit zu kompensieren.
Kohlenmonoxid-Alarm mit passivem Summer
Statt einer LED kannst du auch einen Summer als Alarmsignal verwenden. Im folgenden Code wird ein passiver Summer aktiviert, wenn die gemessene CO-Konzentration den Schwellenwert überschreitet:
byte sensorPin = A0;
byte buzzerPin = 11;
int threshold = 160;
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 Kohlenmonoxid-Konzentration auf OLED
Im letzten Beispiel zeigen wir die gemessenen Rauchkonzentrationswerte auf einem kleinen OLED an. Der Code gibt „CO“ 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(50, 10);
oled.print("CO");
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 zur Steuerung des OLED benötigst. Du kannst sie wie gewohnt über den Library Manager installieren:

Der Anschluss des OLED an das 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 Masse. Das folgende Bild 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 CO Sensor mit einem Arduino UNO verwendet, um Kohlenmonoxid zu erkennen. Der Sensor kann auch problemlos mit anderen Mikrocontrollern wie dem ESP32 verwendet werden.
MEMS-Gassensoren haben den Vorteil, klein zu sein, sehr wenig Strom zu verbrauchen (< 20mA) und eine kurze Aufwärmzeit zu haben. Dennoch werden sie von Umgebungstemperatur und Luftfeuchtigkeit beeinflusst.
Außerdem ist der Fermion Kohlenmonoxid-Sensor nicht kalibriert und kann daher nicht direkt zur Messung tatsächlicher Konzentrationen in ppm-Einheiten verwendet werden.
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 VOC Gas Sensor GM-502B with Arduino
- Fermion MEMS Smoke Sensor GM-202B with Arduino
- Fermion MEMS Odor Sensor GM-512B 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 😉

