Translate

Membuat Alat Pengendali Led dengan Handphone J2ME


Membuat Alat Pengendali Led dengan Handphone J2ME
                 
           Pada kesempatan kali ini akan membahas bagaimana cara membuat pengenali led yang berjumlah dua buah yang dikendalikan nyala-mati atau ON-OFF menggunakan sebuah handphone dengan operating system J2ME, jadi menggunakan media Bluetooth, pada handphone terdapat fitur Bluetooth yang diposisikan sebagai master (pengirim) dan pada mikrokontroller terdapat bluetooth device JY-MCU ver 1.03 yang diposisikan sebagai slave (penerima), sehingga kedua device dapat saling berkomunikasi satu sama lainnya. Gambar 6.28 adalah tampilan alat yang akan dibuat.

 
            Alat ini menggunakan mikrokontroller ATMega32 sebagai penerjemah dari data yang dikirimkan oleh handphone, sehingga data diterima oleh Bluetooth JY-MCU ver 1.03 dapat diterjemahkan oleh mikrokontroller dengan baik dan akan menghasilkan output yang sesuai.

 Prinsip Kerja Alat
            Prinsip kerja alat ini sangatlah sederhana yaitu hanphone mengirimkan data berupa angka “1”, “2”, “3”, dan “4” melalui bluetooh, kemudian data tersebut diterima oleh Bluetooth JY-MCU ver 1.03 sebagai slave (penerima), kemudian data tersebut kirim lagi ke mikrokontroller, di mikrokontroller data yang diterima oleh Bluetooth JY-MCU diolah dan dibaca, setelah menemukan data yang dikirim maka mikrokontroller akan mengeluarkan output yang sesuai dengan program yang dimasukkan. Untuk lebih jelasnya perhatikan bagan berikut.



          Output dari mikrokontroller pada alat ini adalah tampilan karakter pada LCD display dan dua buah led yaitu led 5mm merah dan kuning, sebenarnya output led hanyalah contoh saja, untuk aplikasi yang lebih bagus bisa diganti dengan output berupa motor DC, motor servo, buzzer, dotmatrik, dan lain-lain.


Rangkaian Hardware
                  Rangkaian hardware yang dibutuhkan untuk membuat alat ini adalah rangkaian minimum system ATMega32 ditambah LCD, Bluetooth (slave) JY-MCU, rangkaian led, Handphone J2ME (tidak touchscreen).

a. Bluetooth JY-MCU
             Sebagai slave atau receiver dari USB bluetooth dongle, maka lebih tepat menggunakan modul slave yang bernama JY-MCU v1.03, untuk versi bisa apa saja, namun yang dipakai pada pembahasan kali ini yaitu JY-MCU yang versi 1.03. berikut adalah bentuk dari modulnya.   


          Pemasangan dari modul ini ke mikrokontroler hanya memasangkan pin RX  JY-MCU ke TX pin mikrokontroler, begitula dengan Tx masuk ke pin Rx mikrokontroller, VCC dan GND. yang digunakan hanyalah 4 buah jalur yaitu RX, TX, GND dan VCC. Berikut bagan dan konfigurasi koneksinya

 
b. Handphone J2ME
                  Maksud dari  Handphone J2ME disini yaitu handphone yang menggunakan operating system J2ME bukan Android, atau yang lain. Handphone yang menggunakan operatis system J2ME banyak sekali namun biasanya dipakai oleh handphone Sony Ericsson contoh Sony Ericsson K310i, Sony Ericsson K530i dan lainnya.
                  Handphone yang dipakai untuk pembuatan alat ini yaitu handphone Sony Ericsson K530i yang mana bentuknya seperti pada Gambar 6.28c, handphone ini memiliki operating system JAVA J2ME, dan menggunakan tombol keypad, sehingga memudahkan dalam penggunaannya.



 c. Minimum System ATMega


d. Rangkaian Led
                  Dua buah Led yang digunakan pada alat ini adalah led merah 5mm super bright dan led kuning 5mm super bright, led ini hanyalah untuk contoh output, untuk pengembangan lebih lanjut bisa diganti dengan output lain seperti relay, motor, servo dan lain-lain



 
Program Bascom AVR
'==========================================================================
'Programmer: Yanuar Mukhammad
'E-mail    : Yanuarm@hotmail.com
'==========================================================================
$regfile = "m32def.dat"
$crystal = 12000000
$baud = 9600

Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2

Config Portb.0 = Output
Config Portb.1 = Output

Enable Interrupts

Dim Perintah As String * 1
Upperline
Lcd "Bluetooth"
Lowerline
Lcd "Connect"
Wait 5

Cls
Cursor Off
Do
Perintah = Waitkey()
Select Case Perintah
Case "1" :
Cls
      Portb.0 = 1
      Upperline
      Lcd "led 1 ON"
Case "2" :
Cls
      Portb.0 = 0
      Upperline
      Lcd "led 1 OFF"
Case "3" :
Cls
      Portb.1 = 1
      Lowerline
      Lcd "led 2 ON"
Case "4" :
Cls
      Portb.1 = 0
      Lowerline
      Lcd "led 2 OFF"
End Select
Loop




Pembuatan Aplikasi Handphone
                  Pada Pembuatan software / aplikasi pada handphone J2ME ini memerlukan sebuah software bernama Netbeans, kenapa pakai Netbeans ? karena Netbeans merupakan software yang dapat menampung dan menangani file-file yang berformat “.java” sehingga jika telah jadi akan menghasilkan file berbentuk “.jar” atau “.jad” untuk Java ME.
                  Aplikasi yang akan dibuat pada alat ini tampilannya akan tampak seperti Gambar 6.28f, yang mana terdapat empat buah menu kendali yaitu Led 1 On, Led 1 Off, Led 2 On dan Led 2 Off.
 


PROGRAM JAVA J2ME


1.      Isikan program pada MIDlet “bluetoothj2me” dengan program berikut.


import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.io.*;

public class bluetoothj2me extends MIDlet implements CommandListener {

    private Display display;
    Menu menu;
    private Command cmdExit;
    private Command cmdfresh;
    public String btConnectionURL;
    public OutputStream out;
    public InputStream is;
    public OutputStreamWriter ow;
    public InputStreamReader ir;

    public bluetoothj2me() {
        display = Display.getDisplay(this);
        menu = new Menu();
        cmdExit = new Command("Exit", Command.EXIT, 0);
        menu.setCommandListener(this);
        menu.addCommand(cmdExit);
    }

    public void startApp() {
        display.setCurrent(menu);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void commandAction(Command c, Displayable d) {
        if (c == cmdExit) {
            destroyApp(true);
            notifyDestroyed();
        }
    }
}



2.      Kemudian isikan program pada Java Class “Menu” dengan program berikut. Ubah code “001203287048” dengan nama Bluetooth yang akan digunakan

            import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.io.*;

public class Menu extends Canvas implements CommandListener {

    int lebar;
    int panjang;
    int selectedMenu = 1;
    String[] menu = {"Daftar Menu:", "Led 1 On", "Led 1 Off", "Led 2 On", "Led 2 Off"};
    Font plainMenu, boldMenu;
    private Display display;
    public String btConnectionURL;
    public OutputStream out;
    public InputStream is;
    public OutputStreamWriter ow;
    public InputStreamReader ir;

    public Menu() {
        lebar = getWidth();
        panjang = getHeight();
        plainMenu = Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_PLAIN, Font.SIZE_SMALL);
        boldMenu = Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_MEDIUM);
    }

    public void drawMenu(Graphics g) {
        g.setColor(100, 100, 100);
        g.setFont(plainMenu);
        g.drawString(menu[0], 20, 20, Graphics.BASELINE | Graphics.LEFT);

        for (int i = 1; i < menu.length; i++) {
            if (i == selectedMenu) {
                g.setColor(100, 80, 150);
                g.setFont(boldMenu);
            } else {
                g.setColor(50, 80, 100);
                g.setFont(plainMenu);
            }
            g.drawString(menu[i], 25, 20 + i * plainMenu.getHeight(), Graphics.BASELINE | Graphics.LEFT);
        }
    }

    protected void paint(Graphics g) {
        g.setColor(250, 250, 250);
        g.fillRect(0, 0, getWidth(), getHeight());

        drawMenu(g);
    }

    public void keyPressed(int keyCode) {
        switch (getGameAction(keyCode)) {
            case Canvas.DOWN:
                selectedMenu++;
                if (selectedMenu > menu.length - 1) {
                    selectedMenu = 1;
                }
                break;
            case Canvas.UP:
                selectedMenu--;
                if (selectedMenu <= 0) {
                    selectedMenu = menu.length - 1;
                }
                break;
            case Canvas.FIRE:
                if (selectedMenu == 1) {
                    try {
                        btConnectionURL = "btspp://" + "001203287048" + ":1;authenticate=true;encrypt=false;master=false";
                        StreamConnection connection = (StreamConnection) Connector.open(btConnectionURL);
                        out = connection.openOutputStream();
                        is = connection.openInputStream();
                        OutputStreamWriter ow = new OutputStreamWriter(out, "US-ASCII");
                        InputStreamReader ir = new InputStreamReader(is, "US-ASCII");
                        ow.write("1");
                        connection.close();
                        connection = null;
                        is.close();
                        ow.close();
                    } catch (IOException ioe) {
                    }
                } else if (selectedMenu == 2) {
                    try {
                        btConnectionURL = "btspp://" + "001203287048" + ":1;authenticate=true;encrypt=false;master=false";
                        StreamConnection connection = (StreamConnection) Connector.open(btConnectionURL);
                        out = connection.openOutputStream();
                        is = connection.openInputStream();
                        OutputStreamWriter ow = new OutputStreamWriter(out, "US-ASCII");
                        InputStreamReader ir = new InputStreamReader(is, "US-ASCII");
                        ow.write("2");
                        connection.close();
                        connection = null;
                        is.close();
                        ow.close();
                    } catch (IOException ioe) {
                    }

                } else if (selectedMenu == 3) {
                    try {
                        btConnectionURL = "btspp://" + "001203287048" + ":1;authenticate=true;encrypt=false;master=false";
                        StreamConnection connection = (StreamConnection) Connector.open(btConnectionURL);
                        out = connection.openOutputStream();
                        is = connection.openInputStream();
                        OutputStreamWriter ow = new OutputStreamWriter(out, "US-ASCII");
                        InputStreamReader ir = new InputStreamReader(is, "US-ASCII");
                        ow.write("3");
                        connection.close();
                        connection = null;
                        is.close();
                        ow.close();
                    } catch (IOException ioe) {
                    }
                } else if (selectedMenu == 4) {
                    try {
                        btConnectionURL = "btspp://" + "001203287048" + ":1;authenticate=true;encrypt=false;master=false";
                        StreamConnection connection = (StreamConnection) Connector.open(btConnectionURL);
                        out = connection.openOutputStream();
                        is = connection.openInputStream();
                        OutputStreamWriter ow = new OutputStreamWriter(out, "US-ASCII");
                        InputStreamReader ir = new InputStreamReader(is, "US-ASCII");
                        ow.write("4");
                        connection.close();
                        connection = null;
                        is.close();
                        ow.close();
                    } catch (IOException ioe) {
                    }
                }
        }
        repaint();
    }
    public void commandAction(Command c, Displayable d) {
    }
    private void destroyApp(boolean b) {
    }
    private void notifyDestroyed() {
    }
}




 
Cara Penggunaan Alat
                  Penggunaan alat ini, pertama aktifkan minimum system dan Bluetooth JY-MCU, sehingga akan nampak LCD yang menyala dan Led indikator pada bluetooth JY-MCU berkedip, langkah kedua siapkan handphone yang telah terintsll program bluej2me.jar, aktifkan aplikasinya. Jika telah terkoneksi dengan baik, tekan salah satu menu yang ada, maka hasil akan seperti pada table berikut.

Menu Yang Ditekan
Nyala Led
Tampilan LCD
Led 1 On
Led merah menyala
Led 1 ON
Led 1 Off
Led merah padam
Led 1 OFF
Led 2 On
Led kuning menyala
Led 2 ON
Led 2 Off
Led kuning padam
Led 2 OFF



 VIDEO HASILNYA







Selamat Mencoba kawan........................ 




No comments:

Post a Comment