APLIKASI KONTROL PEMADAN KEBAKARAN DENGAN INPUT DARI SENSOR API DAN SENSOR ASAP DAN OUTPUT MOTOR AC (POMPA AIR), BUZZER, DAN DOTMATRIKS

 

 
1. Tujuan  [Kembali] 
  • Membuat Aplikasi kontrol pemadam kebakaran 
  • Dengan input sensor api dan sensor asap serta output motor AC (pompa air), buzzer, dan dotmatrix.

2. Alat dan Bahan  [Kembali]

Komponen-komponen yang digunakan yaitu:
a. Arduino
b. Sumber DC 9 Volt
c. Optocoupler MOC 3021
d. Motor DC (Pompa Air)
e. Flame Sensor
f. Gas sensor MQ-2
g. Buzzer
h. Greenled dan Redled
i. Resistor
j. Jumper
k. Ic max7219 NG
l. Dotmatrix  
 

3. Dasar Teori  [Kembali]

1. Arduino
Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya. 

Summary:
Microcontroller ATmega328
Operasi dengan daya 5V Voltage
Input Tegangan (disarankan) 7-12V
Input Tegangan (batas) 6-20V
Digital I / O Pins 14 (dimana 6 memberikan output PWM)
Analog Input Pin 6
DC Lancar per I / O Pin 40 mA
Saat 3.3V Pin 50 mA DC
Flash Memory 32 KB (ATmega328) yang 0,5 KB digunakan oleh bootloader
SRAM   2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed ?16 MHz


Gambar 1. Arduino Uno

2. Sumber DC
Sumber arus listrik DC kependekan dari Direct Current, dikenal dengan arus searah karena merupakan sumber arus yang dihasilkan hanya memiliki satu polaritas. Dikatakan satu polaritas karena arus yang mengalir tetap dalam satu arah yaitu dari positif ke negatif atau dari negatif ke positif. Arus listriD AC akan membentuk suatu gelombang yang dinamakan dengan gelombang sinus atau lebih lengkapnya sinusoida dengan hanya membentuk setengah gelombang. Disini menggunakan sumber DC baterai kotak dengan kapasitas 9 Volt

3. Optocoupler
Optocoupler juga dikenal dengan sebutan Opto-isolator, Photocoupler atau Optical Isolator. Optocoupler adalah komponen elektronika yang berfungsi sebagai penghubung berdasarkan cahaya optik. Pada dasarnya Optocoupler terdiri dari 2 bagian utama yaitu Transmitter yang berfungsi sebagai pengirim cahaya optik dan Receiver yang berfungsi sebagai pendeteksi sumber cahaya. Masing-masing bagian Optocoupler (Transmitter dan Receiver) tidak memiliki hubungan konduktif rangkaian secara langsung tetapi dibuat sedemikian rupa dalam satu kemasan komponen.
Gambar 2. Optocoupler

4. Motor DC
Secara teori, Motor DC adalah Motor listrik yang membutuhkan suplai tegangan arus searah atau arus DC (Direct Current) pada kumparan medan untuk diubah menjadi energi mekanik. Kumparan medan pada motor tersebut disebut stator, dan kumparan jangkar disebut rotor. Pada percobaan ini menggunakan motor DC dengan tipe pompa air.
Gambar 3. Motor DC Tipe Pompa Air

5. Flame Sensor
Sensor api adalah sensor yang dirancang untuk mendeteksi dan menanggapi keberadaan api dan memungkinkan mendeteksi api. Respons terhadap nyala api yang terdeteksi bergantung pada pemasangan, tetapi dapat mencakup membunyikan alarm, menonaktifkan saluran bahan bakar (seperti propana atau saluran gas alam), dan mengaktifkan sistem pencegah kebakaran. Ketika digunakan dalam aplikasi seperti tungku industri, perannya adalah untuk memberikan konfirmasi bahwa tungku bekerja dengan benar; dalam hal ini mereka tidak melakukan tindakan langsung di luar memberi tahu operator atau sistem kontrol. Detektor api seringkali dapat merespon lebih cepat dan lebih akurat daripada detektor asap atau panas karena mekanisme yang digunakan untuk mendeteksi nyala api 
Gambar 4.  Sensor Api

6. Gas Sensor MQ-2
Sensor MQ-2 adalah sensor yang digunakann untuk mendeteksi konsentrasi gas yang mudah terbakar di udara serta asap dan output membaca sebagai tegangan analog. Sensor gas asap MQ-2 dapat langsung diatur sensitifitasnya dengan memutar trimpotnya. Sensor ini biasa digunakan untuk mendeteksi kebocoran gas baik di rumah maupun di industri. Gas yang dapat dideteksi diantaranya : LPG, i-butane, propane, methane , alcohol, Hydrogen, smoke.
Gambar 5. Sensor Asap

7. Buzzer
Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir sama dengan loud speaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).
Gambar 6. Buzzer

8. IC Max 7219NG
MAX7219 / MAX7221 adalah input / output serial yang ringkas driver layar common-cathode yang antarmuka mikroprosesor (µPs) ke tampilan LED numerik 7-segmen hingga 8 digit, tampilan grafik batang, atau 64 individu LED. Termasuk on-chip adalah kode BCD-B decoder, sirkuit pemindaian multipleks, segmen dan digit driver, dan 8x8 RAM statis yang menyimpan setiap digit. Hanya satu resistor eksternal diperlukan untuk mengatur segmen saat ini untuk semua LED. MAX7221 kompatibel dengan SPI ™, QSPI ™, dan MICROWIRE ™, dan memiliki slewrate-limited driver segmen untuk mengurangi EMI. Antarmuka seri 4-kawat yang nyaman terhubung ke semua µPs umum. Angka individu dapat diatasi dan diperbarui tanpa menulis ulang seluruh tampilan. Itu MAX7219 / MAX7221 juga memungkinkan pengguna untuk memilih kodeB decoding atau no-decode untuk setiap digit. Perangkat termasuk shutdown daya rendah 150µA mode, kontrol kecerahan analog dan digital, scanlimit daftar yang memungkinkan pengguna untuk menampilkan dari 1 hingga 8 digit, dan mode tes yang memaksa semua LED menyala. Untuk aplikasi yang membutuhkan operasi atau segmen 3V berkedip.
 
Gambar 6. IC Max 7219NG

9. Dotmatrix
Dot matrix adalah susunan titik-titik dua dimensi yang digunakan untuk menampilkan karakter-karakter, simbol atau gambar. Dahulu dot matrix digunakan pada printer-printer tua dan banyak perangkat tampilan digital. Pada printer, titik-titik tersebut adalah daerah yang diredupkan. Sedangkan pada display, titik-titik tersebut adalah daerah yang bercahaya. Sebagaimana pada LED atau CRT display cara kerjanya titik-titik yang sebelumnya mati, bercahaya sesuai sesuai obyek yang diinginkan.
 
 Gambar 7. Dotmatriks


4. Rangkaian Simulasi  [Kembali]
 
 

 
5. Listing Program [Kembali]


#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

#define gas 2
#define flame 7
int redLed = 6;
int blueLed = 5;
int buzzer = 4;
int motor = 3;

#define USE_UI_CONTROL 0

#if USE_UI_CONTROL
#include <MD_UISwitch.h>
#endif

#define DEBUG 0

#if DEBUG
#define PRINT(s, x) { Serial.print(F(s)); Serial.print(x); }
#define PRINTS(x) Serial.print(F(x))
#define PRINTX(x) Serial.println(x, HEX)
#else
#define PRINT(s, x)
#define PRINTS(x)
#define PRINTX(x)
#endif
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 1
#define CLK_PIN   13
#define DATA_PIN  11
#define CS_PIN    10


MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

#if USE_UI_CONTROL
const uint8_t SPEED_IN = A5;
const uint8_t DIRECTION_SET = 8;
const uint8_t INVERT_SET = 9;

const uint8_t SPEED_DEADBAND = 5;
#endif

uint8_t scrollSpeed = 25;
textEffect_t scrollEffect = PA_SCROLL_LEFT;
textPosition_t scrollAlign = PA_LEFT;
uint16_t scrollPause = 2000;

#define  BUF_SIZE  75
char curMessage[BUF_SIZE] = { "" };
char newMessage[BUF_SIZE] = { "WARNING!" };
bool newMessageAvailable = true;

#if USE_UI_CONTROL

MD_UISwitch_Digital uiDirection(DIRECTION_SET);
MD_UISwitch_Digital uiInvert(INVERT_SET);

void doUI(void)
{
  {
    int16_t speed = map(analogRead(SPEED_IN), 0, 1023, 10, 150);

    if ((speed >= ((int16_t)P.getSpeed() + SPEED_DEADBAND)) ||
        (speed <= ((int16_t)P.getSpeed() - SPEED_DEADBAND)))
    {
      P.setSpeed(speed);
      scrollSpeed = speed;
      PRINT("\nChanged speed to ", P.getSpeed());
    }
  }

  if (uiDirection.read() == MD_UISwitch::KEY_PRESS)
  {
    PRINTS("\nChanging scroll direction");
    scrollEffect = (scrollEffect == PA_SCROLL_LEFT ? PA_SCROLL_RIGHT : PA_SCROLL_LEFT);
    P.setTextEffect(scrollEffect, scrollEffect);
    P.displayClear();
    P.displayReset();
  }

  if (uiInvert.read() == MD_UISwitch::KEY_PRESS)
  {
    PRINTS("\nChanging invert mode");
    P.setInvert(!P.getInvert());
  }
}
#endif

void readSerial(void)
{
  static char *cp = newMessage;

  while (Serial.available())
  {
    *cp = (char)Serial.read();
    if ((*cp == '\n') || (cp - newMessage >= BUF_SIZE - 2))
    {
      *cp = '\0';
      cp = newMessage;
      newMessageAvailable = true;
    }
    else
      cp++;
  }
}

void setup()
{
  pinMode(gas, INPUT);
  pinMode(flame, INPUT);
  pinMode(redLed, OUTPUT);
  pinMode(blueLed, OUTPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(motor, OUTPUT);
  Serial.begin(9600);
  Serial.print("\n[Parola Scrolling Display]\nType a message for the scrolling display\nEnd message line with a newline");

#if USE_UI_CONTROL
  uiDirection.begin();
  uiInvert.begin();
  pinMode(SPEED_IN, INPUT);

  doUI();
#endif

  P.begin();
  P.displayText(curMessage, scrollAlign, scrollSpeed, scrollPause, scrollEffect, scrollEffect);
}

void loop()
{
  int varie = digitalRead(gas);
  int varia = digitalRead(flame);
  Serial.print(varie);
  Serial.print("   ");
  Serial.println(varia);
  if (varie == HIGH && varia == HIGH)
  {
    digitalWrite(redLed, HIGH);
    digitalWrite(blueLed, LOW);
    digitalWrite(buzzer, HIGH);
    digitalWrite(motor, HIGH);
#if USE_UI_CONTROL
    doUI();
#endif

    if (P.displayAnimate())
    {
      if (newMessageAvailable)
      {
        strcpy(curMessage, newMessage);
        newMessageAvailable = false;
      }
      P.displayReset();
    }
    readSerial();
    delay(100);
  }

  else
  {
    digitalWrite(redLed, LOW);
    digitalWrite(blueLed, HIGH);
    digitalWrite(buzzer, LOW);
    digitalWrite(motor, LOW);
    delay(100);
  }
  delay(100);
}


6. Prinsip Kerja [Kembali]
Pada simulasi ini, prinsip kerjanya yaitu menggunakan dua input berupa sensor api dan sensor gas. jadi ketika kedua sensor ini mendeteksi adanya api dan gas, maka sinyal inputan berupa sinyal digital akan masuk ke mikrokontroler dan memberikan perintah ke LED Merah untuk menyala, buzzer menyala, dan motor dc berupa pompa air akan aktif untuk mengeluarkan air. selain itu saat api dan gas terdeteksi, nantinya pada dotmatrix akan muncul tulisan "WARNING!" secara scrooling. hal tersebut diakukan dengan cara membuat HIGH pada pin 3 (Pompa Air), pin 4(Buzzer), pin 6(LED Merah), dan pin 11(Dotmatriks). Sedangkan untuk pin yang menyatakan tidak aktif yaitu pin 5(LED Biru) dibuat LOW. Sebaliknya, jika kedua sensor tidak mendeteksi apa apa, maka mikrokontroler akan memberi perintah untuk LED Biru menyala dengan HIGH Pada Pin 5, sedangkan komponen lainnya tidak aktif dengan cara membuat LOW pada pin 3, pin 4, pin 6, dan pin 11.
 
 
Gambar Rangkaian Kontrol Pemadam Kebakaran Aktif

 
Gambar Rangkaian Kontrol Pemadam Kebakaran Tidak Aktif


7. Video  [Kembali]
 

8. Link Download  [Kembali]
  • File rangkaian dapat diunduh disini
  • File Program Arduino dapat diunduh disini
  • File HTML dapat diunduh disini
  • File Video dapat diunduh disini

Tidak ada komentar:

Posting Komentar