Alat Pendeteksi Asap dan Api

Pada tutorial kali ini akan dibahas mengenai alat pendeteksi asap dan api yang merupakan pengembangan dari percobaan sebelumnya Membuat Alarm Kebakaran (Pendeteksi Api)Pengujian Sensor Gas MQ 135 & Mencoba Modul LED 3 Warna (RGB). Dari percobaan-percobaan tersebut, akan dijadikan ke dalam satu modul Arduino. Untuk jelasnya berikut penjelasannya:
Pendahulan

Alat ini dapat dimanfaatkan untuk menjadi pengaman rumah atau kantor. Apabila menteksi asap atau api alat ini akan memberi peringatan dalam bentuk suara buzzer dan indikator warna led. Dengan demikian akan lebih mudah untuk menjadi peringatan dini bagi orang disekitar.

Baca juga:
Membuat Alarm Kebakaran (Pendeteksi Api)
Mencoba Modul LED 3 Warna (RGB)

Pin Out Model / Sensor:

Modul/ Sensor yang digunakan pada percobaan ini adalah

  • Sensor asap : MQ 135
  • Sensor api : Flame sensor module (KY - 026)
  • LED 3 Warna : 3-color LED module  (KY - 016)
  • Buzzer
Berikut tampilan modul / sensor yang digunakan:
Modul/ Sesor yang digunakan dalam pembuatan alat pendeteksi Asap dan Api

Konfigurasi Pin:

Berikut gambar konfigurasi pin modul / sensor ke Arduino:
Konfigurasi alat pendeteksi Asap dan Api

Keterangan:

(+) Buzeer - 3,3V / 5V Arduino
Kaki lain Buzzer - pin 8 Arduino
A0 sensor Gas- pin A0 Arduino
A0 sensor Api - pin A1 Arduino
D0 sensor Api - pin 3 Arduino
Pin  R Led - pin 9 Arduino
Pin  B Led - pin 10 Arduino
Pin  G Led - pin 11 Arduino
(+) sensor / Modul - pin 5V Arduino (diparalel)
(-) senosr / Modul - pin GND Arduino (diparalel)

Kode program:

int pinMerah =11; //pin untuk warna merah
int pinBiru =10; //pin untuk warna biru
int pinHijau =9; //pin untuk warna hijau
int led =13;// pin led yg digunakan
int pinDigitalApi =3;//deklarasi interface sensor api
int analogApi =A1;// deklarasi interface sensor api
int pinDigitalGas = 4;
int sensorGas;

int val;// deklarasi nilai variable val
float sensor; // membaca nilai analog
float sinVal;
int toneVal;

void setup()
{
  pinMode (led, OUTPUT);// deklarasi LED sebagai output
  pinMode (pinDigitalApi, INPUT); //deklarasi buttinpin sebagai inputan
  pinMode (analogApi, INPUT); //deklarasi analogApi sebg inputan
  pinMode(8,OUTPUT);
  pinMode (pinMerah, OUTPUT);
  pinMode (pinBiru, OUTPUT);
  pinMode (pinHijau, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  sensor = analogRead(analogApi);
  Serial.print("Sensor Api: ");
  Serial.println (sensor);// menampilkan nilai pembacaan analog
  
  sensorGas = analogRead(0);       // read analog input pin 0 (nilai sensor gas)
  Serial.print("Gas: ");
  Serial.println(sensorGas,DEC);  // prints the value read
    
  val= digitalRead (pinDigitalApi);// membaca nilai dari pinDigitalApi
  if ((val==HIGH) && (sensorGas>=410))// ketika sensor mendeteksi sinal led berkedip
  {
    //warna merah
    analogWrite(pinMerah,255); //memberi nilai PWM warna merah
    analogWrite(pinHijau,0); //memberi nilai PWM warna hijau
    analogWrite(pinBiru,0); //memberi nilai PWM warna biru
    digitalWrite(led, HIGH);
    //Mengeluarkan Bunyi Alarm dari Buzzer
    for (int x=0; x<180; x++){
    //convert degrees to radians then obtain sin value
    //mengubah derajat ke radian lalu mendapatkan hasil sin
    sinVal = (sin(x*(3.1412/180)));
    //generate a frequency from the sin value
    //menghasilkan frekuensi dari hasil sin
    toneVal = 2000+(int (sinVal*1000));
    tone(8, toneVal);
    delay (2);
  }
  }
  
  if ((val==HIGH) && (sensorGas<410))// ketika sensor mendeteksi sinal led berkedip
  {
    //warna merah
    analogWrite(pinMerah,255); //memberi nilai PWM warna merah
    analogWrite(pinHijau,0); //memberi nilai PWM warna hijau
    analogWrite(pinBiru,0); //memberi nilai PWM warna biru
    digitalWrite(led, HIGH);
    //Mengeluarkan Bunyi Alarm dari Buzzer
    for (int x=0; x<180; x++){
    //convert degrees to radians then obtain sin value
    //mengubah derajat ke radian lalu mendapatkan hasil sin
    sinVal = (sin(x*(3.1412/180)));
    //generate a frequency from the sin value
    //menghasilkan frekuensi dari hasil sin
    toneVal = 2000+(int (sinVal*1000));
    tone(8, toneVal);
    delay (2);
  }
  }
  
  if ((val==LOW) && (sensorGas>=410))// ketika sensor mendeteksi sinal led berkedip
  {
    //warna kuning
    analogWrite(pinMerah,255); //memberi nilai PWM warna merah
    analogWrite(pinHijau,255); //memberi nilai PWM warna hijau
    analogWrite(pinBiru,0); //memberi nilai PWM warna biru
    digitalWrite(led, HIGH);
    //Mengeluarkan Bunyi Alarm dari Buzzer
    for (int x=0; x<270; x++){
    //convert degrees to radians then obtain sin value
    //mengubah derajat ke radian lalu mendapatkan hasil sin
    sinVal = (sin(x*(3.1412/270)));
    //generate a frequency from the sin value
    //menghasilkan frekuensi dari hasil sin
    toneVal = 1000+(int (sinVal*500));
    tone(8, toneVal);
    delay (2);
  }
  }
  
  if ((val==LOW) && (sensorGas<410))
  {
     //warna hijau
    analogWrite(pinMerah,0); //memberi nilai PWM warna merah
    analogWrite(pinHijau,255); //memberi nilai PWM warna hijau
    analogWrite(pinBiru,0); //memberi nilai PWM warna biru
    digitalWrite (led,LOW);
    noTone(8); //mematikan suara buzzer
  }
  else
  {
  analogWrite(pinMerah,0); //memberi nilai PWM warna merah
    analogWrite(pinHijau,255); //memberi nilai PWM warna hijau
    analogWrite(pinBiru,0); //memberi nilai PWM warna biru
    digitalWrite (led,LOW);
    noTone(8); //mematikan suara buzzer
  }
}

Kode diatas bisa didownload DISINI.

Penjelasan Program:

Secara umum program berjalan dengan gambaran berikut, 
  • Sensor mendeteksi asap dan api, maka buzzer berbunyi keras dan LED mereah menyala
  • Hanya api yang terdeteksi, maka buzzer berbunyi keras dan LED merah menyala
  • Hanya asap yang terdeteksi, maka buzzer berbunyi sedang dan LED kuning menyala
  • Bila tidak terdeteksi antara asap dan api, maka buzzzer diam, dan LED hijau menyala
Yang perlu menjadi catatan dari program adalah: Sensor gas membutuhkan pengkalibrasian untuk hasil pendeteksian optimal dan tidak terjadi kesalahan dalam memberi peringatan (mengaktifkan buzzer). Tiap sensor memiliki kepekaan yang berbeda-beda oleh karena itu batasan aman dan saat mendeteksi asap perlu ditetapkan. Pada program bagian yang bisa diubah untuk masalah ini , yaitu bagian ini::

sensorGas>=410 

Nilai 410 diperoleh dari pengamatan melalu serial monitor hasil pembacaan dari nilai pin analog dari sensor gas. Sensor gas yang penulis gunakan kondisi normal saat tidak mendeteksi asap berkisaran dibawah 400. Dan saat ada asap terdeteksi nilai Analog read sensor gas berada dikisaran lebih dari 400. Maka penulis menetapkan nilai 410 untuk menandakan sensor telah mendeteksi asap, dan mengaktifkan buzzer untuk memberi peringatan.

Untuk buzzer tempo dan besar kecilnya suara bisa diatur pada bagian kode ini:

//Mengeluarkan Bunyi Alarm dari Buzzer
    for (int x=0; x<180; x++){
    //convert degrees to radians then obtain sin value
    //mengubah derajat ke radian lalu mendapatkan hasil sin
    sinVal = (sin(x*(3.1412/180)));
    //generate a frequency from the sin value
    //menghasilkan frekuensi dari hasil sin
    toneVal = 2000+(int (sinVal*1000));

Untuk mengubah tempo suara buzzer (cepat atau lambatnya dengungan buzzer) bisa mengubah nilai 180 pada kode. Semakin kecil nilai maka akan semakin cepat tempo suara buzzer dan sesebaliknya. Untuk mengubah besar kecilnya suara bisa mengganti nilai 2000 dan 1000 pada kode. Semakin besar nilai maka suara yang dihasilnkan buzzer semakin keras dan sebaliknya.

Video Percobaan: 

Berikut video hasil percobaan yang dilakukan:


Kesimpulan:

Alat ini akan mendeteksi antara asap dan api. Apabila asap terdeteksi maka buzzer mengeluarkan suara sedang dan LED kuning menyala, menandakan ada bahaya tingkat menengah yang perlu diwaspadai, dan bila api terdeteksi maka buzzer berbunyi keras dan LED merah menyala indikator ada bahaya. Bila tidak terdeteksi asap dan api, maka keadaan aman, indikator LED hijau menyala dan buzzer diam.

Pengembangan:

Untuk pengembangan alat ini bisa ditambahkan sensor kelembapan dan suhu, yang ditampilkan ke LCD. Dengan demikan pendeteksian semakin lengkap, detail dan mudah diamati. Namun dalam pembuatan program dan budget yang dikeluarkan menjadi lebih rumit dan mahal.

Selamat mencoba...
Semoga bermanfaat....

Artikel menarik lainya:

Comments

  1. Pake arduino uno r3 mega,atmega bisa gan ?
    Terus pake library nya ga ?

    ReplyDelete
    Replies
    1. Atau langsung copy in ke aplikasi arduino, buat di upload ?

      Delete
  2. Bisa pake arduino uno ato atmega, tinggal di sesuaikan tenpat pinya. Ngak pake library, tinggal di copy paste aja

    ReplyDelete
  3. Gan, untuk buzzernya ko hidup terus ya.. mohon pencerahannya

    ReplyDelete
    Replies
    1. Sori baru bales gan, Kemungkinan besar perlu di rubah nilai hasil pembacaan sensor gasnya. Seperti yang sudah dipaparkan pada bagian penjelasan program, setiap sensor memiliki kepekaan pembacaan yang berbeda jadi perlu dikalibrasi dahulu. Bisa dicoba di naikkan nilai dari:

      sensorGas>=410

      semua angka 410 dari sensorGas diganti dengan nilai yang lebih tinggi 450 misalnya, atau 500. Nilai ini didapat setelah melakukan pengamatan pada serial monito, nilai yang paling dominan tampil saat sendsor tidak mendeteksi asap.

      Selamat mencoba, semoga bisa membantu...

      Delete
  4. gan, mau tanya, untuk menggabungkan alat diatas dengan sim800L(pemberitahuan SMS), gimana ya kodingnya? kira2 agan bisa kasih tau cara nambah kodingnya? mohon pencerahannya

    ReplyDelete
    Replies
    1. Maaf gan kalau yang pakai sim800L belum pernah coba gan.

      Delete
  5. gan kalo menggunakan sensor asap yang mq 7 bisa gak

    ReplyDelete
    Replies
    1. Bisa gan yang penting perlu dibekali tadi untuk nilai pembacaan sensornya.

      Delete
  6. Gan klo di tambah bluetooth hc-05, untuk menghidupkan kipas bisa gak ya gan, ngidupinya pake bluetooh. Matiinnya kipas pake sensor asap

    ReplyDelete
  7. Gan klo di tambah bluetooth hc-05, untuk menghidupkan kipas bisa gak ya gan, ngidupinya pake bluetooh. Matiinnya kipas pake sensor asap

    ReplyDelete
    Replies
    1. Bisa aja gan, tapi perlu nambah program. Saya juga belum pernah nyoba gan

      Delete
  8. gan, buzzernya kok nyala terus ya padahal udah di naikkan dan turunkan nilaianya?

    ReplyDelete
  9. gan, kalo cuma pake led biasa bisa gak?

    ReplyDelete

Post a Comment

Popular posts from this blog

Tips Lulus Psikotes

Penyebab tidak bisa mengupload program ke Arduino

Program dan Ladder PLC pengisi kotak Apel