Laporan Akhir Modul 4
Kontrol Kebakaran Laboratorium
Tujuan dari dibuatnya project adalah ini adalah sebagai berikut:
- Membuat prototype aplikasi kontrol kebakaran laboratorium yang dapat beprperan sebagai tanggapan utama dalam skenario kebakaran laboratorium
- Mengapliaksikan konsep-konsep yang telah dipelajari pada praktikum seperti PWM, ADC, dan teori komunikasi mikrokontroller
Alat dan bahan yang digunakan pada project ini adalah sebagai berikut:
1. Power Bank
2. Steker (Colokan listrik)
1. Arduino
2. Sensor Ultrasnoic
3. Flame Sensor
11. Relay Module
A. ADC (Analog to Digital Converter).
ADC adalah sebuah proses untuk mengubah input sinyal analog menjadi output sinyal digital. ADC diperlukan pada mikrokontroller dikarenakan mayoritas fenomena yang ada didunia direpresentasikan secara analog (kontinu) dan diperlukan suatu cara untuk mengubah representasi analog yang tidak dimengerti oleh mikorkontroller menjadi sebuah representasi baru yang bisa diproses oleh mikrokontroller. Proses ADC terdiri dari 3 buah tahapan, yakni proses sampling, quantizing, dan coding, proses akan dibahas satu persatu dibawah ini:
1. Sampling
Proses pertama untuk mengubah suatu sinyal analog menjadi sinyal digital adalah melalui proses sampling. Secara sederhana proses sampling adalah mengkonversikan nilai – nilai analog yang kontinu menjadi sebuah sinyal dengan nilai diskrit. Dalam teori sampling, untuk signal analog yang umumnya berbentuk kontinu, diambil cuplikan - cuplikan signal tersebut lalu dipatenkan besar tegangan yang sesuai pada titik tersebut. Setiap cuplikan signal diambil dalam rentang periode tertentu, pada konteks kali ini dalam Ts atau disebut (periode sampling) dan fs disebut (frekuensi sampling).
Dalam menentukan besar frekuensi sampling yang diambil, terdapat sebuah persamaan yang menjadi dasar dalam penentuan frekuensi sampling, yakni `nyquist rate` yang menyatakan bahwa besar frekuensi sampling harus sama dengan 2 kali dari frekuensi maksimum dari signal tersebut.
Minimum sampling rate:
f_s=2WFs adalah frekuensi sampling dan W adalah frekuensi tertinggi dari suatu sinyal.2. QuantizingTahap selanjutnya dari ADC adalah proses kuantisasi (quantization). Pada proses ini nilai – nilai sinyal diskrit hasil sampling dimetakan ke dalam set finit. Besar set ini merupakan resolusi dari ADC yang bisa memiliki nilai dari 2,4,8,16, bahkan sampai 32 bit. Amplitudo nilai dari sinyal diskrit tadi dirubah berdasarkan resolusi yang digunakan pada ADC. Semakin tinggi resolusi ADC yang digunakan maka akan semakin akurat ADC dalam menyamai input sinyal analognya, karena pada proses kuatisasi amplitudo dari sinyal analog dibagi menjadi level – level yang banyaknya sama dengan resolusi dari ADC. Level/tingkatan ini disebut sebagai representation levels. Dan jarak antara level – level ini disebut sebagai step size. Untuk mencari jarak antara level representasi bisa menggunakan rumus sederhana dibawah ini:step size=(V_max-V_min)/qDengan q adalah banyak level representasinya. Contoh hasil kuantisasi sebuah sinyal
3. CodingProses terakhir dari tahapan ADC adalah proses coding. Proses coding sendiri adalah mengubah nilai – nilai hasil kuantisasi menjadi urutan – urutan sinyal digital (yang terdiri hanya dari 0 dan 1). Banyaknya bilangan biner yang dapat diberikan sama dengan resolusi dari ADC. Misalkan terdapat L level maka paling sedikit diperlukan L angka biner juga.
B. PWM
PWM (Pulse Width Modulation) adalah sebuah teknik modulasi sinyal digital yang memvariasikan lebar signal sebagai parameter modulasinya. Pada Modulasi PWM, amplitudo dan frekuensi sinyal bernilai sama. PWM memvariasikan lebar dari signalnya dengan cara mengubah parameter duty cycle nya. Duty cycle adalah parameter rasio waktu signal on dan off dengan satuannya adalah %, metode ini bisa digunakan karena perubahan state dari on ke off dengan waktu yang sangat cepat mengakibatkan nilai rata - rata dari sinyal adalah persis sama dengan nilai perbandingan antara waktu on/off (duty cycle).
Persamaan duty cycle adalah sebagai berikut:
D= t_on/t_off
T=t_on+t_off
Contoh output PWM dengan nilai duty cycle yang berbeda:
Proses pembentukan sinyal PWM bisa dilakukan dengan cara yang berbeda. Tapi umumnya untuk menghasilkan sinyal PWM biasanya menggunakan rangkaian elektronik yang terdiri dari komparator dan sinyal input yang terdiri dari signal gergaji (biasa dari counter), dan nilai referensi pembatas (nilai compare). Pada mikrokontroller biasanya bisa menggunakan mode PWM yang berbeda, umumnya adalah inverting dan non inverting. Ketika menggunakan mode inverting, signal timer/counter diletakkan pada input inverting dan compare pada input non inverting. Proses kerjanya adalah ketika nilai compare > nilai counter maka signal output akan bernilai 1, dan ketika counter sudah melewati nilai dari compare, maka signal output akan berpindah dari 0 ke 1. Namun, jika menggunakan mode non inverting, input dari compare diletakkan pada input inverting, sementara sinyal dari counter/timer diletakkan pada input non inverting. Ketika nilai compare > dari nilai couner, sinyal outputnya memiliki nilai digital 0, dan ketika nilai compare < counter akan menghasilkan output digital 1. Dibawah ini merupakan contoh dari sinyal PWM
C. Komunikasi UART
UART (Universial Serial Receiver Transmitter) merupakan salah satu jenis protocol komunikasi serial. Komunikasi serial sendiri adalah komunikasi yang pengiriman datanya dilakukan secara berurutan (bit per bit). UART sendiri adalah salah satu penerapan dari jenis komunikasi serial yang relatif sederhana dibandingkan protokol komunikasi lainnya, dan memiliki karakteristik seperti hanya menggunakan sedikit sambungan untuk melakukan transmisi, Mudah diterapkan pada banyak device, dan digunakan jika tidak diperlukan komunikasi data dengan kecepatan yang tinggi.
Protokol komunikasi UART memiliki spesifikasi sebagai berikut:
Parameter Nilai
Kabel/channel 2
Kecepatan (bit/detik) 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1000000, 1500000
Metode transmisi Asinkronous
Jumlah maksimum master 1
Jumlah maksimum slave
Komunikasi UART memiliki dua buah sambungan untuk mengirimkan dan menerima data, sambungan tersebut adalah sambungan transmisi dan penerima (RX dan TX).
1. Arduino
Board | Name | Arduino UNO R3 |
---|---|---|
SKU | A000066 | |
Microcontroller | ATmega328P | |
USB connector | USB-B | |
Pins | Built-in LED Pin | 13 |
Digital I/O Pins | 14 | |
Analog input pins | 6 | |
PWM pins | 6 | |
Communication | UART | Yes |
I2C | Yes | |
SPI | Yes | |
Power | I/O Voltage | 5V |
Input voltage (nominal) | 7-12V | |
DC Current per I/O Pin | 20 mA | |
Power Supply Connector | Barrel Plug | |
Clock speed | Main Processor | ATmega328P 16 MHz |
USB-Serial Processor | ATmega16U2 16 MHz | |
Memory | ATmega328P | 2KB SRAM, 32KB FLASH, 1KB EEPROM |
Dimensions | Weight | 25 g |
Width | 53.4 mm | |
Length | 68.6 mm |
2. Sensor Ultrasonic HC-SR504
Adapun urutan cara sensor ultrasonik menghitung jarak adalah sebagai berikut:
1. Transmitter memancarkan gelombang ultasonik
2. Gelombang ultrasonik yang dipancarkan mengenai objek dan terpantul kembali
3. Gelombang pantulan kemudian dideteksi oleh receiver
4. Menghitung waktu yang diperlukan gelombang untuk kembali ke receiver
3. Flame Sensor
Pinout modul KY-026c
4. Sensor gas MQ2
Sensor Gas seri MQ(yang digunakan pada aplikasi ini adalah seri MQ2) merupakan kumpulan sensor – sensor yang memiliki kegunaan untuk mendeteksi konsentrasi dari gas – gas tertentu. Sensor MQ2 memiliki sensitivitas tinggi terhadap gas seperti LPG (Liquid petroleum Gas), Propana, dan hidrogen, serta juga bisa digunakan untuk menghitung konsentrasi gas metana dan gas – gas mudah terbakar lainnya.
Spesifikasi dari sensor Gas MQ2 ini bisa dilihat pada tabel dibawah ini:
Tegangan Operasi 5V
Resistansi beban 20KΩ
Resistansi pemanas (Heater resistance) 33Ω + 5%
Konsumsi daya <8000 mW
Resistansi pendeteksian 10KΩ – 60KΩ
Rentang konsentrasi gas 200ppn – 1000ppn
Waktu pemanasan >24 Jam
Sementara pinout dari sensor MQ2 bisa dilihat pada gambar berikut:
- VCC Dihuungkan ke sumber 5V
- GND. Dihubungkan ke pin GND
- D0. Pendeteksian output dengan menggunakan pin digital
- A0. Menghasilkan output dengan menggunakan pin analog. Nilai yang didapat proporsional terhadap konsentrasi gas yang terdeteksi, yang berarti semakin tinggi konsentrasi akan menghasilkan nilai yang lebih tinggi begitu juga sebaliknya
5. Logic sate
Pemberi logika pada simulasi sensor. Pengertian logis, benar atau salah, dari sinyal biner yang diberikan. Sinyal biner adalah sinyal digital yang hanya memiliki dua nilai yang valid. Dalam istilah fisik, pengertian logis dari sinyal biner ditentukan oleh level tegangan atau nilai arus sinyal, dan ini pada gilirannya ditentukan oleh teknologi perangkat. Dalam sirkuit TTL, misalnya, keadaan sebenarnya diwakili oleh logika 1, kira-kira sama dengan +5 volt pada garis sinyal; logika 0 kira-kira 0 volt.
Tingkat tegangan antara 0 dan +5 volt dianggap tidak ditentukan. Karena hanya dua status logika, logika 1 dan logika 0, yang dimungkinkan, teknik aljabar Boolean dapat digunakan untuk menganalisis rangkaian digital yang melibatkan sinyal biner. Istilah logika positif diterapkan ke sirkuit di mana logika 1 ditetapkan ke level tegangan yang lebih tinggi; Dalam rangkaian logika negatif, logika 1 ditunjukkan dengan level tegangan yang lebih rendah. Lihat juga logika multinilai.
6. LCD 16x2
LCD (Liquid Crystal Display) 16x2 adalah jenis media tampilan atau Display dari bahan cairan kristal sebagai penampil utama.LCD 16x2 dapat menampilkan sebanyak 32 karakter yang terdiri dari 2 baris dengan tiap baris menampilkan 16 karakter.Pada Arduino untuk mengendalikan LCD Karakter 16x2 untuk librarynya secara default sudah ada librarynya yaitu LiquidCrystal.h. LCD ada bermacam-macam ukuran 8x1, 16x1, 16x2, 16x4, 20x4. Untuk mengendalikan atau mengontrol macam-macam LCD Karakter di atas dapat menggunakan Tutorial ini, perbedaannya hanya pada inisialisasi jumlah kolom dan baris.
1. Pin out diagram LCD 16X2:
2. Pin1 (Ground / Source Pin): Ini adalah pin tampilan GND, digunakan untuk menghubungkan terminal GND unit mikrokontroler atau sumber daya.
3. Pin2 (VCC / Source Pin): Ini adalah pin catu tegangan pada layar, digunakan untuk menghubungkan pin catu daya dari sumber listrik.
4. Pin3 (V0 / VEE / Control Pin): Pin ini mengatur perbedaan tampilan, yang digunakan untuk menghubungkan POT yang dapat diubah yang dapat memasok 0 hingga 5V.
5. Pin4 (Register Select / Control Pin): Pin ini berganti-ganti antara perintah atau data register, digunakan untuk menghubungkan pin unit mikrokontroler dan mendapatkan 0 atau 1 (0 = mode data, dan 1 = mode perintah).
6. Pin5 (Pin Baca / Tulis / Kontrol): Pin ini mengaktifkan tampilan di antara operasi baca atau tulis, dan terhubung ke pin unit mikrokontroler untuk mendapatkan 0 atau 1 (0 = Operasi Tulis, dan 1 = Operasi Baca).
7. Pin 6 (Mengaktifkan / Mengontrol Pin): Pin ini harus dipegang tinggi untuk menjalankan proses Baca / Tulis, dan terhubung ke unit mikrokontroler & terus-menerus dipegang tinggi.
8. Pin 7-14 (Pin Data): Pin ini digunakan untuk mengirim data ke layar. Pin ini terhubung dalam mode dua-kawat seperti mode 4-kawat dan mode 8-kawat. Dalam mode 4-kawat, hanya empat pin yang terhubung ke unit mikrokontroler seperti 0 hingga 3, sedangkan dalam mode 8-kawat, 8-pin terhubung ke unit mikrokontroler seperti 0 hingga 7.
9. Pin15 (+ve pin LED): Pin ini terhubung ke +5V
10. Pin 16 (-ve pin LED): Pin ini terhubung ke GND.
7. Servo motor
8. LED (Light Emiting Diode)
9. Resistor
10. Buzzer
Buzzer adalah komponen elektronika yang dapat menghasilkan getaran suara dalam bentuk gelombang bunyi. Buzzer lebih sering digunakan karena ukuran penggunaan dayanya yang minim.
Cara Kerja Buzzer
Tegangan Listrik yang mengalir ke buzzer akan menyebabkan gerakan mekanis, gerakan tersebut akan diubah menjadi suara atau bunyi yang dapat didengar oleh manusia.
11. Relay Module
Potensiometer (POT) adalah salah satu jenis Resistor yang Nilai Resistansinya dapat diatur sesuai dengan kebutuhan Rangkaian Elektronika ataupun kebutuhan pemakainya. Potensiometer merupakan Keluarga Resistor yang tergolong dalam Kategori Variable Resistor. Secara struktur, Potensiometer terdiri dari 3 kaki Terminal dengan sebuah shaft atau tuas yang berfungsi sebagai pengaturnya.
Pada dasarnya bagian-bagian penting dalam Komponen Potensiometer adalah:
1. Penyapu atau disebut juga dengan Wiper
2. Element Resistif
3. Terminal
Prinsip Kerja Potensiometer
Sebuah Potensiometer (POT) terdiri dari sebuah elemen resistif yang membentuk jalur (track) dengan terminal di kedua ujungnya. Sedangkan terminal lainnya (biasanya berada di tengah) adalah Penyapu (Wiper) yang dipergunakan untuk menentukan pergerakan pada jalur elemen resistif (Resistive). Pergerakan Penyapu (Wiper) pada Jalur Elemen Resistif inilah yang mengatur naik-turunnya Nilai Resistansi sebuah Potensiometer. Elemen Resistif pada Potensiometer umumnya terbuat dari bahan campuran Metal (logam) dan Keramik ataupun Bahan Karbon (Carbon). Berdasarkan Track (jalur) elemen resistif-nya, Potensiometer dapat digolongkan menjadi 2 jenis yaitu Potensiometer Linear (Linear Potentiometer) dan Potensiometer Logaritmik (Logarithmic Potentiometer).
Fungsi Potensiometer
Dengan kemampuan yang dapat mengubah resistansi atau hambatan, Potensiometer sering digunakan dalam rangkaian atau peralatan Elektronika dengan fungsi-fungsi sebagai berikut
1. Sebagai pengatur Volume pada berbagai peralatan Audio/Video seperti Amplifier, Tape Mobil, DVD Player.
2. Sebagai Pengatur Tegangan pada Rangkaian Power Supply
3. Sebagai Pembagi Tegangan
4. Aplikasi Switch TRIAC
5. Digunakan sebagai Joystick pada Tranduser
6. Sebagai Pengendali Level Sinyal
Tahap pertama dari pembuatan project ini adalah membuat simulasi rangkaian keseluruhan dengan menggunakan software simulasi rangkaian Proteus. Pada tahap ini dilakukan pemilihan komponen pada project, mengatur nilai – nilai pada komponen yang digunakan, dan sirkuit diuji dalam simulasi
Setelah
rangakaian simulasi diselesaikan tahapan selanjutnya adalah membuat kode dari
rangkaian tersebut. Karena pada aplikasi ini mengggunakan mikrokontroller
sebagai intinya, diperlukan program yang akan diproses oleh mikrokontroller
untuk mengatur segala proses yang terhubung pada rangkaian yang dibuat. Pada
proses ini juga dilakukan simulasi ulang menggunakan rangkaian simulasi dan
program yang telah dibuat untuk menilai apakah simulasi sudah bekerja sesuai
yang telah diinginkan atau tidak.
Setelah kode program dibuat dan rangkaian simulasi berjalan sesuai dengan yang didesain, langkah berikutnya adalah mengumpulkan alat dan bahan yang akan digunakan untuk membuat aplikasi. Untuk metode mendapatkan alat dan bahannya sendiri diserahkan kepada kelompok masing – masing, dan pada kelompok 3 alat dan bahan yang dipakai untuk aplikasi didapatkan dengan cara membeli dan meminjam dari pihak lain. Langkah krusial yang dilakukan pada tahap ini adalah mengetes alat dan bahan yang telah didapat untuk menilai apakah komponen tersebut bekerja dengan baik.
Kemudian dibuat prototype awal dari project, pembuatan prototype dilakukan sebagai bentuk percobaan nyata awal dari aplikasi yang dibuat, juga bisa digunakan sebagai cara untuk mengetes apakah rangkaian yang dibuat pada software simulasi bisa bekerja dengan cara yang sama pada saat dibuat secara ril Langkah – langkah tersebut dilakukan secara berurutan dan disela – selanya dilakukan asistensi selama proses ini. Proses asistensi diwajibkan karena berguna sebagai medium untuk kelompok bertanya tentang project, merencanakan langkah selanjutnya, dan meminta saran dari asisten yang telah diamanahkan untuk membimbing setiap kelompok dalam membuat aplikasi ini.
Prinsip
Kerja:
Rangkaian pendeteksi kebakaran pada laboratorium menggunakan mikrokontroller sebagai inti atau pengendali utama dari rangkaian, mikrokontroller yang dipilih adalah tipe arduino karena harganya yang murah, serta referensinya yang berlimpah. Rangkaian ini memiliki 3 buat input dan 5 buah output. Input dari rangkaian ini adalah sensor api Ky 0-26 untuk mendeteksi api, sensor gas MQ2 untuk mendeteksi gas, serta sensor ultrasonic untuk mendeteksi apakah adanya korban di area ruangan. Sementara output yang digunakan pada rangakain ini adalah LCD display 16x2, buzzer, servo motor, 3 buah LED dengan warna yang berbeda, dan Relay ke lampu utama. Rangkaian ini menggunakan tipe komunikasi UART (Universal Synchronous Receiver Transmitter) yang memungkinkan terjadinya pertukaran data antara kedua buah arduino.
Prinsip
kerja dari aplikasi ini didasarkan dari hasil pendeteksian dari sensor – sensor
yang digunakan, terdapat 3 input sensor yang digunakan yakni sensor flame,
sensor gas MQ2, dan sensor ultrasonic. Dan kerja rangkaian didasarkan pada
pendeteksian yang dilakukan oleh sensor-sensor tersebut. Pada rangkaian bagian
sensor/input dihubungkan ke arduino master karena bagian master inilah yang
akan mengirimkan data sehingga bisa mengaktifkan output dari arduino slavenya.
Data dikirim ke slave dengan menggunakan komunikasi UART, berikut merupakan
kondisi dari sensor beserta data yang dikirimnya
Note:
threshold gas = 100, dan threshold ultrasonic = 50
1. Sensor
gas < 100, flame tidak aktif, ultrasonic (kondisi don’t care), master akan mengirimkan data satu byte karakter ‘1’.
2. Sensor
gas > 100, flame tidak aktif, ultrasonic (kondisi don’t care), master akan mengirimkan data satu byte karkater ‘2’.
3. Sensor
gas < 100, aktif, ultrasonic (kondisi don’t
care), master akan mengirimkan data satu byte karkater ‘3’.
4. Sensor
gas > 100, flame aktif, ultrasonic > 50, master akan mengirimkan data
satu byte karkater ‘4’.
5. Sensor gas > 100, flame aktif, ultrasonic < 50 master akan mengirimkan data satu byte karkater ‘5’.
Sementara
rangkaian slave akan menerima data – data yang dikirmkan oleh master dan
mengambil keputusan sesuai dengan yang telah deprogram. Arduino slave sendiri
dihubungkan ke output – output rangkaian seperti LED, servo, buzzer, dan relay.
Dengan kondisi berdasarkan data yang diterimanya adalah sebagai berikut:
1. Ketika
byte yang diterima adalah ‘1’, maka LED hijau aktif dan semua output tidak
aktif
2. Ketika
byte yang diterima adalah ‘2’, maka LED kuning aktif, dan semua output tidak
aktif
3. Ketika
byte yang diterima adalah ‘3’ maka LED merah aktif, relay aktif, servo aktif
untuk membukakan pintu.
4. Ketika
byte yang diterma adalah ‘4’ , maka LED merah dan kuning aktif, servo aktif
untuk membuka pintu, dan relay aktif untuk memutuskan saklar
5. Ketika
byte yang diterima adalah ‘5’. Maka LED merah dan kuning aktif, servo aktif
untuk membukakan pintu, relay aktif untuk memutuskan saklar, dan buzzer aktif
mengindikasikan adanya korban pada tempat kejadian.
/*
Program master dari aplikasi
kelompok dengan judul "kontrol kebakaran laboratorium" 3 dengan
anggota:
Muhammad Rizieq Rizaldi
Muhammad Habib Hidayat
Salasbila Putri Tarigan
*/
#include <NewPing.h>
//library sensor ultrasonic
#include <LiquidCrystal.h>
//library LCD
#define T1 9
#define E1 10
#define Flame 8
#define gas A1
const int jarak_maksimum = 300;
const int d_panjang = 1000;
const int d_singkat = 50;
const int d_spasi = 100;
LiquidCrystal lcd (2, 3, 4, 5, 6,
7); //dengan urutannya adalah pin rs, e, d4, d5, d6, d7
NewPing sonar(T1, E1,
jarak_maksimum);
void setup() {
// put your setup code here, to run once:
pinMode(Flame, INPUT);
pinMode(gas, INPUT);
Serial.begin(9600);
lcd.begin(16,2);
lcd.clear();
}
void loop() {
// put your main code here, to run repeatedly:
int flame_reading = digitalRead(Flame);
int gas_reading = analogRead(gas);
float jarak = sonar.ping_cm();
//pembacaan sebagai berikut:
//Serial.println(" ");
//Serial.print("Jarak yang dideteksi adalah sebagai berikut
");
//Serial.println(jarak);
//Serial.print("pembacaan kadar gas yang didapat adalah sebagai
berikut: ");
//Serial.println(gas_reading);
//Serial.print("Pembacaan flame sensor adalah sebagai berikut
");
//Serial.println(flame_reading);
if (gas_reading <=100) //kondisi apabila tidak ada gas yang
terdeteksi
{
if (flame_reading==1)// tidak ada api yang terdeteksi
{
Serial.write('1');
lcd.print("Deteksi gas:");
lcd.setCursor(13, 0);
lcd.print("No ");
lcd.setCursor(0, 1);
// print the number of seconds since
reset:
lcd.print(" aman ");
delay(d_panjang);
lcd.setCursor(0, 1);lcd.print(" ");
delay(d_spasi);
lcd.setCursor(0,
1);lcd.print("Selamat bekerja ");
delay(d_panjang);
lcd.setCursor(0, 1);lcd.print(" ");
delay(d_singkat);
}
else if(flame_reading==0) // ada api yang terdeteksi
{
Serial.write('3');
lcd.print("Deteksi gas:");
lcd.setCursor(13, 0);
lcd.print("No ");
lcd.setCursor(0, 1);
// print the number of seconds since
reset:
lcd.print(" Kebakaran ");
delay(d_panjang);
lcd.setCursor(0, 1);lcd.print(" ");
delay(d_spasi);
lcd.setCursor(0,
1);lcd.print("Segera evakuasi ");
delay(d_panjang);
lcd.setCursor(0, 1);lcd.print(" ");
delay(d_singkat);
}
}
else {
//terdapat terdeteksi gas
if (flame_reading==1) // ada gas tapi tidak ada api
{
Serial.write('2');
lcd.print("Deteksi gas:");
lcd.setCursor(13, 0);
lcd.print("Yes");
lcd.setCursor(0, 1);
// print the number of seconds since
reset:
lcd.print("kebocoran gas");
delay(d_panjang);
lcd.setCursor(0, 1);lcd.print(" ");
delay(d_spasi);
lcd.setCursor(0,
1);lcd.print("Segera keluar");
delay(d_panjang);
lcd.setCursor(0, 1);lcd.print(" ");
delay(d_singkat);
}
else if(flame_reading==0) // ada gas dan api yang terdeteksi
{
Serial.write('4');
lcd.print("Deteksi gas:");
lcd.setCursor(13, 0);
lcd.print("Yes");
lcd.setCursor(0, 1);
// print the number of seconds since
reset:
lcd.print("Warning!!");
delay(d_panjang);
lcd.setCursor(0, 1);lcd.print(" ");
delay(d_spasi);
lcd.setCursor(0,
1);lcd.print("Potensi ledakan ");
delay(d_panjang);
lcd.setCursor(0, 1);lcd.print(" ");
delay(d_singkat);
if (jarak <=50) //terdeteksi korban
30cm dari tempat kebakaran
{
Serial.write('5');
lcd.print("Deteksi gas:");
lcd.setCursor(13, 0);
lcd.print("Yes");
lcd.setCursor(0, 1);
// print the number of seconds since
reset:
lcd.print("Warning!!");
delay(d_panjang);
lcd.setCursor(0,
1);lcd.print("
");
delay(d_spasi);
lcd.setCursor(0,
1);lcd.print("Potensi ledakan ");
delay(d_panjang);
lcd.setCursor(0,
1);lcd.print("
");
delay(d_spasi);
lcd.setCursor(0,1);
lcd.print("terdapat kobran ");
delay(d_panjang);
lcd.setCursor(0,
1);lcd.print("
");
delay(d_singkat);
}
}
}
delay(1000);
}
/*
Program slave dari aplikasi
kelompok dengan judul "kontrol kebakaran laboratorium" 3 dengan
anggota:
Muhammad Rizieq Rizaldi
Muhammad Habib Hidayat
Salasbila Putri Tarigan
*/
#include <Servo.h>
#define buzzer 7
#define relay 8
#define servo 9
#define green_led 10
#define yellow_led 11
#define red_led 12
Servo myservo;
void putar_servo();
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(buzzer, OUTPUT);
pinMode(relay, OUTPUT);
pinMode(servo, OUTPUT);
pinMode(green_led, OUTPUT);
pinMode(yellow_led, OUTPUT);
pinMode(red_led, OUTPUT);
myservo.attach(9);
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available())//memeriksa apakah terdapat data pada buffer
{
char bacaan = Serial.read();
if (bacaan == '1') //tidak ada gas dan api
{
digitalWrite(green_led, HIGH);
digitalWrite(yellow_led, LOW);
digitalWrite(red_led, LOW);
digitalWrite(buzzer, LOW);
digitalWrite(relay, LOW);
}
else if(bacaan== '2') //ada gas tetapi tidak ada api
{
digitalWrite(green_led, LOW);
digitalWrite(yellow_led, HIGH);
digitalWrite(red_led, LOW);
digitalWrite(buzzer, LOW);
digitalWrite(relay, LOW);
}
else if(bacaan== '3') //tidak ada gas tetapi ada api
{
digitalWrite(green_led, LOW);
digitalWrite(yellow_led, LOW);
digitalWrite(red_led, HIGH);
digitalWrite(buzzer, LOW);
digitalWrite(relay, HIGH);
putar_servo();
}
else if(bacaan== '4') //ada gas dan ada api tidak ada korban
{
digitalWrite(green_led, LOW);
digitalWrite(yellow_led, HIGH);
//blinking menandakan keadaan darurat
digitalWrite(red_led, HIGH);
delay(500);
digitalWrite(red_led, LOW);
delay(500);
digitalWrite(buzzer, LOW);
digitalWrite(relay, HIGH);
putar_servo();
}
else if(bacaan== '5') //ada gas ada api dan ada korban
{
digitalWrite(green_led, LOW);
digitalWrite(yellow_led, LOW);
//blinking menandakan keadaan darura
digitalWrite(red_led, HIGH);
delay(500);
delay(500);
digitalWrite(buzzer, HIGH);
digitalWrite(relay, HIGH;
putar_servo();
}
Serial.println(bacaan);
delay(250);
}
}
void putar_servo()
{
int pos;
for (pos = 0; pos <= 180; pos += 1) {
// in steps of 1 degree
myservo.write(pos);
delay(15);
}
}
Download program arduino master
Download program arduino slave
Download library Sensor ultrasonik HCSR504
Download datasheet sensor MQ-2
Download datasheet flame sensor KY-90
Download datasheet Sensor HC-SR504
Download datasheet Relay Module
Download datasheet Arduino UNO R3
Tidak ada komentar:
Posting Komentar