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.
- 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
Yorum Gönder