Berikan donasi untuk mendukung pengembangan konten Arduino berkualitas yang lebih baik

Deteksi Gas Bocor dengan Arduino & MQ-2

Bikin detektor gas LPG/asap simpel, upload kode langsung dari HP pakai ArduinoDroid! Cocok buat pemula tanpa laptop.

Komponen yang Dibutuhkan Untuk Proyek Ini

10 item

Di bawah ini Anda akan menemukan semua komponen yang diperlukan untuk menyelesaikan tutorial Arduino ini. Setiap komponen mencakup tautan afiliasi ke berbagai marketplace tempat Anda dapat membelinya.

Arduino Uno

Arduino Uno

Mikrokontroler

Mikrokontroler utama untuk project detektor gas.

Rp 58.980
Harga terbaik di Shopee
Sensor Gas MQ-2

Sensor Gas MQ-2

Sensor

Mendeteksi gas LPG, asap, dan hidrogen.

Rp 15.900
Harga terbaik di Shopee
Layar OLED 128x64 I2C

Layar OLED 128x64 I2C

Display

Menampilkan status deteksi gas secara real-time.

Rp 22.900
Harga terbaik di Tiktok
LED RGB

LED RGB

LED

Indikator visual status (aman/bahaya).

Rp 690
Harga terbaik di Tiktok
Resistor 220Ω

Resistor 220Ω

Resistor

Membatasi arus pada LED RGB.

Rp 190
Harga terbaik di Tokopedia
Buzzer

Buzzer

Output

Alarm suara jika terdeteksi gas berbahaya.

Rp 1.500
Harga terbaik di Tokopedia
Breadboard

Breadboard

Prototipe

Untuk merangkai semua komponen tanpa solder.

Rp 8.500
Harga terbaik di Shopee
Kabel Jumper Male-to-Male

Kabel Jumper Male-to-Male

Kabel

Menghubungkan komponen di breadboard.

Rp 9.980
Harga terbaik di Shopee
Kabel Jumper Male-to-Female

Kabel Jumper Male-to-Female

Kabel

Menghubungkan komponen ke Arduino.

Rp 9.980
Harga terbaik di Shopee
Kabel OTG USB C

Kabel OTG USB C

Kabel

Untuk menghubungkan Arduino ke HP Android.

Rp 27.502
Harga terbaik di Tokopedia

Kode Sumber

DeteksiGasBocor.ino
cpp
86 lines
2670 characters
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Definisikan ukuran layar OLED
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET    -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

#define MQ2_PIN A0  // Pin untuk sensor MQ-2
#define RED_PIN 9   // Pin untuk LED RGB (merah)
#define GREEN_PIN 10 // Pin untuk LED RGB (hijau)
#define BLUE_PIN 11  // Pin untuk LED RGB (biru)
#define BUZZER_PIN 8 // Pin untuk buzzer

void setup() {
  Serial.begin(9600);  // Mulai komunikasi serial
  
  // Inisialisasi display OLED
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("Alokasi SSD1306 gagal"));
    for(;;); // Loop selamanya jika OLED gagal
  }
  display.clearDisplay();  // Bersihkan layar
  display.setTextSize(1);  // Atur ukuran teks
  display.setTextColor(SSD1306_WHITE);  // Atur warna teks
  display.setCursor(0,0);  // Atur posisi kursor
  display.println(F("Detektor Gas/Asap"));  // Tampilkan teks awal dalam bahasa Indonesia
  display.display();  // Perbarui layar
  
  // Set pin LED RGB sebagai output
  pinMode(RED_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);
  pinMode(BLUE_PIN, OUTPUT);
  
  // Set pin buzzer sebagai output
  pinMode(BUZZER_PIN, OUTPUT);
}

void loop() {
  // Baca nilai dari sensor MQ-2
  int sensorValue = analogRead(MQ2_PIN);
  
  // Tentukan status berdasarkan nilai sensor (sesuaikan threshold jika perlu)
  String status;
  if (sensorValue < 200) {
    setRGB(0, 255, 0); // Hijau untuk aman
    status = "Aman";
    noTone(BUZZER_PIN); // Matikan buzzer
  } else if (sensorValue < 600) {
    setRGB(255, 255, 0); // Kuning untuk peringatan
    status = "Peringatan";
    noTone(BUZZER_PIN); // Matikan buzzer
  } else {
    setRGB(255, 0, 0); // Merah untuk bahaya
    status = "Bahaya";
    tone(BUZZER_PIN, 1000); // Mainkan nada 1000Hz
    delay(200); // Suara selama 200ms
    noTone(BUZZER_PIN); // Hentikan nada
    delay(200); // Jeda 200ms untuk alarm intermiten
  }
  
  // Cetak ke Monitor Serial
  Serial.print("Nilai MQ-2: ");
  Serial.print(sensorValue);
  Serial.print(" | Status: ");
  Serial.println(status);
  
  // Perbarui tampilan OLED
  display.clearDisplay();
  display.setCursor(0,0);
  display.print(F("Gas/Asap: "));
  display.println(status);
  display.print(F("Sensor: "));
  display.println(sensorValue);
  display.display();
  
  delay(1000); // Perbarui setiap 1 detik
}

void setRGB(int red, int green, int blue) {
  analogWrite(RED_PIN, red);  // Tulis nilai PWM untuk merah
  analogWrite(GREEN_PIN, green); // Tulis nilai PWM untuk hijau
  analogWrite(BLUE_PIN, blue); // Tulis nilai PWM untuk biru
}

Skema/Diagram Rangkaian

Petunjuk Langkah demi Langkah

Siapkan Komponen

Siapkan Arduino Uno, sensor gas MQ-2, layar OLED 128x64 I2C, LED RGB, resistor 220Ω, buzzer, breadboard, kabel jumper male-to-male, kabel jumper male-to-female, dan kabel OTG USB C.

Hubungkan OLED ke Arduino

Sambungkan SDA OLED ke A4, SCL ke A5, VCC ke 5V, dan GND ke GND pada Arduino.

Hubungkan Sensor MQ-2

Sambungkan AOUT MQ-2 ke A0 Arduino, VCC ke 5V, dan GND ke GND.

Hubungkan LED RGB

Sambungkan kaki merah ke pin 9 (lewat resistor 220Ω), hijau ke pin 10, biru ke pin 11, dan kaki negatif ke GND.

Hubungkan Buzzer

Sambungkan positif buzzer ke pin 8 dan negatif ke GND.

Hubungkan Arduino ke HP

Gunakan kabel OTG untuk menghubungkan Arduino ke HP Android.

Install ArduinoDroid

Download dan install ArduinoDroid di HP Android kamu. https://arduinodroid.id.uptodown.com/android

Upload Kode ke Arduino

Tulis kode deteksi gas di ArduinoDroid, lalu upload ke Arduino melalui OTG.

Uji Detektor Gas

Nyalakan Arduino. Jika sensor mendeteksi gas/asap, OLED menampilkan 'Bahaya', LED merah dan buzzer aktif. Jika aman, OLED menampilkan 'Aman', LED hijau menyala.

Tips Lanjutan

Untuk project lebih kompleks, sebaiknya gunakan laptop agar proses debugging lebih mudah.

Selesai!

Project detektor gas siap digunakan. Like, komen, dan follow untuk tutorial lainnya!

Video Hasil