Judul : BERMAIN DENGAN BLUETOOTH HC-05, ARDUINO & PROCESSING
Tema : BERMAIN DENGAN BLUETOOTH HC-05, ARDUINO & PROCESSING
BERMAIN DENGAN BLUETOOTH HC-05, ARDUINO & PROCESSING
Selamat malam gan, kali ini ane akan berbagi tentang Bermain dengan Bluetooth HC-05, Arduino & Processing. Pada postingan kali ini kita akan belajar tentang bagaimana Mengontrol LED dengan GUI Processing, Arduino & Bluetooth HC-05... Hemm.. Ok langsung aja ya.. Ane akan bahas tuntas langkah2nya... Cekidot...
Perlengkapan yang Dibutuhkan
- PC yang telah terinstall Arduino, Processing dan Driver USB to TTL
- Arduino
- USB to TTL
- Bluetooth HC-05
- Kabel Jumper Secukupnya
- Catu daya 5 V
Pertama-tama sebelum memulai komunikasi dengan bluetooth kita harus mengecek apakah bluetooth yang baru saja kita beli itu dapat berfungsi dengan baik atau tidak, caranya, hubungkan Bluetooth HC-05 dengan USB to TTL (pada bluetooth terdapat 2 buah mode, yaitu mode Data dan mode AT Command, defaultnya bluetooth ketika diberi catu daya berada pada mode Data, pada pengecekan bluetooth harus menggunakan mode AT Command dengan cara menekan tombol pada bluetooth ketika akan menyambungkan catu daya. Indikator jika sudah pada mode AT Command adalah lampu indikator bluetooth akan kedap-kedip lebih lama sekitar 2 detik), buka Serial Monitor Arduino, pastikan sebelumnya COM-PORT nya disesuaikan dengan COM pada USB to TTL. Gunakan baudrate 38400 dan settingan Both NL & CR. Selanjutnya klik perintah AT (ada banyak perintah untuk spisifikasi dan setting bluetooth, bisa dilihat pada datasheet) untuk mengetahui kondisi bluetooth, jika tampil OK maka bluetooth siap digunakan
Cek bluetooth menggunakan COM Arduino |
Pairing Bluetooth HC-05 dengan PC (Windows tutorial)
Proses pairing adalah proses pengenalan bluetooth oleh PC agar dapat melakukan komunikasi serial, caranya adalah. Pertama-tama beri catu daya pada Bluetooth HC-05, lalu klik kiri pada icon bluetooth (biasanya terdapat pada pojok kanan bawah task bar), lalu pilih Add a Device.
Masuk ke Add Device pada Bluetooth |
Seharusnya bluetooth akan terdeteksi oleh PC, selanjutnya pilih HC-05 (pada beberapa kasus nama bluetooth dapat berubah), kemudian klik Next.
Proses pairing Bluetooth dengan PC |
Pilih Enter the pairing code for the device, lalu masukkan code "1234" atau "0000" (ini merupakan code default dari bluetooth, code ini dapat berubah sesuai settingan pada bluetooth) lalu klik Next.
Code koneksi Bluetooth HC-05 |
Setelah proses selesai, cek bluetooth pada Bluetooth Device maka akan muncul HC-05, klik kanan lalu pilih Properties - Hardware untuk mengetahui COM dari Bluetooth HC-05. Proses pairing selesai.
Cek COM-PORT Bluetooth HC-05 |
Mulai Memprogram Arduino
Tulislah source code dibawah ini, lalu upload ke Arduino.
char val;
int ledpin = 13;
void setup() {
pinMode(ledpin, OUTPUT);
Serial.begin(9600);
}
void loop() {
if( Serial.available() ) // if data is available to read
{
val = Serial.read(); // read it and store it in 'val'
}
if( val == 'H' ) // if 'H' was received
{
digitalWrite(ledpin, HIGH); // turn ON the LED
} else {
digitalWrite(ledpin, LOW); // otherwise turn it OFF
}
delay(100); // wait 100ms for next reading
}
int ledpin = 13;
void setup() {
pinMode(ledpin, OUTPUT);
Serial.begin(9600);
}
void loop() {
if( Serial.available() ) // if data is available to read
{
val = Serial.read(); // read it and store it in 'val'
}
if( val == 'H' ) // if 'H' was received
{
digitalWrite(ledpin, HIGH); // turn ON the LED
} else {
digitalWrite(ledpin, LOW); // otherwise turn it OFF
}
delay(100); // wait 100ms for next reading
}
Selanjutnya rangkailah bluetooth dengan Arduino seperti pada gambar dibawah ini.
Wiring Bluetooth HC-05 dengan Arduino |
Untuk kali ini kita akan buat GUI yang sederhana, yang terdiri dari 2 buah tombol untuk ON/OFF LED, berikut source code nya.
import processing.serial.*;
Serial port;
//button setup
color currentcolor;
RectButton rect1, rect2;
boolean locked = false;
void setup() {
//set up window
size(200, 200);
color baseColor = color(102, 102, 102);
currentcolor = baseColor;
println(Serial.list());
port = new Serial(this, "COM36", 9600); //"COM31" dapat menyesuaikan
// Define and create rectangle button #1
int x = 30;
int y = 100;
int size = 50;
color buttoncolor = color(153, 102, 102);
color highlight = color(102, 51, 51);
rect1 = new RectButton(x, y, size, buttoncolor, highlight);
// Define and create rectangle button #2
x = 90;
y = 100;
size = 50;
buttoncolor = color(153, 153, 153);
highlight = color(102, 102, 102);
rect2 = new RectButton(x, y, size, buttoncolor, highlight);
}
void draw() {
background(currentcolor);
stroke(255);
update(mouseX, mouseY);
rect1.display();
rect2.display();
}
void update(int x, int y) {
if(locked == false) {
rect1.update();
rect2.update();
} else { locked = false; }
if(mousePressed) {
if(rect1.pressed()) { //ON button
currentcolor = rect1.basecolor;
port.write('H');
} else if(rect2.pressed()) { //OFF button
currentcolor = rect2.basecolor;
port.write('L');
}
}
}
class Button {
int x, y;
int size;
color basecolor, highlightcolor;
color currentcolor;
boolean over = false;
boolean pressed = false;
void update()
{
if(over()) {
currentcolor = highlightcolor;
} else {
currentcolor = basecolor;
}
}
boolean pressed()
{
if(over) {
locked = true;
return true;
} else {
locked = false;
return false;
}
}
boolean over()
{
return true;
}
void display() {}
}
class RectButton extends Button {
RectButton(int ix, int iy, int isize, color icolor, color ihighlight)
{
x = ix;
y = iy;
size = isize;
basecolor = icolor;
highlightcolor = ihighlight;
currentcolor = basecolor;
}
boolean over()
{
if( overRect(x, y, size, size) ) {
over = true;
return true;
} else {
over = false;
return false;
}
}
void display()
{
stroke(255);
fill(currentcolor);
rect(x, y, size, size);
}
}
boolean overRect(int x, int y, int width, int height) {
if (mouseX >= x && mouseX <= x+width &&
mouseY >= y && mouseY <= y+height) {
return true;
} else {
return false;
}
}
Serial port;
//button setup
color currentcolor;
RectButton rect1, rect2;
boolean locked = false;
void setup() {
//set up window
size(200, 200);
color baseColor = color(102, 102, 102);
currentcolor = baseColor;
println(Serial.list());
port = new Serial(this, "COM36", 9600); //"COM31" dapat menyesuaikan
// Define and create rectangle button #1
int x = 30;
int y = 100;
int size = 50;
color buttoncolor = color(153, 102, 102);
color highlight = color(102, 51, 51);
rect1 = new RectButton(x, y, size, buttoncolor, highlight);
// Define and create rectangle button #2
x = 90;
y = 100;
size = 50;
buttoncolor = color(153, 153, 153);
highlight = color(102, 102, 102);
rect2 = new RectButton(x, y, size, buttoncolor, highlight);
}
void draw() {
background(currentcolor);
stroke(255);
update(mouseX, mouseY);
rect1.display();
rect2.display();
}
void update(int x, int y) {
if(locked == false) {
rect1.update();
rect2.update();
} else { locked = false; }
if(mousePressed) {
if(rect1.pressed()) { //ON button
currentcolor = rect1.basecolor;
port.write('H');
} else if(rect2.pressed()) { //OFF button
currentcolor = rect2.basecolor;
port.write('L');
}
}
}
class Button {
int x, y;
int size;
color basecolor, highlightcolor;
color currentcolor;
boolean over = false;
boolean pressed = false;
void update()
{
if(over()) {
currentcolor = highlightcolor;
} else {
currentcolor = basecolor;
}
}
boolean pressed()
{
if(over) {
locked = true;
return true;
} else {
locked = false;
return false;
}
}
boolean over()
{
return true;
}
void display() {}
}
class RectButton extends Button {
RectButton(int ix, int iy, int isize, color icolor, color ihighlight)
{
x = ix;
y = iy;
size = isize;
basecolor = icolor;
highlightcolor = ihighlight;
currentcolor = basecolor;
}
boolean over()
{
if( overRect(x, y, size, size) ) {
over = true;
return true;
} else {
over = false;
return false;
}
}
void display()
{
stroke(255);
fill(currentcolor);
rect(x, y, size, size);
}
}
boolean overRect(int x, int y, int width, int height) {
if (mouseX >= x && mouseX <= x+width &&
mouseY >= y && mouseY <= y+height) {
return true;
} else {
return false;
}
}
Setelah selesai RUN Processing. Kurang lebih tampilan dari GUI yang dihasilkan seperti pada gambar dibawah ini. Tombol Coklat untuk ON LED sedangkan tombol Abu-abu untuk OFF LED.
Tampilan GUI Processing Kontrol LED |
Gimana seru kan bermain2 dengan Bluetoorh HC-05, Arduino dan GUI Processing. Materi ini dapat dikembangkan menjadi project2 aplikatif seperti kontrol lampu dengan bluetooth Android, pengiriman data sensor berbasis bluetooth dan lain sebagainya... Hemm ok Selamat Belajar ya.. Salam Super dari COZ.
Demikianlah Artikel BERMAIN DENGAN BLUETOOTH HC-05, ARDUINO & PROCESSING
materi teknik elektro tentang BERMAIN DENGAN BLUETOOTH HC-05, ARDUINO & PROCESSING, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sekian postingan kali ini.
0 Response to "BERMAIN DENGAN BLUETOOTH HC-05, ARDUINO & PROCESSING"
Posting Komentar