ESP32 - Flammensensor

Der Flammensensor kann das Infrarotlicht erkennen und messen, das von einer Flamme ausgeht. Er ist nützlich zur Erkennung von Bränden und wird auch als Infrarot-Flammensensor oder Feuersensor bezeichnet. Dieser Sensor liefert zwei Arten von Informationen: Die eine ähnelt einem einfachen Schalter (entweder ein oder aus), und die andere ist ein analoges Signal, das die Stärke der Flamme anzeigt.

In diesem Tutorial lernen wir, wie man einen ESP32 mit einem Flammensensor verwendet, um Flammen zu erkennen. Genauer gesagt behandeln wir die folgenden Schritte:

ESP32 Flammensensor

Anschließend können Sie den Code so anpassen, dass ein Warnhorn aktiviert wird, wenn das Feuer erkannt wird.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Flame Sensor
1×5-in-1 5-way Flame Sensor
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Flammensensor

Infrarot-Flammensensor-Modul

Der Infrarot-Flammensensor kann eine Flamme erkennen oder prüfen, wie viel Infrarotlicht die Flamme abgibt. Dadurch hilft er uns, Brände zu erkennen. Dieser Sensor bietet zwei Ausgabemodi: einen digitalen Ausgangspin und einen analogen Ausgangspin.

Diese Sensoren sind darauf ausgelegt, bestimmte Arten von Infrarotlicht zu erfassen, die von Flammen ausgestrahlt werden, während andere Arten ignoriert werden, wie die Wärme von Menschen oder Innenbeleuchtung. Doch wie jeder Sensor haben sie auch ihre Grenzen, und manchmal können sie Fehler machen – entweder indem sie fälschlicherweise melden, dass es ein Feuer gibt, obwohl keines da ist (Fehlalarm), oder indem sie ein Feuer übersehen, obwohl es vorhanden ist (Fehler bei der Erkennung).

Pinbelegung

Es gibt zwei Arten von Flammensensor-Modulen, die erhältlich sind:

Ein einzelner Flammensensor enthält vier Pins:

  • VCC-Pin: Es muss mit VCC verbunden werden (3,3 V bis 5 V).
  • GND-Pin: Es muss mit GND verbunden werden (0 V).
  • DO-Pin: Es ist ein digitaler Ausgangspin. Es ist HIGH, wenn die Flamme nicht erkannt wird, und LOW, wenn sie erkannt wird. Der Schwellenwert für die Flammen-Erkennung kann mit einem eingebauten Potentiometer angepasst werden.
  • AO-Pin: Es ist ein analoger Ausgangspin. Der Ausgangswert sinkt, wenn der Infrarotpegel abnimmt, und steigt, wenn der Infrarotpegel zunimmt.
Pinbelegung des Flammensensors
image source: diyables.io

Darüber hinaus verfügt es über zwei LED-Anzeigen:

  • Eine PWR-LED-Anzeige für die Stromversorgung.
  • Eine DO-LED-Anzeige für den Flammenzustand am DO-Pin: Sie ist eingeschaltet, wenn eine Flamme vorhanden ist.

Das 5-in-1-Flammensensor-Modul vereint fünf einzelne Flammensensoren auf einer einzigen Leiterplatte. Die Sensoren teilen sich ein gemeinsames Potentiometer, VCC- und GND-Verbindungen, während jeder Sensor seine eigenen unabhängigen DO (Digitalausgang) und AI (Analog-Eingang) Pins hat.

Wie es funktioniert

Für den DO-Pin:

  • Das Modul verfügt über ein integriertes Potentiometer zur Einstellung des Infrarotschwellenwerts (Empfindlichkeit).
  • Wenn die Infrarotintensität den Schwellenwert überschreitet, wird die Flamme erkannt, der Ausgangspin des Sensors ist LOW, und die DO-LED ist an.
  • Wenn die Infrarotintensität unter dem Schwellenwert liegt, wird die Flamme NICHT erkannt, der Ausgangspin des Sensors ist HIGH, und die DO-LED ist aus.

Für den AO-Pin:

  • Je höher die Infrarotintensität in der Umgebung ist, desto höher ist der vom AO-Pin gelesene Wert.
  • Je niedriger die Infrarotintensität in der Umgebung ist, desto niedriger ist der vom AO-Pin gelesene Wert.

Beachten Sie, dass das Potentiometer den Wert am AO-Pin nicht beeinflusst.

Verdrahtungsdiagramm

Da das Flammensensor-Modul zwei Ausgänge hat, können Sie je nach Bedarf entscheiden, ob Sie einen oder beide davon verwenden möchten.

  • Wie man ESP32 und Flammensensor mit Breadboard verbindet

Das Flammensensor-Modul bietet zwei Ausgabemöglichkeiten. Sie können je nach Bedarf entweder eine oder beide verwenden.

ESP32-Flammensensor Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

Wie man ESP32 und Flammensensor anschließt.

ESP32-Code - DO-Pin-Wert lesen

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32/esp32-flame-sensor */ #define DO_PIN 13 // ESP32's pin GPIO13 connected to DO pin of the flame sensor void setup() { // initialize serial communication Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(DO_PIN, INPUT); } void loop() { int flame_state = digitalRead(DO_PIN); if (flame_state == HIGH) Serial.println("No flame dected => The fire is NOT detected"); else Serial.println("Flame dected => The fire is detected"); }

Schnelle Schritte

  • Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie wie man die Umgebung für ESP32 in der Arduino-IDE einrichtet.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino-IDE.
  • Klicken Sie in der Arduino-IDE auf die Hochladen-Schaltfläche, um den Code auf den ESP32 hochzuladen.
  • Richten Sie den Flammensensor auf eine Flamme aus.
  • Sehen Sie das Ergebnis im seriellen Monitor.
COM6
Send
No flame dected => The fire is NOT detected No flame dected => The fire is NOT detected Flame dected => The fire is detected Flame dected => The fire is detected Flame dected => The fire is detected No flame dected => The fire is NOT detected No flame dected => The fire is NOT detected No flame dected => The fire is NOT detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Bitte beachten Sie, dass Sie das Potentiometer einstellen können, um die Empfindlichkeit des Sensors fein abzustimmen, falls Ihnen auffällt, dass die LED-Anzeige konstant eingeschaltet bleibt oder ausgeschaltet ist, selbst wenn der Sensor auf eine Flamme gerichtet ist.

ESP32-Code – Wert vom AO-Pin lesen

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32/esp32-flame-sensor */ #define AO_PIN 36 // ESP32's pin GPIO36 connected to AO pin of the flame sensor void setup() { // initialize serial communication Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int infrared_value = analogRead(AO_PIN); Serial.print("The AO value: "); Serial.println(infrared_value); }

Schnelle Schritte

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie in der Arduino IDE auf die Schaltfläche Hochladen, um den Code auf den ESP32 hochzuladen.
  • Richten Sie den Flammensensor auf eine Flamme.
  • Sehen Sie das Ergebnis im seriellen Monitor.
COM6
Send
245 246 246 573 677 949 955 1004 1007 1013 1018 641 543 340 179
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Dieses Tutorial verwendet die Funktion analogRead(), um Werte von einem ADC (Analog-Digital-Wandler) zu lesen, der an einen Flammensensor angeschlossen ist. Der ESP32-ADC eignet sich gut für Projekte, die keine hohe Genauigkeit benötigen. Für Projekte, die präzise Messungen benötigen, beachten Sie bitte:

  • Der ESP32-ADC ist nicht perfekt genau und könnte eine Kalibrierung für korrekte Ergebnisse benötigen. Jedes ESP32-Board kann etwas unterschiedlich sein, daher müssen Sie den ADC für jedes einzelne Board kalibrieren.
  • Die Kalibrierung kann schwierig sein, insbesondere für Anfänger, und liefert möglicherweise nicht immer die exakten Ergebnisse, die Sie wünschen.

Für Projekte, die eine hohe Präzision benötigen, ziehen Sie in Erwägung, einen externen ADC (z. B. ADS1115) zusammen mit dem ESP32 zu verwenden oder einen Arduino zu nutzen, der über einen zuverlässigeren ADC verfügt. Wenn Sie den ESP32-ADC dennoch kalibrieren möchten, lesen Sie den ESP32 ADC Kalibrierungs-Treiber.

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.

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!