Mekatronik 101: #1 Gaz Sensörü ile Akıllı Alarm Sistemi Kurulumu (MQ2, Flying Fish)

 MQ2-Gaz sensörü havadaki yanıcı gazları ve gazların yoğunluğunu tespit etmek için kullandığımız bir mos (metal-oksit yarı iletken) sensördür. Hem analog hem de dijital bir çıkış verebilmesi bizim bu sensörü elimizdeki arduino ya da raspberry pi modüllerimizde kolaylıkla kullanabilmemizi sağlıyor. 

Neyi algılıyor?Metan Gazı, LPG, propan, bütan, hidrojen, alkol ve duman.

Çalışma Prensibi: İçerisindeki malzeme gazla temas edince direnç değiştirir. Bu değişim voltaj değişikliğine döndürülür ve gazın yoğunluğu ölçülür.

Algılama Aralığı: 300-10000 ppm

Çalışma Voltajı: Genellikle 5V ile çalışır.

Hassasiyet Ayarı: Üzerinde gömülü potansiyometresi vardır. Bu potansiyometre yardımı ile hassasiyeti ayarlarız. 

NOT : Sensörün tam çalışması için ilk açılışında bir ısınma süresine ihtiyacı vardır. 

Evet, teknik sıkıcı kısımlarını geçtiysek bugün bu sensörü kullanarak sesli ve görsel uyarı veren bir gaz alarm sistemi kuracağız. 

Kullanacağımız Malzemeler:
  • 1 tane Arduino Uno R3
  • 1 tane MQ-2 Gaz Sensörü (Flying Fish)
  • 1 tane I2C LCD Ekran (16x2)
  • 1 tane buzzer (piezo)
  • 1 tane led 
  • 1 tane 4.7k ohm direnç
  • 1 tane 1k ohm direnç 
  • Jumper kablolar
  • Breadboard
Devre Şeması ve Bağlantılar:
- MQ-2'nin vcc pini -> 5v, gnd -> gnd, D0 boş kalabilir bu projede dijital bir çıkışla ilgilenmeyeceğiz. A0 pini -> A0.
- Lcd ekranın gnd -> gnd, vcc -> 5v, SDA -> A4, SCL -> A5
- ledin anodu 8.pine, katodu dirençle gndye.
- buzzer için anot 9. pine, katot gnd'ye. 










Kod Bloğu: 

/*
 * Mekatronik 101 #1: MQ-2 Gaz Sensörü Uygulaması
 * Proje Sahibi: foritueng
 */

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// I2C LCD adresini ve boyutunu tanımlıyoruz (Genelde 0x27)
LiquidCrystal_I2C lcd(0x27, 16, 2);

// Pin Tanımlamaları
const int gazPin = A0;      // Sensörün AO ucu
const int ledPin = 8;       // Alarm LED'i
const int buzzerPin = 9;    // Sesli alarm

// Değişkenler
int gazDegeri = 0;
int esikDegeri = 150;       // Hassasiyet eşiği (Ortama göre değiştirilebilir)

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  
  // LCD Başlatma
  lcd.init();
  lcd.backlight();
  
  // İlk Açılış Ekranı
  lcd.setCursor(0, 0);
  lcd.print("Sistem Aciliyor");
  lcd.setCursor(0, 1);
  lcd.print("foritueng...");
  delay(2000); 
  lcd.clear();
}

void loop() {
  // Sensörden veriyi oku
  gazDegeri = analogRead(gazPin);

  // Ekrana Gaz Seviyesini Yazdır
  lcd.setCursor(0, 0);
  lcd.print("Gaz Seviyesi:");
  lcd.print(gazDegeri);
  lcd.print("   "); // Eski rakamları temizlemek için boşluk

  // Alarm Durumu Kontrolü
  if (gazDegeri > esikDegeri) {
    // TEHLİKE ANINDA
    lcd.setCursor(0, 1);
    lcd.print("!!! TEHLIKE !!! ");
    
    digitalWrite(ledPin, HIGH); // LED'i yak
    tone(buzzerPin, 1000);      // Buzzer'ı öttür (1000Hz)
    delay(100);                 // Çakar efekti için kısa bekleme
    
    digitalWrite(ledPin, LOW);  // LED'i söndür
    noTone(buzzerPin);          // Sesi kes
    delay(100);
    
  } else {
    // GÜVENLİ DURUMDA
    lcd.setCursor(0, 1);
    lcd.print("Durum: Guvenli  ");
    
    digitalWrite(ledPin, LOW);
    noTone(buzzerPin);
  }

  delay(100); // Sistemin kararlı çalışması için küçük bir gecikme
}


NOT: Alarm çalmazsa eşik değerini 100 deneyebilirsin. 

İlk projemizi böylece tamamlamış olduk. Bağlantıları gösterdiğim videoya instagram @foritueng hesabım üzerinden ulaşabilirsiniz. Benimle düşüncelerinizi paylaşmayı unutmayın.

Yorumlar