#122Orta

ESP32 MQ-2 Gaz/Duman Dedektörü Alarmı

Bu projede MQ-2 gaz sensörü modülü ile yanıcı gaz (LPG, metan, propan) ve duman tespiti yapılır; tespit anında pasif buzzer üzerinden siren benzeri bir alarm sesi çalınır. Sensörün dijital eşik çıkışı (DO) ESP32'nin GPIO 4 pinine bağlanır; gaz ya da duman eşik değeri aştığında DO LOW olur ve alarm tetiklenir. Hassasiyet modül üzerindeki potansiyometre ile ayarlanır. Pasif buzzer `tone()` fonksiyonu ile sürülerek iki frekans arasında geçişli siren efekti üretilir.

4.7(27)
41 tamamlandı
ESP32 MQ-2 Gaz/Duman Dedektörü Alarmı
Mutfakta tüp kaçağı ya da bir köşede yükselen duman fark edilmeden büyüyebilir; bu küçük alarm onu senin yerine koklar. MQ-2 gaz sensörü havada yanıcı gaz ya da duman sezince kırmızı LED yanar ve buzzer kalın ve ince sesler arasında gidip gelen bir siren çalar. Hava temizlenince ışık da ses de kendiliğinden susar. Açılışta sensör ısınırken bir dakika boyunca LED yavaşça yanıp söner, alarm o sırada beklemede kalır.

Video

Devre Şeması

ESP32 MQ-2 Gaz/Duman Dedektörü Alarmı - Circuit

Kaynak Kodu

Arduino (C++)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   ESP32 MQ-2 Gaz/Duman Dedektörü Alarmı
4// ─────────────────────────────────────────
5// MQ-2 modülünün dijital eşik çıkışı (DO) okunur. Gaz ya da duman eşiği
6// aşılınca uyarı LED'i yanar ve pasif buzzer 800/1200 Hz arasında 0.2
7// sn'de bir geçen siren çalar. Eşik modül üzerindeki trimpot ile ayarlanır
8// (Arduino Core 3.0+).
9//
10// Pinler:
11//   GPIO 4  -> MQ-2 DO (dijital eşik çıkışı)
12//   GPIO 18 -> Buzzer + bacağı
13//   GPIO 5  -> Kırmızı LED (220 ohm dirençle)
14//   MQ-2 VCC -> 5V (VIN), GND -> GND
15
16// Pin tanımları
17const int MQ2_DO_PIN  = 4;    // MQ-2 D0 (dijital eşik çıkışı)
18const int BUZZER_PIN  = 18;   // Pasif buzzer
19const int LED_PIN     = 5;    // Uyarı LED + 220R
20
21// Isınma süresi (ms): MQ-2'nin ısıtıcısı dakikalarca ısınır. Wokwi'de 2000 yeterli.
22const unsigned long WARMUP_MS = 60000;
23bool warmedUp = false;        // Isınma bitti mi
24
25void setup() {
26  pinMode(MQ2_DO_PIN, INPUT);
27  pinMode(BUZZER_PIN, OUTPUT);
28  pinMode(LED_PIN, OUTPUT);
29  digitalWrite(BUZZER_PIN, LOW);
30  digitalWrite(LED_PIN, LOW);
31}
32
33void loop() {
34  // Isınma: DO okuması yok sayılır, LED bloklamadan yavaşça yanıp söner
35  if (!warmedUp) {
36    if (millis() < WARMUP_MS) {
37      digitalWrite(LED_PIN, (millis() / 500) % 2);   // 0.5 sn yanık, 0.5 sn sönük
38      return;
39    }
40    warmedUp = true;
41  }
42
43  // MQ-2 D0 normalde HIGH, eşik aşılınca LOW
44  int gasState = digitalRead(MQ2_DO_PIN);
45
46  if (gasState == LOW) {
47    // Alarm: LED yanar, buzzer iki tonlu siren çalar
48    digitalWrite(LED_PIN, HIGH);
49    tone(BUZZER_PIN, 800);    // Kalın ses
50    delay(200);
51    tone(BUZZER_PIN, 1200);   // Yüksek ton
52    delay(200);
53  } else {
54    // Bekleme: LED ve buzzer kapalı
55    digitalWrite(LED_PIN, LOW);
56    noTone(BUZZER_PIN);
57    delay(50);
58  }
59}
60

Sıkça Sorulanlar

MQ-2 hangi gazları algılar?▾

MQ-2 LPG, propan, metan, hidrojen, alkol buharı ve dumana duyarlıdır. Hangi gaz olduğunu ayırt edemez; yalnızca toplam yoğunluk artışını algılar.

MQ-2'nin analog çıkışı ESP32'ye doğrudan bağlanabilir mi?▾

MQ-2 5 V ile beslenir ve analog çıkışı 5 V'a kadar çıkabilir. ESP32'nin ADC girişi en fazla 3,3 V kabul ettiği için bir gerilim bölücü (ör. 10 kΩ + 20 kΩ) kullanmak gerekir.

Sensör ilk açılışta yüksek değer gösteriyor, neden?▾

MQ sensörlerin ısıtıcısının dengeye gelmesi birkaç dakika sürer; bu sürede değerler yüksek okunur. Alarmı açılıştan sonra birkaç dakika devre dışı bırakmak yanlış alarmları önler.

Siren efekti nasıl oluşturuluyor?▾

Pasif buzzer iki farklı frekans arasında hızla gidip gelecek şekilde tone() ile sürülür (ör. 800 Hz ve 1200 Hz). Bu geçiş klasik alarm sesini taklit eder.

ESP32 MQ-2 Gaz/Duman Dedektörü Alarmı | BlueGrays