Komponen · 5 mnt baca

Sensor Gas MQ-2: Membuat Alarm Gas dan Asap dengan Arduino

Bagaimana cara kerja sensor gas MQ-2? Mendeteksi LPG, metana, dan asap, pin modul, pemanasan awal, pembacaan analog dan digital, kalibrasi R0, keluarga sensor MQ, serta alarm gas dengan ESP32 dan Pico.

MQ-2 adalah sensor gas yang murah dan sangat umum untuk mendeteksi gas mudah terbakar dan asap di udara. Sensor ini merespons LPG (gas elpiji), propana, butana, metana (gas alam), hidrogen, uap alkohol, dan asap. Di proyek Arduino, sensor ini dipakai untuk membuat alarm gas dapur, detektor asap, dan indikator kualitas udara. Di artikel ini kamu akan melihat langkah demi langkah apa yang ada di dalam sensor, cara menghubungkannya dengan benar, kenapa pemanasan awal wajib dilakukan, dan cara menafsirkan nilai yang kamu baca.

Modul sensor gas MQ-2
Modul sensor gas MQ-2: elemen pengindra yang dipanaskan berada di bawah jaring logam; modulnya punya 4 pin: VCC, GND, DO, dan AO.

Bagaimana cara kerja MQ-2?

Di bawah jaring logam ada elemen keramik kecil berlapis timah dioksida (SnO₂) dan kawat pemanas yang menghangatkannya sampai beberapa ratus derajat. Di udara bersih, hambatan elemen ini tinggi. Ketika gas mudah terbakar atau asap mencapainya, reaksi kimia di permukaannya menurunkan hambatan; makin pekat gasnya, makin rendah hambatannya. Modul mengubah perubahan hambatan ini menjadi tegangan dengan pembagi tegangan: makin banyak gas, makin tinggi tegangan di pin AO.

FiturNilai
Tegangan catu5 V
Arus pemanas~150 mA (sampai 800 mW)
Gas yang dideteksiLPG, propana, butana, metana, hidrogen, alkohol, asap
Rentang deteksi300–10.000 ppm
Pemanasan awalBeberapa menit setiap kali dinyalakan, 24–48 jam pada pemakaian pertama
OutputAO (analog), DO (digital, komparator LM393)

Pin modul dan pengkabelan

Sensor MQ-2 polos punya 6 kaki, tetapi proyek biasanya memakai modul siap pakai. Modul ini membawa resistor beban, chip komparator LM393, potensiometer kecil untuk mengatur ambang, LED power, dan LED alarm. Pin AO memberikan tegangan yang sebanding dengan konsentrasi gas, sedangkan pin DO berganti status begitu level gas melewati ambang yang kamu atur dengan potensiometer.

Pin modulFungsiArduino Uno
VCCDaya (termasuk pemanas)5V
GNDGroundGND
AOOutput analog, naik seiring gasA0
DOOutput digital, LOW ketika ambang terlampauiD2
Bagian depan dan belakang modul sensor MQ
Bagian belakang modul seri MQ (kiri): komparator LM393, potensiometer ambang berwarna biru, LED POWER dan DOUT. MQ-135 di kanan memakai desain modul yang sama.
Untuk mengatur ambang DO, panaskan sensor di udara bersih selama beberapa menit, lalu putar potensiometer sampai titik LED DOUT tepat padam, dan putar sedikit lagi. Dengan begitu fluktuasi kecil tidak memicu alarm, sedangkan kenaikan gas yang sungguhan langsung menyalakan LED.

Kenapa pemanasan awal itu penting?

Elemen pengindra baru merespons dengan benar begitu mencapai suhu kerjanya. Di menit-menit pertama setelah dinyalakan, nilai AO mulai dari angka tinggi lalu pelan-pelan turun dan stabil; bacaan yang diambil selama waktu ini menyesatkan. Karena itu sebaiknya lewati pengecekan alarm di kodemu selama 1–3 menit pertama. Kalau kamu memakai sensor baru untuk pertama kalinya, menjalankannya terus-menerus selama 24–48 jam (burn-in) disarankan agar nilainya stabil. Selama pemanas bekerja, jaring logamnya terasa cukup hangat; itu normal, tetapi jangan taruh bahan mudah terbakar di dekat sensor.

Alarm gas dan asap dengan Arduino

Kode di bawah membaca nilai analog dan mencetaknya ke Serial Monitor, sekaligus memeriksa pin DO. Kalau nilai analog melewati ambang atau pin DO menjadi LOW, buzzer berbunyi:

C++ (Arduino IDE)
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}

Nilai 400 di sini bukan aturan tetap: bacaan di udara bersih bisa berkisar antara 100 dan 300 tergantung sensornya, suhu ruangan, dan kelembapan. Jalankan dulu sensornya beberapa menit dan lihat nilai udara bersih di Serial Monitor, lalu atur ambangnya jelas di atas nilai itu. Untuk mengujinya, cukup dekatkan gas dari korek api ke sensor sebentar tanpa menyalakannya; nilainya naik dalam hitungan detik.

Dari nilai analog ke ppm: kalibrasi R0

Di modul, sensor membentuk pembagi tegangan dengan resistor beban (RL, 1 kΩ di kebanyakan modul). Dengan tegangan AO, kamu bisa menghitung hambatan sensor (Rs). Grafik di datasheet memberikan konsentrasi gas bukan terhadap Rs langsung, tetapi terhadap rasio Rs/R0; R0 adalah hambatan sensor di 1000 ppm hidrogen, dan di udara bersih Rs/R0 sekitar 9,8. Jadi kamu mencari R0 dengan mengukur sensor di udara bersih lalu membaginya dengan 9,8:

C++ (Arduino IDE)
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}

Kalau rasionya sekitar 9,8, udaranya bersih; turun di bawah 1 berarti konsentrasi gasnya tinggi. Untuk mengubah rasio ini ke ppm, dipakai kurva logaritmik di datasheet; library seperti MQUnifiedsensor sudah menyertakan kurva ini siap pakai. Meski begitu, anggap hasilnya sebagai perkiraan: suhu, kelembapan, dan umur sensor memengaruhi bacaan, dan karena MQ-2 merespons banyak gas sekaligus, sensor ini tidak bisa memastikan gas apa yang sedang diukur. Menambahkan DHT11 untuk memantau suhu dan kelembapan adalah ide yang bagus.

MQ-2 adalah sensor untuk belajar dan hobi, bukan detektor gas bersertifikat. Jangan pernah memakainya sebagai satu-satunya perlindungan terhadap kebocoran gas atau keracunan karbon monoksida di rumah; untuk itu pakai detektor komersial yang memenuhi standar (misalnya EN 50194 atau EN 50291). Anggap alarm buatanmu sebagai sistem tambahan di sampingnya.

Keluarga sensor MQ: mana yang dipilih?

SensorPaling peka terhadapPemakaian umum
MQ-2LPG, propana, metana, hidrogen, asapAlarm gas dan asap umum
MQ-3AlkoholAlat uji napas alkohol
MQ-4Metana (gas alam)Alarm kebocoran gas alam
MQ-5LPG, gas alamAlarm gas dapur
MQ-7Karbon monoksida (CO)Pemantauan CO (butuh siklus pemanas)
MQ-9CO dan gas mudah terbakarDi sekitar kompor dan boiler
MQ-135Amonia, benzena, asap, NOxKualitas udara dalam ruangan

MQ-2 dengan ESP32 dan Raspberry Pi Pico

Pemanas MQ-2 butuh 5 V, jadi hubungkan pin VCC modul ke pin VIN (5V) di ESP32. Namun ketika modul diberi daya 5 V, output AO bisa naik sampai 5 V, sedangkan input analog ESP32 dan Pico menerima maksimal 3,3 V. Pasang pembagi tegangan dari resistor 10 kΩ dan 20 kΩ di antara AO dan pin analog untuk menurunkan sinyal ke level yang aman. Dengan ESP32, mudah sekali mengirim notifikasi ke ponselmu ketika gas terdeteksi, atau menyalakan kipas ventilasi lewat relay. Di Raspberry Pi Pico, alarm yang sama terlihat seperti ini dengan MicroPython:

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)

Ide proyek MQ-2

  • Alarm gas dapur: alarm yang membunyikan buzzer dan menyalakan LED merah ketika gas elpiji atau gas alam bocor.
  • Detektor asap: sistem yang memperingatkanmu ketika mendeteksi asap solder atau bau terbakar di bengkel.
  • Ventilasi otomatis: rangkaian yang menyalakan exhaust fan lewat relay ketika level gas naik.
  • Alarm api dan gas: gabungkan MQ-2 dengan sensor api untuk mengawasi kedua bahaya sekaligus.
  • Detektor ESP32 dengan notifikasi: kirim pesan Telegram ke ponselmu ketika gas terdeteksi.
  • Layar kualitas udara: tampilkan rasio yang diukur sebagai grafik di layar OLED.

Kesalahan umum dan cara mengatasinya

  • Alarm langsung berbunyi setelah dinyalakan: sensornya belum panas; lewati pengecekan alarm selama 1–3 menit pertama.
  • Nilainya tidak pernah berubah: pin DO yang terhubung ke input analog, bukan AO, atau modul tidak mendapat 5 V.
  • LED DOUT selalu menyala: ambang di potensiometer diatur terlalu rendah; putar di udara bersih sampai LED padam.
  • Nilainya bergeser sepanjang hari: suhu dan kelembapan berubah; atur ulang ambangnya di udara bersih sesekali.
  • Nilai analog selalu maksimum di ESP32: sinyal AO 5 V dihubungkan langsung; pakai pembagi tegangan.
  • Baterai cepat habis: pemanas menarik sekitar 150 mA terus-menerus; MQ-2 tidak cocok dijalankan lama dengan baterai.

Menggabungkan MQ-2 dengan buzzer dan LED adalah cara termudah untuk melangkah dari sensor ke sistem peringatan sungguhan. Di aplikasi BlueGrays ada dasar-dasar sensor gas, alarm sensor api dan gas, serta alarm detektor gas dan asap MQ-2 dengan ESP32, lengkap dengan skema rangkaian dan kode.

Pertanyaan umum

Gas apa saja yang dideteksi MQ-2?

MQ-2 peka terhadap LPG, propana, butana, metana (gas alam), hidrogen, uap alkohol, dan asap. Responsnya terhadap karbon monoksida lemah. Karena bereaksi terhadap banyak gas sekaligus, sensor ini sendirian tidak bisa membedakan gas mana yang ada.

Berapa lama MQ-2 perlu dipanaskan?

Tunggu beberapa menit (dalam praktiknya 1–3 menit) setiap kali dinyalakan agar bacaannya stabil. Kalau kamu memakai sensor baru untuk pertama kalinya, menjalankannya terus-menerus selama 24–48 jam disarankan untuk hasil yang paling stabil.

Untuk kebocoran gas alam, sebaiknya pakai MQ-2 atau MQ-4?

MQ-2 juga mendeteksi metana, tetapi merespons banyak gas. MQ-4 lebih selektif terhadap gas alam (metana), jadi lebih cocok. Apa pun pilihannya, jangan pakai sensor hobi sebagai pengganti detektor gas bersertifikat.

Bisakah karbon monoksida diukur dengan MQ-2?

Respons MQ-2 terhadap karbon monoksida lemah. Untuk CO dipakai MQ-7, dengan pemanas yang diganti-ganti antara tegangan tinggi dan rendah; tetapi demi keamanan, selalu pakai detektor CO yang memenuhi standar EN 50291.

Apakah normal kalau sensornya panas?

Ya. Pemanas di dalamnya menjaga elemen pengindra di suhu tinggi sepanjang waktu, jadi jaring logamnya terasa cukup panas ketika disentuh. Jauhkan sensor dari bahan mudah terbakar dan jangan menyentuhnya selama bekerja.

Bisakah MQ-2 dijalankan dengan baterai?

Bisa, tetapi tidak lama: pemanas menarik sekitar 150 mA terus-menerus. Power bank 2000 mAh bertahan sekitar 13 jam. Lama pemakaian untuk proyekmu sendiri bisa kamu hitung dengan alat daya tahan baterai; kalau butuh pemantauan terus-menerus, pakai adaptor listrik.

Lihat semua proyek