MODUL 4
- Praktikan dapat merancang sebuah sistem secara detail sehingga rancangan tersebut dapat menjadi sebuah alat
- Praktikan dapat mengkombinasikan bermacam output untuk sebuah indikator alat
- Praktikan dapat membuat sebuah alat untuk mengukur kadar gas dalam suatu ruangan untuk mengantisipasi kebakaran
2. Komponen Alat [kembali]
a. Arduino Uno
b. Sensor MQ-2
c. LCD
d. LED
e. Buzzer
3. Dasar Teori [kembali]
A. Arduino
Gambar 1. arduino uno
Spesifikasi arduino:
Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain.
Spesifikasi arduino:
Microcontroller ATmega328P
|
Operating Voltage 5 V
|
Input Voltage (recommended) 7 – 12 V
|
Input Voltage (limit) 6 – 20 V
|
Digital I/O Pins 14 (of which 6 provide PWM output)
|
PWM Digital I/O Pins 6
|
Analog Input Pins 6
|
DC Current per I/O Pin 20 mA
|
DC Current for 3.3V Pin 50 mA
|
Flash Memory 32 KB of which 0.5 KB used by bootloader
|
SRAM 2 KB
|
EEPROM 1 KB
|
Clock Speed 16 MHz
|
POWER USB Digunakan untuk menghubungkan Papan Arduino dengan komputer lewat koneksi USB.
POWER JACK Supply atau sumber listrik untuk Arduino dengan tipe Jack. Input DC 5 - 12 V.
Crystal OscillatorKristal ini digunakan sebagai layaknya detak jantung pada Arduino.
Jumlah cetak menunjukkan 16000 atau 16000 kHz, atau 16 MHz.
Reset
Digunakan untuk mengulang program Arduino dari awal atau Reset.
Digital Pins I / O
Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika ( 0 atau 1 ). Pin berlabel " ~ " adalah pin-pin PWM ( Pulse Width Modulation ) yang dapat digunakan untuk menghasilkan PWM.
Analog Pins
Papan Arduino UNO memiliki 6 pin analog A0 sampai A5. Digunakan untuk membaca sinyal atau sensor analog seperti sensor jarak, suhu dsb, dan mengubahnya menjadi nilai digital.
LED Power Indicator
Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik dengan baik.
B. LCD
Gambar 2. lcd
Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain.
Gambar 3. penampang lcd
Keterangan:
1. Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.
2. Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).
3. Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).
4. Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).
5. Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.
6. Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat.
Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.
C. Buzzer
Buzzer Listrik adalah sebuah komponen elektronika yang dapat mengubah sinyal listrik menjadi getaran suara. Pada umumnya, Buzzer yang merupakan sebuah perangkat audio ini sering digunakan pada rangkaian anti-maling, Alarm pada Jam Tangan, Bel Rumah, peringatan mundur pada Truk dan perangkat peringatan bahaya lainnya. Jenis Buzzer yang sering ditemukan dan digunakan adalah Buzzer yang berjenis Piezoelectric, hal ini dikarenakan Buzzer Piezoelectric memiliki berbagai kelebihan seperti lebih murah, relatif lebih ringan dan lebih mudah dalam menggabungkannya ke Rangkaian Elektronika lainnya. Buzzer yang termasuk dalam keluarga Transduser ini juga sering disebut dengan Beeper.
Piezoelectric Buzzer adalah jenis Buzzer yang menggunakan efek Piezoelectric untuk menghasilkan suara atau bunyinya. Tegangan listrik yang diberikan ke bahan Piezoelectric akan menyebabkan gerakan mekanis, gerakan tersebut kemudian diubah menjadi suara atau bunyi yang dapat didengar oleh telinga manusia dengan menggunakan diafragma dan resonator.
Piezo Buzzer dapat bekerja dengan baik dalam menghasilkan frekuensi di kisaran 1 – 5 kHz hingga 100 kHz untuk aplikasi Ultrasound. Tegangan Operasional Piezoelectric Buzzer yang umum biasanya berkisar diantara 3Volt hingga 12 Volt. komponen buzzer:
D. LED
Gambar 4. 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.
Spesifikasi sensor pada sensor gas MQ-2 adalah sebagai berikut:
200 - 5000ppm untuk LPG, propane
300 - 5000ppm untuk butane
5000 - 20000ppm untuk methane
300 - 5000ppm untuk Hidrogen
Spesifikasi sensor pada sensor gas MQ-2 adalah sebagai berikut:
- Catu daya pemanas : 5V AC/DC
- Catu daya rangkaian : 5VDC
- Range pengukuran :
200 - 5000ppm untuk LPG, propane
300 - 5000ppm untuk butane
5000 - 20000ppm untuk methane
300 - 5000ppm untuk Hidrogen
- Luaran : analog (perubahan tegangan)
Cara Menggunakan Sensor MQ-2
Jika Anda mencari keakuratan dengan bacaan Anda, maka mengukur PPM akan menjadi cara terbaik untuk melakukannya. Ini juga dapat membantu Anda membedakan satu gas dari yang lain. Jadi untuk mengukur PPM Anda bisa langsung menggunakan modul. Kabel dasar untuk sensor dari lembar data ditunjukkan di bawah ini.
Jika Anda mencari keakuratan dengan bacaan Anda, maka mengukur PPM akan menjadi cara terbaik untuk melakukannya. Ini juga dapat membantu Anda membedakan satu gas dari yang lain. Jadi untuk mengukur PPM Anda bisa langsung menggunakan modul. Kabel dasar untuk sensor dari lembar data ditunjukkan di bawah ini.
Prosedur untuk mengukur PPM menggunakan sensor MQ adalah sama tetapi beberapa nilai konstan akan bervariasi berdasarkan jenis sensor MQ yang digunakan.
Pada dasarnya, kita perlu melihat ke dalam (Rs / Ro) VS PPM grafik yang diberikan dalam lembar data (juga ditunjukkan di bawah).
Gambar 5. grafik uji sensor
Nilai Ro adalah nilai resistansi di udara segar dan nilai Rs adalah nilai resistansi dalam konsentrasi Gas. Pertama, Anda harus mengkalibrasi sensor dengan menemukan nilai-nilai Ro di udara segar dan kemudian menggunakan nilai itu untuk menemukan Rs menggunakan rumus
Setelah menghitung Rs dan Ro, kami dapat menemukan rasio dan kemudian menggunakan grafik yang ditunjukkan di atas, kami dapat menghitung nilai PPM yang setara untuk gas tersebut.
F. WIreless NRF24L01
Komunikasi nirkabel merupakan komunikasi tanpa menggunakan kabel. Berbagai perangkat elektronik di buat sekecil mungkin untuk kebutuhan portabel. Salah satu perangkat komunikasi tersebut adalah nRF24L01. Perangkat ini bekerja pada frekuensi ISM (Industrial, Scientific and Medical) 2.4 – 2.5 GHz. Chip nRF24L01 buatan Nordic Semiconductor ini memiliki spesifikasi data rate 1 atau 2Mbps. Artinya dengan menggunakan chip ini anda dapat mengirimkan data sebesar 1 mega (1.000.000) atau 2 mega (2.000.000) data bit per detik. Chip nRF24L01 ini bisa digunakan sebagai transceiver, receiver atau bi-directional (transceiver dan receiver secara bersamaan).
Berdasarkan dataheet yang diberikan chip ini menggunakan power supply sebesar 1.9 – 3.6 volt, namun selain pin power supply seperti pin data bisa diberikan tegangan sebesar 5 volt. Chip ini membutuhkan arus sebesar 11.3 mA pada saat mengirimkan data dan 12.3mA saat menerima data. Untuk komunikasi terhadap uC seperti arduino, chip ini menggunakan protokol SPI (Serial Periperal Interface). Kecepatan pengiriman data SPI pada chip ini adalah 0 hingga 8Mbps. Jika anda ingin melihat lebih banyak dari chip ini, silahkan download datasheet dibawah ini.
Module Wireless nRF24L01 merupakan module yang mempunyai fungsi untuk komunikasi jarak jauh atau nirkabel yang memanfaatkan gelombang RF 2.4 GHz yang biasanya diaplikasikan untuk Scientific , Industrial, maupun Medical.
Pada modul ini menggunakan antarmuka SPI (Serial Parallel Interface) untuk berkomunikasi dengan mikrokontroler dalam hal ini Arduino. Tegangan operasional normal untuk mengakses module ini yaitu 3.3Vdc, yang biasanya dibantu dengan regulator AMS1117.
Module nRF24L01 memiliki perangkat keras yang berupa baseband logic Enhanced ShockBurst dan protocol accelerator yang memungkinan untuk berkomunikasi dalam kecepatan tinggi.
Selain itu, module ini juga memiliki fitur true ULP solution, yang berfungsi sebagai penghemat konsumsi daya sehingga hemat energi. Dan bisa digunakan juga sebagai pembuatan perangkat fitnes dan olahraga, pendukung PC, mainan anak-anak, piranti perangkat untuk permainan, dan lainnya.
Kesimpulan dari beberapa fitur Modul Wireless RF nRF24L01 :
- Data rate mencapai 2Mbps
- Penanganan transaksi paket otomatis
- Beroperasi pada pada pita ISM 2.4 GHZ
- Konsumsi daya yang rendah
- Penanganan paket data otomatis
- Jarak tempuh maksimal 1100m
Pin Out dari Modul Wireless RF nRF24L01
// Program Master
#define sensor A0
#include<LiquidCrystal.h>
#include <Wire.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
int nilai;
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00298", "00910"};
char data;
void setup() {
lcd.begin(16, 2);
pinMode(sensor, INPUT);
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(addresses[0]); // 00002
radio.openReadingPipe(1, addresses[1]); // 00001
radio.setPALevel(RF24_PA_MAX);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("KONDISI AMAN");
delay(1000);
}
void loop() {
int nilai = analogRead(sensor);
Serial.print("Nilai : ");
Serial.print(nilai);
Serial.print('\t');
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Kondisi Gas");
lcd.setCursor(0, 1);
lcd.print(nilai);
radio.stopListening();
if (nilai <= 30) {
data = '1';
radio.write(&data, sizeof(data));
delay(50);
}
else if (nilai > 30 && nilai <= 60 )
{
data = '2 ';
radio.write(&data, sizeof(data));
delay(50);
}
else {
data = '3';
radio.write(&data, sizeof(data));
delay(50);
}
radio.startListening();
Serial.print("Data to NRF : ");
Serial.print(data);
Serial.println();
}
// Program Slave
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define led 3
#define led1 4
#define buzzer 5
char data;
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00298", "00910"};
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(buzzer, OUTPUT);
radio.begin();
radio.openWritingPipe(addresses[1]); // 00001
radio.openReadingPipe(1, addresses[0]); // 00002
radio.setPALevel(RF24_PA_MAX);
}
void loop() {
delay(100);
radio.startListening();
while (!radio.available()) {
Serial.println("No Data Received");
}
radio.read(&data, sizeof(data));
Serial.print("Data Received : ");
Serial.print(data);
Serial.println();
switch (data) {
case '1' :
digitalWrite(led, HIGH);
digitalWrite(led1, LOW);
analogWrite(buzzer, 0);
break;
case '2' :
digitalWrite(led, LOW);
digitalWrite(led1, HIGH);
analogWrite(buzzer, 0);
break;
case '3' :
digitalWrite(led, LOW);
digitalWrite(led1, LOW);
analogWrite(buzzer, 150);
break;
}
radio.stopListening();
}
#define sensor A0
#include<LiquidCrystal.h>
#include <Wire.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
int nilai;
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00298", "00910"};
char data;
void setup() {
lcd.begin(16, 2);
pinMode(sensor, INPUT);
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(addresses[0]); // 00002
radio.openReadingPipe(1, addresses[1]); // 00001
radio.setPALevel(RF24_PA_MAX);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("KONDISI AMAN");
delay(1000);
}
void loop() {
int nilai = analogRead(sensor);
Serial.print("Nilai : ");
Serial.print(nilai);
Serial.print('\t');
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Kondisi Gas");
lcd.setCursor(0, 1);
lcd.print(nilai);
radio.stopListening();
if (nilai <= 30) {
data = '1';
radio.write(&data, sizeof(data));
delay(50);
}
else if (nilai > 30 && nilai <= 60 )
{
data = '2 ';
radio.write(&data, sizeof(data));
delay(50);
}
else {
data = '3';
radio.write(&data, sizeof(data));
delay(50);
}
radio.startListening();
Serial.print("Data to NRF : ");
Serial.print(data);
Serial.println();
}
// Program Slave
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define led 3
#define led1 4
#define buzzer 5
char data;
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00298", "00910"};
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(buzzer, OUTPUT);
radio.begin();
radio.openWritingPipe(addresses[1]); // 00001
radio.openReadingPipe(1, addresses[0]); // 00002
radio.setPALevel(RF24_PA_MAX);
}
void loop() {
delay(100);
radio.startListening();
while (!radio.available()) {
Serial.println("No Data Received");
}
radio.read(&data, sizeof(data));
Serial.print("Data Received : ");
Serial.print(data);
Serial.println();
switch (data) {
case '1' :
digitalWrite(led, HIGH);
digitalWrite(led1, LOW);
analogWrite(buzzer, 0);
break;
case '2' :
digitalWrite(led, LOW);
digitalWrite(led1, HIGH);
analogWrite(buzzer, 0);
break;
case '3' :
digitalWrite(led, LOW);
digitalWrite(led1, LOW);
analogWrite(buzzer, 150);
break;
}
radio.stopListening();
}
6. Gambar Alat [kembali]
MASTER
SLAVE
A. Simulasi
B. demo alat
Alat ini ini merupakan sensor MQ-2 yang mana merupakan sensor gas yang dapat mendeteksi gas lingkungan seperti co2,co,metana. sensor ini bekerja dengan mengubah gas yang ada menjadi tegangan. sensor ini menggunakan 2 arduino yang dihubungkan dengan komunikasi wireles nRF24L9101
Tidak ada komentar:
Posting Komentar