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.

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.
| Fitur | Nilai |
|---|---|
| Tegangan catu | 5 V |
| Arus pemanas | ~150 mA (sampai 800 mW) |
| Gas yang dideteksi | LPG, propana, butana, metana, hidrogen, alkohol, asap |
| Rentang deteksi | 300–10.000 ppm |
| Pemanasan awal | Beberapa menit setiap kali dinyalakan, 24–48 jam pada pemakaian pertama |
| Output | AO (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 modul | Fungsi | Arduino Uno |
|---|---|---|
| VCC | Daya (termasuk pemanas) | 5V |
| GND | Ground | GND |
| AO | Output analog, naik seiring gas | A0 |
| DO | Output digital, LOW ketika ambang terlampaui | D2 |

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:
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:
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.
Keluarga sensor MQ: mana yang dipilih?
| Sensor | Paling peka terhadap | Pemakaian umum |
|---|---|---|
| MQ-2 | LPG, propana, metana, hidrogen, asap | Alarm gas dan asap umum |
| MQ-3 | Alkohol | Alat uji napas alkohol |
| MQ-4 | Metana (gas alam) | Alarm kebocoran gas alam |
| MQ-5 | LPG, gas alam | Alarm gas dapur |
| MQ-7 | Karbon monoksida (CO) | Pemantauan CO (butuh siklus pemanas) |
| MQ-9 | CO dan gas mudah terbakar | Di sekitar kompor dan boiler |
| MQ-135 | Amonia, benzena, asap, NOx | Kualitas 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:
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.
Proyek untuk dibuat setelah membaca ini
Lihat semua proyek
Menggunakan Sensor Gas
Penjaga kecil yang menyadari kebocoran gas di dapur lebih dulu darimu. Sensor gas terus mengendus udara; selama semuanya aman LED hijau tetap menyala, dan ketika gas di udara melewati tingkat tertentu

Alarm Sensor Api dan Gas
Penjaga kecil yang langsung memperingatkanmu ketika ada gas bocor atau nyala api di suatu tempat. Sensor gas mengawasi gas di udara dan sensor api mengawasi cahaya api; selama semuanya aman LED hijau

Alarm Detektor Gas/Asap MQ-2 ESP32
Di proyek ini, gas mudah terbakar (LPG, metana, propana) dan asap dideteksi memakai modul sensor gas MQ-2, dan alarm mirip sirene diputar lewat buzzer pasif ketika terdeteksi. Output ambang digital (DO) sensor disambung ke GPIO 4 ESP32; ketika gas atau asap melewati ambang, DO menjadi LOW dan alarm terpicu. Kepekaan diatur lewat potensiometer modul. Buzzer pasif digerakkan dengan tone() untuk menghasilkan efek sirene dua frekuensi.
Artikel lainnya
Aplikasi BlueGrays
Rakit rangkaian ini langkah demi langkah di ponselmu
Skema pengkabelan, kode, dan daftar komponen dalam satu layar. 200+ proyek Arduino, ESP32, dan Pico siap dibuat.
Pindai dengan ponselmu
Arahkan kamera ke kode ini dan toko aplikasi di ponselmu akan terbuka.
atau buka toko aplikasi

