Parçalar · 4 dk okuma

MQ-2 Gaz Sensörü: Arduino ile Gaz ve Duman Alarmı Yapımı

MQ-2 gaz sensörü nasıl çalışır? LPG, metan ve duman algılama, modül pinleri, ön ısıtma, analog ve dijital okuma, R0 kalibrasyonu, MQ sensör ailesi, ESP32 ve Pico ile gaz alarmı.

MQ-2, havadaki yanıcı gazları ve dumanı algılayan ucuz ve çok yaygın bir gaz sensörüdür. LPG (tüp gaz), propan, bütan, metan (doğalgaz), hidrojen, alkol buharı ve duman karşısında tepki verir. Arduino projelerinde mutfak gaz alarmı, duman dedektörü ve hava kalitesi göstergesi yapmak için kullanılır. Bu yazıda sensörün içinde ne olduğunu, doğru bağlamayı, ön ısıtmanın neden şart olduğunu ve okunan değerleri nasıl yorumlayacağını adım adım göreceksin.

MQ-2 gaz sensörü modülü
MQ-2 gaz sensörü modülü: metal ağın altında ısıtıcılı algılama elemanı bulunur; modülün VCC, GND, DO ve AO olmak üzere 4 pini vardır.

MQ-2 nasıl çalışır?

Metal ağın altında, kalay dioksit (SnO₂) ile kaplanmış küçük bir seramik eleman ve onu birkaç yüz dereceye kadar ısıtan bir ısıtıcı tel bulunur. Temiz havada bu elemanın direnci yüksektir. Ortama yanıcı bir gaz ya da duman geldiğinde yüzeydeki kimyasal tepkime direnci düşürür; gaz ne kadar yoğunsa direnç o kadar azalır. Modül bu direnç değişimini bir gerilim bölücüyle gerilime çevirir: gaz arttıkça AO pinindeki gerilim yükselir.

ÖzellikDeğer
Besleme gerilimi5 V
Isıtıcı akımı~150 mA (en fazla 800 mW)
Algıladığı gazlarLPG, propan, bütan, metan, hidrojen, alkol, duman
Ölçüm aralığı300–10.000 ppm
Ön ısınmaHer açılışta birkaç dakika, ilk kullanımda 24–48 saat
ÇıkışlarAO (analog), DO (dijital, LM393 karşılaştırıcı)

Modül pinleri ve bağlantı

Çıplak MQ-2 sensörünün 6 bacağı vardır, ama projelerde genellikle hazır modül kullanılır. Modülün üzerinde yük direnci, LM393 karşılaştırıcı entegresi, eşik ayarı için küçük bir potansiyometre, güç LED'i ve alarm LED'i bulunur. AO pini gaz yoğunluğuyla orantılı bir gerilim verir; DO pini ise gaz seviyesi potansiyometreyle ayarladığın eşiği geçince durumunu değiştirir.

Modül piniGöreviArduino Uno
VCCBesleme (ısıtıcı dahil)5V
GNDToprakGND
AOAnalog çıkış, gaz arttıkça yükselirA0
DODijital çıkış, eşik aşılınca LOWD2
MQ sensör modülünün ön ve arka yüzü
MQ serisi modülün arka yüzü (solda): LM393 karşılaştırıcı, mavi eşik ayar potansiyometresi, POWER ve DOUT LED'leri. Sağdaki MQ-135 de aynı modül yapısını kullanır.
DO çıkışının eşiğini ayarlamak için sensörü temiz havada birkaç dakika ısıt, sonra potansiyometreyi DOUT LED'i tam sönecek noktaya getir ve biraz daha çevir. Böylece küçük dalgalanmalar alarm vermez, gerçek bir gaz artışı ise LED'i hemen yakar.

Ön ısıtma neden önemli?

Algılama elemanı ancak çalışma sıcaklığına ulaşınca doğru tepki verir. Enerji verdiğin ilk dakikalarda AO değeri yüksek başlar, sonra yavaş yavaş düşerek sabitlenir; bu sırada alınan ölçümler yanıltıcıdır. Bu yüzden kodda ilk 1–3 dakika alarm kontrolü yapmamak iyi bir alışkanlıktır. Yeni bir sensörü ilk kez kullanıyorsan, kararlı değerler için onu 24–48 saat boyunca sürekli çalıştırmak (yakma, burn-in) önerilir. Isıtıcı çalışırken metal ağ belirgin şekilde ısınır; bu normaldir, ama sensörün yanına yanıcı malzeme koyma.

Arduino ile gaz ve duman alarmı

Aşağıdaki kod hem analog değeri okuyup Seri Monitör'e yazar hem de DO pinini kontrol eder. Analog değer eşiği geçerse ya da DO pini LOW olursa bir buzzer öter:

Arduino (C++)
1const int AO_PIN = A0;
2const int DO_PIN = 2;
3const int BUZZER = 8;
4const int LIMIT = 400;          // analog eşik (0–1023) / analog threshold
5
6void setup() {
7  Serial.begin(9600);
8  pinMode(DO_PIN, INPUT);
9  pinMode(BUZZER, OUTPUT);
10  delay(60000);                 // 1 dk ön ısıtma / 1 min warm-up
11}
12
13void loop() {
14  int value = analogRead(AO_PIN);
15  bool gas = digitalRead(DO_PIN) == LOW;   // çoğu modülde LOW = gaz / LOW = gas on most modules
16
17  Serial.println(value);
18
19  if (value > LIMIT || gas) {
20    tone(BUZZER, 2000, 300);    // alarm sesi / alarm tone
21  }
22  delay(500);
23}

Buradaki 400 değeri sabit bir kural değildir: temiz havadaki değer sensöre, ortam sıcaklığına ve neme göre 100 ile 300 arasında değişebilir. Önce sensörü birkaç dakika çalıştırıp Seri Monitör'de temiz havadaki değeri gör, eşiği bunun belirgin şekilde üzerine koy. Test etmek için çakmağın gazını yakmadan sensöre kısa süre tutman yeterlidir; değer saniyeler içinde yükselir.

Analog değerden ppm'e: R0 kalibrasyonu

Modülde sensör, bir yük direnciyle (RL, çoğu modülde 1 kΩ) gerilim bölücü oluşturur. AO gerilimini kullanarak sensörün direncini (Rs) hesaplayabilirsin. Veri sayfasındaki grafikler gaz yoğunluğunu doğrudan Rs'ye değil, Rs/R0 oranına göre verir; R0, sensörün 1000 ppm hidrojendeki direncidir ve temiz havada Rs/R0 yaklaşık 9,8'dir. Yani sensörü temiz havada ölçüp 9,8'e bölerek R0'ı bulursun:

Arduino (C++)
1const float RL = 1.0;           // yük direnci (kΩ) / load resistor (kΩ)
2const float CLEAN_AIR = 9.8;    // temiz havada Rs/R0 / Rs/R0 in clean air
3float R0;
4
5float readRs() {
6  float v = analogRead(A0) * 5.0 / 1023.0;
7  if (v < 0.01) v = 0.01;       // sıfıra bölmeyi önle / avoid dividing by zero
8  return RL * (5.0 - v) / v;    // bölücüden Rs / Rs from the divider
9}
10
11void setup() {
12  Serial.begin(9600);
13  delay(60000);                 // ön ısıtma / warm-up
14  float sum = 0;
15  for (int i = 0; i < 50; i++) {
16    sum += readRs();
17    delay(100);
18  }
19  R0 = (sum / 50) / CLEAN_AIR;  // temiz havada kalibrasyon / clean-air calibration
20}
21
22void loop() {
23  float ratio = readRs() / R0;  // gaz arttıkça küçülür / falls as gas rises
24  Serial.println(ratio);
25  delay(1000);
26}

Oran 9,8 civarındaysa hava temizdir; 1'in altına inmesi yüksek bir gaz yoğunluğu anlamına gelir. Bu oranı ppm'e çevirmek için veri sayfasındaki logaritmik eğriler kullanılır; MQUnifiedsensor gibi kütüphaneler bu eğrileri hazır olarak içerir. Yine de sonucu yaklaşık bir değer olarak gör: sıcaklık, nem ve sensörün yaşı ölçümü etkiler, MQ-2 de birçok gaza aynı anda tepki verdiği için hangi gazı ölçtüğünü kesin olarak ayıramaz. Sıcaklık ve nemi izlemek için yanına bir DHT11 eklemek iyi bir fikirdir.

MQ-2 bir öğrenme ve hobi sensörüdür, sertifikalı bir gaz dedektörü değildir. Evinde gaz kaçağına ya da karbonmonoksit zehirlenmesine karşı tek koruma olarak asla kullanma; bunun için standartlara uygun (örneğin EN 50194 veya EN 50291) ticari dedektörler kullan. Kendi alarmını onlara ek bir sistem olarak düşün.

MQ sensör ailesi: hangisini seçmeli?

SensörEn duyarlı olduğu gazlarTipik kullanım
MQ-2LPG, propan, metan, hidrojen, dumanGenel gaz ve duman alarmı
MQ-3AlkolAlkol ölçer
MQ-4Metan (doğalgaz)Doğalgaz kaçağı alarmı
MQ-5LPG, doğalgazMutfak gaz alarmı
MQ-7Karbonmonoksit (CO)CO izleme (ısıtıcı döngüsü gerekir)
MQ-9CO ve yanıcı gazlarSoba ve kombi çevresi
MQ-135Amonyak, benzen, duman, NOxİç mekan hava kalitesi

ESP32 ve Raspberry Pi Pico ile MQ-2

MQ-2'nin ısıtıcısı 5 V ister; bu yüzden modülün VCC pinini ESP32'nin VIN (5V) pinine bağla. Ancak modül 5 V ile beslendiğinde AO çıkışı 5 V'a kadar çıkabilir, ESP32 ve Pico'nun analog girişleri ise en fazla 3,3 V kabul eder. AO ile analog pin arasına 10 kΩ ve 20 kΩ dirençlerle bir gerilim bölücü koyarak sinyali güvenli seviyeye indir. ESP32 ile gaz algılandığında telefona bildirim göndermek ya da bir röle üzerinden havalandırma fanını çalıştırmak çok kolaydır. Raspberry Pi Pico'da MicroPython ile aynı alarm şöyle görünür:

MicroPython
1from machine import ADC, Pin
2import time
3
4gas = ADC(26)                  # GP26 (ADC0), AO bölücü üzerinden / AO through a divider
5buzzer = Pin(15, Pin.OUT)
6LIMIT = 30000                  # 0–65535 arası eşik / threshold
7
8time.sleep(60)                 # ön ısıtma / warm-up
9while True:
10    value = gas.read_u16()
11    print(value)
12    buzzer.value(1 if value > LIMIT else 0)
13    time.sleep(0.5)

MQ-2 ile proje fikirleri

  • Mutfak gaz alarmı: Tüp ya da doğalgaz kaçağında buzzer öttüren ve kırmızı LED yakan bir alarm.
  • Duman dedektörü: Atölyede lehim ya da yanık kokusu algılandığında uyarı veren bir sistem.
  • Otomatik havalandırma: Gaz seviyesi yükselince röleyle aspiratörü çalıştıran bir devre.
  • Alev ve gaz alarmı: MQ-2'yi bir alev sensörüyle birleştirip iki tehlikeyi birden izle.
  • ESP32 bildirimli dedektör: Gaz algılandığında telefona Telegram mesajı gönder.
  • Hava kalitesi göstergesi: Ölçülen oranı bir OLED ekranda grafik olarak göster.

Sık yapılan hatalar ve çözümleri

  • Açılışta hemen alarm veriyor: Sensör henüz ısınmadı; ilk 1–3 dakika alarm kontrolünü atla.
  • Değer hiç değişmiyor: AO yerine DO pini analog girişe bağlanmış ya da modül 5 V almıyor.
  • DOUT LED'i hep yanıyor: Potansiyometre eşiği çok düşük ayarlanmış; temiz havada LED sönene kadar çevir.
  • Değerler gün içinde kayıyor: Sıcaklık ve nem değişimi; eşiği belirli aralıklarla temiz havada yeniden belirle.
  • ESP32'de analog değer hep en üstte: 5 V'luk AO sinyali doğrudan bağlanmış; gerilim bölücü kullan.
  • Pil çabuk bitiyor: Isıtıcı sürekli yaklaşık 150 mA çeker; MQ-2 pille uzun süre çalışmak için uygun değildir.

MQ-2'yi bir buzzer ve bir LED ile birleştirmek, sensörlerden gerçek bir uyarı sistemine geçmenin en kolay yoludur. BlueGrays uygulamasında gaz sensörü kullanımı, alev ve gaz sensörü alarmı ve ESP32 ile MQ-2 gaz ve duman dedektörü alarmı projelerini devre şemaları ve kodlarıyla bulabilirsin.

Sıkça sorulan sorular

MQ-2 hangi gazları algılar?

MQ-2; LPG, propan, bütan, metan (doğalgaz), hidrojen, alkol buharı ve dumana duyarlıdır. Karbonmonoksite zayıf tepki verir. Birçok gaza aynı anda tepki verdiği için hangi gazın ortamda olduğunu tek başına ayırt edemez.

MQ-2 ne kadar süre ısınmalı?

Her açılışta ölçümlerin oturması için birkaç dakika (pratikte 1–3 dakika) bekle. Yeni bir sensörü ilk kez kullanıyorsan, en kararlı sonuçlar için 24–48 saat boyunca sürekli çalıştırman önerilir.

Doğalgaz kaçağı için MQ-2 mi MQ-4 mü kullanmalıyım?

MQ-2 metanı da algılar ama birçok gaza tepki verir. Doğalgaz (metan) için daha seçici olan MQ-4 daha uygundur. Her iki durumda da hobi sensörünü sertifikalı bir gaz dedektörünün yerine kullanma.

MQ-2 ile karbonmonoksit ölçebilir miyim?

MQ-2 karbonmonoksite yalnızca zayıf tepki verir. CO için ısıtıcısı yüksek ve düşük gerilim arasında döngüyle çalıştırılan MQ-7 kullanılır; ancak can güvenliği için mutlaka EN 50291 standardına uygun bir CO dedektörü kullan.

Sensörün ısınması normal mi?

Evet. İçindeki ısıtıcı algılama elemanını sürekli yüksek sıcaklıkta tutar, bu yüzden metal ağ elle dokunulduğunda belirgin şekilde sıcaktır. Sensörü yanıcı malzemelerden uzak tut ve çalışırken dokunma.

MQ-2'yi pille çalıştırabilir miyim?

Çalıştırabilirsin ama uzun sürmez: ısıtıcı sürekli yaklaşık 150 mA çeker. 2000 mAh'lik bir powerbank yaklaşık 13 saat dayanır. Kendi projen için süreyi pil ömrü aracıyla hesaplayabilirsin; sürekli izleme gereken yerlerde adaptör kullan.

Tüm projeleri gör

MQ-2 gaz sensörünün nasıl çalıştığını, neden ısınması gerektiğini, Arduino'ya bağlamayı, eşik ayarını ve buzzer'lı bir gaz ve duman alarmı yapmayı adım adım öğren.