Pada kesempatan kali ini kita akan membahas tentang bagaimana kita bisa membuat rangkaian alarm gas bocor dengan menggunakan arduino.

Alarm yang akan kita buat sekarang akan dilengkapi dengan display yang dapat menunjukkan nilai kadar gas yang terbaca oleh sensor. Selain itu juga kita akan memasangkan sebuah buzzer yang berfungsi sebagai pemberi sinyal suara pertanda bahaya.

Sebelum kita mulai ke pembahasan rangkaian nya, perlu kita ketahui dulu bahan bahan apa saja yang diperlukan dalam project ini.

Bahan Bahan Alarm Gas Bocor Arduino

Bahan bahan yang perlu kalian siapkan dalam project ini adalah :

  1. Arduino Uno
  2. LCD 16X2
  3. Sensor Gas MQ-2
  4. Buzer Active 5V
  5. Potensiometer 10k
  6. Kabel Jumper

Dari semua bahan bahan diatas, kalian mungkin juga akan perlu sebuah breadboard untuk tempat menyambung kabel VCC dan GND. Jalur ini perlu dihubungkan ke breadboard karena kita akan memerlukan beberapa jalur VCC dan GND untuk bisa menyalakan sensor dan LCD, sedangkan pada arduino UNO hanya tersedia 1 pin 5V.

Rangkaian Kabel Alarm Gas Bocor Arduino

Gambar 1. Rangkaian Alarm Gas Bocor Arduino

Pada gambar rangkaian diatas kalian bisa perhatikan di bagian sensor MQ-2 nya. Pada sensor terdapat 4 pin header, sedangkan yang kita pakai hanya 3 pin saja, yaitu VCC, GND, dan Aout. Dimana Aout ini berarti pin output sensor untuk nilai analog. Sedangkan Dout adalah pin output sensor untuk nilai digital yang hanya memiliki nilai “ada” dan “tidak ada”.

Karena kita akan mencari tau level kebocoran gas di udara, maka kita menggunakan pin Aout yang memiliki nilai analog tegangan dari 0V sampai 5V. 0V yang keluar dari sensor artinya 0% pada display, sedangkan 5V yang keluar dari sensor memiliki nilai 100% pada display. Kita akan bahas nanti konversi nilai ini.

Untuk rangkaian LCD nya sendiri kita harus hubungkan sebuah potensiometer dengan ukuran 10k yang akan kita gunakan untuk mengatur kontras atau kecerahan karakter pada display LCD. Tanpa potensiometer ini LCD tidak akan mampu menampilkan karakter dengan jelas. Kalian juga bisa menggantikan potensiometer ini dengan sebuah resistor dengan nilai 1k5 yang dihubungkan antara pin V0 dengan GND.

Untuk Buzzer dapat kita hubungkan langsung ke pin GND dan pin digital yang sudah kita tentukan tanpa perlu driver tambahan lagi. Itu karena arus buzzer yang masih tergolong aman untuk di cover oleh pin out pada mikrokontroler ATmega328 nya (jenis mikrokontroler yang digunakan pada arduino uno).

Kalian bisa merangkai jalur LCD ke arduino sesuai dengan gambar yang sudah saya berikan atau menggunakan jalur lain pada arduino. Ini karena penentuan pin yang digunakan oleh LCD bisa kita atur pada saat akan memprogram nya.

Pin digital 0 dan 1 (pin rx dan tx) sebisa mungkin untuk tidak dihubungkan ke perangkat apapun saat akan mengupload coding ke arduino. Ini akan menyebabkan error saat uploading program, karena jalur komunikasi serial terganggu oleh nilai hambatan perangkat yang kita pasang di jalur tersebut.

Program / Coding Arduino

Dalam project ini kita menggunakan software arduino IDE untuk memprogram board arduino Uno nya. Jika kalian belum menginstall software ini, kalian bisa mengunjungi artikel tentang bagaimana cara menginstal software arduino disini :

Kalau kalian sudah menginstal software arduino IDE nya, kalian bisa langsung membuka coding example pada menu File>Examples>Basics>AnalogReadSerial. Maka tampilan yang akan keluar akan seperti berikut ini :

Gambar 2. Example Code AnalogReadSerial

Coding atau program contoh ini berfungsi untuk membaca data analog dari sebuah sensor, lalu menampilkannya pada layar komputer melalui menu Serial Monitor di software arduino.

Pada baris coding tersebut kalian bisa melihat adanya nilai 9600 di bagian void setup seperti berikut :

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

Itu merupakan konfigusrasi setingan untuk kecepatan transfer (baudrate) komunikasi serial yang akan kita gunakan. Pada saat menampilkan Serial Monitor, kita juga harus memilih nilai baudrate yang sama juga agar data bisa tampil dengan benar.

Gamabar 3. Pengaturan Baudrate Serial

Jika coding atau program example tadi kalian upload dengan sensor gas MQ-2 yang sudah terpasang di pin analog A0, maka data serial akan menampilkan nilai gas yang terbaca oleh sensor. Nilai ini akan bervariasi sesuai dengan kadar gas yang dibaca oleh sensor tersebut pada saat itu.

Nilai yang akan tampil bukanlah nilai persentase, melainkan disebut dengan nilai ADC (analog to digital converter). Nilai ADC ini memiliki rentang nilai dari 0-1023, sedangkan yang kita perlukan adalah nilai 0-100. Untuk itu perlu kita tambahkan rumus pengubah nilai sebagai berikut :

Dimana :

X = Nilai persentase yang dicari

N= Nilai ADC yang terbaca

Untuk nilai N sendiri bisa kita dapatkan dari variable sensorValue yang di prinout pada example coding sebelum nya.

void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(1);        // delay in between reads for stability
}

Jadi dari coding example tersebut dan rumus yang saya tulis diatas, bisa kita gabungkan sehingga menjadi seperti berikut ini :

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  int N=sensorValue;
  int X=N/10.23;
  
  Serial.print(X);
  Serial.println("%");
  delay(1);        // delay in between reads for stability
}

Pada coding diatas kalian perhatikan dibagian pertitungan rumus.

int X=N/10.23;

Disana saya langsung menyederhanakan rumus yang saya tulis dan menghilangkan angka 100 dan sekaligus juga membagi langsung 1023 menjadi 10.23. Sehingga jika program tersebut dijalankan, nilai minimum sensor akan tampil angka 0% sedangkan nilai maksimum sensor yang sebelum nya 1023 menjadi 100% di serial monitor.

Untuk coding LCD nya, kita bisa membuka example code Liquid crystal dengan nama Hello World. Coding nya seperti berikut ini

#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}

Untuk menggabungkan coding pembacaan sensor gas yang sudah kita ubah nilai nya menjadi persentase tadi, kita tidak bisa asal meng-copy dan paste kan coding nya menjadi satu. Melainkan kita harus menggabungkan sesuai dengan tempat dan fungsi nya. Coding yang sudah digabungkan akan menjadi seperti ini :

#include <LiquidCrystal.h>
const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  lcd.begin(16, 2);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  int N=sensorValue;
  int X=N/10.23;
  
  Serial.print(X);
  Serial.println("%");
  lcd.setCursor(0, 1);
  lcd.print(X);
  lcd.print("%");
  delay(1);        // delay in between reads for stability
}

Pada coding tersebut kalian harus mengubah susunan pin yang digunakan pada LCD di bagian cons int rs. Nama dan masing masing pin nya harus sesuai dengan gambar rangkaian yang kita buat sebelum nya. Jika coding diatas dijalankan maka pada LCD akan tampil hanya nilai persentase nya saja tanpa adanya pengaturan nyala buzzer saat terdeteksi kebocoran gas seperti ini :

#include <LiquidCrystal.h>
const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  lcd.begin(16, 2);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  int N=sensorValue;
  int X=N/10.23;
  
  Serial.print(X);
  Serial.println("%");
  lcd.setCursor(0, 0);
  lcd.print(X);
  lcd.print("%");
  delay(1);        // delay in between reads for stability
}

Dan karena tidak ada hal lain yang di print atau di cetak pada LCD, maka tampilan yang muncul pada LCD akan seperti ini :

Gmabar 4. Tampilan LCD

Agar bisa menampilkan status bahaya berdasarkan nilai kadar gas yang terbaca dan juga menyalakan alarm (buzzer) saat nilai kadar gas tinggi, kalian harus menambahkan beberapa baris koding untuk mengkonfirmasi kondisi yang mengharuskan arduino untuk menyalakan buzzer dan menampilkan tulisan bahaya pada LCD.

Dengan logika sederhana seperti “Jika nilai gas melebihi 30% maka tampilkan tulisan bahaya dan nyalakan buzzer, atau jika tidak maka matikan buzzer dan tampilkan tulisan aman“. Kalian bisa membuat coding tersebut dan menerapkannya langsung di rangkaian yang sudah kita buat.

Jika kalian ingin mendownload coding yang sudah jadi, kalian bisa langsung download pada link yang sudah saya siapkan dibawah ini :

Kalian masih bisa mengubah pin yang digunakan pada coding untuk menyesuaikan dengan keperluan pin yang ada pada board arduinonya. Dengan coding tersebut maka saat sensor gas mendeteksi adanya kebocoran gas dengan nilai lebih dari 30%, otomatis buzzer akan menyala dan sekaligus menampilkan tulisan berbahaya pada LCD.

Untuk kalian yang ingin mendapatkan artikel terbaru dari website ini, silahkan daftarkan email kalian pada form berikut ini gratis :

Komentar Facebook
Rangkaian Alarm Gas Bocor Arduino
Tag pada:                    

Tinggalkan Balasan