Brandlarmsystem är mycket vanliga i kommersiell byggnad och fabriker, dessa enheter innehåller vanligtvis ett kluster av sensorer som ständigt övervakar eventuell flamma, gas eller brand i byggnaden och utlöser ett larm om det upptäcker något av dessa. Ett av de enklaste sätten att upptäcka brand är att använda en IR-flamsensor, dessa sensorer har en IR-fotodiod som är känslig för IR-ljus. Nu, i händelse av brand, producerar elden inte bara värme utan kommer också att avge IR-strålar, ja varje brinnande flamma kommer att avge någon nivå av IR-ljus, detta ljus är inte synligt för mänskliga ögon men vår flamsensor kan upptäcka det och varna en mikrokontroller som Arduino om att en brand har upptäckts.
I den här artikeln gränssnitt vi Flame Sensor med Arduino och lär oss alla steg för att bygga brandlarmsystem med hjälp av Arduino och flame sensor. Flamsensormodulen har en fotodiod för att detektera ljuset och en op-amp för att kontrollera känsligheten. Den används för att upptäcka brand och ge en HÖG signal vid detekteringen. Arduino läser signalen och varnar genom att sätta på summern och lysdioden. Flamsensorn som används här är en IR-baserad flamsensor. Vi har också använt samma koncept för att upptäcka brand i vår brandbekämpningsrobot, du kan också kontrollera att vår om du är intresserad.
Flamsensor
En flamdetektor är en sensor som är utformad för att upptäcka och svara på närvaron av en flamma eller eld. Svaren på en upptäckt låga beror på installationen men kan inkludera larm, deaktivering av en bränsleledning (t.ex. en propan eller en naturgasledning) och aktivering av ett brandbekämpningssystem. IR-flamsensorn som används i detta projekt visas nedan, dessa sensorer kallas ibland även brandgivarmodul eller flamdetektorsensor.
Det finns olika typer av flamdetekteringsmetoder. Några av dem är: ultraviolett detektor, nära IR-detektor, infraröd (IR) detektor, infraröda värmekameror, UV / IR-detektor etc.
När eld brinner avger den en liten mängd infrarött ljus, detta ljus kommer att tas emot av fotodioden (IR-mottagare) på sensormodulen. Sedan använder vi en Op-Amp för att kontrollera spänningsförändringar över IR-mottagaren, så att om en brand detekteras kommer utgångsstiftet (DO) att ge 0V (LÅG), och om det inte är eld kommer utgångsstiftet att vara 5V (HÖG).
I det här projektet använder vi en IR-baserad flamsensor. Den är baserad på YG1006-sensorn som är en höghastighets- och högkänslig NPN-kiseltototransistor. Den kan detektera infrarött ljus med en våglängd som sträcker sig från 700 nm till 1000 nm och dess detekteringsvinkel är cirka 60 °. Flamsensormodulen består av en fotodiod (IR-mottagare), motstånd, kondensator, potentiometer och LM393-komparator i en integrerad krets. Känsligheten kan justeras genom att variera den inbyggda potentiometern. Arbetsspänningen ligger mellan 3,3V och 5V DC, med digital utgång. En logik högt på utgången indikerar förekomsten av låga eller eld. En logik låg på utdata indikerar frånvaron av låga eller eld.
Nedan är stiftbeskrivningen av flamsensormodulen:
Stift |
Beskrivning |
Vcc |
3,3 - 5V strömförsörjning |
GND |
Jord |
Dout |
Digital utgång |
Användning av flamsensorer
- Vätgasstationer
- Förbränningsmonitorer för brännare
- Olje- och gasledningar
- Fordonstillverkningsanläggningar
- Kärnanläggningar
- Flygplanshangarer
- Turbinhöljen
Komponenter krävs
- Arduino Uno (valfritt Arduino-kort kan användas)
- Flamsensormodul
- LED
- Summer
- Motstånd
- Bygeltrådar
Kretsschema
Nedanstående bild är kretsschemat för Arduino brandsensor, det visar hur man kopplar in brandmodulen med Arduino.
Arbeta med flamsensor med Arduino
Arduino Uno är ett mikrokontrollerkort med öppen källkod baserat på mikrokontrollern ATmega328p. Den har 14 digitala stift (varav 6 stift kan användas som PWM-utgångar), 6 analoga ingångar, inbyggda spänningsregulatorer etc. Arduino Uno har 32KB flashminne, 2KB SRAM och 1KB EEPROM. Den fungerar med en klockfrekvens på 16MHz. Arduino Uno stöder seriell, I2C, SPI-kommunikation för att kommunicera med andra enheter. Tabellen nedan visar den tekniska specifikationen för Arduino Uno.
Microcontroller |
ATmega328p |
Driftspänning |
5V |
Inspänning |
7-12V (rekommenderas) |
Digitala I / O-stift |
14 |
Analoga stift |
6 |
Flashminne |
32KB |
SRAM |
2KB |
EEPROM |
1KB |
Klockfrekvens |
16 MHz |
Den låga sensorn detekterar närvaron av brand eller flamma baserat på den infraröda (IR) våglängd som avges av flamman. Det ger logik 1 som utdata om en flamma detekteras, annars ger logik 0 som utgång. Arduino Uno kontrollerar logiknivån på sensorns utgångsstift och utför ytterligare uppgifter som att aktivera summer och lysdiod, skicka ett varningsmeddelande.
Kontrollera också våra andra brandlarmsprojekt:
- Brandlarm med termistor
- Brandlarmsystem med AVR Microcontroller
- Arduino-baserad brandbekämpningsrobot
Kodförklaring
Den fullständiga Arduino-koden för detta projekt ges i slutet av denna artikel. Koden är uppdelad i små meningsfulla bitar och förklaras nedan.
I den här delen av koden ska vi definiera stift för flamsensor, LED och summer som är anslutna till Arduino. Flamsensorn är ansluten till den digitala stift 4 i Arduino. Summern är ansluten till den digitala stift 8 i Arduino. LED är ansluten till digital stift 7 i Arduino.
Variabel " flame_detected " används för att lagra det digitala värdet som läses upp från flamsensorn. Baserat på detta värde kommer vi att upptäcka förekomsten av låga.
int-summer = 8; int LED = 7; int flame_sensor = 4; int flame_detected;
I den här delen av koden ska vi ställa in status för digitala stift av Arduino och konfigurera
Överföringshastighet för seriekommunikation med PC för visning av flamdetekteringskretsens status.
ogiltig installation () { Serial.begin (9600); pinMode (summer, OUTPUT); pinMode (LED, OUTPUT); pinMode (flamsensor, INGÅNG); }
Denna kodrad läser den digitala utsignalen från flamsensorn och lagrar den i variabeln " flame_detected ".
flame_detected = digitalRead (flame_sensor);
Baserat på värdet som är lagrat i “ flame_detected ” måste vi slå på summern och lysdioden. I denna del av koden jämför vi värdet som är lagrat i “ flame_detected ” med 0 eller 1.
Om det är lika med 1 indikerar det att lågan har detekterats. Vi måste sätta på summer och LED och sedan visa ett varningsmeddelande i seriell bildskärm för Arduino IDE.
Om det är lika med 0, betyder det att ingen flamma har upptäckts så vi måste stänga av LED och summer. Denna process upprepas varje sekund för att identifiera förekomsten av eld eller eld.
if (flame_detected == 1) { Serial.println ("Flamma upptäckt…! vidta åtgärder omedelbart."); digitalWrite (summer, HÖG); digitalWrite (LED, HÖG); fördröjning (200); digitalWrite (LED, LOW); fördröjning (200); } annat { Serial.println ("Ingen flamma upptäckt. håll dig cool"); digitalWrite (summer, LOW); digitalWrite (LED, LOW); } fördröjning (1000);
Vi har byggt en brandbekämpningsrobot baserat på detta koncept, som automatiskt upptäcker elden och pumpar ut vattnet för att släcka elden. Nu vet du hur du gör branddetektering med Arduino och flamsensor, hoppas att du tyckte om att lära dig det, om du har några frågor lämnar du dem i kommentarfältet nedan.
Kontrollera hela koden och demo-videon nedan.