Brannalarmsystemer er veldig vanlige i kommersielle bygninger og fabrikker, disse enhetene inneholder vanligvis en klynge av sensorer som konstant overvåker flamme, gass eller brann i bygningen og utløser en alarm hvis den oppdager noen av disse. En av de enkleste måtene å oppdage brann er ved å bruke en IR- flammesensor, disse sensorene har en IR-fotodiode som er følsom for IR-lys. I tilfelle brann, vil brannen ikke bare produsere varme, men vil også avgi IR-stråler, ja, hver brennende flamme vil avgi noe nivå av IR-lys, dette lyset er ikke synlig for menneskelige øyne, men vår flammesensor kan oppdage det og varsle en mikrokontroller som Arduino om at det er oppdaget brann.
I denne artikkelen kobler vi flammesensor til Arduino og lærer alle trinnene for å bygge brannalarmsystem ved hjelp av Arduino og flammesensor. Flammesensormodulen har en fotodiode for å oppdage lyset og en op-amp for å kontrollere følsomheten. Den brukes til å oppdage brann og gi et HØYT signal ved deteksjonen. Arduino leser signalet og varsler ved å slå på summeren og LED-en. Flammesensoren som brukes her er en IR-basert flammesensor. Vi har også brukt det samme konseptet for å oppdage brann i vår brannslukkingsrobot, du kan også sjekke at vår hvis du er interessert.
Flammesensor
En flammedetektor er en sensor designet for å oppdage og svare på tilstedeværelsen av en flamme eller brann. Svarene på en oppdaget flamme avhenger av installasjonen, men kan omfatte å slå alarm, deaktivere en drivstoffledning (for eksempel en propan eller en naturgassledning) og aktivere et brannslukkingssystem. IR-flammesensoren som er brukt i dette prosjektet er vist nedenfor, disse sensorene kalles også brannsensormodul eller flammedetektor-sensor noen ganger.
Det finnes forskjellige typer flammedeteksjonsmetoder. Noen av dem er: Ultrafiolett detektor, nær IR array detektor, infrarød (IR) detektor, infrarøde termiske kameraer, UV / IR detektor etc.
Når det brenner, avgir det en liten mengde infrarødt lys, dette lyset vil bli mottatt av fotodioden (IR-mottaker) på sensormodulen. Deretter bruker vi en Op-Amp for å sjekke spenningsendring over IR-mottakeren, slik at hvis det oppdages brann, vil utgangsstiften (DO) gi 0V (LAV), og hvis det ikke er brann, vil utgangsstiften være 5V (HØY).
I dette prosjektet bruker vi en IR-basert flammesensor. Den er basert på YG1006-sensoren som er en høysensitiv og høysensitiv NPN silisium-fototransistor. Den kan oppdage infrarødt lys med en bølgelengde fra 700 nm til 1000 nm, og deteksjonsvinkelen er omtrent 60 °. Flammesensormodulen består av en fotodiode (IR-mottaker), motstand, kondensator, potensiometer og LM393-komparator i en integrert krets. Følsomheten kan justeres ved å variere det innebygde potensiometeret. Arbeidsspenningen er mellom 3,3v og 5v DC, med digital utgang. En logikk høyt på utgangen indikerer tilstedeværelsen av flamme eller ild. En logikk med lav ytelse indikerer fravær av flamme eller ild.
Nedenfor er pinbeskrivelsen for flammesensormodulen:
Pin |
Beskrivelse |
Vcc |
3,3 - 5V strømforsyning |
GND |
Bakke |
Dout |
Digital utgang |
Anvendelser av flammesensorer
- Hydrogenstasjoner
- Forbrenningsmonitorer for brennere
- Olje- og gassrørledninger
- Automotive produksjonsanlegg
- Atomanlegg
- Flyhangarer
- Turbinhus
Komponenter kreves
- Arduino Uno (ethvert Arduino-brett kan brukes)
- Flammesensormodul
- LED
- Summer
- Motstand
- Jumper ledninger
Kretsdiagram
Bildet nedenfor er kretsskjemaet til Arduino brannføler, det viser hvordan du kobler brannfølermodulen til Arduino.
Arbeid med flammesensor med Arduino
Arduino Uno er et open-source mikrokontrollerkort basert på ATmega328p mikrokontroller. Den har 14 digitale pinner (hvorav 6 pinner kan brukes som PWM-utganger), 6 analoge innganger, innebygde spenningsregulatorer osv. Arduino Uno har 32 KB flashminne, 2 KB SRAM og 1 KB EEPROM. Den fungerer med en klokkefrekvens på 16MHz. Arduino Uno støtter seriell, I2C, SPI-kommunikasjon for kommunikasjon med andre enheter. Tabellen nedenfor viser den tekniske spesifikasjonen til Arduino Uno.
Mikrokontroller |
ATmega328p |
Driftsspenning |
5V |
Inngangsspenning |
7-12V (anbefalt) |
Digitale I / O-pinner |
14 |
Analoge pinner |
6 |
Flashminne |
32KB |
SRAM |
2KB |
EEPROM |
1KB |
Klokkefart |
16MHz |
Den flammesensor detekterer tilstedeværelsen av ild eller flamme basert på den infrarøde (IR) bølgelengden som sendes ut av flammen. Det gir logikk 1 som utdata hvis en flamme oppdages, ellers gir den logikk 0 som utgang. Arduino Uno sjekker logikknivået på sensorens utgangspinne og utfører ytterligere oppgaver som å aktivere summer og LED, og sende en varselmelding.
Sjekk også våre andre brannalarmprosjekter:
- Brannalarm ved bruk av Thermistor
- Brannalarmsystem ved hjelp av AVR Microcontroller
- Arduino-basert brannslukkingsrobot
Kode forklaring
Den komplette Arduino-koden for dette prosjektet er gitt på slutten av denne artikkelen. Koden er delt inn i små meningsfulle biter og forklart nedenfor.
I denne delen av koden skal vi definere pinner for flammesensor, LED og summer som er koblet til Arduino. Flammesensoren er koblet til den digitale pin 4 på Arduino. Summeren er koblet til digital pin 8 på Arduino. LED er koblet til digital pin 7 på Arduino.
Variabel “ flamme_detektert ” brukes til å lagre den digitale verdien som leses ut fra flammesensoren. Basert på denne verdien vil vi oppdage tilstedeværelsen av flamme.
int summer = 8; int LED = 7; int flame_sensor = 4; int flame_detected;
I denne delen av koden skal vi sette status for digitale pinner av Arduino og konfigurere
Baudrate for seriell kommunikasjon med PC for å vise status for flammedeteksjonskretsen.
ugyldig oppsett () { Serial.begin (9600); pinMode (summer, UTGANG); pinMode (LED, OUTPUT); pinMode (flammesensor, INNGANG); }
Denne kodelinjen leser den digitale utgangen fra flammesensoren og lagrer den i variabelen " flamme_detektert ".
flame_detected = digitalRead (flamme_sensor);
Basert på verdien som er lagret i “ flamme_detektert ”, må vi slå på summeren og lysdioden. I denne delen av koden sammenligner vi verdien som er lagret i “ flamme_detektert ” med 0 eller 1.
Hvis det er lik 1, indikerer det at flammen har blitt oppdaget. Vi må slå på summer og LED og deretter vise en varselmelding i seriell skjerm av Arduino IDE.
Hvis det er lik 0, indikerer det at ingen flamme har blitt oppdaget, så vi må slå av LED og summer. Denne prosessen gjentas hvert sekund for å identifisere tilstedeværelsen av ild eller flamme.
if (flame_detected == 1) { Serial.println ("Flamme oppdaget…! ta grep umiddelbart."); digitalWrite (summer, HØY); digitalWrite (LED, HØY); forsinkelse (200); digitalWrite (LED, LAV); forsinkelse (200); } annet { Serial.println ("Ingen flamme oppdaget. hold deg kult"); digitalWrite (summer, LAV); digitalWrite (LED, LOW); } forsinkelse (1000);
Vi har bygget en brannslukkingsrobot basert på dette konseptet, som automatisk oppdager brannen og pumper ut vannet for å slå ned brannen. Nå vet du hvordan du gjør branndeteksjon ved hjelp av Arduino og flammesensor. Håper du likte å lære det, hvis du har spørsmål, la dem være i kommentarfeltet nedenfor.
Sjekk hele koden og demo-videoen nedenfor.