Arduino Flammensensor Feueralarm Projekt

Arduino Flammensensor Feueralarm Projekt

Arduino Flammensensor Feueralarm Projekt besteht darin, ein einfaches Feueralarmsystem mit einem Arduino zu bauen, der mit einem Flammensensormodul (um das Vorhandensein einer Flamme zu erkennen), einem aktiven Summermodul (um einen hörbaren Ton zu erzeugen) und einem 2-farbigen LED-Modul (für eine visuelle Anzeige) verbunden ist. Wenn der Flammensensor das Vorhandensein einer Flamme in der Nähe feststellt, aktiviert er einen Summer, der wiederholt piept und die LED aufblinken lässt, bis keine Flamme mehr erkannt wird. Was die Funktionsweise eines Flammensensors betrifft, so gibt es verschiedene Mechanismen, die von der Art des Flammensensors abhängen, darunter Ultraviolett (UV), Infrarot (IR), Ultraviolett/Infrarot (UV/IR), Multispektrum-Infrarot (MSIR) und visuelle Flammensensoren. 

Der spezielle Flammensensor, der in diesem DIY PCBA-Platine Projekt ist der IR-Typ (HW-491), der auch der häufigste Typ bei Arduino-kompatiblen Flammensensoren ist. Im Wesentlichen funktionieren IR-Sensoren durch die Erkennung von Infrarotstrahlung, die von Flammen sehr deutlich emittiert wird. Wenn die eingebaute Fotodiode diesen spezifischen Wellenlängenbereich erkennt, sendet sie ein digitales Signal (1) an das Arduino-Board. Wenn der Arduino-Mikrocontroller dieses HIGH-Signal vom Flammensensor empfängt, ist dieses Projekt so programmiert, dass es den aktiven Summer aktiviert, der alle 150 ms piept, und das zweifarbige LED-Modul, das alle 150 ms rot blinkt, um das Vorhandensein einer Flamme anzuzeigen. Wenn keine Flamme vorhanden ist, ertönt kein Signalton und die LED leuchtet grün. Ein wichtiger Hinweis: Wenn Ihr Flammensensor das Vorhandensein einer Flamme nicht richtig erkennt, müssen Sie möglicherweise seine Empfindlichkeit kalibrieren, indem Sie das integrierte Potentiometer des Moduls drehen.

Dieses Projekt spiegelt eine sehr praktische Anwendung eines Flammensensormoduls als Teil eines Feueralarmkreises wider, der für viele private und kommerzielle & Industrie-PCBA verwendet. Kommerziell hergestellte Feuermelder basieren oft auf einer ähnlichen Technologie, d.h. sie haben einen Flammensensor als Eingabegerät, das mit einem Ausgabegerät (Lautsprecher, LEDs, Flammenunterdrückungssysteme usw.) verbunden ist, das, wenn es ausgelöst wird, die Verbraucher über das Vorhandensein einer Flamme informiert. Daher ist die Integration eines solchen Projekts auf einer Leiterplatte in ein kleines Gehäuse als tragbarer Feuermelder, der auf verschiedenen Oberflächen in einem Wohnhaus angebracht werden kann, definitiv eine nützliche und praktikable Idee. Die Kompaktheit dieser Schaltung auf einem Breadboard kann noch verbessert werden, wenn Sie für dieses Projekt eine maßgeschneiderte Leiterplatte mit oberflächenmontierten Bauteilen (SMT) entwerfen, auf der diese Schaltung als eigenständiges Produkt Gestalt annehmen kann. Heutzutage werden viele kommerzielle Produkte mit oberflächenmontierten Bauteilen bestückt (PCBA). SMT-Bestückung da sie einen viel kleineren Formfaktor und folglich eine größere elektrische Dichte auf einer Leiterplatte ermöglichen. Dies sind die Komponenten, die Sie für dieses Projekt benötigen:

  • Arduino Nano (andere Arduino-kompatible Boards funktionieren auch)
  • USB-Kabel (kompatibel mit dem Arduino-Board)
  • Brettchen
  • Stecker-Stecker-Überbrückungskabel (8)
  • HW-491 Flammensensor-Modul
  • HW-512 Aktiv-Summer-Modul
  • HW-480 Rot/Grünes 2-Farben LED-Modul (gemeinsame Kathode)
  • 220Ω Widerstände (2)

Flammensensor Feueralarm Projekt Schaltplan

Je nach Arduino-Board benötigen Sie ein Breadboard, um Ihr Board anzuschließen. In diesem Beispiel wird ein Arduino Nano verwendet, für den Sie ein Breadboard benötigen. Wenn Sie jedoch z.B. einen Arduino Uno verwenden, können Sie die Jumperdrähte von den Komponenten auf dem Breadboard direkt an die Pins der Platine anschließen. 

Die für dieses spezielle Projekt benötigten Komponenten sind einigen anderen Projekten sehr ähnlich, da die Module den größten Teil des Projekts ausmachen. Was die Pinbelegung des Flammensensormoduls betrifft, so haben die meisten Modelle eine 4-polige Konfiguration mit einem digitalen Ausgang (DO) und einem analogen Ausgang (AO). Für dieses Heimwerkerprojekt wird nur der digitale Ausgang (DO) verwendet, da der Hauptzweck des Sensors darin besteht, ein HIGH- oder LOW-Signal zurückzusenden, je nachdem, ob eine Flamme erkannt wird oder nicht. Wenn Ihr Sensor eine 3-Pin-Konfiguration hat, können Sie den Standard-Ausgang/Signal-Pin verwenden. Was das verwendete LED-Modul betrifft, so sind zwei 220Ω-Widerstände mit den beiden Ausgängen dieses Moduls in Reihe geschaltet, um zu verhindern, dass die LEDs durchbrennen, wenn eine Versorgungsspannung von +5 Volt angelegt wird. Wenn anstelle des LED-Moduls eine normale LED verwendet wird, ist der Widerstand ebenfalls erforderlich, um die LED vor einem Kurzschluss zu schützen. Ein Schaltplan der Verdrahtung ist ebenfalls unten zu sehen.

  • HW-491 Flammensensor-Modul: Verbinden Sie den digitalen Ausgang (DO)/Signalpin mit D3 auf dem Arduino-Board, den positiven (+) Pin mit +5v und den GND (G) Pin mit GND.
  • HW-480 Rot/Grünes 2-Farben-LED-Modul: Legen Sie einen 220Ω-Widerstand in Reihe mit dem Ausgangspin für das rote LED-Signal (R) und einen weiteren 220Ω-Widerstand in Reihe mit dem Ausgangspin für das grüne LED-Signal (G) auf das Breadboard. Verbinden Sie den roten Farbausgangsstift (R) mit D5 und den grünen Farbausgangsstift (G) mit D6. Verbinden Sie den negativen (-) Pin des LED-Moduls mit GND an Ihrem Arduino.
  • HW-512 Aktiv-Summer-Modul: Verbinden Sie den positiven (+) Pin mit D4 und den negativen (-) Pin mit GND an Ihrem Arduino.

Programmierung des Flammensensor-Brandmeldekreises

Code Details

int sensorPin = 3;

int buzzerPin = 4;

int redPin = 5;

int greenPin = 6;

 

int Flamme;

 

void Einrichtung()

{

 Seriennummer.beginnen(9600);

 pinMode(sensorPin, INPUT);

 pinMode(buzzerPin, OUTPUT);

 pinMode(redPin, OUTPUT);

 pinMode(greenPin, OUTPUT);

}

 

 

void Schleife()

{

 Flamme = digitalLesen(sensorPin);

 wenn (Flamme == 1)

 {

   Seriennummer.println("Flamme entdeckt.");

   digitalWrite(redPin, HIGH);

   digitalWrite(grünPin, LOW);

   digitalWrite(buzzerPin, HIGH);

   Verzögerung(150);

   digitalWrite(redPin, LOW);

   digitalWrite(buzzerPin, LOW);

   Verzögerung(150);

 }

 sonst

 {

   Seriennummer.println("Keine Flamme entdeckt.");

   digitalWrite(redPin, LOW);

   digitalWrite(grünPin, HIGH);

   digitalWrite(buzzerPin, LOW);

 }

 Verzögerung(500);

}

Code-Erklärung

  • Dieser Code enthält viele Konzepte, die bereits in früheren Projekten vorgestellt wurden, insbesondere die Verwendung von if-else-Anweisungen, digitalWrite()-Funktionen (um den Status verschiedener Module zu definieren) und serielle Monitorbefehle.
  • Zunächst definiert der erste Codeblock die digitalen Pins, an die jedes Modul auf dem Arduino-Board angeschlossen ist. Da vier digitale Pins verwendet werden, erhält jeder von ihnen einen spezifischen Namen, der später verwendet wird (z.B. sensorPin, der für den Pin D3 steht, an den der Flammensensor angeschlossen ist). Es wird eine zusätzliche Ganzzahl definiert (flame), die nicht auf einen bestimmten Wert gesetzt wird, sondern als Platzhalter für das Signal (0 oder 1) dient, das vom Flammensensor empfangen wird. Wenn der Flammensensor beispielsweise das Vorhandensein einer Flamme feststellt, sendet der Sensor ein 1- oder HIGH-Signal an den Arduino zurück. Diese Information wird dann in der Variable flame gespeichert, die sich jederzeit ändern kann (z.B. wenn die Flamme nicht mehr erkannt wird).
  • Im Abschnitt zur Einrichtung der Leere wird die Baudrate für die serielle Kommunikation auf 9600 eingestellt, um serielle Daten zu erhalten, die später zu Debugging-Zwecken auf dem seriellen Monitor der Arduino IDE ausgegeben werden. Als nächstes wird der Flammensensor als digitales Eingabegerät eingestellt (sendet digitale Signale (1 oder 0) an den Arduino, wenn eine Flamme vorhanden ist oder nicht). Die Pins des aktiven Buzzermoduls und des 2-Farben-LED-Moduls werden dann als digitale Ausgabegeräte eingestellt (das Arduino-Board sendet digitale Signale (1 oder 0) an diese Module).
  • Was den Abschnitt mit der ungültigen Schleife betrifft, so wird die zuvor definierte Flammenvariable nun dem digitalen Eingangswert zugewiesen, der vom Flammensensor empfangen wird. Dies geschieht mit der Funktion digitalRead(), die die Flammenvariable dem Eingangssignal von sensorPin, also dem Flammensensor, zuordnet. 
  • Nun wird eine if-else-Anweisung verwendet, die die Ausgabemodule (2-Farben-LED und Summer) in einen bestimmten Zustand versetzt, wenn die if-Anweisung zutrifft. In diesem Fall, wenn die Flammenvariable gleich 1 ist (d.h. wenn der Flammensensor eine Flamme erkennt), wechselt die LED zu einer roten Farbe und der Summer schaltet sich ein (erzeugt ein hörbares Geräusch). Damit die LED kontinuierlich rot blinkt, während der Summer bei Vorhandensein einer Flamme piept, wird über die Funktion delay() ein Intervall von 150 ms zwischen den abwechselnden digitalen Zuständen der LED und des Summers eingefügt. Zu Debugging-Zwecken (z.B. zur Kalibrierung des Flammensensors) wird außerdem eine kurze Meldung auf dem seriellen Monitor ausgegeben.
  • Da es sich jedoch um eine if-else-Anweisung handelt, wird die LED immer dann grün leuchten, wenn die if-Anweisung nicht zutrifft (d.h. wenn der Flammensensor keine Flamme erkennt), und der Summer wird aufhören zu piepen. Auch hier wird eine kurze Nachricht an den seriellen Monitor gesendet. Schließlich gibt es am Ende der Schleife eine kurze Verzögerung von 500 ms.

Nächste Schritte

Nun, da FS Technologie dieses Projekt fertiggestellt hat, kann es leicht in ein viel größeres Projekt wie ein Hausautomatisierungssystem, einen tragbaren Feueralarm, ein Feuerlöschgerät usw. integriert werden und die Grundlage dafür bilden. Ein wichtiges Prinzip, das im Code behandelt wurde, war die Kommunikation zwischen digitalen Eingabe- und Ausgabegeräten, wobei der Arduino als Mikrocontroller zur Verarbeitung/Weiterleitung der Signale verwendet wurde. In diesem Fall war es der Flammensensor, der bei Vorhandensein oder Fehlen einer Flamme ein digitales Signal an den Arduino sendete. Nach der Verarbeitung dieser Information sendet der Arduino dann sein eigenes digitales Signal an die Ausgabegeräte (2-farbiges LED-Modul und aktives Summermodul). Wie bereits zu Beginn dieses Projekts erwähnt, sollten Sie für eine dauerhafte Anwendung in Erwägung ziehen, dieses Projekt auf eine Platine zu übertragen, die viele Vorteile in Bezug auf den kleinen Formfaktor, das geringe Gewicht und die Portabilität bietet. Obwohl die Verwendung von Durchgangsloch-Leiterplattenmontage gut funktionieren kann, wird SMT PCBA definitiv die Kosten und die Gesamtgröße des Endprodukts reduzieren.

DIY Elektronik Projekt Blog

Arduino UNO Unterbrechungstimer

Arduino UNO Interrupt Timer Der Timer ist eine Funktion, die in jeden Mikrocontroller eingebaut ist und bestimmte Funktionen in Bezug auf den Ablauf der Zeit hat. Die Timer-Funktion

Mehr lesen "