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
Pengecekan Bluetooth HC-05
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
}

Selanjutnya rangkailah bluetooth dengan Arduino seperti pada gambar dibawah ini.
Wiring Bluetooth HC-05 dengan Arduino
Mulai Memprogram GUI Processing
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;
  }
}

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.

Related Posts:

MEMBUAT GUI ARDUINO MENGGUNAKAN C# VISUAL STUDIO 2010

Selamat malam gan. Kali ini ane akan share bagaimana cara Membuat GUI Arduino Menggunakan C# Visual Studio 2010... Ok langsung aja ane akan bahas cara menjalankan GUI yang telah ane buat dan dilanjutkan membahas sekilas tentang programnya. Cekidot...

Pertama-tama kita harus membuat dulu program mengirimkan serial menggunakan Arduino, pada contoh dibawah ini ane buat program mengirimkan 3 buah data random dari 0 - 10 yang dimisalkan sebagai data dari sensor dengan pengiriman data secara pararel.
Mengirimkan 3 data serial menggunakan Arduino
Selanjutnya buat GUI menggunakan C# Form Application Visual Studio 2010, kurang lebih tampilannya seperti gambar dibawah ini. Selanjutnya, isikan COM-PORT dan BAUDRATE sesuai dengan Arduino, Lalu tekan tombol STAR CONNECTION, maka data yang dikirim oleh Arduino akan ditampilan pada Rich Text Box dan Grafik.
Tampilan GUI ketika dijalankan
Tekan STOP CONNECTION untuk menghentikan program, maka penerimaan data dari Arduino akan berhenti. Pada GUI ini juga terdapat menu untuk menyimpan data yang diterima dalam form .TXT, caranya tekan tombol SAVE DATA (pastikan sebelumnya edit program untuk tempat penyimpanan file, ini juga berlaku untuk penyimpanan gambar nantinya)
Menyimpan data serial dalam form .TXT
Untuk menyimpan gambar Grafik yang dihasilkan dengan menekan tombol SAVE CHART. maka gambar akan tersimpan. Gambar yang dihasilkan menggunakan format .PNG
Menyimpan Grafik dengan format .PNG
Hasil penyimpanan data serial dan gambar grafik
Gimana seru kan, ok kali ini ane akan ulas sedikit tentang program dari GUI C# Microsoft Visual Studio 2010, Cekidottt...

Program untuk Koneksi Serial dan Menampilkannya pada Rich Text Box dan Grafik:
private void button1_Click(object sender, EventArgs e) //Start Conection
        {
                myport = new SerialPort();
                myport.BaudRate = Convert.ToInt32(comboBox2.Text);
                myport.PortName = Convert.ToString(comboBox1.Text);
                myport.DataReceived += terima;
            try
            {
                myport.Open();
            }
            catch (Exception)
            {
                richTextBox2.Text = "Koneksi Arduino Gagal !";
            }
            button1.Enabled = false;
            button2.Enabled = false;
            button3.Enabled = true;
            button4.Enabled = false;
        }

        void terima(object sender, SerialDataReceivedEventArgs e)
        {
            data = myport.ReadLine();
            this.Invoke(new EventHandler(display));
            j++;
        }

        private void display(object sender, EventArgs e) //Program untuk menampilkan
        {
            data1 = data.Substring(0, 1); //Parsing tiga buah data
            data2 = data.Substring(2, 1);
            data3 = data.Substring(4, 1);
            kalender = DateTime.Now;
            string time = kalender.Hour + ":" + kalender.Minute + ":" + kalender.Second;
            progressBar1.Value = Convert.ToInt32((Convert.ToInt32(data1) + Convert.ToInt32(data2) + Convert.ToInt32(data3))/3);
            richTextBox1.AppendText(time + "\t\t" + data + "\n");
            richTextBox2.Text = "Koneksi Arduino Sukses !";
            this.chart1.Series["Data1"].Points.AddXY(j, Convert.ToInt32(data1));
            this.chart1.Series["Data2"].Points.AddXY(j, Convert.ToInt32(data2));
            this.chart1.Series["Data3"].Points.AddXY(j, Convert.ToInt32(data3));
        }

Program untuk Stop Koneksi:
private void button3_Click(object sender, EventArgs e) //Stop Connection
        {
            myport.Close(); //Memutuskan komunikasi serial
            richTextBox2.Text = "Koneksi Arduino Terputus !";
        }

Program Menyimpan Data Serial:
private void button2_Click(object sender, EventArgs e) //Save Data
        {
            simpan = @"E:\MOVE ON\PROJECT C#\ProjectCoba12\File Saved\"; //Alamat penyimpanan
            string nama_file = "data.txt";
            System.IO.File.WriteAllText(simpan + nama_file, richTextBox1.Text);
            MessageBox.Show("Data telah tersimpan di " + simpan + nama_file);
        }

Program Menyimpan Gambar Grafik:
private void button4_Click(object sender, EventArgs e) //Save Chart
        {
            simpan = @"E:\MOVE ON\PROJECT C#\ProjectCoba12\File Saved\"; //Alamat penyimpanan
            string nama_gambar = "data.png";
            this.chart1.SaveImage(simpan + nama_gambar, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Png);
            MessageBox.Show("Gambar telah tersimpan di " + simpan + nama_gambar);
        }

Gimana tertarik untuk membuatnya... Ok Ok Ok ane akan share juga file mentahan yang terdiri dari program Arduino dan Visual Studio 2010... Yup2 selamat belajar ya... Semoga bermanfaat...

DOWNLOAD PROGRAM LENGKAP

Related Posts:

ABOUT "COZ."


Selamat malam gan kali ini ane akan share sedikit tentang COZ. Emm pasti beberapa dari agan penasaran apasih itu COZ. ? dan kenapa blog ini dinamakan COZTUTORIAL ? Ok pada postingan kali ini kita akan coba ulas tuntas tentang COZ. Hemm COZ. merupakan sebuah ICON ane yang mempunyai kepanjangan dari CO Zainal (diambil dari nama ane sendiri selaku pendiri COZ.). dimana ini hanya merupakan IDENTITAS dari ane aja. Bermula dari ingin membuat suatu IDENTITAS yang mana nantinya akan digunakan untuk beberapa usaha dan karya ane (semisal ROBOCOZ, COZTUTORIAL dll).

Sedangkan untuk blog ini kenapa kok diberi alamat COZTUTORIAL, ini dikarenakan blog ini dibuat oleh COZ. yang mana kontennya memuat tentang beberapa TUTORIAL tentang beberapa disiplin ilmu terutama ilmu teknik, blog ini hanya sebagai SARANA BERBAGI ILMU yang ADMIN tau, agar semua pembaca juga ikut tw n juga sebagai ARSIP MAYA jikalau data2 yang ada di laptop ane ilang.

Untuk LOGO dari COZ. sampai saat ini sudah ada beberapa perubahan diantara sebagai berikut:
Versi 1
Versi 2
Versi 3 (Insyaalloh yang terakhir)
Logo ini tidak hanya diterapkan pada blog ini saja, akan tetapi logo ini akan disematkan pada beberapa usaha dan karya COZ. nantinya (Semoga Berkah... Aaamiiin Ya Allah).

Beberapa postingan dari blog ini terdapat E-BOOK yang murni hasil karya dari COZ. E-BOOK tersebut selalu ditandai dengan logo COZ. dan ucapan salam dan pernyataan dari ADMIN yang berupa:
Salam & Pernyataan COZ.
Setiap artikel yang terdapat logo dan pernyataan dari COZ. merupakan hak penuh dari COZ. dan isinya dapat dipertanggung-jawabkan. Para pembaca bisa melayangkan kritik dan saran seputar E-BOOK COZ. pada kolom komentar atau E-MAIL / NO. HP yang telah terlampir pada menu CONTACT.

Semoga konten2 yang disuguhkan dalam BLOG maupun E-BOOK COZ. dapat membantu dan bermanfaat bagi temen2 pembaca sekalian. Selamat dan Semangat Belajar... Salam Semangat dari COZ.

Related Posts:

PROJECT KOMUNIKASI SERIAL VISUAL STUDIO C# & ARDUINO

Selamat pagi gan kali ini ane akan berbagi tentang beberapa project ane tentang Komunikasi Serial antara Visual Studio C# dan Arduino. Ini merupakan berkas project kuliah ane dengan matakuliah Akuisisi Data. Sebelumnya terimakasih banyak terhadap Bapak Kunto Aji selaku dosen pengampu matkul Akuisisi Data. Karena bimbingan dan dorongan (tepatnya paksaan sampe2 pulang H-7 lebaran karena Demo Tugas gak di ACC terus hiks hiks hiks) beliau project Komunikasi Serial antara GUI Visual Studio C# dan Arduino dapat terselesaikan mepet-mepet Lebaran. Sebenernya dalam matakuliah diajari menggunakan aplikasi Dephi, tapi karena ane pengen sesuatu yang beda + males belajar bahasa pemrograman yang laen jadi ane pake aplikasi Visual Studio dengan bahasa pemrograman C# yang sebelumnya ane sudah faham dikit2 (yah bondo nekat lah pake C# senidirian). Emm langsung aja deh ane share project ane plus kisi-kisi tentang projectnya yah.

Project Membaca data Biner dari Switch dan Kontrol LED
GUI didesain sedemikian rupa agar dapat membaca nilai desimal yang dihasilkan dari 8 buah Switch kemudian nilai tersebut diubah dalam satuan biner 8 bit, selain itu GUI juga harus dapat mengontrol ON/OFF dari LED.

Project Kontrol 7 Segment (Jam Digital, Lampu Lalu Lintas dan Conter Up-Down)
Pada project kedua ini GUI diharapkan dapat memvisualisasikan tampilan pada 4 buah 7 Segment secara real-time (GUI dan tampilan 7 Segment harus sesuai atau berjalan bersamaan), terdapat 3 kontrol utama yaitu Traffic Light (User memasukkan nilai counter down pada masing2 lampu Merah Kuning Hijau, ketika tombol ON ditekan lampu akan nyala sesuai dengan counter down yang diinputkan secara bergantian), Counter Up-Down (terdapat kontrol Up dan Down serta set nilai yang dengan ketentuan 0-9, 0-99, 0-999, dan 0-9999, ketika tombol ON ditekan maka counter akan berjalan sesuai perintah yang diberikan) dan Digital Clock (User dapat mengontrol dari angka berapa jam mulai berjalan, ketika tombol RUN ditekan maka jam akan berjalan).

Pada sisi Arduino harus mampu menterjemahkan printah yang diberikan oleh GUI dan mampu menjalankan 7 Segment secara real-time. Dibutuhkan Library khusus untuk mengendalikan 7 Segment yaitu Sev-Seg.h dan timerOne.h


Project Animasi ADC Potensiometer
Selain menampilkan nilai ADC dan Resistansi Potensio, GUI harus mampu memvisualisasikan putaran dari Potensiometer dalam bentuk animasi dengan ketentuan 0-180 derajat, GUI juga harus dilengkapi dengan kontrol animasi batas atas sudut yang dapat diniputkan manual oleh user.


Project GUI Kontrol Robot Soccer
GUI harus dapat menjadi kontrol utama Robot Soccer baik berupa direction maupun speed. Selain itu GUI juga dilengkapi dengan Interface Video real-time yang dikirimkan menggunakan Aplikasi Android IP Webcam sebagai pengindraan utama Robot Soccer. Disisi Arduino diperlukan library DCMotorBot-Master untuk mengontrol Motor DC.


Gimana gan seru2 kan projectnya... Ok selamat belajar ya... Semoga bermanfaat...

Related Posts:

TUTORIAL IMPORT-EXPORT DATABASE MENGGUNAKAN LOCALHOST ADMIN XAMPP


Selamat pagi gan... Lama ane gak posting nih blog... OK kali ini ane akan share tentang Tutorial tentang bagaimana cara Import-Eksport Database menggunakan Localhost Admin XAMPP. Ok sebelumnya kita harus kenalan dulu dengan yang namanya XAMPP ini. Hemm ane aja baru kenal ketika dapet matakuliah MBD (Manajemen Basis Data).. Ok kita simak dulu penjelasan dari OM WIKI tentang XAMPP..

"XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem operasi, merupakan kompilasi dari beberapa program.

Fungsinya adalah sebagai server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. Nama XAMPP merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl. Program ini tersedia dalam GNU General Public License dan bebas, merupakan web server yang mudah digunakan yang dapat melayani tampilan halaman web yang dinamis. Untuk mendapatkanya dapat mendownload langsung dari web resminya. XAMPP adalah singkatan yang masing-masing hurufnya adalah:

X: Program ini dapat dijalankan dibanyak sistem operasi, seperti Windows, Linux, Mac OS, dan Solaris.

A: Apache, merupakan aplikasi web server. Tugas utama Apache adalah menghasilkan halaman web yang benar kepada user berdasarkan kode PHP yang dituliskan oleh pembuat halaman web. jika diperlukan juga berdasarkan kode PHP yang dituliskan,maka dapat saja suatu database diakses terlebih dahulu (misalnya dalam MySQL) untuk mendukung halaman web yang dihasilkan.

M: MySQL, merupakan aplikasi database server. Perkembangannya disebut SQL yang merupakan kepanjangan dari Structured Query Language. SQL merupakan bahasa terstruktur yang digunakan untuk mengolah database. MySQL dapat digunakan untuk membuat dan mengelola database beserta isinya. Kita dapat memanfaatkan MySQL untuk menambahkan, mengubah, dan menghapus data yang berada dalam database.

P: PHP, bahasa pemrograman web. Bahasa pemrograman PHP merupakan bahasa pemrograman untuk membuat web yang bersifat server-side scripting. PHP memungkinkan kita untuk membuat halaman web yang bersifat dinamis. Sistem manajemen basis data yang sering digunakan bersama PHP adalah MySQl. namun PHP juga mendukung sistem manajement database Oracle, Microsoft Access, Interbase, d-base, PostgreSQL, dan sebagainya.

P: Perl, bahasa pemrograman untuk segala keperluan, dikembangkan pertama kali oleh Larry Wall di mesin Unix. Perl dirilis pertama kali pada tanggal 18 Desember 1987 ditandai dengan keluarnya Perl 1. Pada versi-versi selanjutnya, Perl tersedia pula untuk berbagai sistem operasi varian Unix (SunOS, Linux, BSD, HP-UX), juga tersedia untuk sistem operasi seperti DOS, Windows,PowerPC, BeOS, VMS, EBCDIC, dan PocketPC." (Sumber: Wikipedia)

Ok setelah kita tahu apa itu aplikasi XAMPP baru deh ane share tutorial cara import-eksport database nya.. tutorial ini dalam bentuk E-Book.. Emm ok selamat mencoba dan belajar ya.. Salam semangat..

Download Tutorial disini atau disitu

Related Posts: