Arduino Nano ESP32 - Flammensensor

Der Flammensensor kann das Infrarotlicht erkennen und messen, das von einer Flamme ausgeht. Er ist nützlich, Brände zu erkennen, und wird auch als Infrarot-Flammensensor oder Feuersensor bezeichnet. Dieser Sensor liefert zwei Arten von Informationen: Eine ist wie ein einfacher Schalter (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 Arduino Nano ESP32 mit einem Flammensensor verwendet, um Flammen zu erkennen. Konkret werden wir diese Schritte behandeln:

ESP32 Flammensensor

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

Erforderliche Hardware

1×Arduino Nano ESP32
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 Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

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-Flammen-Sensor kann eine Flamme erkennen oder prüfen, wie viel Infrarotlicht die Flamme abgibt. Daher hilft er uns, Brände zu erkennen. Dieser Sensor bietet zwei Anschlussmöglichkeiten: einen digitalen Ausgangspin und einen analogen Ausgangspin.

Diese Sensoren sind darauf ausgelegt, bestimmte Arten von Infrarotlicht einzufangen, die von Flammen ausgestrahlt werden, während sie andere Arten ignorieren, wie die Wärme von Menschen oder Innenbeleuchtung. Aber wie jeder Sensor haben sie ihre Grenzen, und manchmal könnten sie Fehler machen, sei es, dass sie behaupten, es gebe einen Brand, obwohl keiner da ist (Falsch-Positiv) oder dass sie einen Brand übersehen, wenn er vorhanden ist (Falsch-Negativ).

Pinbelegung

Es gibt zwei Arten von Flammensensor-Modulen:

Ein einzelner Flammensensor enthält vier Pins:

  • VCC-Pin: Es muss mit VCC (3,3 V bis 5 V) verbunden werden.
  • GND-Pin: Es muss mit GND (0 V) verbunden werden.
  • DO-Pin: Es ist ein digitaler Ausgangspin. Er ist HIGH, wenn die Flamme nicht erkannt wird, und LOW, wenn sie erkannt wird. Der Schwellenwert für die Flammenerkennung kann mithilfe eines eingebauten Potentiometers angepasst werden.
  • AO-Pin: Es ist ein analoger Ausgangspin. Der Ausgangswert nimmt ab, wenn der Infrarotpegel sinkt, und er nimmt zu, wenn der Infrarotpegel steigt.
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.

Der 5-in-1-Flammensensor integriert fünf einzelne Flammensensoren auf einer einzigen Leiterplatte (PCB). Diese Sensoren teilen sich denselben Potentiometer, VCC- und GND-Anschlüsse. Allerdings arbeiten DO- (Digitalausgang) und AI- (Analog-Eingang) Pins bei jedem Sensor unabhängig voneinander, und jeder Sensor ist in eine andere Richtung ausgerichtet. Diese Anordnung erhöht effektiv den gesamten Erkennungsbereich.

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 liegt im LOW-Pegel und die DO-LED ist eingeschaltet.
  • Wenn die Infrarotintensität unter dem Schwellenwert liegt, wird die Flamme NICHT erkannt, der Ausgangspin des Sensors liegt im HIGH-Pegel 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 am AO-Pin gelesene Wert.
  • Je niedriger die Infrarotintensität in der Umgebung ist, desto niedriger ist der am 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 einen oder beide verwenden.

  • Der Schaltplan zwischen Arduino Nano ESP32 und dem Flammensensor, wenn nur DO verwendet wird.
Arduino Nano ESP32 Flammensensor-Schaltplan

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

  • Das Verdrahtungsdiagramm zwischen Arduino Nano ESP32 und dem Flammensensor, wenn nur AO verwendet wird.
Arduino Nano ESP32 Flammensensor Verdrahtungsdiagramm

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

  • Der Verdrahtungsplan zwischen dem Arduino Nano ESP32 und dem Flammensensor, wenn sowohl A0 als auch D0 verwendet werden.
Arduino Nano ESP32 Infrarot-Flammen-Sensor-Verdrahtungsdiagramm

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

Arduino Nano ESP32 Code - Wert vom Digitalausgangspin auslesen

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-esp32/arduino-nano-esp32-flame-sensor */ #define DO_PIN D2 // The Arduino Nano ESP3 connected to DO pin of the flame sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. 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 dies das erste Mal ist, dass Sie den Arduino Nano ESP32 verwenden, sehen Sie sich wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code auf den Arduino Nano ESP32 hochzuladen.
  • Richten Sie den Flammensensor auf eine Flamme aus.
  • Überprüfen 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 Ihnen auffallen könnte, dass der LED-Status dauerhaft eingeschaltet bleibt oder auch ausgeschaltet ist, obwohl der Sensor auf eine Flamme gerichtet ist. In diesem Fall können Sie das Potentiometer einstellen, um die Empfindlichkeit des Sensors fein abzustimmen.

Arduino Nano ESP32-Code - Wert vom AO-Pin auslesen

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-esp32/arduino-nano-esp32-flame-sensor */ #define AO_PIN A4 // The Arduino Nano ESP3 connected to AO pin of the flame sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. 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 auf die Schaltfläche Hochladen in der Arduino-IDE, um den Code auf den Arduino Nano ESP32 hochzuladen.
  • Richten Sie den Flammensensor auf eine Flamme aus.
  • Überprüfen 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 Analog-Digital-Wandler (ADW) zu lesen, der an einen Sensor oder eine Komponente angeschlossen ist. Der ADC des Arduino Nano ESP32 eignet sich für Projekte, die keine hohe Genauigkeit erfordern. Allerdings sollten Sie für Projekte, die präzise Messungen erfordern, Folgendes beachten:

  • Der ADC des Arduino Nano ESP32 ist nicht vollkommen genau und muss möglicherweise für korrekte Ergebnisse kalibriert werden. Jedes Arduino Nano ESP32-Board kann sich leicht unterscheiden, daher ist eine Kalibrierung für jedes einzelne Board notwendig.
  • Die Kalibrierung kann herausfordernd sein, insbesondere für Anfänger, und liefert möglicherweise nicht immer die genauen Ergebnisse, die Sie wünschen.

Für Projekte, die eine hohe Präzision erfordern, sollten Sie die Verwendung eines externen AD-Wandlers (z. B. ADS1115) mit dem Arduino Nano ESP32 in Betracht ziehen oder einen anderen Arduino verwenden, wie z. B. den Arduino Uno R4 WiFi, der über einen zuverlässigeren AD-Wandler verfügt. Wenn Sie den ADC des Arduino Nano ESP32 dennoch kalibrieren möchten, lesen Sie die 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.

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!