Die elektronische Nase auf dem ESP32: Von der antiken Geruchsdiagnose zur robusten TinyML am Handgelenk
Eine uralte Diagnosemethode erlebt ihre technische Wiedergeburt – aber erst mit den richtigen Algorithmen wird sie wirklich belastbar
Im Jahr 400 v. Chr. ermahnte Hippokrates seine Schüler: „Rieche am Atem deines Patienten.“ Er suchte darin nach Hinweisen auf Krankheiten – der Atem von Diabetes-Patienten roch süßlich, der von Nierenversagen-Patienten nach Urin. Rund zweieinhalbtausend Jahre später analysierte der Nobelpreisträger Linus Pauling 1971 erstmals menschlichen Atem mittels Gaschromatographie und entdeckte darin Hunderte von Spurenmolekülen – die Geburtsstunde der modernen „Breathomics“.
Heute erlebt diese antike Diagnosemethode eine technische Renaissance. Die treibende Kraft entsteht aus dem Zusammentreffen zweier Entwicklungen: Einerseits wächst das Verständnis für flüchtige organische Verbindungen (VOCs) als Krankheitsbiomarker, andererseits ermöglichen Mikrocontroller-Rechenleistung, Gassensorik und leichtgewichtige Machine-Learning-Algorithmen völlig neue Anwendungen. Und der ESP32 – ein Mikrocontroller für unter fünf US-Dollar – ist dabei unerwartet zu einer der aktivsten Hardware-Plattformen dieser Bewegung geworden.
Dieser Artikel beleuchtet systematisch die ESP32-basierte elektronische Nase zur Atemgasanalyse – mit einem entscheidenden Unterschied zu früheren Darstellungen: Nicht die maximale Laborgenauigkeit steht im Vordergrund, sondern Robustheit unter realen Bedingungen. Dafür werden vier technische Hebel genutzt, die den Unterschied zwischen einem Demo und einem vertrauenswürdigen Screening-Instrument ausmachen: zeitgesteuerte Klassifikation, virtuelle Sensoren, Mehrfachrollen des BME680 und systematische Drift-Robustheit.
Meine Idee dazu ist: Das in diesem Artikel vorgestellte Gesamtkonzept – die Kombination aus ESP32, MQ-Sensor-Array, BME680-Kompensation und robuster TinyML-Klassifikation zur Erkennung von Krankheitsgerüchen im Atem – ist meine eigene Idee (DerSchneider). Es handelt sich nicht um ein käufliches Produkt, sondern um einen offenen Entwicklungsvorschlag. Der Leser soll diesen Aufbau selbst nachbauen können, nicht nach einem fertigen Produkt suchen.
Warum Atem? Warum VOCs?
Die etwa 37 Billionen Zellen des menschlichen Körpers betreiben unzählige Stoffwechselwege und produzieren dabei einzigartige flüchtige organische Verbindungen. Diese VOCs gelangen durch Zellwände ins Blut und schließlich über den alveolären Gasaustausch in die Ausatemluft. Das VOC-Spektrum im Atem spiegelt somit pathologische Stoffwechselprozesse im Körper wider.
Der wissenschaftliche Konsens ist heute recht eindeutig: Verschiedene Krankheiten erzeugen unterschiedliche VOC-Fingerabdrücke. Eine wegweisende Studie aus dem Jahr 2010 belegte, dass Lungen-, Brust-, Darm- und Prostatakrebs jeweils unterscheidbare Atem-VOC-Profile aufweisen. Nachfolgende Arbeiten weiteten diese Erkenntnis auf 17 Krankheitszustände aus, darunter chronisches Nierenversagen, Parkinson und Morbus Crohn.
Für die diabetische Ketoazidose (DKA) ist der Marker besonders klar: Aceton. Wenn Insulinmangel die Fettverbrennung beschleunigt, produziert die Leber große Mengen an Ketonkörpern, von denen Aceton über die Atmung ausgeschieden wird. Zwischen der Acetonkonzentration im Atem und dem Blutketonspiegel besteht eine signifikante Korrelation – dies macht die Atemanalyse zu einem aussichtsreichen Kandidaten für die nicht-invasive Blutzuckerüberwachung.
Was dieses Konzept von früheren Ansätzen unterscheidet
Bevor wir in die technischen Details einsteigen, lohnt ein Blick auf die vier entscheidenden Verbesserungen gegenüber dem naiven „MQ-Sensoren + MLP“-Ansatz:
| Dimension | Naiver Ansatz | Dieses Konzept |
|---|---|---|
| KI-Modell | MLP mit Laborgenauigkeit | KNN oder zeitgesteuertes Modell mit Robustheit als Ziel |
| Merkmale | Absolutwerte + Rs/R0 | Sensor-zu-Sensor-Verhältnisse als virtuelle Sensoren |
| BME680 | Nur Temperatur/Feuchte | VOC-Kreuzvalidierung + Kompensation |
| Drift | Manuelle Rekalibrierung | Adaptive Baseline + Ensemble-Strategien |
Jeder dieser Punkte wird im Folgenden detailliert begründet.
Die Hardware: Ein tragbares elektronisches Nasensystem
Das Kernprinzip eines tragbaren elektronischen Nasensystems auf ESP32-Basis ist die Kombination aus Gassensor-Array, aktiver Luftführung, Temperatur- und Feuchtigkeitskompensation sowie lokaler Inferenz auf dem Endgerät.
Die zentralen Hardware-Module
| Modul | Komponente | Funktion |
|---|---|---|
| Hauptsteuerung | ESP32 oder ESP32-S3 | Sampling mehrerer Sensoren, Kompensation, KI-Inferenz |
| Sensor-Array | MQ-Serie (MQ-2, MQ-3, MQ-135, MQ-138) | Metalloxid-Halbleiter, kostengünstigste Lösung |
| Umgebungskompensation | BME680 | Temperatur, Feuchte und VOC-Validierung |
| Luftführung | Mikrolüfter, Mini-Membranpumpe | Aktives Ansaugen, Spülung mit gereinigter Luft |
| Interaktion | OLED-Display, LiPo-Akku, Wi-Fi/Bluetooth | Ergebnisanzeige, Datenübertragung |
Detaillierte Aufbauanleitung
Schritt 1: Grundplatte und Halterung. Verwenden Sie eine stabile Kunststoff- oder Hartpapierplatte (ca. 10 cm × 8 cm) als Basis. Befestigen Sie den ESP32 in der Mitte, das Sensor-Array an einer Seite und den BME680 daneben. Für die Luftführung eignet sich ein 3D-gedrucktes Gehäuse mit definierten Kanälen.
Schritt 2: Sensor-Array montieren. Löten Sie die MQ-Sensoren auf eine Lochrasterplatte. Beachten Sie, dass MQ-Sensoren eine Heizspannung von 5 V benötigen. Der ESP32 liefert nur 3,3 V – verwenden Sie daher einen Level-Shifter oder einen separaten 5-V-Spannungsregler (z. B. AMS1117-5.0). Die analogen Ausgänge der MQ-Sensoren werden über Spannungsteiler auf 3,3 V heruntergeteilt, um den ADC des ESP32 nicht zu überlasten.
Schritt 3: BME680 anschließen. Der BME680 wird über I²C angeschlossen: VCC an 3,3 V, GND an GND, SDA an GPIO21, SCL an GPIO22. Die I²C-Adresse ist standardmäßig 0x76 oder 0x77. Wichtig für die erweiterte Nutzung: Der BME680 wird nicht nur als Thermometer verwendet, sondern liefert über die BSEC-Bibliothek einen IAQ-Index (Indoor Air Quality) sowie einen bVOC-Äquivalent-Wert, der als unabhängiger VOC-Kanal genutzt werden kann .
Schritt 4: Luftführung. Verbinden Sie einen Mikrolüfter (5 V, 0,5 L/min) mit einem Schlauchsystem. Der Lüfter saugt die Atemluft durch ein Einwegmundstück in eine kleine Kammer, in der die Sensoren sitzen. Ein zweiter Lüfter oder eine Membranpumpe kann zur Spülung mit gereinigter Luft verwendet werden. Verwenden Sie Rückschlagventile, um einen Rückstrom zu verhindern.
Schritt 5: Stromversorgung. Ein LiPo-Akku (3,7 V, 2000 mAh) mit einem TP4056-Lademodul versorgt das System. Ein Boost-Konverter (MT3608) erzeugt die 5 V für die MQ-Sensoren und den Lüfter.
Schritt 6: Gehäuse und Display. Ein OLED-Display (SSD1306, 128×64 Pixel) wird ebenfalls über I²C angeschlossen und zeigt die aktuellen Messwerte sowie die Klassifikation an.
Der Sensor-Zyklus
Ein typischer Messzyklus läuft in drei Phasen ab:
- Spülphase (ca. 125 Sekunden): Gereinigte Luft wird über die Sensoren geleitet, um die Basislinie wiederherzustellen.
- Probenahmephase (ca. 5–10 Sekunden): Der Proband atmet aktiv in die Kammer, die Mikropumpe saugt die Probe mit etwa 0,5 L/min an.
- Ruhephase (ca. 30–60 Sekunden): Die Sensoren regenerieren sich, bevor der nächste Zyklus beginnt.
Die KI-Strategie: Robustheit statt Laborgenauigkeit
Warum MLP allein nicht reicht
Eine aktuelle Masterarbeit verglich fünf Algorithmen auf einem Datensatz mit 38.912 Proben von 13 MQ-Sensoren . Unter idealen Bedingungen erreichte das MLP einen F1-Score von 1,000 – und das KNN „nur“ 0,9999. Der entscheidende Test kam jedoch mit Rauschen:
| Algorithmus | F1 bei 5 % Rauschen |
|---|---|
| MLP | 0,935 |
| KNN | 0,985 |
In der praktischen Validierung klassifizierte das KNN alle Klassen korrekt in Echtzeit. Die Arbeit kommt zu dem Schluss, dass der Kompromiss zwischen maximaler Präzision und Robustheit zugunsten des KNN ausfiel – wegen seines idealen Gleichgewichts für eingebettete Systeme .
Zeitgesteuerte Klassifikation (Temporal Gating)
Ein zweites Problem betrifft die Instabilität der Sensorsignale in der frühen Phase einer Messung. Das TinyNose-TGC-System löst dies mit einem einfachen, aber wirkungsvollen Trick: Vor der Merkmalsextraktion wird das Signal basierend auf der durchschnittlichen Steigung gefiltert .
Die Ergebnisse mit einer 40-Prozent-Gating-Schwelle:
| Metrik | Ohne Gating | Mit Gating |
|---|---|---|
| Makro-F1 | 73,0 % | 80,0 % |
| Genauigkeit | 72,9 % | 79,2 % |
| Falsch-Positiv-Rate | 18,0 % | 9,5 % |
| Inferenzzeit | 104 ms | 92 ms |
Besonders bemerkenswert: Die Inferenzzeit sinkt, weil instabile Signale frühzeitig verworfen werden. Das quantisierte Modell ist nur 28,3 KB groß und vollständig mit TensorFlow Lite for Microcontrollers kompatibel . Die Hauptkomponentenanalyse bestätigt, dass TGC die Klassentrennbarkeit verbessert.
Praktische Konsequenz: Statt sofort nach dem Einatmen zu klassifizieren, wartet das System auf einen stabilen Signalverlauf. Das erhöht die Zuverlässigkeit erheblich.
Virtuelle Sensoren durch Verhältnisbildung
Ein dritter Hebel kostet keine zusätzliche Hardware: Sensor-zu-Sensor-Verhältnisse. Eine aktuelle Arbeit zur geruchsrobotischen Erkennung berechnet aus drei physischen Sensoren sechs virtuelle Sensoren – drei hochskalierte und drei herunterskalierte Versionen der ursprünglichen Antworten. Dadurch wird der Dynamikbereich erweitert, und die Klassifikationsgenauigkeit steigt auf 100 % in der Zehnfach-Kreuzvalidierung .
Ein Benchmark für niedrigkonzentrierte Gase zeigt zudem, dass die Antwortmittelwerte und Basislinienmittelwerte die dominierenden Deskriptoren sind, und dass 8 sorgfältig ausgewählte Sensoren nahezu das Ergebnis des gesamten Arrays erreichen . Die Sensorauswahl ist also wichtiger als die Sensoranzahl.
Der BME680: Vom Thermometer zum Kreuzvalidierungskanal
Die meisten Anleitungen verwenden den BME680 ausschließlich zur Temperatur- und Feuchtigkeitskompensation. Das ist eine erhebliche Unterauslastung.
Was der BME680 tatsächlich kann
Der BME680 ist selbst ein VOC-sensitives Element. Ein Open-Source-Projekt (BreathBuddy) nutzt ausschließlich den BME680, um Atemqualität zu messen – inklusive IAQ-Index (0–500), CO₂-Äquivalent in ppm und bVOC-Äquivalent in ppm . Die BSEC-Bibliothek von Bosch übernimmt die Kalibrierung und wandelt den Rohwiderstand in diese aussagekräftigen Werte um .
Die Kreuzvalidierungsstrategie
Für die elektronische Nase ergeben sich daraus zwei Rollen:
- Kompensation: Temperatur und Feuchte fließen in die Korrektur der MQ-Sensorwiderstände ein (wie im ursprünglichen Ansatz).
- Validierung: Der bVOC-Wert des BME680 dient als unabhängiger Kanal. Reagiert ein MQ-Sensor stark, während der BME680-bVOC unverändert bleibt, ist das ein starker Hinweis auf eine Störung – etwa Feuchtigkeit oder eine nicht-Ziel-Substanz – statt auf ein echtes Signal.
Diese einfache Plausibilitätsprüfung kostet keine zusätzliche Hardware und reduziert Falsch-Positive erheblich.
Drift-Robustheit: Das unterschätzte Langzeitproblem
Warum Drift so hartnäckig ist
Die Ursachen für MOS-Sensor-Drift sind vielfältig und überlagern sich :
- Mikrostrukturelle Evolution: Korngröße wächst (Ostwald-Reifung), spezifische Oberfläche nimmt ab.
- Phasenumwandlungen: Amorphes SnO₂ kristallisiert, Dotanden sintern.
- Oberflächenvergiftung: Schwefelverbindungen, Silikon-Dämpfe und Schwermetall-Aerosole adsorbieren irreversibel.
- Feuchtigkeitsinterferenz: Wasserdampf konkurriert mit Zielanalyten um Adsorptionsplätze.
- Temperaturschwankungen: Ändern Reaktionskinetik und Ladungstransport.
Das Ergebnis: Die Drift ist kein einfacher Offset, sondern eine komplexe, zeitvariierende Transformation der gesamten Antwortcharakteristik .
Gegenmaßnahmen im Konzept
- Adaptive Baseline-Rekalibrierung: Ein gleitendes Fenster überwacht den Sensorwiderstand in gereinigter Luft. Weicht die Basislinie um mehr als einen Schwellwert ab, wird eine Rekalibrierung ausgelöst – bevor das Klassifikationsmodell ungültig wird.
- Ensemble-Strategien: Die Forschung zeigt, dass Ensemble-Methoden die Klassifikationsstabilität verbessern. Ein Ansatz kombiniert SVM und LSTM und erreicht eine durchschnittliche Genauigkeit von 89,26 % über alle Datenchargen – mit 83,4 % auf der finalen Charge . Das ist signifikant besser als einzelne MLP- oder SVM-Modelle unter Drift.
- Semantische Kontextnutzung: Ein vielversprechender biologisch inspirierter Ansatz integriert Geruchskontext in die Klassifikation – ähnlich dem menschlichen Riechsystem, das über Rückkopplungen aus höheren Hirnregionen verfügt. Das „Context+Skill Neural Network“ verbessert die Erkennung unter Drift und variablen Konzentrationen .
Software: Vom Signal zur robusten Klassifikation
Signalverarbeitung
Der vom Sensor ausgegebene Analogwert wird vom ADC des ESP32 gelesen (12 Bit Auflösung). Durch Mittelwertbildung mehrerer Samples wird Rauschen entfernt, anschließend wird der Sensorwiderstand (Rs) berechnet und mit dem Basiswiderstand (R0) in reiner Luft kalibriert.
Die Temperatur- und Feuchtigkeitskompensation erfolgt nach:
R_comp = R_raw × e^(α(T-T0)) × e^(β(H-H0))
mit α ≈ 0,03/°C und β ≈ -0,02/%RH.
Erweiterte Merkmalsextraktion
Neben den Absolutwerten werden Sensor-zu-Sensor-Verhältnisse berechnet. Bei drei MQ-Sensoren (MQ-3, MQ-135, MQ-138) ergeben sich drei mögliche Paarverhältnisse: MQ3/MQ135, MQ3/MQ138, MQ135/MQ138. Diese „virtuellen Sensoren“ erweitern den Merkmalsraum ohne Hardwarekosten .
Zusätzlich wird der bVOC-Wert des BME680 als weiteres Merkmal aufgenommen – nicht als Zielgröße, sondern als Kontextsignal.
Zeitgesteuertes Gating
Vor der Klassifikation wird geprüft, ob die durchschnittliche Steigung des Sensorsignals über einem Schwellwert liegt. Bei einem 40-Prozent-Gating werden instabile frühe Messpunkte verworfen .
Referenzmessungen und Leistungsdaten
Wichtig: Diese Ergebnisse wurden unter kontrollierten Bedingungen erzielt. Die Übertragung in den Alltag erfordert zusätzliche Validierung.
Einsatzmöglichkeiten
Screening in der Hausarztpraxis. Ein ESP32-basiertes Atemanalysegerät könnte als kostengünstiges Screening-Instrument dienen. Bei positivem Befund erfolgt die Überweisung an spezialisierte Diagnostik.
Heimüberwachung chronischer Erkrankungen. Für Diabetes-Patienten könnte ein tragbares Gerät die tägliche Aceton-Messung ermöglichen. Die Aceton-Konzentration im Atem korreliert mit dem Blutketonspiegel.
Infektionskontrolle in Echtzeit. In Krankenhäusern könnte ein vernetztes Sensor-Array kontinuierlich die Raumluft überwachen und bei charakteristischen VOC-Mustern Alarm auslösen.
Die verbleibenden Hürden
Feuchtigkeitsinterferenz. Die menschliche Atemluft ist mit Wasserdampf gesättigt (ca. 95 % relative Feuchtigkeit bei 37 °C). Lösungen umfassen selektive Membranen, strukturierte Sensoroberflächen und algorithmische Kompensation.
Selektivität. Um Aceton in Tausenden von VOCs zu erkennen, sind spezifische Oberflächenfunktionalisierungen erforderlich. Aktuelle Forschung konzentriert sich auf Nanodraht-Arrays, molekular geprägte Polymere und Kohlenstoff-Nanoröhren.
Das „Black-Box“-Problem der KI. Viele hochpräzise Modelle liefern Ergebnisse, aber keine Erklärungen. In der Medizin ist dies ein Hindernis für die klinische Zulassung.
Mangel an Standardisierung. Wie Proben entnommen, vorbehandelt und analysiert werden, hat noch keine einheitlichen Standards. Daten aus verschiedenen Einrichtungen sind nicht vergleichbar.
Fazit und Ausblick
Die elektronische Nase auf ESP32-Basis ist ein faszinierendes Beispiel dafür, wie eine antike Diagnosemethode durch moderne Technologie wiederbelebt wird. Der entscheidende Fortschritt liegt nicht in höherer Laborgenauigkeit, sondern in Robustheit unter realen Bedingungen.
Die vier Hebel dieses Konzepts – KNN statt MLP für Rauschrobustheit, zeitgesteuertes Gating gegen Signalinstabilität, virtuelle Sensoren für erweiterte Merkmale und BME680-Kreuzvalidierung gegen Falsch-Positive – machen den Unterschied zwischen einem Demo und einem System, das im Alltag bestehen kann.
Technisch ist vieles realisierbar: ESP32-basierte Systeme erreichen unter kontrollierten Bedingungen Genauigkeiten von 79 % bis 98 %. Die Aceton-Erkennung für Diabetes funktioniert im ppb-Bereich. Doch die breite Anwendung im Massenmarkt steht noch vor erheblichen Hürden: Feuchtigkeitsinterferenz, Drift, mangelnde Selektivität und das „Black-Box“-Problem der KI müssen gelöst werden.
Die Zukunft liegt in hybriden Ansätzen: Kombination von MOX-Sensoren mit spezifischen Nanodraht-Arrays, ergänzt durch laborbasierte Bestätigungstests. Tragbare Geräte wie Masken, Armbänder und Pflaster werden entwickelt – doch die meisten warten noch auf groß angelegte klinische Validierungen.
Zusammenfassung: Die elektronische Nase hat im Labor vielversprechende Ergebnisse gezeigt. Als breit eingesetztes Gesundheitsvorsorgegerät ist ihre Zuverlässigkeit und Anti-Störungsfähigkeit noch nicht ausgereift genug, um alleinige Gesundheitsentscheidungen zu tragen. Sie wird derzeit eher als ergänzendes Screening-Instrument positioniert.
Quellen
- TinyNose-TGC: Temporal Gated Neural Model for Odor Classification in TinyML Devices, IEEE, 2025
- Paulo Gaspar: Development of an Electronic Olfactometer Based on Low-Cost Sensors and Machine Learning, UFSC, 2026
- BreathBuddy: Gamified Bad Breath Detector Using BME680 VOC Sensor with ESP32, GitHub, 2026
- BME680 Temperature+Pressure+Humidity+Gas Sensor via BSEC, ESPHome, 2025
- A Comprehensive Review of Algorithms for Drift Compensation in Metal Oxide Semiconductor Gas Sensor Arrays, MDPI Chemosensors, 2026
- A novel Prior-Weighted Sparse Optimization method for global sensor array selection in electronic noses, Sensors and Actuators B, 2026
- TITO Technique for Multi-Sensor Virtual Responses, Journal of Electrical Engineering, 2023
- Benchmark for Low-Concentration Gas Classification, DergiPark, 2026
- Ensemble Methods for Drift Compensation (Summary Table), Sensors, 2021
- Using Context to Adapt to Sensor Drift, arXiv, 2020
Post Comment