ESP32 - Flammensensor
Dieses Tutorial zeigt Ihnen, wie Sie einen Flammensensor mit dem ESP32 und MicroPython verwenden, um Flammen und Feuer zu erkennen und zu messen. Im Einzelnen lernen wir:
- Wie ein Flammensensor funktioniert.
- Wie Sie einen Flammensensor an einen ESP32 anschließen.
- Wie Sie MicroPython-Code für den ESP32 schreiben, um Feuer anhand des digitalen Signals des Flammensensors zu erkennen.
- Wie Sie MicroPython-Code für den ESP32 schreiben, um die Flammenintensität anhand des analogen Signals des Flammensensors zu messen.

Anschließend können Sie den Code anpassen, um bei erkanntem Feuer ein Warnhorn (über ein Relais) auszulösen.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Überblick über Flame Sensor

Der Flammensensor kann das von einer Flamme ausgesendete Infrarotlicht erkennen und messen und eignet sich daher zur Branderkennung. Er ist auch als Infrarot-Flammen- oder Feuersensor bekannt und liefert zwei Arten von Signalen: einen digitalen Ausgang (LOW oder HIGH) und einen analogen Ausgang.
Infrarot-Flammensensoren sind speziell darauf ausgelegt, bestimmte Wellenlängen der von Flammen erzeugten Infrarotstrahlung zu erkennen. Dadurch werden Fehlalarme durch andere Infrarotquellen wie Körperwärme oder Lampen reduziert. Dennoch können diese Sensoren gelegentlich Fehlalarme auslösen oder echte Flammen nicht erkennen.
Pinbelegung
Es gibt zwei Arten von Flammensensormodulen:
Der einzelne Flammensensor hat vier Pins:
- VCC-Pin: Mit der Stromversorgung (3,3V bis 5V) verbinden.
- GND-Pin: Mit Masse (0V) verbinden.
- DO-Pin: Liefert einen digitalen Ausgang, der HIGH ist, wenn keine Flamme erkannt wird, und LOW, wenn eine Flamme vorhanden ist. Die Empfindlichkeit gegenüber Flammen kann mit dem Potentiometer auf der Platine eingestellt werden.
- AO-Pin: Gibt ein analoges Signal aus, dessen Wert bei niedrigerem Infrarotpegel sinkt und bei höherem Infrarotpegel steigt.

Außerdem verfügt er über zwei LED-Anzeigen:
- Die PWR-LED leuchtet, wenn der Sensor mit Strom versorgt wird.
- Die DO-LED leuchtet, wenn eine Flamme erkannt wird.
Das 5-in-1-Flammensensormodul vereint fünf einzelne Flammensensoren auf einer Leiterplatte. Die Sensoren teilen sich zwar dasselbe Potentiometer, VCC und GND, jeder hat jedoch eigene unabhängige DO- (Digitalausgang) und AI-Pins (Analogeingang). Zudem sind die Sensoren in verschiedene Richtungen ausgerichtet, was ihren gemeinsamen Erfassungsbereich deutlich erweitert.
Funktionsweise
Für den DO-Pin:
- Das Modul enthält ein Potentiometer zur Einstellung der Infrarot-Empfindlichkeitsschwelle.
- Wenn der Infrarotpegel diese Schwelle überschreitet, was auf eine Flamme hinweist, geht der Ausgangspin des Sensors auf LOW und die DO-LED leuchtet.
- Wenn der Infrarotpegel unter der Schwelle liegt, also keine Flamme vorhanden ist, bleibt der Ausgangspin des Sensors HIGH und die DO-LED bleibt aus.
Für den AO-Pin:
- Ein hoher Infrarotpegel führt zu einem hohen Messwert am AO-Pin.
- Ein niedriger Infrarotpegel führt zu einem niedrigen Messwert am AO-Pin.
- Das Potentiometer hat keinen Einfluss auf den Wert am AO-Pin.
Verdrahtungsdiagramm
- So verbinden Sie ESP32 und Flammensensor mit einem Steckbrett
Das Flammensensormodul bietet zwei Ausgangsoptionen. Sie können je nach Bedarf eine oder beide verwenden.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
- So verbinden Sie ESP32 und Flammensensor mit einem Schraubklemmen-Breakout-Board

ESP32 MicroPython-Code - Wert vom DO-Pin lesen
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 für eine Schritt-für-Schritt-Anleitung.
- Schließen Sie das ESP32-Board gemäß dem bereitgestellten Schaltplan an den Flammensensor an.
- 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 Reiter Interpreter die Option MicroPython (ESP32) aus dem Dropdown-Menü.
- Stellen Sie sicher, dass der richtige Port ausgewählt ist. Die Thonny IDE erkennt ihn normalerweise automatisch, aber eventuell müssen Sie ihn 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.
- Benennen Sie die Datei main.py.
- Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
- Richten Sie den Flammensensor auf eine Flamme.
- Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Wenn die LED immer an oder aus ist, selbst wenn der Sensor auf eine Flamme gerichtet ist, können Sie das Potentiometer drehen, um die Empfindlichkeit des Sensors zu ändern.
ESP32 MicroPython-Code - Wert vom AO-Pin lesen
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.
- Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
- Richten Sie den Flammensensor auf eine Flamme.
- Sehen Sie sich die Meldung in der Shell unten in Thonny an.
※ Notiz:
Dieses Tutorial zeigt, wie Sie mit der Funktion adc.read() Werte von einem ADC (Analog-Digital-Wandler) lesen, der mit einem Flammensensor verbunden ist. Der ADC des ESP32 eignet sich für Projekte, die keine hohe Genauigkeit erfordern. Wenn Ihr Projekt jedoch genaue Messungen benötigt, beachten Sie Folgendes:
- Der ADC des ESP32 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 Genauigkeitsanforderungen sollten Sie einen externen ADC (z. B. ADS1115) mit dem ESP32 verwenden oder auf einen Arduino zurückgreifen, der einen zuverlässigeren ADC besitzt. Wenn Sie den ADC des ESP32 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.