Posts Tagged ‘R3’

communicationAkhirnya, ada kesempatan untuk posting lagi setelah beberapa lama ga posting karena lagi ada kerjaan +  sibuk ngerjain tugas kuliah + malas yang bercampur menjadi 1. 😀

Postingan kali ini sebenernya untuk menjawab beberapa pertanyaan yang ada di postingan saya sebelumnya tentang Program kirim dan terima data via serial port di JAVA.

Nah, pada postingan ini ada beberapa penambahan pada source/program java untuk kirim dan terima data serial, yang mana nantinya aplikasi akan dikoneksikan ke hardware. Disini saya menggunakan arduino uno sebagai hardwarenya.

Pertama, akan saya paparkan dulu beberapa penambahan pada program JAVA untuk kirim dan Terima data serial.

Secara umum, dari segi tampilan tidak banyak berubah hanya saja saya tambahkan 1 textBox yang mana nantinya data pada textBox tersebut akan dikirimkan ke hardware/arduino. Selain itu saya tambahkan juga 2 buah jLabel yang saya gunakan untuk menandai mana textBox untuk menampilkan data yang diterima melalui serial port dan data yang akan dikirimkan.

Untuk tampilan aplikasi, silahkan susun sesuai dengan keinginan, berikut ini merupakan tampilan yang saya buat. Rada kacau + berantakan tapi alhamdulillah berfungsi dengan baik.

 java arduino serial port 1

Dari segi source/program ada beberapa penambahan, yaitu diantaranya sebagai berikut :

1.  Program tampilan (program saat tombol “Kirim Data” ditekan)

private void btnKirimActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//Serial.kirimData((byte)'a');
Serial.kirimData(txtDataOut.getText());
}

Program diatas berfungsi untuk mengirimkan data yang ada pada txtDataOut melalui serial port.

2.  Program untuk kirim data

             Pada class SerialPort, khususnya untuk kirim data, saya tambahkan 1 fungsi lagi untuk menampung data string sebelum dikirimkan. Berikut ini adalah programnya.

public void sendChar(Byte a){
try {
outPut.write(a);
outPut.flush();
}
catch (IOException ex) {
//System.out.println("Kirim Gagal");
}
}

public void kirimData(String str){
for(int i=0; i<str.length();i++){
sendChar((byte)str.charAt(i));
}
try{
outPut.write(10);
outPut.flush();
}
catch(IOException ex){}
}

2.  Program untuk terima data

       Pada program terima datanya, ada penambahan pada saat event terima data serial. Pada program sebelumnya, data akan diterima per karakter kemudian akan ditampilkan perkarakter pula. Sehingga, jika pada saat kita menerima sebuah data string, yang ditampilkan adalah karakter terakhir dari string tersebut. Jika karakter terakhir dari data yang kita kirimkan adalah berupa enter(new line) sehingga seolah-olah pada txtDataIn tidak menampilkan karakter yang diterima.

pada program yang baru, ada beberapa baris program yang saya tambahkan untuk menampung data yang masuk. Untuk menampilkan data string, maka data yang masuk perkarakter tersebut saya tampung dulu, nah penanda untuk menampilkan data tersebut adalah data enter(new line). Jadi, setiap data yang dikirimkan dari hardware ke aplikasi harus diakhiri dengan new line.

Berikut ini program terima datanya :

public void serialEvent(SerialPortEvent evt) {
if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
try {
if(dataSerial != '\n'){
dataSerial = (char) inPut.read();
dataIn = dataIn + String.valueOf(dataSerial);
System.out.print(dataIn);
System.out.print("\t");
System.out.print(dataSerial);
System.out.print("\n");
}
else{
window.txtDataIn.setText(dataIn);
dataSerial=' ';
dataIn="";
}
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, ex.toString());
}
}
}

        Data yang masuk adalah data per karakter, kemudian saya tampung dahulu kedalam sebuah variabel bertype string yang saya beri nama dataIn. Kemudian setelah mendapat karakter new line, data yang ada pada variabel dataIn ditampilkan ke txtDataIn.

Setelah menambahkan beberapa program pada aplikasi, saya kemudian membuat sedikit program untuk menerima dan mengirim data pada arduino, yang mana program pada arduino ini saya ambil dari contoh SerialEvent. Berikut ini adalah program untuk hardware yang telah saya buat.

arduino Java

Pada program diatas, data yang masuk ditampung dahulu pada variabel inputString. Kemudian, sama seperti pada aplikasi setelah menerima data karakter new line data pada variabel inputString tadi akan dikirim balik ke aplikasi. Terjadi kesamaan saat mengolah data yang diterima antara aplikasi dan hardware, hal ini disebabkan karena library yang saya gunakan pada aplikasi sama dengan library yang digunakan pada IDE arduino.

berikut screenshot saat aplikasi dijalankan

java arduino serial port 2

java arduino serial port 3

Program aplikasi Java dan arduino diatas dapat didownload disini (aplikasi) dan disini (hardware/arduino).

Semoga bermanfaat. 🙂

Advertisements

Jual Arduino Uno (Kloning)

 

Jual murah arduino uno R3 murah meriah, hanya Rp. 210.000 belum termasuk ongkos kirim.
Arduino yang saya jual bukan arduino original dari italy, tapi arduino kloning. tapi jangan khawatir, walaupun kloning performa tetep sama dengan board arduino yg asli/original dari italy. tanpa panjang lebar, monggo dilihat penampakan arduinonya.

Arduino Uno-1
Arduino Uno-2
Arduino Uno-3
Arduino Uno-4
Arduino Uno-5
Arduino Uno-6

Fitur

  • ATmega328 microcontroller
  • Input voltage – 7-12V
  • 14 Digital I/O Pins (6 PWM outputs)
  • 6 Analog Inputs
  • 32k Flash Memory
  • 16Mhz Clock Speed

Kelengkapan

  • Arduino Uno – R3 board

Bonus

  • USB cable

harga : rp. 210.000

jika anda tertarik, silahkan hubungi saya via telp, sms/whatsapp di

085668040830,

atau dengan mengirim email ke

rifqi.thokz@gmail.com.

 

melayani jika ada pemesanan board mikrokontroller ataupun sistem kontrol, monitoring ataupun project.

selain arduino uno, masih banyak lagi yang lainnya, silahkan kunjungi www.barelangstore.com