Cegah Bahaya Gas Bocor dengan Smart Fan Kontrol PID Berbasis Arduino

Pernahkah Sobat maker merasa was-was saat meninggalkan dapur atau laboratorium dengan tabung LPG yang masih terpasang? Kebocoran gas bukan cuma soal bau menyengat, tapi ancaman nyata kebakaran dan ledakan yang bisa terjadi dalam hitungan detik. Memasang alarm suara saja sering kali belum cukup. Kita butuh sistem deteksi kebocoran gas Arduino PID yang proaktif; tidak hanya berteriak lewat buzzer, tapi juga langsung beraksi membuang gas keluar ruangan melalui sistem sirkulasi udara yang cerdas.

Dalam panduan ini, kita akan merakit sistem pembuang gas otomatis yang responsif. Kipas DC di sistem ini tidak sekadar “nyala atau mati”, melainkan diatur kecepatannya secara presisi menggunakan algoritma PID berdasarkan konsentrasi gas yang terdeteksi.

Kenapa Harus Pakai Kontrol PID?

Sobat mungkin berpikir, “Kenapa tidak pakai kontrol on/off sederhana saja?” Masalahnya, kontrol biasa membuat kipas langsung berputar maksimal saat ambang batas tercapai, yang sering kali menyebabkan lonjakan daya dan suara bising yang tiba-tiba.

Dengan metode Proportional Integral Derivative (PID), sistem menjadi jauh lebih stabil:

  • Proportional (P): Memberikan respons cepat berdasarkan seberapa besar selisih gas yang terdeteksi dengan batas aman.
  • Integral (I): Memastikan sisa-isisa gas yang sedikit namun menetap (kesalahan kumulatif) benar-benar dibuang habis hingga mencapai titik nol.
  • Derivative (D): Bertugas sebagai “rem” agar perubahan kecepatan kipas tidak terlalu drastis, menjaga sistem tetap stabil.

Insight Maker: Dalam proyek exhaust (pembuangan) ini, kita menggunakan konsep Reverse Error (Error = Nilai Terukur – Setpoint). Mengapa? Karena pada sistem pendingin atau pembuang, kita ingin kipas semakin kencang saat nilai sensor melampaui batas, berbeda dengan sistem pemanas yang justru sebaliknya.

Persiapan Alat dan Bahan

Siapkan komponen berikut untuk mulai membangun proyek Sobat:

KomponenFungsi
Arduino UnoOtak utama sistem untuk membaca sensor dan mengontrol komponen
Sensor Gas MQ-2Mendeteksi keberadaan LPG, asap, dan gas CO
LCD I2C 16×2Menampilkan kadar gas secara real-time
Driver Motor L298NMenjadi penghubung dan penguat arus antara Arduino dengan kipas DC
Kipas DC 12VMembantu sirkulasi dan membuang udara yang mengandung gas
LED Merah & BuzzerMemberikan indikator visual dan suara saat kondisi berbahaya
Power Supply 12V & Resistor 220 ΩMenyediakan sumber daya sistem dan membatasi arus LED
Breadboard & Kabel JumperMemudahkan perakitan dan koneksi antar-komponen

Jika Sobat tertarik mendalami logika kendali diskrit lainnya, Sobat bisa melihat referensi pada proyek Smart Food Warmer Arduino PID Diskrit untuk memperkaya pemahaman tentang implementasi PID di mikrokontroler.

Skematik Rangkaian

Menghubungkan komponen ini membutuhkan ketelitian pada bagian driver motor. Sensor MQ-2 dihubungkan ke Pin Analog (A0). Untuk indikator visual dan suara, pasang LED pada Pin 2 dan Buzzer pada Pin 3.

Bagian yang sering terlewat adalah koneksi Driver Motor L298N. Ingat, pin output Arduino hanya mampu mengeluarkan arus kecil (~40mA), sedangkan kipas 12V butuh arus besar yang bisa merusak Arduino jika dipasang langsung.

  • Hubungkan Pin 5 (ENA) ke driver untuk mengatur kecepatan (PWM).
  • Hubungkan Pin 6 (IN1) dan Pin 7 (IN2) ke driver untuk menentukan arah putaran kipas agar menyedot udara keluar.

Logika Cara Kerja Sistem

Sistem ini tidak langsung bekerja begitu dinyalakan. Ada beberapa tahapan krusial:

  1. Kalibrasi Udara Bersih: Saat power-on, alat akan melakukan kalibrasi selama kurang lebih 25 detik (50 sampel dengan interval 500ms) untuk menentukan nilai resistansi sensor (Ro) di udara normal.
  2. Digital Filtering: Sensor MQ-2 sering kali “berisik” (datanya naik-turun drastis). Kode ini menggunakan filter digital (0.85 * gasFilter + 0.15 * pv) untuk menghaluskan pembacaan agar putaran kipas tidak bergetar/jitter.
  3. Klasifikasi Threshold:
    • AMAN: Kadar gas < 1000 ppm.
    • WASPADA: Kadar gas 1000 – 5000 ppm.
    • PID ACTIVE: Saat gas menyentuh 5000 ppm (Setpoint), PID mulai menghitung kecepatan kipas.
    • BAHAYA: Jika gas mencapai >= 6000 ppm, LED dan Buzzer akan aktif penuh sebagai alarm utama.

Bedah Kode Program (Simplifikasi)

Berikut adalah potongan logika utama yang menangani perhitungan PID dan fitur keselamatan Anti-Windup:

// Parameter PID hasil tuning
float Kp = 0.05, Ki = 0.0015, Kd = 0.02;
float setPoint = 5000.0; 

// Filtering data sensor agar stabil
gasFilter = 0.85 * gasFilter + 0.15 * pv;

// Hitung Error (Reverse Error untuk Pembuangan)
error = gasFilter - setPoint; 

// Integral & Anti-Windup (Mencegah kipas berputar terus saat gas sudah hilang)
integral = constrain(integral + (error * Ts), -20000, 20000);

// Hitung Sinyal PID
controlSignal = (Kp * error) + (Ki * integral) + (Kd * derivative);

// Output PWM ke Kipas (0-255)
analogWrite(ENA, constrain(controlSignal, 0, 255));

Pro-Tip: Fitur constrain pada variabel integral di atas berfungsi sebagai Anti-Windup. Ini mencegah nilai integral menumpuk terlalu besar yang bisa mengakibatkan kipas tetap berputar kencang meski gas sudah turun di bawah ambang batas.

Kesimpulan

Sistem deteksi kebocoran gas Arduino PID ini menawarkan tingkat keamanan yang lebih tinggi daripada sekadar alarm biasa. Dengan adanya respons adaptif dari kipas, konsentrasi gas berbahaya dapat segera dikurangi secara otomatis sebelum mencapai titik yang memicu ledakan.

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *

Mau Cetak PCB Custom? Cek Biaya