Arduino Arduino Projeleri Gömülü Sistemler Proje

Alev Sensörü ve Arduino ile Yangın Söndürme Sistemi

Giriş

Merhaba arkadaşlar bugün projemizde alev algılayan sensör kullanarak herhangi bir yangın anında yangın söndürme sistemini devreye sokan projeyi gerçekleştireceğiz. Aynı zamanda flame(alev) sensörü kullanarak bu sensörün kullanımına değineceğiz.

Flame (Alev) Sensörü

Alev sensörü olarak bilinen Flame Sensörünü bu projede kullanabilirsiniz. Bu sensör ateşin az miktarda yaydığı IR ışınları algılar ve çıkışını 0 “LOW” değeri olarak gönderir. Yangın söndüren robotlarda ateş algılama sensörü olarak kullanabilmektedir. Üzerindeki trimpot ile hassasiyet ayarı yapılabilmekte ve hem analog hem de dijital şekilde çıkış alınabilmektedir. 

Üzerinde iki adet led vardır. Bir tanesi enerji verilir verilmez yanar. Diğeri ise alev algılandığında yanar.

Kullanılan Malzemeler

  • Arduino UNO
  • Alev Sensör Modülü
  • 5V Role
  • 5V DC Su Pompası
  • Buzzer
  • 5V AC/DC Adaptör
  • 7-12 Volt Pil
  • Breadboard

Devre Bağlantı Şeması

Sensör pini 2. pine Buzzer pini 3. pine Role tetikleme pini 4. pine bağlanır.

Kodlar

Nasıl Çalışacak: Projemizde bir ateş algılandığı zaman buzzer direk alarm verecek. Yangın söndürme sistemi çalışması için ise 5 saniyelik bir süre var. Yani sürmekte olan bir ateş olduğundan emin olmamız gerekiyor. 5 saniye boyunca ateş algılaması olursa Röle tetikleniyor ve yangın söndürme sistemi devreye giriyor.

#define SENSOR_PIN 2
#define BUZZER_PIN 3
#define RELAY_PIN 4
#define SPRINKLER_START_DELAY 5000  //5 seconds 
#define SPRINKLER_ON_TIME 3000      //3 seconds Sprinkler on time

unsigned long previousTime = millis();

void setup() 
{
  pinMode(RELAY_PIN, OUTPUT);
  pinMode(SENSOR_PIN, INPUT);  
}

void loop() 
{
  //If there is fire then the sensor value will be LOW else the value will be HIGH
  int sensorValue = digitalRead(SENSOR_PIN);

  //There is fire
  if (sensorValue == LOW)
  {
    analogWrite(BUZZER_PIN, 50);                          //Turn on buzzer

    if (millis() - previousTime > SPRINKLER_START_DELAY)  //We will wait for few seconds before sprinkler can be started once fire is detected.
    {
      digitalWrite(RELAY_PIN, LOW);                       //Relay is low level triggered relay so we need to write LOW to switch on the light 
      delay(SPRINKLER_ON_TIME);                           //Keep sprinkler on for sometime.
    }
  }
  else
  {
    analogWrite(BUZZER_PIN, 0);    
    digitalWrite(RELAY_PIN, HIGH); 
    previousTime = millis();  
  }
} 

millis() Fonksiyonu

Bekleme için Delay değil bu sefer Millis fonksiyonu kullandık. Çünkü delay komutu tüm sisteme gecikme yaparken Millis ile gecikme yaptığımızda, bekleme süresi devam ederken program da akışına devam eder.

millis() geçen zamandır. Yani anlık olarak geçen süre milisaniye cinsinden sürekli olarak sayar. 25. satırda millis kullandığımız zaman da aslında programa şu soruyu soruyoruz. Buzzer çalması üzerinden 5 saniye geçti mi?

if (millis() – previousTime > SPRINKLER_START_DELAY

Yani anlık süre – geçen zaman = 5 saniye oldu mu ?

Yukarıda define komutu ile SPRINKLER_START_DELAY zamanına hangi değeri tanımlarsak bu süreyi artırıp azaltabiliriz.

Proje Son

Konu hakkında görüşlerinizi ve yardımlarınızı bize iletebilirsiniz. Kolay gelsin !

Similar Posts

2 thoughts on “Alev Sensörü ve Arduino ile Yangın Söndürme Sistemi
  1. bu alev sensorunden 4 adet calıstırmak ıstersek ve bunu milis kodunu kullanarak nasıl yapabılırız

    1. Yağmur sensörlerini artırabiliriz bunda bir sorun yok yeterli pin sayımız mevcut. Projede kullandığımız komutlara benzer komutlar ekleyerek yapabilirsiniz. Sensörlerden gelen veriyi karşılaştırmak için karşılaştırma komutlarını eklemenizi öneririm.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir