TUGAS AKHIR - USD Repository

140
i TUGAS AKHIR APLIKASI SMS MENGGUNAKAN J2ME UNTUK PENGENDALIAN MOTOR DC Oleh: HERBIN BERNAT PARDAMEAN NIM : 055114027 PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2010

Transcript of TUGAS AKHIR - USD Repository

i

TUGAS AKHIR

APLIKASI SMS MENGGUNAKAN J2ME

UNTUK PENGENDALIAN MOTOR DC

Oleh:

HERBIN BERNAT PARDAMEAN

NIM : 055114027

PROGRAM STUDI TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2010

ii

FINAL PROJECT

SMS APPLICATIONS USING J2ME FOR DC MOTOR CONTROLLING

HERBIN BERNAT PARDAMEAN

NIM : 055114027

ELECTRICAL ENGINEERING STUDY PROGRAM

SCIENCE AND TECHNOLOGY FACULTY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2010

iii

iv

v

vi

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP

MOTTO :

Keep Try Do the Best !!!

Kupersembahkan karya tulis ini kepada :

Tuhan Yesus Kristus

Ibuku Rosma Rumadam Pakpahan

Kakakku Brigida Lasma Rohanika Simamora,

Abangku Rony karces Simamora,

Adikku Junius parulian simamora,

Dan Almaterku Teknik Elektro USD 2005

vii

viii

INTISARI

Saat ini masyarakat masih bergantung pada alat seperti remote control untuk mengendalikan

beban pada jarak jauh. Akan tetapi, pengendalian tersebut hanya dapat dilakukan pada jarak tertentu

karena sistem yang digunakan amat tergantung pada jarak jangkauan pengendalian contoh infrared.

Pengendalian dengan menggunakan layanan SMS menjadi solusi yang menarik, cakupan jangkauan

pengendalian menjadi semakin luas sehingga alat dapat dikendalikan dari jauh. Kesalahan format

SMS, waktu untuk mengetikkan SMS, dan waktu untuk mengetikkan nomor tujuan sistem yang akan

dikendalikan menjadi bahan pertimbangan.

Sistem aplikasi SMS menggunakan J2ME untuk pengendalian motor DC tersusun atas dua

buah telepon seluler, bluetooth hardware, Personal Computer (PC), RS232, dan mikrokontroler.

Pengendalian motor DC terjadi setelah user memilih format pengendalian (berhenti, ccw, atau cw)

pada aplikasi telepon seluler 1. Pemantauan kondisi motor DC terjadi setelah user memilih cek pada

telepon seluler 1. Pengendalian motor DC merupakan perintah agar motor DC dalam keadaan

berhenti, berputar Counter Clock Wise (CCW) atau berputar Clock Wise (CW). Perintah pemantauan

motor DC merupakan perintah agar sistem memberikan keterangan kepada telepon seluler 1.

Keterangan yang diberikan berisi berhenti, ccw, atau cw yang merupakan kondisi dari motor DC.

Hasil pengamatan menunjukkan bahwa sistem aplikasi SMS menggunakan J2ME untuk

pengendalian motor DC telah berhasil dibuat dan bekerja dengan baik. Pengamatan terdiri dari data

antara telepon seluler 1 dan telepon seluler 2 menggunakan aplikasi J2ME, data antara telepon seluler

2 dan PC dengan menggunakan bluetooth, dan data yang terjadi antara PC dan mikrokontroler beserta

arah putaran motor DC.

Kata kunci : J2ME, SMS, Mikrokontroler, Motor DC.

ix

ABSTRACT

Today people still rely on a tools such as remote control for controlling the remote

load . However, controlling can only be done at a certain distance depend on the infrared range

of the controlled load..Controlling using the SMS service is one of the attractive solution, the

coverage is increasingly broaden, so that the appliance can be remotely controlled. SMS format

errors, time to type SMS, and time to type the destination number the system to be controlled is

coming into consideration.

SMS using J2ME application system for DC motor control composed of two mobile

phones, bluetooth hardware, Personal Computer (PC), RS232, and microcontroller. DC motor

control occurs after the user selects a format control (stop, ccw, or cw) on a mobile phone

application. DC motor condition monitoring occurs after the user selects a DC motor condition

monitoring (cek) on the celluler phone. 1. DC motor control is divide into three state, i.e.

stopping, spinning Counter Clock Wise (CCW), or spinning Clock Wise (CW). Order to monitor

of DC motor state is asking the system to provide information to the mobile phone 1.

Information of the DC motor state contains stop, ccw, or cw.

After some testing, it show that the system of SMS application using J2ME for DC motor

control has been successfully made and works well. The observations result consist of data

between a mobile phone 1 and mobile phone 2 uses J2ME applications, data between mobile

phones and PC using Bluetooth, and data between the PC and the microcontroller and it’s

direction of rotation of DC motor.

Keywords: J2ME, SMS, Microcontroller,DC Motor.

x

KATA PENGANTAR

Syukur dan terima kasih kepada Tuhan Yesus Kristus atas segala rahmat dan

karunia-Nya sehingga tugas akhir dengan judul “Aplikasi SMS Menggunakan J2ME

untuk Pengendalian Motor DC“ ini dapat diselesaikan dengan baik.

Selama menulis tugas akhir ini, penulis menyadari bahwa ada begitu banyak pihak

yang telah memberikan bantuan dengan caranya masing-masing, sehingga tugas akhir ini

bisa diselesaikan. Oleh karena itu penulis ingin mengucapkan terima kasih kepada:

1. Damar Widjaja, ST., MT., selaku dosen pembimbing yang dengan penuh

kesabaran membimbing, memberi saran dan kritik yang membantu penulis

dalam menyelesaikan tulisan ini.

2. Rosma Rumadam Pakpahan sebagai orang tua tercinta yang tidak pernah

berhenti memberikan dukungan dalam bentuk doa, dukungan dan semangat.

3. Kakak, adik dan abangku yang selalu memberikan doa dan semangat.

4. Seluruh dosen teknik elektro dan laboran yang memberikan ilmu dan

pengetahuan kepada penulis selama kuliah.

5. Teman-teman teknik elektro angkatan 2005 atas segala dukungan dan bantuan.

6. Berbagai pihak yang tidak bisa penulis sebutkan satu-persatu atas bantuan,

bimbingan, kritik dan saran.

Dengan rendah hati penulis menyadari bahwa tugas akhir ini masih jauh dari

sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir ini sangat

diharapkan. Akhir kata, semoga tugas akhir ini dapat bermanfaat bagi semua pihak.

Terima kasih.

Yogyakarta, 25 Mei 2011

Penulis

xi

DAFTAR ISI

HALAMAN JUDUL (Bahasa Indonesia)…………………………………………… i

HALAMAN JUDUL (Bahasa Inggris) ……..……………………………………... ii

HALAMAN PERSETUJUAN …………..…………………………………..…. iii

HALAMAN PENGESAHAN ………………………………………………...… iv

PERNYATAAN KEASLIAN KARYA ……………………………………… v

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ………………… vi

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA

ILMIAH UNTUK KEPENTINGAN AKADEMIS ......................................... vii

INTISARI ………………………………………………………………………..…… viii

ANSTRACT …….…………………………………………………………..……….. ix

KATA PENGANTAR …………………………………………………………….. x

DAFTAR ISI ……..………………………………………………………………….. xi

DAFTAR GAMBAR …………………………………………………………….... xv

DAFTAR TABEL …………………………………………………………...……... xix

BAB I : PENDAHULUAN ………………….………………………………….... 1

1.1 Judul …………………………………………………………………….….. 1

1.2 Latar Belakang ……………………………………………………………… 1

1.3 Tujuan dan Manfaat ………………………………………………………… 1

1.4 Batasan Masalah …………………………………………………………….. 2

xii

1.5 Metodologi Penelitian ………………………………………………………. 3

BAB II : DASAR TEORI ……………………..…………………………..……... 4

2.1 Java2 Micro Edition ……..…………………………………………….…… 4

2.1.1 Konfigurasi …………………………………………………….……. 4

2.1.1.1 Connected Limited Device Configuration …………….….…. 5

2.1.1.2 Connected Device Configuration ………………………….… 5

2.1.2 Profile ……………………………………………………………….. 6

2.1.3 Paket-paket Opsional …………………………………………........... 7

2.1.4 Midlet ………………………………………………………..…..…... 7

2.1.5 Koneksi SMS pada J2ME …………………………………………… 8

2.1.5.1 Interface Text dan Binary Message ……………………….. 8

2.1.5.2 Interface Message Connection ……………………………. 9

2.1.5.3 Mengirim SMS ……………………………………………. 10

2.1.5.4 Menerima SMS ……………………………………….…… 11

2.1.6 Bekerja dengan Display ……………………………………..….…… 12

2.1.7 Bekerja dengan Form ………………………………………..……… 13

2.1.8 Kelas List …………………………………………………..…….….. 14

2.2 Arsitektur Jaringan GSM ………………………………..…………………. 15

2.3 Short Message Service …………………………………………………....... 18

2.3.1 Short Message Service Centre …………………………………….… 18

2.4 Mikrokontroler AVR .…………………………………………………........ 19

2.5 Komunikasi Data Serial .………………………………………………….... 20

2.5.1 IC MAX232 dan RS-232 ..……………………………………….…. 21

2.5.2 Serial Port Personal Computer .…………………………….……….. 21

2.6 IC driver L293 .……………………………………………………..….…… 23

2.7 Fotodioda (Photodiode) .…………………………………………….……… 23

2.8 Light Emitting Diode .………………………………………………….......... 24

2.8.1 Tegangan dan Arus LED .…………………………………..……….. 24

2.9 Motor DC .………………………………………………………………….. 25

2.9.1 Prinsip Kerja .………………………………………………………… 26

xiii

2.9.2 Aplikasi Arah Putar Motor DC .………………………………….….. 27

BAB III : PERANCANGAN ……………….…………………………………... 28

3.1 Model Sistem ……………...………………………………………………… 28

3.2 Perancangan Subsistem Hardware .…………………………………….…… 29

3.2.1 Perancangan Interface PC dengan Hardware .……………….….…… 29

3.2.2 Rangkaian untuk Memeriksa Status Motor DC .………….….….…… 29

3.2.3 Rangkaian Sistem Mikrokontroler .……………….….…………….… 31

3.3 Perancangan Subsistem Software .……………….….…………………….… 33

3.3.1 Perancangan Program Mikrokontroler .……………….….…………… 33

3.3.1.1 Program Memeriksa Status Motor DC .…………….….…… 34

3.3.1.2 Program Kendali Motor DC .……………….………….…… 35

3.4 Perancangan Program Personal Computer .……………………...….…….… 37

3.5 Perancangan Program Memeriksa Status Motor DC pada Personal

Computer .………………………………..……….....……………….….…… 38

3.5.1 Perancangan Program Kendali Motor DC pada Personal Computer… 40

3.6 Perancangan Program Telepon Seluler 1 .………………….…….….….….… 41

3.6.1 Program Pengendalian Motor DC ……………..……………..….….… 42

3.6.2 Program Memeriksa Status Motor DC ……..……...……………….… 44

3.7 Perancangan Program Telepon Seluler 2 ……..……………………..…….… 48

3.7.1 Program Pengendalian Motor DC …………..……...……………….… 49

3.7.2 Program Memeriksa Status Motor DC ……..……...……………….… 50

BAB IV : HASIL DAN PEMBAHASAN ………………………..…………... 53

4.1 Gambar Fisik Hardware ………………………..……………………..……... 53

4.2 Pengujian SMS Sistem…………………………….…..……………...…….… 56

4.3 Pengujian Sistem Minimum Mikrokontroler…………..……………...…….… 63

4.4 Pembahasan Program PC ………………………………………..…...…….… 67

4.4.1 Option Kendali SMS……………………………….……..…...…….… 69

4.4.2 Option Kendali Manual………………………………………..…….… 72

xiv

BAB V : KESIMPULAN DAN SARAN ……………………….…………..... 76

5.1 Kesimpulan ……………………………………………………….....……..… 76

5.2 Saran ………………………………………..…………………….………..… 76

DAFTAR PUSTAKA ………………………………………..…….………………. 77

xv

DAFTAR GAMBAR

Halaman

Gambar 2.1. Arsitektur J2ME ………….……………………………………………...... 4

Gambar 2.2 Lingkup Konfigurasi ………………………………………………………. 5

Gambar 2.3 MIDP User Interface ………………..…………………………….……….. 7

Gambar 2.4 Daur Hidup Midlet ……………………………………….………………… 8

Gambar 2.5 Interface pada Paket WMA …………….…..……………………………… 10

Gambar 2.6 Arsitektur Jaringan GSM ................................................………………….. 16

Gambar 2.7 Diagram Blok Proses Pengiriman SMS …...……………………………..… 18

Gambar 2.8 Konfigurasi Pin ATMega8535 …………………..……………………….… 19

Gambar 2.9 Konfigurasi Pin IC MAX232 …….………………………………………... 21

Gambar 2.10 Konfigurasi Pin Konektor DB9 ………………………………………….. 22

Gambar 2.11 Konfigurasi Pin dari IC L293D ..………………………………………… 23

Gambar 2.12 Simbol Rangkaian Phototodioda ……………………………………..….. 24

Gambar 2.13 Simbol LED ................................................................................................ 24

Gambar 2.14 Rangkaian LED ............................................................................................ 25

Gambar 2.14 Motor DC Sederhana .................................................................................. 26

Gambar 2.15 Prinsip Kerja Motor DC ………………………………..…….................... 26

Gambar 2.16 Dasar Pengaturan Arah Putar Motor DC .................................................... 27

Gambar 3.1 Model Sistem Hardware ............................................……………………… 28

Gambar 3.2. Model Sistem Pengolahan SMS pada PC ..................................................... 28

Gambar 3.3 Rangkaian Interface PC dengan Mikrokontroler ……………………….…. 29

Gambar 3.4 Rangkaian untuk Memeriksa Status Motor DC ............................................ 31

Gambar 3.5 Rangkaian Minimum Sistem Mikrokontroler .................................................. 32

Gambar 3.6 Flowchart Utama Program Memeriksa dan Mengendalikan Motor DC ......... 33

Gambar 3.7 Flowchart Program Memeriksa Status Motor DC .......................................... 35

Gambar 3.8 Flowchart Program Kendali Motor DC .......................................................... 36

Gambar 3.9 Alur Pengolahan SMS Perintah ...................................................................... 37

Gambar 3.10 Flowchart Program Utama Personal Computer............................................ 38

Gambar 3.11 Flowchart Memeriksa Status Motor DC pada PC ....................................... 39

xvi

Gambar 3.12 Flowchart Program Kendali Motor DC pada PC ........................................ 40

Gambar 3.13 Tampilan Pilihan Motor DC ……….………..……………………………. 41

Gambar 3.14 Flowchart Tampilan Awal pada Telepon Seluler 1 ..................................... 41

Gambar 3.15 Tampilan Cara Pemilihan Kendali Motor DC Berhenti .............................. 42

Gambar 3.16 Tampilan Aktifitas Pengiriman SMS setelah User Memilih Kendali

Motor DC Berhenti ....................................................................................... 42

Gambar 3.17 Tampilan Aktifitas Pengiriman SMS setelah User Memilih Kendali

Motor DC Berhenti ..................................................................................... 43

Gambar 3.18 Tampilan Cara Pemilihan Kendali Motor DC CCW .................................... 43

Gambar 3.19 Tampilan Aktifitas Pengiriman SMS setelah User Memilih Kendali

Motor DC Berputar Counter Clock Wise ….................................................. 43

Gambar 3.20 Tampilan Cara Pemilihan Kendali Motor DC CW ……………………….. 44

Gambar 3.21 Tampilan Aktifitas Pengiriman SMS setelah User Memilih Kendali

Motor DC Berputar Clock Wise ………...................................................... 44

Gambar 3.22 Flowchart Program Kendali Motor DC pada Telepon Seluler 1 .................. 45

Gambar 3.23 Tampilan Cara Memilih Pilihan Memeriksa Status Motor DC .................... 45

Gambar 3.24 Tampilan setelah User Melakukan Eksekusi KirimSMS pada Memeriksa

Status Motor DC ........................................................................................... 46

Gambar 3.25 Tampilan pada Telepon Seluler 1 apabila Status Motor DC Berputar Counter

Clock Wise (CCW) ........................................................................................ 46

Gambar 3.26 Tampilan pada Telepon Seluler 1 apabila Status Motor DC Berputar

Clock Wise (CCW) ........................................................................................ 47

Gambar 3.27 Tampilan pada Telepon Seluler 1 apabila Status Motor DC Berhenti ......... 47

Gambar 3.28 Flowchart Memeriksa Status Motor DC ...................................................... 48

Gambar 3.29 Tampilan pada Telepon Seluler 2 …………………………………............ 48

Gambar 3.30 Flowchart Tampilan Awal pada Telepon Seluler 1 ………………….......... 49

Gambar 3.31 Tampilan Cara Pemilihan Kendali Motor DC Berhenti ………….............. 49

Gambar 3.32 Tampilan setelah User Memilih Pilihan Kendali Motor DC Berputar Counter

Clock Wise (CCW) ....................................................................................... 50

Gambar 3.33 Flowchart Program Kendali Motor DC pada Telepon Seluler 2 …….......... 50

xvii

Gambar 3.34 Tampilan awal J2ME saat Menerima SMS Berisi cek dari Telepon

Seluler 1 ………………………………………..…………………………. 51

Gambar 3.35 Tampilan pada Telepon Seluler 1 apabila Status Motor DC Berhenti …..... 51

Gambar 3.36 Tampilan pada Telepon Seluler 1 apabila Status Motor DC Berputar

Clock Wise (CW) .......................................................................................... 52

Gambar 3.37 Tampilan pada Telepon Seluler 1 apabila Status Motor DC Berputar Counter

Clock Wise (CCW) ....................................................................................... 52

Gambar 3.38 Flowchart Memeriksa Status Motor DC ...................................................... 52

Gambar 4.1 Flowchart Memeriksa Status Motor DC ........................................................ 53

Gambar 4.2 Rangkaian Sistem Minimum Mikrokontroler ................................................. 54

Gambar 4.3 Rangkaian Regulator Tegangan ...................................................................... 55

Gambar 4.4 Rangkaian Memeriksa Status Motor DC ......................................................... 55

Gambar 4.5 Rangkaian Optocoupler ................................................................................... 55

Gambar 4.6 Rangkaian Comparator Tegangan Keluaran Sensor Photodioda ................... 56

Gambar 4.7 Motor DC ........................................................................................................ 56

Gambar 4.8 Tampilan Pengendalian Motor DC Telepon Seluler 1 dan Telepon Seluler 2

Menggunakan J2ME ..................................................................................... 58

Gambar 4.9 Pemantauan Status Motor DC Telepon Seluler 1 dan Telepon Seluler 2

Menggunakan J2ME .................................................................................... 59

Gambar 4.10 Model Sistem Pengolahan SMS dalam PC (Design yang Digunakan) ........ 61

Gambar 4.11 Bluetooth Adapter Class 1 ............................................................................ 62

Gambar 4.12 Pengujian Pemantauan Status motor DC Berhenti Berputar Logika 0 ........ 66

Gambar 4.13 Pengujian Pemantauan Status motor DC Berhenti Berputar Logika 1 ........ 66

Gambar 4.14 Pemantauan Status motor DC berputar ccw ................................................. 67

Gambar 4.15 Pemantauan Status motor DC berputar cw ................................................... 67

Gambar 4.16 Tampilan Form Utama .................................................................................. 68

Gambar 4.17 Tampilan Form Perintah Pengendalian Motor DC Berhenti ........................ 70

Gambar 4.18 Tampilan Form Pemantauan Status Motor DC ............................................ 71

Gambar 4.19 Tampilan Form setelah memilih Option Kendali Manual ............................. 72

xviii

Gambar 4.20 Tampilan Form Perintah Pengendalian Motor DC Berhenti ....................... 73

Gambar 4.21 Tampilan Form Pemantauan Status Motor DC ............................................ 74

xix

DAFTAR TABEL

Halaman

Table 2.1 Perbandingan Spesifikasi dari CLDC dan CDC ................................................ 22

Table 2.2 Method pada Class Display ............................................................................... 22

Tabel 2.3 Method pada Class Form ................................................................................... 15

Table 2.4 Daftar Method dari Class List untuk Manipulasi Item ....................................... 22

Table 2.5 Tipe List ............................................................................................................... 15

Tabel 2.6 Format Pengiriman Data Serial Asinkron .................…………………………. 20

Table 2.7 Keterangan Pin Konektor DB9 (PC Serial Port) ................................................ 22

Tabel 3.1 Rangkaian untuk Memeriksa Status Motor DC .................................................. 42

Tabel 3.2 Pengolahan Data Masukan Memeriksa Status pada Mikrokontroler .................. 35

Tabel 3.3 Kendali Motor DC Mikrokontroler …………..................................................... 36

Tabel 3.4 Pengolahan Masukan dari Mikrokontroler yang akan diolah ............................. 39

Tabel 3.5 Tabel Perintah Kendali Motor DC dan Nilai Masukan pada Mikrokontroler .... 40

Tabel 4.1 Tabel Format SMS pada Database ..................................................................... 57

Tabel 4.2 Tabel Data Hasil Percobaan Aplikasi SMS Menggunakan J2ME untuk

Pengendalian Motor DC ..................................................................................... 57

Tabel 4.3 Tabel Data Hasil Percobaan Aplikasi SMS Menggunakan J2ME untuk

Memeriksa Status Motor DC .............................................................................. 59

Tabel 4.4 Tabel Data Hasil Percobaan Mengirimkan Data Dari Telepon Seluler 2 ke serial

port komputer pada port 11 Menggunakan Bluetooth ....................................... 60

xx

Tabel 4.5 Tabel Data Hasil Percobaan Menerima Data Dari Telepon Seluler 2

Menggunakan Bluetooth dari Serial Port Komputer ........................................... 62

Tabel 4.6 Tabel Data Hasil Percobaan Pengendalian Motor DC pada Sistem Minimum

Mikrokontroler .................................................................................................. 63

Tabel 4.7 Tabel Data Hasil Percobaan Pemantauan Status Motor DC pada Sistem

Minimum Mikrokontroler .................................................................................. 63

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Dalam kehidupan sehari-hari, sampai saat ini masyarakat masih bergantung pada alat

seperti remote control untuk mengendalikan beban pada jarak jauh. Akan tetapi, pengendalian

tersebut hanya dapat dilakukan pada jarak tertentu saja, sehingga apabila jarak antara alat

yang dikendalikan dan alat pengendali melewati batas toleransi, maka peralatan tersebut tidak

dapat berfungsi sesuai dengan keinginan [1]. Sistem pengendalian beban jarak jauh

diperlukan untuk mengatasi permasalahan tersebut. Penggunaan layanan Short Message

Service (SMS) untuk pengendalian sistem menjadi alternatif yang baik karena luasnya

cakupan jangkauan dari jaringan Global System for Mobile Communication (GSM).

Pengendalian beban dengan menggunakan SMS sudah banyak digunakan dan masih

terdapat kekurangan yaitu adanya kesalahan format SMS dan lamanya pengetikan SMS [2].

Masalah tersebut dapat diminimalisir dengan aplikasi SMS yang dibangun menggunakan

Java2 Micro Edition (J2ME) [3].

J2ME merupakan salah satu fasilitas pemrograman yang sering digunakan untuk

membuat aplikasi yang dapat diletakkan di telepon selular . Aplikasi J2ME sering ditemukan

pada telepon selular yang sudah didukung fitur Java seperti aplikasi chat, browsing, dan lain-

lain. Dari sinilah muncul ide bagaimana cara mengendalikan beban dengan menggunakan

fasilitas SMS yang terdapat pada telepon selular yang dikemas pemrograman J2ME. Dengan

cara ini, waktu yang digunakan untuk mengetikkan format SMS dalam mengendalikan beban

menjadi lebih efisien dan keakuratan lebih terjamin.

1.2 Tujuan dan Manfaat Penelitian

Tujuan dari penelitian ini adalah untuk membuat sebuah perangkat yang dapat

mengendalikan beban dari jarak jauh dengan aplikasi SMS menggunakan J2ME.

Manfaat dari penelitian ini untuk:

1. Memudahkan pengguna dalam mengendalikan beban dari jarak jauh

2. Menjadi referensi penggunaan program J2ME pada telepon selular.

2

1.3 Batasan Masalah

Penelitian ini memiliki batasan masalah sebagai berikut :

1. Menggunakan J2ME.

2. Menggunakan mikrokontroler keluarga AVR ATMega8535

3. Menggunakan motor DC sebagai beban.

4. Motor DC berputar Clock Wise (CW), berhenti, dan Counter Clock Wise (CCW).

5. Menggunakan telepon seluler GSM.

6. Telepon seluler support Java seperti MIDP 2.0 dan CLDC 1.0

1.4 Metodologi Penelitian

Metodologi penelitian yang dilakukan dalam penyusunan tugas akhir ini adalah

sebagai berikut :

1. Studi Pustaka

Pengumpulan data melalui buku penunjang tentang J2ME, RS232, Gammu,

mysql, Visual Basic dan datasheet yang berkaitan dengan perancangan alat.

2. Model Sistem.

Perancangan dan pembuatan alat dilakukan berdasarkan teori dan selanjutnya

disimulasikan terlebih dahulu sebelum diaplikasikan ke dalam bentuk nyata.

Gambar 1.1 memperlihatkan model sistem yang akan dibuat.

Gambar 1.1 Bagan model alat pengendalian beban

Perangkat keras terdiri dari :

a. telepon selular 1 sebagai pengendali sistem yang dipakai oleh pengguna

b. telepon selular 2 diletakkan pada sistem

3

c. komunikasi serial dengan menggunakan RS232

d. Personal Computer ( PC ) sebagai pendeteksi SMS yang masuk dan

mengolah data SMS

e. Beban yang digunakan adalah motor DC.

Proses kerja dari sistem adalah telepon seluler 1 mengirimkan SMS ke telepon

selular 2 yang tehubung dengan PC. Lalu PC akan membaca SMS yang diterima

oleh telepon selular 2. Selanjutnya, SMS akan diolah pada PC yang akan

digunakan untuk mengendalikan beban motor DC.

3. Pengujian alat dan pengambilan data.

Teknik pengujian alat dan pengambilan data meliputi kondisi beban sesuai dengan

yang diinginkan yaitu kondisi berhenti, Counter Clock Wise dan Counter Clock Wise

pada beban motor DC. Pengendalian motor DC menggunakan format SMS yang

akan dipantau dan disesuaikan dengan hasil yang diharapkan sejak perancangan.

4. Analisa dan penyimpulan hasil percobaan.

Analisa data dilakukan dengan cara membandingkan hasil pengendalian motor

DC yang sesungguhnya dan pengendalian motor DC yang diharapkan dan dibahas

untuk mengetahui keakuratan alat dan menarik kesimpulan dari hasil analisa data

dan pembahasan yang telah dilakukan.

4

BAB II

DASAR TEORI

2.1 Java2 Micro Edition

Java2 Micro Edition (J2ME) adalah sekumpulan interface Java API (Application

Programming Interface) dengan JVM (Java Virtual Machine) yang didesain khusus untuk

alat [3]. Kombinasi tersebut digunakan untuk membuat aplikasi yang dapat bekerja dalam

suatu alat, misalnya telepon seluler. J2ME terdiri dari tiga buah bagian utama yang terdiri dari

konfigurasi, profil, dan paket-paket opsional. Bagian utama tersebut ditunjukkan pada

Gambar 2.1.

Gambar 2.1 Arsitektur J2ME [3]

2.1.1 Konfigurasi

Konfigurasi merupakan bagian berisi JVM dan beberapa library class. Konfigurasi

terdiri dari dua jenis yaitu Connected Limited Device Configuration (CLDC) dan Connected

Device Configuration (CDC) [3]. CDC merupakan superset dari CLDC, sehingga semua kelas

5

yang didefinisikan di dalam CLDC terdapat pula dalam CDC. Konfigurasi CLDC dan CDC

ditunjukkan pada Gambar 2.2.

Gambar 2.2 Lingkup Konfigurasi [3]

2.1.1.1 Connected Limited Device Configuration

Connected Limited Device Configuration (CLDC) adalah spesifikasi dasar yang

berupa library dan API yang diimplementasikan pada J2ME seperti yang digunakan pada

telepon selular, pager, dan PDA [3]. Perangkat tersebut dibatasi dengan keterbatasan memory,

sumber daya, dan kemampuan memproses. Spesifikasi CLDC pada J2ME terdiri dari paket,

kelas, dan sebagian fungsi Java Virtual Machine (JVM) yang dikurangi agar dapat

diimplementasikan dengan keterbatasan sumber daya pada alat-alat tersebut. Paket JVM yang

digunakan dalam CLDC disebut sebagai Kilobyte Virtual Machine (KVM).

KVM adalah paket JVM yang didesain untuk perangkat yang kecil. KVM

mendukung sebagian dari fitur JVM, seperti misalnya KVM tidak mendukung operasi

floating-point dan finalisasi obyek. KVM diimplementasikan dengan menggunakan C

sehingga sangat mudah beradaptasi dengan tipe platform yang berbeda.

2.1.1.2 Connected Device Configuration

Connected Device Configuration (CDC) terdiri dari virtual machine dan kumpulan

library dasar yang dipergunakan pada profil industri [3]. Implementasi dari CDC adalah

source code penghubung antar platform. Perbandingan spesifikasi dari CLDC dan CDC dapat

dilihat pada Tabel 2.1.

6

Tabel 2.1 Perbandingan Spesifikasi dari CLDC dan CDC [3]

CLDC CDC

Mengimplementasikan sebagian dari J2SE Mengimplementasikan seluruh fitur J2SE

JVM yang digunakan adalah KVM JVM yang digunakan adalah CVM

Digunakan pada perangkat genggam

(handphone, PDA, pager) dengan memori

terbatas (160-512 KB)

Digunakan pada perangkat genggam (internet

TV, Nokia communicator, car TV) dengan

memori minimal 2MB

Prosesor : 16/32 bit Prosesor 32 bit

C-Virtual Machine (CVM) merupakan paket JVM optimal yang digunakan pada CDC.

CVM mempunyai seluruh fitur dari virtual machine yang didesain untuk perangkat yang

memerlukan fitur-fitur Java 2 virtual machine.

2.1.2 Profile

Profile merupakan bagian perluasan dari konfigurasi [3]. Selain sekumpulan kelas

yang terdapat pada konfigurasi, terdapat juga kelas spesifik yang didefinisikan lagi di dalam

profile. Dengan kata lain, profile menyediakan kelas yang tidak terdapat pada bagian

konfigurasi. Profile yang digunakan pada J2ME adalah Mobile Information Device Profile

(MIDP).

Mobile Information Device Profile (MIDP) adalah spesifikasi untuk sebuah profile

J2ME. MIDP memiliki lapisan di atas CLDC, API tambahan untuk daur hidup aplikasi,

antarmuka, jaringan, dan penyimpanan persisten. Pada saat ini, terdapat MIDP 1.0 dan MIDP

2.0. Fitur tambahan MIDP 2.0 dibanding MIDP 1.0 adalah API untuk multimedia. Pada MIDP

2.0 terdapat dukungan memainkan tone, tone sequence, dan file WAV walaupun tanpa adanya

Mobile Media Api (MMAPI).

MIDP User Interface API memiliki API level tinggi dan level rendah. API level

rendah berbasiskan penggunaan dari kelas abstrak canvas, sedangkan kelas API level tinggi

7

antara lain Alert, Form, List, dan Text Box yang merupakan ekstensi dari kelas abstrak screen.

Arsitektur antarmuka dari MIDP ditunjukkan pada Gambar 2.3.

Gambar 2.3 MIDP User Interface [3]

2.1.3 Paket-paket Opsional

Paket-paket opsional merupakan paket-paket yang dibutuhkan oleh aplikasi,

sehingga pada saat proses deployment, paket-paket tersebut perlu didistribusikan juga sebagai

bagian dari aplikasi bersangkutan. Mobile Media API dan Wireless Messaging API

merupakan contoh paket-paket opsional [3].

2.1.4 Midlet

Midlet merupakan piranti utama yang ditulis untuk MIDP [3]. Aplikasi Midlet adalah

bagian dari kelas javax.microedition.Midlet.Midlet yang didefinisikan pada MIDP. Midlet

berupa sebuah kelas abstrak yang merupakan sub-class dari bentuk dasar aplikasi, sehingga

antarmuka antara aplikasi J2ME dan aplikasi manajemen pada perangkat dapat terbentuk.

Midlet terdiri dari tiga bagian utama yaitu startApp(), pauseApp(), dan destroyApp

(Boolean unconditional) [3]. Ketika Midlet dijalankan, seluruh variabel akan diinisialisasi

dengan kondisi pause dan dijalankan pauseApp(). Kondisi selanjutanya adalah fungsi

startApp. StartApp diimplementasikan sebagai protected dan dimaksudkan agar Midlet lain

tidak dapat memanggil metode tersebut. Pada saat Midlet benar-benar tidak bekerja, metode

8

destroyApp() akan dijalankan dan akan memanggil notifyDestroyed(). NotifyDestroyed() akan

memberitahu platform untuk menghentikan Midlet dan membersihkan semua sumber daya

yang mengacu pada Midlet seperti diperlihatkan pada Gambar 2.4.

Gambar 2.4 Daur hidup Midlet [3]

2.1.5 Koneksi SMS pada J2ME

Dalam proses pengiriman dan penerimaan SMS, terdapat tiga buah interface utama

yaitu TextMessage, BinaryMessage, dan MessageConnection [3].

2.1.5.1 Interface TextMessage dan BinaryMessage

Paket Wireless Messaging API (WMA) menyediakan interface TextMessage dan

BinaryMessage [3]. Kedua interface tersebut diturunkan dari interface Message, yang

merupakan method umum untuk menunjukkan alamat penerima dan juga mendapatkan waktu

SMS. Berikut bentuk deklarasi method dalam interface Message [3].

String getAddress()

void SetAddress (String address)

Date getTimeStamp ()

9

Interface TextMessage merupakan interface yang mewakili pesan berupa teks.

Interface tersebut membutuhkan dua buah method untuk mengakses teks-teks yang akan

diakses yakni [3] :

String getPayloadText() //untuk mendapatkan isi dari pesan

void setPayloadText (String body) //untuk mengeset isi pesan

Interface BinaryMessage adalah interface yang mewakili pesan biner. Interface

tersebut menambahkan dua buah method untuk mengakses pesan biner yang terdapat di

dalamnya [3]. Isi dari pesan biner adalah berupa array byte.

byte [] getPayloadData ()

void setPayloadData (byte [ ] content)

2.1.5.2 Interface Message Connection

Paket WMA terletak pada bagian interface Message Connection, yang mewakili

sebuah koneksi jaringan untuk melakukan proses pengiriman maupun penerimaan SMS [3].

Instance dari Message Connection dapat diperoleh dengan cara melewatkan URL ke dalam

method Conector.open(). Aturan penulisan URL dalam WMA adalah sebagai berikut [3]:

1. Sms://no_telepon.MessageConnection akan mengirimkan pesan ke nomor telepon

tujuan. Pesan akan terkirim ke inbox SMS pada device tujuan.

2. Sms://no_telepon:port.MessageConnection akan mengirimkan pesan ke nomor telepon

tujuan untuk port yang ditentukan SMS tidak akan terkirim ke inbox SMS pada device

tujuan, melainkan akan dikirimkan ke suatu Midlet pada device penerima yang bertugas

untuk merespon port tersebut.

3. Sms://:port.MessageConnection akan mendengarkan port yang ditentukan. Midlet SMS

yang berada di client berperan sebagai server pada port tertentu. Koneksi ni dinamakan

dengan koneksi mode server (server mode connection)

4. Cbs://:port.MessageConnection akan merespon port tertentu yang ditetapkan untuk

pesan CBS (Cell Broadcast Service).

10

Interface MessageConnection membutuhkan beberapa method untuk keperluan

pengiriman dan penerimaan pesan, yaitu sebagai berikut [3]:

Message newMessage (String type)

Message newMessage (String type, String address)

Int numOfSegments (Message msg)

void set MessageListener (MessageListener 1)

Parameter type yang terdapat pada method newMessage () dapat berupa

TEXT_MESSAGE atau BINARY_MESSAGE. MessageConnection juga dapat memiliki sebuah

obyek listener. Midlet yang memiliki obyek listener harus menyertakan interface

MessageListener.

Interface MessageListener memiliki method notifyIncomingMessage() yang harus

disertakan dalam Midlet dan dijalankan ketika terdapat SMS yang masuk. Gambar 2.5

menunjukkan daftar interface pada paket WMA.

Gambar 2.5 Interface pada Paket WMA [3]

2.1.5.3 Mengirim SMS

Kode yang diperlukan untuk melakukan proses pengiriman SMS adalah sebagai

berikut [3] :

String address = “sms://+12345678

11

MessageConnection conn = (MessageConnection) connector.open(address);

TextMessage msg =

(TextMessage)conn.newMessage(MessageConnection.TEXT_MESSAGE);

msg.setAddress (address);

msg.setPayloadText(“Coba mengirimkan SMS”);

conn.send(msg);

Kode tersebut akan mengirimkan SMS dengan teks “Coba mengirimkan SMS” ke

nomor telepon 12345678. Pada awalnya, obyek MessageConnection dibuat dengan

menuliskan perintah connector.open(). Selanjutnya, obyek TextMessage dibuat dengan cara

memanggil method newMessage(). Method newMessage() akan menghasilkan obyek bertipe

Message maka typecasting dilakukan terhadap obyek menjadi tipe TextMessage. Setelah

obyek TextMessage terbentuk, alamat tujuan ditentukan dengan menggunakan method

setAddress() dan teks pesan yang akan dikirim dengan menggunakan method

setPayloadText(). Setelah semuanya tereksekusi, method send() dapat dijalankan untuk

mengirimkan obyek TextMessage pada Midlet tersebut.

2.1.5.4 Menerima SMS

Method yang digunakan untuk menerima pesan adalah method receive() yang

terdapat pada obyek MessageConnection [3]. Interface MessageListener, yaitu method

notifyIncomingMessage() perlu ditambahkan dalam pembuatan aplikasi untuk menerima

SMS. Method notifyIncomingMessage() memiliki satu buah parameter bertipe

MessageConnection dan akan dieksekusi pada saat terdapat SMS yang masuk. Kode yang

diperlukan untuk menerima SMS adalah sebagai berikut [4]:

String smsPort = “50000”

String address = “sms://:”+ smsPort;

MessageConnection conn = (MessageConnection) connector.open(address);

Message msg = conn.receive();

If (msg instanceof Text Message)

TextMessage tmsg = (TextMessage) msg;

12

String text = tmsg.getPayloadText(); //lakukan sesuatu terhadap pesan bersangkutan

Pada awalnya port akan digunakan untuk proses penerimaan SMS. Selanjutnya,

setelah membentuk obyek MessageConnection, method receive() dapat dipanggil untuk

mengambil pesan yang masuk. SMS yang masuk bertipe Message sehingga typecasting

dilakukan terhadap SMS menjadi tipe TextMessage. Method getPayloadText() dari obyek

TextMessage digunakan untuk mengambil teks dari SMS yang diterima.

2.1.6 Bekerja dengan Display

Display merupakan obyek yang mewakili pengelola layar pada telepon seluler [4].

Pada sebuah Midlet hanya terdapat satu obyek display. Obyek display menyediakan method

untuk menggambar dan menampilkan elemen antarmuka grafis pada layar. Obyek display

juga menyediakan method untuk mengetahui property layar mendukung layar berwarna atau

tidak pada telepon seluler.

Class Display menyediakan fungsi-fungsi untuk manajemen layer pada perangkat

telepon seluler dan menampilkan obyek screen. Akses ke layer dapat dilakukan dengan

fungsi static getdisplay() pada class Display :

Public static Display getDisplay(Midlet m)

Obyek screen yang ingin ditampilkan dapat ditentukan dengan fungsi setCurrent() setelah

mendapatkan obyek display.

Public void setCurrent(Displayable screen)

Beberapa method yang digunakan dalam class Display dapat dilihat pada Tabel 2.2.

Tabel 2.2 Method pada Class Display [4]

Type Method

Boolean flashBacklight( int duration)

melakukan request untuk efek flash backlight dari device.

Displayable getCurrent()

Mendapatkan obyek Displayable untuk Midlet yang aktif.

13

Tabel 2.2 (Lanjutan) Method pada Class Display [4]

Type Method

Static Display getDisplay(Midlet m)

mendapatkan obyek Display untuk Midlet.

Boolean isColor()

mendapatkan informasi mengenai color support untuk device

Void setCurrent(Alert alert, Displayable nextDisplayable)

melakukan request untuk membuat alert, dan setelah itu menampilkan

nextDisplayable.

Void setCurrent(Displayable nextDisplayable)

melakukan request obyek Displayable lain untuk ditampilkan pada layer

Boolean vibrate(int duration)

melakukan request untuk action pada device

2.1.7 Bekerja dengan Form

Form merupakan halaman untuk memasukkan data [4]. Form dapat terdiri dari

komponen-komponen yang biasa disebut dengan item. Kumpulan item yang terdapat pada

form akan tersimpan di dalam array, sehingga dapat diambil dengan menggunakan indeks.

Beberapa method yang terdapat pada class form ditunjukkan pada Tabel 2.3.

Tabel 2.3 Method pada Class Form [4]

Type Method

Int Append(img img)

Menambahkan sebuah item image kedalam form

Int Append (str str)

Menambahkan sebuah item string kedalam form

Void Delete (int itemNum)

Menghapus item yang ditunjuk oleh itemnum

Void Deleteall()

Menghapus item yang ditunjuk oleh itemnum

14

Tabel 2.3 (Lanjutan) Method pada Class Form [4]

Type Method

Item get(int itemNum)

Mendapatkan item pada posisi yang telah ditentukan

Int getHeight()

mengembalikan nilai height item dalam pixel dari displayable area

Int getWidth()

Mengembalikan nilai width item dalam pixel dari displayable area

Void set(int itemNum, Item item)

mengatur item dengan memposisikan item pada posisi yang telah

ditentukan dan mengganti item sebelumnya

Int size()

Mendapatkan jumlah item pada form

Void insert(int itemNum, Item item)

Memasukkan sebuah item ke dalam form dengan memposisikan item pada

posisi yang telah ditentukan.

2.1.8 Kelas List

Kelas list merupakan kelas turunan dari kelas screen yang akan menampilkan daftar

item pilihan untuk melakukan scroll terhadap daftar item pilihan [4]. Scroll daftar item pilihan

tidak akan menimbulkan tanggapan aplikasi. Tanggapan aplikasi akan berjalan setelah

melakukan penekanan tombol select maupun menu command pada aplikasi yang sedang

digunakan.

Bentuk constructor dari kelas list adalah sebagai berikut :

List (String title, int listType)

List(String title, int listType, String [ ] choices, Image [ ] images)

Sebuah obyek List kosong yang hanya memiliki judul dan tipe dibuat dengan

menggunakan bentuk constructor di atas. Setiap item di dalam constructor tersebut dapat

melakukan jenis aksi dengan menggunakan method-method yang terdapat pada Tabel 2.4.

15

Tabel 2.4 Daftar Method dari Class List untuk Manipulasi Item [4]

Nama Method Kegunaan

append () Menambah item dan menempatkannya di posisi terakhir

insert () Menambah item dan menempatkannya di posisi sebelum posisi

itemktif (item yang sedang dipilih)

delete () Menghapus item yang sedang dipilih

deleteAll () Menghapus semua item yang terdapat di dalam obyek List

Bentuk constructor pada kelas List mempunyai dua buah parameter tambahan, yaitu

choices yang digunakan untuk melewatkan item-item yang akan diisikan dan images yang

berfungsi untuk menyimpan daftar gambar icon untuk item. Terdapat tiga tipe kelas List yang

ditunjukkan oleh Tabel 2.5.

Tabel 2.5 Tipe List [4]

Tipe Keterangan

EXCLUSIVE List ni berupa radio button, yakni user hanya memilih satu pilihan

MULTIPLE List ini berupa list yang di dalamnya terdapat check box. Di sini, user

diizinkan untuk memilih beberapa (lebih dari satu) pilihan

IMPLICIT List ini berupa list standar yang umumnya banyak digunakan

2.2 Arsitektur Jaringan GSM

Global System for Mobile communication (GSM) adalah sebuah standar global untuk

komunikasi bergerak digital [5]. GSM adalah nama sebuah grup standarisasi yang dibentuk

di Eropa tahun 1982 untuk menciptakan sebuah standar bersama telepon selular di Eropa yang

beroperasi pada daerah frekuensi 900 MHz. Unsur-Unsur yang utama pada arsitektur GSM

16

ditunjukkan pada Gambar 2.6. Jaringan GSM terdiri atas tiga subsistem yaitu Mobile Station

(MS), Base Station Subsystem (BSS), dan Network Switching Subsystem (NSS).

Gambar 2.6 Arsitektur Jaringan GSM [4]

Mobile Station terdiri dari [5] :

1. Mobile Equipment

2. Mobile Equipment (ME) adalah perangkat untuk transmisi radio yang dikenal dengan

istilah telepon seluler. ME memiliki identitas unik yang disebut International Mobile

Equipment Identity (IMEI).

3. Subcriber Identification Module

4. Subcriber Identification Module (SIM) card berisi International Mobile Subscriber

Identity (IMSI), secret key (kunci rahasia) untuk otentikasi, phone book (daftar telepon),

dan pesan SMS. IMSI digunakan untuk identifikasi subscriber (pelanggan) ke sistem.

SIM card dapat diproteksi dengan password atau Personal Identity Number (PIN).

Base Station Subsytem terdiri dari :

1. Base Tranciever System

2. Base Tranciever System (BTS) merupakan alat tranceiver radio (transmitter receiver

radio) pada suatu area. BTS berfungsi sebagai interface komunikasi semua MS yang aktif

dan berada dalam coverage area BTS.

17

3. Base Station Controller

4. Base Station Controller (BSC) mengontrol dan mengatur beberapa BTS. BSC

bertanggung jawab untuk menjaga koneksi radio link saat terjadi panggilan dan mengatur

kepadatan lalu lintas panggilan pada areanya. Fungsi tersebut memungkinkan operasi

seperti handover, cell site configuration, management of radio resources, dan menyetel

power level dari frekuensi radio BTS.

Network Switching Subsystem terdiri dari :

1. Mobile Switching Center

Mobile Switching Center (MSC) berfungsi untuk switching suatu panggilan telepon dari

jaringan internal atau dari jaringan lain (eksternal), call routing untuk subscriber yang

melakukan roaming (roaming subscriber), menyimpan informasi billing serta data base

lain yang berisi informasi subscriber ID (IMSI), nomor telepon seluler subscriber,

otentikasi, informasi lokasi subscriber, dan beberapa layanan atau larangan yang

berkaitan dengan subscriber.

2. Home Location Register

Home Location Register (HLR) adalah database permanen subscriber yang digunakan

untuk menyimpan data dan profil dari subscriber. HLR dapat disatukan dengan MSC dan

VLR.

3. Visitor Location Register

Visitor Location Register (VLR) berisi database sementara dari subscriber. Database

sementera tersebut diperlukan oleh MSC untuk melayani subscriber yang berkunjung

dari area lain.

4. Authentication Center

Authentication Center (AuC) merupakan database proteksi yang menyimpan salinan dari

secret key (kunci rahasia) yang terdapat pada setiap SIM card. Proteksi ini digunakan

untuk otentikasi dan enkripsi pada channel radio.

5. Equipment Identity Register

Equipment Identity Register (EIR) merupakan database yang berisi daftar valid mobile

equipment pada jaringan. Setiap MS diidentifikasikan dengan International Mobile

Equipment Identity (IMEI).

18

2.3 Short Message Service

Short Message Service (SMS) merupakan salah satu fitur berupa pesan pendek yang

disediakan dalam komunikasi seluler [6]. Layanan SMS distandarisasi oleh suatu badan yang

bernama European Telecomunication Standards Institute (ETSI). Layanan SMS ini

memungkinkan perangkat telepon seluler mengirim dan menerima pesan-pesan teks dengan

panjang sampai dengan 160 karakter melalui jaringan GSM.

2.3.1 Short Message Service Center

SMS yang dikirim melalui telepon seluler tidak akan langsung dikirimkan kepada

telepon seluler tujuan, tetapi akan dikirim terlebih dahulu ke Short Message Service Center

(SMSC). Setelah SMSC menerima SMS dari pengirim, SMSC akan langsung mengirimkan

SMS tersebut ke telepon seluler yang dituju. Diagram blok dari proses pengiriman SMS dapat

dilihat pada Gambar 2.7.

Pengirim

S

M

S

CPenerima

Gambar 2.7 Diagram Blok Proses Pengiriman SMS [6]

Status SMS yang gagal terkirim atau telah diterima oleh telepon seluler tujuan dapat

diketahui karena adanya peralatan SMSC. Pesan SMS dapat terkirim apabila telepon seluler

yang dituju dalam keadaan aktif dan berada di dalam jangkauan layanan GSM. Pada saat SMS

diterima, telepon seluler yang dituju akan memberikan konfirmasi kepada SMSC.

Selanjutnya, SMSC akan mengirimkan laporan status kepada telepon seluler pengirim yang

menyatakan bahwa pesan SMS telah diterima oleh telepon seluler tujuan. SMS yang belum

diterima oleh telepon seluler tujuan akan disimpan pada SMSC sampai validity period

terpenuhi.

19

2.4 Mikrokontroler AVR

Mikrokontroler AVR memiliki arsitektur Reduced Instruction Set Computing (RISC)

8-bit. Semua instruksi dikemas dalam kode 16-bit (16 bits word) dan sebagian besar instruksi

dieksekusi dalam 1 siklus clock [7]. Secara umum, AVR dikelompokkan menjadi 4 kelas,

yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATMega, dan AT86RFxx. Pada

dasarnya, yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya.

Gambar 2.8 memperlihatkan konfigurasi lengkap dari pin ATMega8535.

Gambar 2.8 Konfigurasi Pin ATMega8535 [7]

Berdasarkan Gambar 2.7 fungsi dari tiap pin adalah [7]:

1. VCC merupakan pin yang berfungsi sebagai input pin catu daya.

2. GND merupakan ground pin.

3. Port A (PA0-PA7) merupakan input/output (I/O) dua arah dan input pin untuk Analog to

Digital Converter (ADC).

4. Port B (PB0-PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu

Timer/Counter, komparator analog, dan Serial Pheriperal Input (SPI).

20

5. Port C (PC0-PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu Two-wire

Serial Interface (TWI), komparator analog, dan Timer Oscillator.

6. Port D (PD0-PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu komparator

analog, interupsi eksternal dan komunikasi serial.

7. RESET merupakan pin yang digunakan untuk membuat mikrokontroler dalam kondisi

reset.

8. XTAL1 dan XTAL2 merupakan input pin untuk clock eksternal.

9. AVCC merupakan input pin untuk tegangan ADC.

10. AREF merupakan input pin untuk tegangan referensi ADC.

2.5 Komunikasi Data Serial

Ada dua macam sistem transmisi dalam komunikasi data serial, yaitu sinkron dan

asinkron [8]. Pada komunikasi data serial sinkron, clock dikirim bersama-sama dengan data

serial. Pada komunikasi data serial asinkron, clock tidak dikirimkan bersama-sama dengan

data serial tetapi dibangkitkan secara sendiri-sendiri baik pada sisi pengirim (transmitter)

maupun pada sisi penerima (receiver). Komunikasi data serial asinkron ini dikerjakan oleh

Universal Asyncronous Receiver/ Transmitter (UART).

Pada UART, kecepatan pengiriman data (baudrate) dan fase clock pada sisi pengirim

dan pada sisi penerima harus sinkron. Sinkronisasi antara pengirim dan penerima dilakukan

oleh bit ‟Start‟ dan bit ‟Stop‟. Bentuk format pengiriman serial data asinkron diperlihatkan

dalam Tabel 2.6.

Faktor lain yang cukup penting dalam transfer (pengiriman) data serial asinkron

adalah kecepatan pengiriman. Besaran kecepatan pengiriman data serial adalah bit per second

(bps) dan biasa disebut baudrate atau character per second (cps). Baudrate yang biasa

digunakan adalah 110, 300, 1200, 4800, 9600, dan 19200.

Tabel 2.6 Format Pengiriman Data Serial Asinkron [8].

Bit Start D7 D6 D5 D4 D3 D2 D1 D0 Bit Parity Bit Stop

21

2.5.1 IC MAX232 dan RS-232

IC MAX 232 merupakan IC Serial RS232 yang digunakan sebagai interface (antar

muka) dari PC ke perangkat luar (level Transistor Transistor Logic,TTL) atau sebaliknya dari

perangkat luar ke PC [9]. Konfigurasi pin dari IC MAX232 dapat dilihat pada Gambar 2.9.

Karakteristik dari RS-232 memiliki ketentuan level tegangan sebagai berikut [8] :

1. Level tegangan antara -3 Volt (-3V) hingga -25 Volt (-25V) untuk logika „1‟ disebut

„mark‟ .

2. Level tegangan antara +3V hingga +25V untuk logika „0‟ disebut „space‟.

3. Level tegangan antara -3V hingga +3V adalah invalid level, yaitu level tegangan yang

tidak memiliki level logika pasti sehingga harus dihindari. Level tegangan lebih negatif

dari -25V atau lebih positif dari +25V juga harus dihindari karena tegangan tersebut dapat

merusak line driver pada saluran RS-232.

Gambar 2.9 Konfigurasi Pin IC MAX 232 [9]

2.5.2 Serial Port Personal Computer

Standar konektor komunikasi serial RS232 pada PC adalah konektor 9 pin (konektor

DB9) [10]. Gambar 2.10 memperlihatkan konfigurasi pin konektor DB 9.

22

Gambar 2.10 Konfigurasi Pin Konektor DB9 [10].

Keterangan fungsi dan deskripsi pin DB9 dapat dilihat pada Tabel 2.7. Piranti-piranti

yang menggunakan komunikasi serial adalah sebagai berikut :

1. DTE = Data Terminal Equipment, yaitu Personal Computer (PC).

2. DCE = Data Communication Equipment, yaitu eksternal hardware.

Tabel 2.7 Keterangan Pin Konektor DB9 (PC Serial Port) [10].

No. pin Nama pin Deskripsi Fungsi

1 DCD Data Carrier Detect Saluran sinyal ini akan diaktifkan ketika DTE

mendeteksi suatu carrier dari DCE.

2 RXD Received Data Sebagai penerimaan data serial.

3 TXD Transmit Data Sebagai pengiriman data serial.

3 TXD Transmit Data Sebagai pengiriman data serial.

4 DTR Data Terminal Ready Dengan saluran ini, DTE memberitahukan

kesiapan terminalnya.

5 GND Ground Saluran ground.

6 DSR Data Set Ready Dengan saluran ini, DTE memberitahukan bahwa

siap melakukan komunikasi.

7 RST Request To Send Dengan saluran ini , DCE diminta mengirim data

oleh DTE.

8 CTS Clear To Send Dengan saluran ini, DCE memberitahukan bahwa

DTE boleh mulai mengirim data.

9 RI Ring Indicator

Dengan saluran ini, DCE memberitahukan ke DCE

bahwa sebuah stasiun menghendaki suatu

hubungan dengannya.

23

2.6 IC Driver L293

IC L293 merupakan IC tegangan tinggi (high voltage), keempat saluran driver berarus

tinggi (600mA persaluran dan 1,2A puncak arus keluaran (non repetitive) per saluran)

dirancang untuk level logika Transistor-Transistor Logic (TTL) [11]. Driver ini biasanya

digunakan untuk memicu beban induktif (relay, solenoid, motor DC dan motor stepper). Agar

mudah digunakan sebagai dua jembatan (bridge), setiap pasang saluran (channel) dilengkapi

dengan input enable. IC L293D sudah memiliki 4 buah dioda pengaman. Alat ini bisa

digunakan untuk aplikasi switching pada frekuensi sampai 5kHz. Input untuk suplai terpisah

agar mudah digunakan untuk bekerja pada tegangan rendah. Gambar 2.11 memperlihatkan

konfigurasi pin dari IC L293D.

Gambar 2.11 Konfigurasi Pin dari IC L293D [11]

2.7 Fotodioda (Photodiode)

Fotodioda adalah salah satu alat yang dibuat untuk berfungsi paling baik

berdasarkan kepekaannya terhadap cahaya. Pada dioda ini, sebuah jendela

memungkinkan cahaya masuk melalui pembungkus dan mengenai persambungan pn.

Silikon, yaitu bahan material di mana transistor dan rangkaian terintegrasi dibuat, akan

mengalami perubahan resistansi listrik saat dikenai cahaya. Fotodioda sebenarnya tidak

berbeda dari dioda biasa yang ditempatkan di dalam material transparan, sehingga

memungkinkan cahaya mengenainya (sedangkan pada dioda biasa, kotaknya berupa

logam atau plastik). Pada saat dihubungkan dengan rangkaian listrik, fotodioda dapat

24

digunakan untuk menghasilkan sinyal listrik yang besarnya tergantung pada jumlah

cahaya yang mengenainya. [14]

Gambar 2.2 menunjukan lambang skematis fotodioda. Panah yang mengarah ke

dalam melambangkan cahaya yang datang. Sumber dan tahanan seri memberikan

prategangan balik pada fotodioda. Bila cahaya makin cerah, arus balik naik. Dalam

fotodioda yang lazim, arus balik tersebut besarnya sedikit puluhan mikroamper. [14]

Gambar 2.12 Simbol Rangkaian Fotodioda

2.8 Light Emiting Diode (LED)

LED adalah dioda berprategangan maju, dimana elektron bebas melintasi

sambungan dan jatuh ke dalam lubang (hole). Ketika elektron jatuh dari tingkat energi

tinggi ke rendah, elektron akan mengeluarkan energi. Pada diode biasa, energi

dikeluarkan dalam bentuk panas. Tetapi pada LED, energi dikeluarkan dalam bentuk

sinar. Dengan menggunakan elemen seperti gallium, arsenik, dan fosfor, pabrik dapat

memproduksi LED berwarna merah, hijau, kuning, biru, orange / jingga, dan inframerah

/ infrared (tak terlihat). Gambar 2.3 menunjukkan simbol LED. [14]

Gambar 2.13 Simbol LED

2.8.1 Tegangan dan Arus LED

LED mempunyai penurunan tegangan lazimnya dari 1,5 V sampai 2,5 V untuk

arus di antara 10 sampai 150 mA. Penurunan tegangan yang tepat tergantung dari arus

LED, warna, kelonggaran, dan sebagainya. Kecermelangan LED tergantung dari arusnya.

Idealnya, cara terbaik untuk mengendalikan kecermelangan ialah dengan menjalankan

LED dengan sumber arus. Berikut rangkaian LED pada gambar 2.4. [14]

25

Gambar 2.14 Rangkaian LED

(2.1)

Dimana : VLED = Penurunan tegangan LED (Volt)

Vs = Tegangan sumber (volt)

Rs = Resistor yang tersusun seri dengan LED (Ohm)

I = Arus (Ampere)

Makin besar tegangan sumber, makin kecil pengaruh VLED. Dengan kata lain Vs yang

besar menghilangkan pengaruh perubahan tegangan VLED. Biasanya, arus LED ada di

antara 10 mA sampai 50 mA karena daerah ini memberikan cahaya yang cukup untuk

banyak pemakai.[14]

2.9 Motor DC

Motor listrik merupakan perangkat elektromagnetis yang mengubah energi listrik menjadi

energi mekanik. Energi mekanik ini digunakan untuk memutar impeller pompa, fan atau blower,

menggerakan kompresor, mengangkat bahan, dan lain-lain. Motor listrik digunakan juga di rumah

seperti mixer, bor listrik, fan angin dan di industri. Motor listrik kadangkala disebut “kuda kerja”

industri sebab diperkirakan bahwa motor-motor menggunakan sekitar 70% beban listrik total di

industri [12].

Motor DC memerlukan suplai tegangan yang searah pada kumparan medan untuk diubah

menjadi energi mekanik. Kumparan medan pada motor dc disebut stator (bagian yang tidak

berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Jika terjadi putaran pada

kumparan jangkar dalam pada medan magnet, maka akan timbul tegangan/gaya gerak listrik

(GGL) yang berubah-ubah arah pada setiap setengah putaran, sehingga merupakan tegangan

bolak-balik. Prinsip kerja dari arus searah adalah membalik fasa tegangan dari gelombang yang

mempunyai nilai positif dengan menggunakan komutator, dengan demikian arus berbalik arah

dengan kumparan jangkar yang berputar dalam medan magnet. Bentuk motor paling sederhana

26

memiliki kumparan satu lilitan yang bias berputar bebas di antara kutub-kutub magnet permanen

seperti ditunjukkan pada Gambar 2.12.

Gambar 2.15 Motor DC Sederhana [12]

Catu tegangan dc dari baterai menuju ke lilitan melalui sikat yang menyentuh

komutator. Komutator adalah dua segmen yang terhubung dengan dua ujung lilitan.

Kumparan satu lilitan pada gambar di atas disebut angker dinamo. Angker dinamo adalah

sebutan untuk komponen yang berputar di antara medan magnet.

2.9.1 Prinsip Kerja

Daerah kumparan medan yang dialiri arus listrik akan menghasilkan medan

magnet yang melingkupi kumparan jangkar dengan arah tertentu [12]. Konversi dari

energi listrik menjadi energi mekanik (motor) maupun sebaliknya berlangsung melalui

medan magnet. Medan magnet selain berfungsi sebagai tempat untuk menyimpan energi,

sekaligus berfungsi sebagai tempat berlangsungnya proses perubahan energi. Daerah

medan magnet dapat dilihat pada Gambar 2.13 [12]:

Gambar 2.16 Prinsip Kerja Motor DC [12]

27

Dengan mengacu pada hukum kekekalan energi :

Proses energi listrik = energi mekanik + energi panas + energi di dalam medan magnet,

medan magnet akan dihasilkan kumparan medan dengan kerapatan fluks sebesar B

dengan arus adalah I serta panjang konduktor sama dengan L, sehingga diperoleh gaya

sebesar F, dengan persamaan sebagai berikut :

F = B I L (2.2)

Arah dari gaya ini ditentukan oleh aturan kaidah tangan kiri. Adapun kaidah tangan kiri

tersebut adalah sebagai berikut : Ibu jari sebagai arah gaya (F), telunjuk jari sebagai fluks

(B), dan jari tengah sebagai arus (I). Bila motor dc mempunyai jari-jari dengan panjang

sebesar (r), maka hubungan persamaan dapat diperoleh :

Tr = Fr = B I L r (2.3)

Saat gaya (F) tersebut dibandingkan, konduktor akan bergerak di dalam kumparan medan

magnet dan menimbulkan GGL yang merupakan reaksi lawan terhadap tegangan sumber.

Agar proses perubahan energi mekanik tersebut dapat berlangsung secara sempurna,

tegangan sumber harus lebih besar dari pada tegangan gerak yang disebabkan reaksi

lawan. Arus pada kumparan jangkar yang dilindungi oleh medan menimbulkan

perputaran pada motor.

2.9.2 Aplikasi arah putar Motor DC

Dalam aplikasinya seringkali sebuah motor digunakan untuk arah yang searah

dengan jarum jam maupun sebaliknya. Untuk mengubah putaran dari sebuah motor dapat

dilakukan dengan mengubah arah arus yang mengalir melalui motor tersebut. Secara

sederhana, hal ini ditunjukkan pada Gambar 2.13. Hal ini dapat dilakukan hanya dengan

mengubah polaritas tegangan motor seperti ditunjukkan pada Gambar 2.14 [13].

Gambar 2.17 Dasar Pengaturan Arah Putar Motor DC [13]

28

BAB III

PERANCANGAN

3.1. Model Sistem

Rancangan model sistem yang akan dibuat terdiri dari dua subsistem, yaitu

subsistem hardware (telepon seluler GSM, personal computer (PC), mikrokontroler,

motor DC, komunikasi serial RS232) dan subsistem software (J2ME, Gammu, MySql,

Microsoft Access, dan Visual basic). Gambar 3.1 menunjukkan model sistem hardware

dan Gambar 3.2 menunjukkan model sistem alur pengolahan SMS yang akan dibuat.

Gambar 3.1. Model Sistem Hardware

Telepon

seluler 2Visual BasicIsi SMSMySqlGammu

nomor telepon

Gambar 3.2 Model Sistem Pengolahan SMS dalam PC

Proses kerja sistem dimulai saat telepon selular 1 dengan menggunakan J2ME

mengirimkan SMS perintah ke telepon selular 2. Telepon seluler 2 terhubung dengan PC

menggunakan RS232. SMS perintah dari telepon selular 2 akan dibaca oleh PC dengan

menggunakan Gammu. Data SMS perintah beserta nomor telepon pengirim akan

dimasukkan ke dalam MySql untuk penyimpanan data SMS perintah yang terdapat pada

telepon seluler 2. Kemudian, data nomor telepon pada MySql akan diambil dan dibaca

dengan menggunakan Visual Basic untuk melakukan pengecekan apakah nomor telepon

pengirim SMS boleh melakukan proses pengendalian motor DC. Selanjutnya data hasil

pengolahan pada Visual Basic akan dikirimkan ke mikrokontroler. Mikrokontroler

berfungsi sebagai pengubah data serial dari PC menjadi data 2 bit yang digunakan untuk

29

mengendalikan motor DC dan mengubah data 2 bit dari motor DC yang dikirimkan ke

PC sebagai informasi status motor DC.

3.2. Perancangan Subsistem Hardware

3.2.1 Perangkat Interface PC dengan Mikrokontroler

Komunikasi serial antara PC dengan mikrokontroler memerlukan sebuah

perangkat interface yang mengubah level tegangan Transistor-Transistor Logic (TTL)

dari PC menjadi level tegangan RS232 pada mikrokontroler. Gambar 3.3 menunjukkan

rangkaian dari perangkat interface yang digunakan. Besarnya nilai kapasitor C1, C2, C3,

dan C4 sebesar 1 F [9]. Koneksi antara IC MAX232 dengan RS232 terhubung melalui

pin14 MAX232 (Tx/Transmitter) dengan pin 2 DB9 (Rx /Receiver) dan pin 13 MAX232

(Rx/Receive) dengan pin 3 DB9 (Tx/Transmitter).

Gambar 3.3 Rangkaian Interface PC dengan Mikrokontroler

3.2.2 Rangkaian untuk memeriksa status motor DC

Rangkaian status motor DC digunakan untuk mengambil data dari motor DC.

Data yang diambil adalah kondisi motor DC sedang berputar atau tidak beserta arah

putar motor DC terdiri dari CCW, dan CW. Data tersebut akan dikirimkan ke portd.2

dan portd.3 pada mikrokontroler yang menjelaskan kondisi dari motor DC.

Rangkaian untuk mendeteksi motor DC sedang berputar atau tidak terdiri atas

LED inframerah sebagai sumber cahaya dan fotodioda sebagai penerimanya sehingga

bekerja seperti optocoupler. Optocopler mendeteksi motor DC sedang berputar pada saat

terdapat adanya perubahan nilai tegangan keluaran dari photodiode, dan mendeteksi

motor DC sedang tidak berputar pada saat tidak adanya perubahan nilai tegangan

VCC 5V

P1

CONNECTOR DB9

594837261

U1

MAX232A

13

81110

1

34

5

2

6

12

9

14

7

1615

R1IN

R2INT1INT2IN

C+

C1-C2+

C2-

V+

V-

R1OUT

R2OUT

T1OUT

T2OUT

VCCGNDC1

1u

C21u

C3 1u

C4

1u

J1

Mikrokontroler

123456789101112

30

keluaran dari photodioda. Data yang diambil oleh mikrokontroler untuk mengetahui

kondisi motor DC sedang berputar antara lain jika pada awalnya optocopler mendeteksi

logika bernilai 1, dan selanjutnya mendeteksi logika bernilai 0 , atau pada awalnya

mendeteksi logika bernilai 0, dan selanjutnya optocopler mendeteksi logika bernilai1.

Data yang diambil untuk kondisi motor DC sedang tidak berputar apabila optocopler

mendeteksi tidak adanya perubahan nilai masukan, yaitu jika pada awalnya optocopler

mendeteksi logika bernilai 0, dan selanjutnya mendeteksi logika bernilai 0, atau j ika

pada awalnya optocopler mendeteksi logika bernilai 1, dan selanjutnya optocopler

mendeteksi logika bernilai 1. Gambar 3.4 menunjukkan rangkaian yang akan dibuat.

Rangkaian tersusun atas optocoupler dan opamp yang bekerja sebagai

comparator untuk mengeluarkan tegangan 5 Volt(logika1) atau tegangan 0 volt(logika0).

Rangkaian optocoupler yang akan dibuat menggunakan LED dan fotodioda. Arus

maksimum LED adalah 150 mA (datasheet) dan VLED adalah 1,5 Volt (pengukuran).

Dengan Vcc (catu daya) 5 Volt, maka dapat dicari Rs maximum dan Rs minimum

dengan persamaan 2.2 sebagai berikut :

Resistor yang digunakan dalam perancangan adalah 330 Ω dikarenakan terdapat

di pasaran dan agar mendapat nilai arus yang kecil namun masih termasuk dalam nilai

optimum (10mA – 150mA), yaitu :

Berdasarkan perhitungan di atas didapat nilai sebesar 23,33 . Pada bagian

LED menggunakan arus optimum (150mA) bertujuan agar intensitas cahaya yang

dikeluarkan LED inframerah optimum sehingga jika terhalang oleh benda berwarna

hitam akan mengaktifkan fotodioda.

Rind dapat dicari dengan menggunakan persamaan yang sama dengan Rs sehingga

memiliki besar resistansi yang sama dengan Rs. Rind merupakan resistor pengaman untuk

LED indikator (LED berwarna merah). LED indikator akan menyala (on) jika keluaran

komparator berlogika 0 (0 volt / Ground) dan akan mati (off) jika keluaran komparator

berlogika 1 (5 volt / Vcc). Rd merupakan resistansi yang akan menentukan tegangan

31

keluaran fotodioda. Tabel 3.1 merupakan tabel data pra penelitian untuk mengetahui

karakteristik fotodioda dan Gambar 3.4 merupakan gambar rangkaian secara skematik.

Gambar 3.4 Rangkaian untuk Memeriksa Status Motor DC

Tabel 3.1 Karakteristik Fotodioda Hasil Pra Penelitian

RD

(k Ohm)

Kondisi Ruang VIR VD

1 Terbuka 1,194 V 4,48 V

Tertutup 1,194 V 4,54 V

2 Terbuka 1,194 V 3,9 V

Tertutup 1,194 V 4,38 V

3 Terbuka 1,194 V 3,78 V

Tertutup 1,194 V 4,33 V

4 Terbuka 1,194 V 133,2 mV

Tertutup 1,194 V 160 mV

Dari tabel 3.1, pada resistor RD = 3k Ohm memiliki beda tegangan ON – OFF

yang cukup tinggi saat cahaya inframerah terhalang benda dengan jarak 12 cm, yaitu:

Sehingga yang digunakan untuk RD adalah resistor 3 kΩ.

3.2.3 Rangkaian Sistem Mikrokontroler

Minimum sistem mikrokontroler berfungsi sebagai media interface dan

pemrosesan data antara PC dan unit I/O. Kristal yang digunakan dalam minimum sistem

mikrokontroler ini adalah kristal eksternal yang diatur melalui program. Gambar 3.5

memperlihatkan rangkaian minimum sistem mikrokontroler yang akan digunakan.

Rangkaian reset digunakan untuk melakukan reset pada mikrokontroler,

sehingga eksekusi program mikrokontroler akan dimulai kembali dari awal.

mikrokontroler akan mengeksekusi program pada saat port RST diberikan logika „0‟.

32

Jika port RST diberikan logika 1, maka program akan kembali ke awal (reset). Setelah

PC mengirimkan suatu bilangan ke mikrokontroler melalui serial port(DB9), selanjutnya

bilangan tersebut akan masuk ke mikrokontroler melewati RS232 (media sinkronisasi

mikrokontroler dan serial port). Setelah data diterima oleh mikrokontroler, selanjutnya

mikrokontroler akan mengolah data tersebut apakah data yang dikirimkan dari PC

digunakan untuk mengendalikan motor DC atau untuk memeriksa status motor DC.

Pada saat bilangan yang terdeteksi oleh mikrokontroler adalah bilangan yang digunakan

untuk mengendalikan motor DC, maka mikrokontroler akan mengirimkan data berupa

logika 1 atau logika 0 (tergantung bilangan yang dikirimkan oleh PC) ke portd.4 dan

portd.5. Pada saat bilangan yang terdeteksi oleh mikrokontroler adalah bilangan yang

digunakan untuk memeriksa motor DC, maka mikrokontroler akan melakukan

pembacaan nilai masukan pada portd.4 dan portd.5. Selanjutnya pada mikrokontroler

akan diolah dan mengeluarkan data berupa karakter yang akan dikrimkan ke PC melalui

RS232. Optocoupler yang digunakan pada minimum sistem sebanyak 1 buah yang

digunakan untuk mengetahui motor DC sedang berputar atau berhenti.

Gambar 3.5 Rangkaian Minimum Sistem Mikrokontroler

33

3.3 Perancangan Subsistem Software

3.3.1 Perancangan Program Mikrokontroler

Dalam perancangan sistem ini, perangkat lunak yang digunakan adalah

BASCOM AVR. BASCOM AVR adalah program yang menggunakan bahasa basic

yang ringkas dan dirancang untuk compiler bahasa mikrokontroler AVR.

Perancangan program pada mikrokontroler terdiri dari dua jenis yaitu program

memeriksa status dan pengendalian motor DC. Pengendalian motor DC merupakan

program yang digunakan untuk memerintahkan motor DC berputar sesuai keinginan

user dan program memeriksa status digunakan untuk memeriksa status dari motor DC

yang akan dikendalikan. Gambar 3.6 menunjukkan flowchart utama memeriksa dan

mengendalikan motor DC.

Mulai

Nilai Masukan

mikrokontroler dari

PC Bernilai 115?

Inisialisai

port

Program

Memeriksa Status

Motor DC

Program

mengendalikan

Motor DC

Selesai

Cek Nilai Masukan

Mikrokontroler dari

PC

Tidak

Ya

A

Gambar 3.6 Flowchart Utama Program Memeriksa dan Mengendalikan

Motor DC

Data bilangan hasil proses pada PC akan dikirimkan ke mikrokontroler. Data

hasil proses pada PC antara lain bernilai “112”, bernilai “113”, bernilai “114”, dan

bernilai “115”. Data hasil olahan yang bernilai “112”, “113”, dan “114” digunakan

untuk mengendalikan motor DC dan nilai “115” digunakan untuk memeriksa status

motor DC.

34

3.3.1.1. Program Memeriksa Status Motor DC

Nilai data yang diolah untuk memeriksa status motor DC adalah “115”. Setelah

PC mengirimkan data bernilai “115”, mikrokontroler akan melakukan proses membaca

status motor DC yaitu berputar dan tidak dan status arah perputaran motor DC. Status

motor DC berputar atau berheti yang didapat dari pembacaan sensor optocoupler yang

terhubung dengan portd.2.

Status motor DC sedang berputar atau tidak tergantung dari banyaknya nilai

logika 1 dan nilai logika 0 yang masuk ke mikrokontroler. Proses pembacaan nilai pada

portd.2 akan dilakukan sebanyak 9 kali. Pada saat portd.2 pertama kali mendapatkan

nilai logika 0, program akan melakukan proses pembacaan nilai logika 0. Pada saat nilai

logika 0 tidak terdeteksi (terbaca logika1), program hanya melakukan proses cacahan.

Pada saat portd.2 pertama kali mendapatkan nilai logika 1, program akan melakukan

proses pembacaan nilai logika 1. Pada saat nilai logika 1 tidak terdeteksi (terbaca

logika1) program hanya melakukan proses cacahan. Setelah cacahan selesai dilakukan

(dilakukan proses pembacaan sebanyak 9 kali), selanjutnya program akan melakukan

proses hasil pembacaan portd.2. Pada saat nilai logika 0 / nilai logika 1 yang masuk ke

mikrokontroler berjumlah 9 menunjukkan motor DC sedang berhenti. Pada saat nilai

logika 1/logika 0 yang masuk ke mikrokontroler kurang dari 9 menunjukkan motor DC

sedang berputar.

Status arah putar motor DC didapatkan dari pembacaan nilai logika 1 dan logika

0 yang masuk ke mikrokontroler pada portd.4 dan portd.5. Pada saat portd.4 bernilai 0

dan portd.5 bernilai 1 menunjukkan motor DC sedang berputar CCW. Pada saat portd.4

bernilai 1 dan portd.5 bernilai 0 menunjukkan motor DC sedang berputar CW.

Program pertama kali akan melakukan proses pembacaan portd.2 (sensor

optocoupler) untuk mengetahui motor DC sedang berputar atau tidak. Pada saat nilai

logika 1 atau nilai logika 0 berjumlah 9 menunjukkan motor DC sedang berhenti

selanjutnya mikrokontroler akan mengirimkan karakter ”p” ke PC. Pada saat nilai logika

1 yang masuk ke mikrokontroler kurang dari 9 menunjukkan motor DC sedang berputar

dan selanjutnya program akan melakukan proses pembacaan nilai pada portd.4 dan

portd.5 untuk mengetahui arah putar motor DC. Pada saat portd.4 bernilai 0 dan portd.5

bernilai 1 menunjukkan motor DC sedang berputar CCW selanjutnya mikro akan

mengirimkan karakter ”q” ke PC. DC. Pada saat portd.4 bernilai 1 dan portd.5 bernilai 0

35

menunjukkan motor DC sedang berputar CW selanjutnya mikro akan mengirimkan

karakter ”r” ke PC. Gambar 3.7 menunjukkan flowchart program yang akan dibuat.

Tabel 3.2 Pengolahan Data Masukan Memeriksa Status pada Mikrontroler

Pembacaan nilai pada portd.2 Kondisi

motor DC

Nilai portd.4

dan portd.5

Nilai Data keluaran

mikrokontroler ke

PC

status

Logika1/logika0 sebanyak 9 Berhenti - P Berhenti

Logika1/logika0 kurang dari 9 Berputar ”01” Q Berputar CCW

Logika1/logika0 kurang dari 9 Berputar ”10” R Berputar CW

Ya

Pord.4 = 0 dan

portd.5 = 1Tidak

Mulai

Ya

Selesai

Kirim

karakter “p”

ke pc

Nilai logika 1/logika 0

pada portd.2

berjumlah 9?

Ya

Kirim

karakter “ r ”

ke pc

Kirim

karakter “q”

ke pc

Cek portd.4 dan

portd.5Tidak

Pord.4 = 1 dan

portd.5 = 0

Gambar 3.7 Flowchart Program Memeriksa Status Motor DC

3.3.1.2. Program Kendali Motor DC

Saat mikrokontroler menerima masukan dari PC selain bernilai “115”,

mikrokontroler digunakan untuk mengendalikan motor DC. Data dari PC yang

dikirimkan ke mikrokontroler untuk melakukan proses pengendalian antara lain berhenti

dengan nilai masukan mikrokontroler bernilai data ”112”, CCW dengan nilai masukan

mikrokontroler bernilai data ”113”, dan CW dengan nilai masukan mikrokontroler

bernilai data “114”. Data tersebut akan digunakan untuk mengendalikan motor DC. Saat

masukan mikrokontroler yang dikirimkan dari PC bernilai “112”, nilai keluaran

36

mikrokontroler yang akan menjadi masukan motor DC adalah bernilai “00” (portd.4= 0

dan portd.5=0), sehingga motor DC dapat berhenti. Saat masukan mikrokontroler

bernilai “113”, nilai keluaran yang akan diterima oleh motor DC adalah “01” (portd.4=0

dan portd.5=1), sehingga motor DC dapat berputar CCW. Saat masukan mikrokontroler

“114”, nilai keluaran yang akan diterima oleh motor DC adalah “10” (portd.4=1 dan

portd.5=0) sehingga motor DC dapat bergerak berputar CW. Tabel 3.3 merupakan tabel

pengolahan data masukan dan data keluaran. Gambar 3.8 menunjukkan flowchart

program kendali motor DC pada mikrokontroler yang akan dibuat.

Tabel 3.3 Kendali Motor DC Mikrokontroler

Kendali motor DC Nilai Data masukan

mikrokontroler

Nilai Data masukan motor DC

(nilai portd.4 dan portd.5)

Berhenti “112” ”00”

Berputar CCW “113” ”01”

Berputar CW “114” ”10”

Ya

Masukan

mikrokontroler

dari PC bernilai

113?

Selesai

Ya

Tidak

Masukan

mikrokontroler

dari PC bernilai

114?

Tidak A

Ya

Masukan

mikrokontroler

dari PC bernilai

112?

Portd.4= 0

dan

portd.5 = 0

Mulai

Tidak

Portd.4= 1

dan

portd.5 = 0

Portd.4= 0

dan

portd.5 = 1

Gambar 3.8 Flowchart Program Kendali Motor DC

37

3.3.2 Perancangan Program Personal Computer

Perancangan program pada PC digunakan untuk mengatur komunikasi antara

telepon seluler 1, telepon seluler 2, PC, mengelola database SMS, dan mikrokontroler.

PC akan mengolah perintah SMS yang diterima kemudian mengirimkan instruksi-

instruksi ke mikrokontroler. Proses pengolahan SMS dari telepon seluler 1 untuk

memeriksa SMS perintah digunakan untuk kendali atau memeriksa motor DC

ditunjukkan pada Gambar 3.9.

Telepon

seluler 2Visual BasicIsi SMSMySqlGammu

nomor telepon

Gambar 3.9 Alur Pengolahan SMS Perintah

Gammu digunakan untuk mengubah format data pada telepon seluler 2 yang

diterima PC berupa PDU menjadi data ASCII sehingga lebih mudah untuk diproses.

SMS pada telepon seluler 2 dikelompokkan pada MySql untuk keperluan SMS Gateway

yang terdiri dari tabel inbox, sent dan outbox. SMS inbox terbaru yang terletak pada

MySql akan dilakukan pemeriksaan isi SMS dan nomor telepon pengirim SMS tersebut

dengan menggunakan Visual Basic. Visual Basic akan melakukan open connection

dengan MySql. Kemudian Visual Basic akan melakukan proses pembacaan tabel isi dan

nomor telepon pengirim SMS yang sudah dikelompokkan dan terletak pada tabel inbox.

SMS perintah yang akan diolah oleh Visual Basic terdiri dari 2 jenis yang terdiri

dari program memeriksa status motor DC dan program kendali motor DC. Program akan

membaca SMS masuk pada telepon seluler 2 apakah isi SMS berupa memeriksa status

atau berupa kendali motor DC. Saat tidak ada SMS yang masuk, program dalam posisi

standby menunggu ada SMS masuk untuk diolah. Gambar 3.10 menunjukkan flowchart

program utama pada PC yang akan dibuat.

38

Inisialisai

Telepon

seluler 2

Mulai

Isi SMS

kendali

motor DC?

Ya Ya

Isi SMS

cek

Kendali Motor DCMemeriksa Status

Motor DC

Tidak

Tidak

Selesai

Cek isi

SMS

B

Gambar 3.10 Flowchart Pengiriman data ke mikrokontroler pada Personal Computer

3.3.2.1 Perancangan Program Memeriksa status motor DC pada

Personal Computer

Saat SMS perintah yang diterima oleh Visual Basic dari telepon seluler 2 berupa

memeriksa status motor DC dalam format sms cek, Visual Basic akan menjalankan

program memeriksa status motor DC. Selanjutnya Visual Basic akan memberi masukan

ke mikrokontroler bernilai “115”. Selanjutnya program dalam posisi standby, menunggu

masukan yang akan dikirimkan mikrokontroler. Masukan yang akan dikirimkan dari

mikrokontroler adalah data biner 2 bit. Visual Basic akan mengolah data biner tersebut

dan memberikan keluaran berupa SMS perintah ke telepon seluler 1. Nilai masukan PC

yang diterima komunikasi serial antara mikrokontroler dan PC sehingga data dari

mikrokontroler dapat diolah oleh Visual Basic terdiri dari nilai “112”, nilai “113”, dan

nilai “114”. Saat PC menerima nilai masukan dari mikrokontroler bernilai “112”

menunjukkan kondisi motor DC sedang berhenti, sehingga Visual Basic akan

memberikan format SMS perintah berhenti ke telepon seluler 1. Saat PC menerima nilai

masukan dari mikrokontroler bernilai “113” menunjukkan kondisi motor DC sedang

berputar CCW, sehingga Visual Basic akan memberikan format SMS perintah CCW ke

39

telepon seluler 1. Saat PC menerima nilai masukan dari mikrokontroler bernilai “114”

menunjukkan kondisi motor DC sedang berputar CW sehingga Visual Basic akan

memberikan format SMS perintah CCW ke telepon seluler 1. Gambar 3.11

menunjukkan flowchart program memeriksa status motor DC pada PC.

Tidak

Kirim SMS CCW Ke

telepon seluler 1

Kirim SMS CW Ke

telepon seluler 1

Ya

Selesai

Beri masukan

bernilai “115" dari

PC ke

mikrokontroler

Cek Nilai masukan

PC dari

mikrokontroler

Mulai

Ya

Tidak

PC mendapatkan

masukan “p” dari

mikrokontroler

Tidak

Kirim SMS berhenti

Ke telepon seluler 1

Ya

Menunggu Nilai

masukan dari

mikrokontroler

PC mendapatkan

masukan “ r ” dari

mikrokontroler

PC mendapatkan

masukan “q” dari

mikrokontroler

Gambar 3.11 Flowchart Memeriksa Status Motor DC pada PC

Tabel 3.4 menunjukkan data pengolahan nilai masukan PC dari mikrokontroler

dan perintah SMS yang akan dikirimkan oleh telepon seluler 2.

Tabel 3.4 Pengolahan masukan dari mikrokontroler yang akan diolah

Nilai masukan ke PC Perintah SMS ke

telepon seluler server

p berhenti

q ccw

r cw

40

3.3.2.2 Perancangan Program Kendali Motor DC pada Personal

Computer

Saat SMS perintah masuk ke telepon seluler 2 berupa kendali motor DC, Visual

Basic akan menjalankan program kendali motor DC. Selanjutnya, Visual Basic akan

memberikan nilai keluaran yang akan dikirimkan ke mikrokontroler sesuai dengan

format SMS yang diterima oleh telepon seluler 2 atau dikirimkan oleh telepon seluler 1.

SMS perintah kendali motor DC yang akan diolah program pada PC antara lain kendali

motor DC berputar CCW, dan kendali motor DC berputar CW. SMS perintah CCW

akan memberikan nilai keluaran Visual Basic bernilai “113” yang akan menjadi nilai

masukan mikrokontroler. SMS perintah CW akan memberikan nilai keluaran Visual

Basic bernilai “114” yang akan menjadi nilai masukan mikrokontroler. Gambar 3.12

menunjukkan flowchart program kendali motor DC pada PC yang akan dibuat.

Isi SMS

CCW?

Kirim Masukan Ke

mikrokontroler

bernilai 113

Isi SMS

CW?

Kirim Masukan Ke

mikrokontroler

bernilai 114

Selesai

Ya Ya

Tidak Tidak BIsi SMS

berhenti?

Kirim Masukan Ke

mikrokontroler

bernilai 112

Mulai

Ya

Tidak

Gambar 3.12 Flowchart Program Kendali Motor DC pada PC

Tabel 3.5 menunjukkan pengolahan perintah SMS dan nilai keluaran PC yang

menjadi nilai masukan mikrokontroler.

Tabel 3.5 Tabel Perintah Kendali Motor DC dan Nilai Masukan pada

Mikrokontroler

Perintah SMS Nilai masukan ke mikrokontroler

berhenti “112”

ccw “113”

cw “114”

41

3.3.3 Perancangan Program Telepon Selular 1

Program pengendalian motor DC pada telepon selular 1 menggunakan J2ME.

Dengan adanya J2ME ini, tampilan pada telepon selular 1 berupa pilihan yang terdiri

dari pengendalian motor DC dan memeriksa kendali motor DC. Pilihan tersebut

terhubung dengan aktifitas lanjutan dari program yang dipilih, yang selanjutnya akan

diproses oleh J2ME dan berakhir dengan penggunaan fasilitas SMS yang terdapat pada

telepon seluler untuk melakukan proses pengendalian atau memeriksa status motor DC

sesuai dengan yang dipilih oleh user. Gambar 3.13 menunjukkan pilihan motor DC yang

akan dibuat.

Gambar 3.13 Tampilan Pilihan Motor DC

Gambar 3.14 menunjukkan flowchart utama program memeriksa dan

mengendalikan motor DC pada telepon seluler 1.

Mulai

Selesai

Tidak

Apakah SMS berisi

cek ?

Apakah SMS berisi

pilihan pengendalian

Motor DC?

Memeriksa

Kendali Motor DC

Tampilan awal

Pilihan Motor DC

Tidak

Ya

Kendali Motor DC

Ya

Gambar 3.14 Flowchart Tampilan Awal pada Telepon Seluler 1

42

3.3.3.1 Program Pengendalian Motor DC

Program pengendalian motor DC dimulai setelah telepon seluler satu memilih

salah satu jenis kendali motor DC pada tampilan awal telepon seluler. Setelah user

memilih pilihan kendali motor DC yang terdiri dari berhenti, counter clock wise(CCW)

dan clock wise(CW). Gambar 3.15 menunjukkan cara pemilihan kendali motor DC

apabila menginginkan motor DC berhenti berputar.

Gambar 3.15 Tampilan Cara Pemilihan Kendali Motor DC Berhenti

Pilihan tersebut terhubung langsung dengan aktifitas penggunaan fasilitas SMS

yang terdapat pada telepon seluler untuk melakukan proses pengendalian motor DC

berhenti berputar.

Format SMS perintah yang akan dikirimkan untuk mengendalikan motor DC

berputar counter clock wise adalah CCW dan untuk mengendalikan motor DC berputar

clock wise adalah CW. Format SMS tersebut akan membuat motor DC berputar sesuai

dengan pilihan user. Setelah format SMS kendali motor DC selesai dikirimkan,

selanjutnya tampilan yang terdapat pada telepon seluler adalah kembali pada tampilan

awal pilihan motor DC. Gambar 3.16 menunjukkan tampilan yang akan dibuat setelah

user memilih pilihan kendali motor dc berputar berhenti.

Gambar 3.16 Tampilan Aktifitas Pengiriman SMS setelah User Memilih Kendali

Motor DC Berhenti.

43

Gambar 3.17 menunjukkan tampilan yang akan dibuat setelah user memilih

pilihan kendali motor dc berputar counter clock wise(CCW).

Gambar 3.17 Tampilan Cara Pemilihan Kendali Motor DC CCW

Gambar 3.18 menunjukkan tampilan yang akan dibuat setelah user memilih

pilihan KirimSMS agar motor DC berputar counter clock wise(CW). Tampilan tersebut

menunjukkan format SMS CW sedang dikirimkan agar motor DC dapat berputar

counter clock wise.

Gambar 3.18 Tampilan Aktifitas Pengiriman SMS setelah User Memilih Kendali

Motor DC Berputar Counter Clock Wise.

Gambar 3.19 menunjukkan tampilan yang akan dibuat setelah user memilih

pilihan kendali motor dc berputar clock wise(CW).

Gambar 3.19 Tampilan cara pemilihan kendali motor DC CW

Gambar 3.20 menunjukkan tampilan yang akan dibuat setelah user memilih

pilihan KirimSMS agar motor DC berputar clock wise(CW). Tampilan tersebut

44

menunjukkan format SMS CW sedang dikirimkan agar motor DC dapat berputar clock

wise.

Gambar 3.20 Tampilan Aktifitas Pengiriman SMS setelah User Memilih Kendali

Motor DC Berputar Clock Wise.

Gambar 3.21 menunjukkan flowchart program apabila format SMS dari telepon

seluler 1 berisi pilihan kendali motor DC.

Pilih kendali motor dc

berputar counter clock

wise(CCW)??

Pilih kendali motor dc

berputar clock wise(CW)??

Kirim SMS CCW Ke

telepon seluler 2

Kirim SMS CW Ke

telepon seluler 2

Ya

Tidak

Ya

Tidak

Selesai

CPilih kendali motor dc

berhenti??

Kirim SMS berhenti

Ke telepon seluler 2

Ya

Mulai

Tidak

Gambar 3.21 Flowchart Program Kendali Motor DC pada Telepon Selular 1

3.3.3.2 Program Memeriksa Status Motor DC

Program memeriksa status motor DC digunakan untuk memeriksa kondisi dari

motor DC apakah sedang berhenti, berputar CCW, atau berputar CW. Program ini

menggunakan program mengirim dan menerima SMS. Program memeriksa status motor

DC dimulai setelah user memilih memeriksa status motor DC pada tampilan awal

pilihan motor DC. Setelah user memilih memeriksa status motor DC, telepon seluler 1

akan mengirimkan SMS perintah dengan format SMS yaitu cek yang akan dikirimkan

ke telepon seluler 2 yang sudah terhubung langsung dengan komputer. Gambar 3.22

menunjukkan tampilan yang akan dibuat saat user memilih pilihan memeriksa status

motor DC.

45

Gambar 3.22 Tampilan Cara Memilih Pilihan Memeriksa Status Motor DC

Gambar 3.23 menunjukkan tampilan yang akan dibuat setelah user memilih

pilihan memeriksa status motor DC. Tampilan tersebut menunjukkan format SMS cek

sedang dikirimkan untuk memeriksa status motor DC.

Gambar 3.23 Tampilan setelah User Melakukan Eksekusi KirimSMS pada

Memeriksa Status Motor DC

Selanjutnya, telepon seluler 1 akan menunggu format SMS perintah dari telepon

seluler 2 yang berisi status motor DC. Status dari motor DC terdiri dari berhenti, CCW,

dan CW. Telepon seluler 1 akan menampilkan status CCW pada bagian Text Field

tampilan pilihan motor DC apabila telepon seluler 1 menerima SMS perintah berisi

CCW dari telepon seluler 2. Gambar 3.24 menunjukkan tampilan yang akan dibuat

apabila telepon seluler 1 menerima status motor DC berputar counter clock wise.

46

Gambar 3.24 Tampilan pada Telepon Seluler 1 apabila Status Motor DC

Berputar Counter Clock Wise (CCW)

Telepon seluler 1 akan menampilkan status clock wise(CW) pada bagian

TextField tampilan pilihan motor DC apabila telepon seluler 1 menerima SMS perintah

berisi CW dari telepon seluler 2 berputar clock wise(CW). Gambar 3.25 menunjukkan

tampilan yang akan dibuat apabila telepon seluler 1 menerima status motor DC berputar

clock wise(CW).

Gambar 3.25 Tampilan pada Telepon Seluler 1 apabila Status Motor DC

Berputar Clock Wise (CW)

Telepon seluler 1 akan menampilkan status berhenti pada bagian TextField

tampilan pilihan motor DC apabila telepon seluler 1 menerima SMS perintah berisi

berhenti dari telepon seluler 2 yang menunjukkan motor DC sedang bertindak berhenti.

Gambar 3.26 menunjukkan tampilan yang akan dibuat apabila telepon seluler 1

menerima status motor DC berhenti.

47

Gambar 3.26 Tampilan pada Telepon Seluler 1 apabila Status Motor DC

Berputar Clock Wise (CW)

Gambar 3.27 menunjukkan flowchart program memeriksa status motor DC yang

akan dibuat.

SMS dari telepon

seluler 2 berisi CW??

Tampilkan clock

wise (CW)

Tampilkan Counter

Clock Wise (CCW)

Tunggu SMS dari

telepon seluler 2

Kirim SMS

memeriksa status ke

telepon seluler 2

SMS dari

telepon seluler 2 berisi

CCW??

Ya

Tidak

Mulai

Selesai

Baca SMS dari

Telepon Seluler 2

Ya

Tidak

Tampilkan berhenti

SMS dari

telepon seluler 2 berisi

berhenti??

Tidak

Ya

Gambar 3.27 Flowchart Memeriksa Status Motor DC

48

3.3.4 Perancangan Program Telepon Selular 2

Program pengendalian motor DC pada telepon selular 2 menggunakan J2ME.

Dengan adanya J2ME ini, tampilan pada telepon selular 2 berupa Text Field yang terdiri

dari SMS dari telepon seluler 1, pengendalian motor DC dan memeriksa kendali motor

DC. Tampilan tersebut menunjukkan SMS dari/ke telepon seluler 1. Pada saat Text Field

pada bagian SMS dari telepon seluler 1 menampilkan format SMS seperti berhenti,

CCW dan CW, menunjukkan telepon seluler 1 meminta pengendalian motor DC. Pada

saat Text Field pada bagian SMS dari telepon seluler 1 menampilkan format SMS

berupa cek, menunjukkan telepon seluler 1 meminta memeriksa status motor DC.

Gambar 3.28 menunjukkan tampilan Text Field pada telepon seluler 2 yang akan dibuat.

Gambar 3.28 Tampilan pada Telepon Seluler 2

Gambar 3.29 menunjukkan flowchart utama program memeriksa dan

mengendalikan motor DC pada telepon seluler 1.

Mulai

Selesai

Tidak

Apakah SMS berisi

cek ?

Apakah SMS

berisi salah satu

pengendalian motor

DC?

Tampilan awal

Pilihan Motor DC

Tidak

Ya Ya

Pengendalian

Motor DC

Memeriksa

Kondisi Motor DC

Gambar 3.29 Flowchart Tampilan Awal pada Telepon Seluler 1

49

3.3.4.1 Program Pengendalian Motor DC

Program pengendalian motor DC dimulai setelah telepon seluler 2 menerima

SMS yang berisi salah satu jenis pengendaalian seperti berhenti, CCW dan CW. SMS

tersebut akan tertampil pada Text Field SMS dari telepon seluler 1 pada telepon seluler

2. Setelah telepon seluler 2 menampilkan SMS tersebut selanjutnya J2ME akan mengisi

Text Field pengendalian motor DC sesuai dengan isi Text Field dari telepon seluler 1.

Gambar 3.30 menunjukkan tampilan yang akan dibuat apabila SMS dari telepon seluler

1 berisi berhenti, Gambar 3.31 menunjukkan tampilan yang akan dibuat apabila SMS

dari telepon seluler 1 berisi CCW, Gambar 3.32 menunjukkan tampilan yang akan

dibuat apabila SMS dari telepon seluler 1 berisi CW.

Gambar 3.30 Tampilan Cara Pemilihan Kendali Motor DC Berhenti

Gambar 3.31 Tampilan setelah User Memilih Pilihan Kendali Motor DC

Berputar Counter clock wise(CCW).

50

Gambar 3.32 Tampilan Cara Pemilihan Kendali Motor DC CW

Gambar 3.33 menunjukkan flowchart program pengendalian motor DC pada

telepon seluler 2.

Mulai

Selesai

Tidak

Apakah SMS dari

telepon seluler 1

berisi berhenti ?

Apakah SMS dari

telepon seluler 1 berisi

CCW?

Tampilan awal

Pilihan Motor DC

Tidak

Ya Ya

Isi Text Field

Pengendalian

motor DC dengan

CCW

Isi Text Field

Pengendalian

motor DC dengan

berhenti

Apakah SMS dari

telepon seluler 1 berisi

CW?

Tidak

Ya

Isi Text Field

Pengendalian

motor DC dengan

CW

Gambar 3.33 Flowchart Program Kendali Motor DC pada Telepon Selular 2

3.3.4.2 Program Memeriksa Status Motor DC

Program memeriksa status motor DC digunakan untuk memeriksa kondisi dari

motor DC apakah sedang berhenti, berputar CCW, atau berputar CW. Program ini

menggunakan program mengirim dan menerima SMS. Setelah J2ME pada telepon

seluler 2 menerima SMS dari telepon seluler 1 yang berisi cek, selanjutnya telepon

seluler 2 dalam posisi menunggu masukan dari PC yang berisi status dari motor DC.

Status dari motor DC terdiri dari berhenti, CCW, dan CW. Gambar 3.34 menunjukkan

tampilan setelah telepon seluler 2 menerima SMS cek dari telepon seluler 1.

51

Gambar 3.34 Tampilan Awal J2ME saat Menerima SMS Berisi cek dari Telepon

Seluler 1

Setelah J2ME mendapatkan masukan dari PC, selanjutnya J2ME pada telepon

seluler 2 akan menampilkan status motor DC dari PC pada Text Field status motor DC.

Setelah Text Field status motor DC terisi teks dari PC yang berisi status motor DC,

kemudian J2ME akan mengirimkan SMS ke telepon seluler 1 sesuai dengan isi status

motor DC pada telepon seluler 2.. Gambar 3.35 menunjukkan tampilan yang akan dibuat

apabila status motor DC yang dikirimkan dari PC berisi berhenti, Gambar 3.36

menunjukkan tampilan yang akan dibuat apabila yang dikirimkan status motor DC dari

PC berisi CCW, Gambar 3.37 menunjukkan tampilan yang akan dibuat apabila status

motor DC yang dikirimkan dari PC berisi CW.

Gambar 3.35 Tampilan pada Telepon Seluler 1 apabila Status Motor DC

Berputar Counter Clock Wise (CCW)

52

Gambar 3.36 Tampilan pada Telepon Seluler 1 apabila Status Motor DC

Berputar Clock Wise (CW)

Gambar 3.37 Tampilan pada Telepon Seluler 1 apabila Status Motor DC

Berputar Clock Wise (CW)

Gambar 3.38 menunjukkan flowchart program memeriksa status motor DC yang

pada telepon seluler 2.

Teks dari PC berisi

PC

Kirim SMS CW ke

telpon seluler 1

Kirim SMS CCW ke

telpon seluler 1

Menunggu SMS

berisi cek dari

telepon seluler 1

Teks dari PC berisi

CCW??

Ya

Tidak

Mulai

Selesai

Menunggu teks

dari PC yang

berisi status dari

motor DC

Ya

Tidak

Kirim SMS berhenti

ke telpon seluler 1

Teks dari PC berisi

berhenti??Tidak

Ya

Tampilkan cek

pada Text Field

SMS dari telepon

seluler 1

Gambar 3.38 Flowchart Memeriksa Status Motor DC

53

BAB IV

HASIL DAN PEMBAHASAN

Bab ini berisi gambar fisik hardware yang dibuat, hasil pengujian rangkaian, hasil

pengambilan data, pembahasan tentang data yang diperoleh, dan pembahasan tentang

program yang digunakan baik program di PC dan program di mikrokontroler. Data yang

akan dibahas terdiri dari data utama dan data pendukung. Data utama merupakan data-data

yang menunjukkan tingkat akurasi antara SMS yang dikirim yang disesuaikan dengan

kinerja sistem. Data pendukung merupakan nilai parameter setiap blok dari diagram blok

yang ditunjukkan pada Gambar 3.1. Data-data yang diperoleh akan dibandingkan dengan

hasil perancangan untuk menunjukkan tingkat keberhasilan sistem dengan perancangan.

4.1 Gambar Fisik Hardware

Hardware sistem tersusun atas Rangkaian Sistem Minimum Mikrokontroler

Rangkaian Regulator Tegangan, Rangkaian untuk memeriksa status motor DC, Motor DC,

konektor serial ke PC , Tombol reset, LED indikator power on, LED indikator data 2, LED

indikator data 1, dan Trafo 1A. Gambar fisik hardware secara keseluruhan dapat dilihat

pada Gambar 4.1. Gambar rangkaian secara detail dapat dilihat pada Gambar 4.2 - 4.7.

Gambar 4.1. Hardware sistem

54

Keterangan Gambar 4.1:

1. Rangkaian Minimum System Mikrokontroler

2. Rangkaian Regulator Tegangan

3. Rangkaian untuk memeriksa status motor DC

4. Motor DC dan piringan CD

5. Konektor serial ke PC

6. Tombol reset

7. LED indikator power on

8. LED indikator data 2

9. LED indikator data 1

10. Trafo 1A

Gambar 4.2. Rangkaian Sistem Minimum Mikrokontroler

Keterangan Gambar 4.2:

1. Mikrokontroler AtMega8535

2. Rangkaian Max232

3. Konektor serial ke PC

4. Masukan Motor DC ( Port d.4 dan port d.5 )

5. Tegangan masukan untuk rangkain Sistem Minimum Mikrokontroler (Vcc dan

Ground)

55

Gambar 4.3. Rangkaian Regulator Tegangan

Keterangan Gambar 4.3:

1. Tegangan masukan trafo 1A

2. Tegangan keluaran Rangkaian Regulator Tegangan

Gambar 4.4 Rangkaian Memeriksa Status Motor DC

Keterangan Gambar 4.4:

1. Rangkaian Optocoupler

2. Rangkaian Comparator Tegangan Keluaran Sensor Photodioda

Gambar 4.5. Rangkaian Optocoupler

56

Keterangan Gambar 4.5:

1. Phototodioda

2. LED Infrared

Gambar 4.6 Rangkaian Comparator Tegangan Keluaran Sensor Photodioda

Keterangan Gambar 4.6:

1. OpAmp LM082

2. Masukan sensor photodioda

3. Masukan ke mikrokontroler

4. VCC

5. Ground

Gambar 4.7 Motor DC

Keterangan Gambar 4.7:

1. Piringan CD

2. Motor DC

4.2 Pengujian SMS Sistem

Sistem pengendalian dan pemantauan dapat dilakukan dengan melakukan

pemilihan pengendalian yang terdapat pada aplikasi telepon seluler 1. Proses pengendalian

dan pemantauan dilaksanakan saat telepon seluler 1 mengaktifkan aplikasi yang sudah

57

disesuaikan dengan sistem yang dibuat. Pengujian ini dilakukan untuk memeriksa tingkat

akurasi sistem dengan semua proses yang terjadi pada sistem.

Pengujian awal yang dilakukan terhadap SMS sistem dilakukan dengan beberapa

kondisi sebagai berikut:

1. Telepon seluler 1 (user) dan telepon seluler 2 menggunakan aplikasi J2ME.

2. Pilihan pengendalian dan pemantauan yang terdapat di dalam database sistem untuk

pengujian pengendalian motor DC dapat dilihat pada Tabel 4.1.

Tabel 4.1 Tabel Format SMS pada Database

No Format SMS perintah Keterangan

1 ccw Melakukan pengendalian putaran motor DC berputar CCW

2 cw Melakukan pengendalian putaran motor DC berputar CW

3 berhenti Menghentikan pengendalian putaran motor DC

4 cek Melakukan pemantuan terhadap kondisi motor DC

Data hasil percobaan aplikasi SMS dengan menggunakan J2ME antara telepon

seluler 1 (user) dan telepon seluler 2 (server) untuk pengendalian motor DC dapat dilihat

pada Tabel 4.2. Data yang diambil terdiri dari yang dipilih pada telepon seluler 1 dan isi

text field yang terletak pada telepon seluler 2. Tampilan text field pada telepon seluler 2

terdiri dari isi SMS dari telepon seluler 1, isi text field status motor DC dan isi text field

kendali motor DC.

Tabel 4.2. Tabel Data Hasil Percobaan Aplikasi SMS Menggunakan J2ME untuk

Pengendalian Motor DC

Yang

dipilih pada

telepon

seluler 1

Isi Text field

SMS dari

telepon seluler 1

Isi Text

field status

motor DC

Isi Text field

kendali

motor DC

berhenti berhenti - berhenti

ccw ccw - ccw

cw cw - cw

58

Tampilan pada telepon seluler 1 (user) dan telepon seluler 2 (server) dengan

menggunakan J2ME untuk pengendalian motor DC agar berhenti berputar dapat dilihat

pada Gambar 4.8.

Gambar 4.8 Tampilan Pengendalian Motor DC Telepon Seluler 1 dan Telepon

Seluler 2 Menggunakan J2ME

Data-data hasil pengujian pada Tabel 4.2 menunjukkan bahwa:

1. J2ME melakukan pengiriman isi SMS sesuai dengan pilihan user yang terlihat dari isi

text field SMS dari telepon seluler 1 yang terdapat pada telepon seluler 2, setelah user

memilih pilihan pengendalian pada aplikasi telepon seluler 1. Proses ini sesuai dengan

flowchart pada Gambar 3.22 di dalam bab perancangan.

2. Text field ”SMS dari telepon seluler 1” dan text field ”Kendali motor DC” pada telepon

seluler 2 berisi berhenti, ccw atau cw setelah aplikasi telepon seluler 2 menerima

format SMS pengendalian yang dikirimkan dari telepon seluler 1. Proses ini sesuai

dengan flowchart pada Gambar 3.34 di dalam bab perancangan.

3. Format SMS yang dikirimkan dari telepon seluler 1 berupa pengendalian motor DC

(berhenti, ccw, atau cw) tidak ditampilkan pada text field status motor DC. Proses ini

sesuai dengan Gambar 3.22 dan Gambar 3.34 di dalam bab perancangan.

Data hasil percobaan aplikasi SMS dengan menggunakan J2ME antara telepon

seluler 1 (user) dan telepon seluler 2 (server) untuk pemantauan status motor DC dapat

dilihat pada Tabel 4.3. Data yang diambil terdiri dari yang dipilih pada telepon seluler 1,

kondisi aktual motor DC, dan isi text field status motor DC yang terletak pada telepon

seluler 2.

59

Tabel 4.3 Tabel Data Hasil Percobaan Aplikasi SMS Menggunakan J2ME untuk

Memeriksa Status Motor DC

Yang dipilih pada

telepon seluler 1

Kondisi

motor DC

Isi Text field status motor

DC pada telepon seluler 2

Isi Text field status motor

DC pada telepon seluler 1

cek Motor DC berhenti

berhenti berhenti

cek Motor DC berputar

ccw

ccw ccw

cek Motor DC berputar

cw

cw cw

Tampilan pada telepon seluler 1 (user) dan telepon seluler 2 (server) dengan

menggunakan J2ME untuk pemantauan motor DC setelah J2ME mendapatkan data

berhenti dari komputer dapat dilihat pada Gambar 4.9.

Gambar 4.9 Pemantauan Status Motor DC Telepon Seluler 1 dan

Telepon Seluler 2 Menggunakan J2ME

Data-data hasil pengujian pada Tabel 4.3 menunjukkan bahwa:

1. J2ME melakukan pengiriman isi SMS cek yang terlihat dari isi text field SMS dari

telepon seluler 1 yang terdapat pada telepon seluler 2, setelah user memilih cek lalu

memilih kirim SMS yang terdapat pada aplikasi telepon seluler 1. Proses ini sesuai

dengan flowchart pada Gambar 3.22 di dalam bab perancangan.

2. Aplikasi memasukkan status motor DC ke dalam text field status motor DC setelah text

field status motor DC aplikasi pada telepon seluler 2 berisi berhenti, ccw atau cw.

Proses ini sesuai dengan flowchart pada Gambar 3.28 di dalam bab perancangan.

Telepon seluler 1 mengirimkan SMS ke telepon seluler 2. SMS yang diterima

pada telepon seluler 2 terdiri dari cek,berhenti, ccw, atau cw kemudian ditampilkan pada

60

text field yang terletak pada telepon seluler 2. Tampilan text field pada telepon seluler 2

terdiri dari isi SMS dari telepon seluler 1, isi text field status motor DC dan isi text field

kendali motor DC. SMS yang dikirim selain menggunakan nomor telepon tujuan juga

menggunakan port SMS tujuan (penulis menggunakan port 4321) sehingga SMS yang

dikirimkan masuk ke telepon seluler tujuan kemudian diletakkan pada port SMS sesuai

dengan yang ditentukan. SMS yang diterima pada aplikasi telepon seluler 2 dapat

ditampilkan dengan melakukan pembacaan port SMS.

Data hasil percobaan aplikasi SMS dengan menggunakan j2ME antara telepon

seluler 2 (server) dan komputer dengan menggunakan bluetooth untuk pengendalian motor

DC dapat dilihat pada Tabel 4.3. Data yang diambil terdiri dari data yang dikirim dari

telepon seluler 2 dan data yang diterima pada serial port PC pada COM port 11.

Tabel 4.4 Tabel Data Hasil Percobaan Mengirimkan Data Dari Telepon Seluler 2 ke serial

port komputer pada port 11 Menggunakan Bluetooth

Isi Text field kendali motor DC Data yang terbaca di hyperterminal

pada COM port 11

berhenti berhenti

ccw ccw

cw cw

Data-data hasil pengujian pada Tabel 4.3 menunjukkan bahwa J2ME melakukan

pengiriman isi data pada kendali motor DC yang terdapat pada telepon seluler 2 setelah

aplikasi menerima data pengendalian dari telepon seluler1.

Pengiriman data dari telepon seluler 2 (server) ke komputer dengan menggunakan

bluetooth merupakan perubahan model sistem pengolahan SMS pada PC di dalam bab

perancangan. Gambar 3.2 menunjukkan design awal dan Gambar 4.10 merupakan design

yang digunakan.

Telepon

seluler 2Visual BasicIsi SMSMySqlGammu

nomor telepon

Gambar 3.2 Model Sistem Pengolahan SMS dalam PC

(Design Awal)

61

Pada perancangan design awal (Gambar 3.2), telepon seluler 2 terhubung dengan

PC dengan media kabel data. Telepon seluler 2 menggunakan Nokia 3120 Classic. MySql

digunakan sebagai tempat meletakkan SMS aplikasi telepon seluler 2. Visual Basic

digunakan sebagai penghubung database SMS (Mysql) dengan mikrokontroler dengan

menggunakan serial port PC. Gammu digunakan sebagai penghubung aplikasi pada

telepon seluler 2 dengan PC. SMS yang masuk pada seluler 2 kemudian dibaca dengan

menggunakan Gammu, dan format SMS yang akan dikirimkan dari PC ke telepon seluler 2

harus ditampilkan. Hal ini tidak dapat direalisasikan disebabkan oleh penghubung antara

telepon seluler 2 dengan PC dengan menggunakan Gammu karena Gammu tidak dapat

melakukan pembacaan SMS yang terdapat pada aplikasi telepon seluler 2 karena SMS

yang ditampilkan pada aplikasi telepon seluler 2 menggunakan port SMS sedangkan

Gammu tidak mendukung pembacaan port SMS tersebut. Sehingga dibutuhkan koneksi

antara aplikasi J2ME dengan perangkat lain.

Koneksi yang diberikan J2ME antara aplikasi pada telepon seluler 2 dengan

perangkat lain terdiri dari Parsing XML, Koneksi Socket, Koneksi Datagram, Koneksi

Bluetooth dan Koneksi HTTP, dan dipilih menggunakan koneksi bluetooth untuk

meminimalisir biaya akses. Karena hal tersebut design menjadi seperti yang terlihat pada

Gambar 4.10. Isi SMS yang terletak pada aplikasi telepon seluler 2 akan dikirimkan ke

komputer dengan menggunakan bluetooth, selanjutnya isi SMS diterima dan diolah pada

Visual Basic selanjutnya dikirimkan ke mikrokontroler.

Telepon

seluler 2Visual BasicIsi SMSBluetooth

Gambar 4.10 Model Sistem Pengolahan SMS dalam PC

(Design yang Digunakan)

Fasilitas bluetooth yang digunakan adalah Serial Port Profile untuk mengirimkan

data isi SMS ke PC. Data dikirimkan dari telepon seluler 2 ke serial port PC dan Visual

Basic melakukan akses dengan serial port tersebut. Bluetooth adapter yang digunakan

adalah bluetooth adapter class 1 yang mendukung fasilitas Serial Port Profile. Gambar

4.11 menunjukkan bluetooth adapter yang digunakan.

62

Gambar 4.11 Bluetooth Adapater Class 1

Data hasil percobaan aplikasi SMS dengan menggunakan J2ME antara telepon

seluler 1 (user) dan telepon seluler 2 (server) dengan menggunakan bluetooth untuk

pemantauan status motor DC dapat dilihat pada Tabel 4.3. Data yang diambil terdiri dari

data yang ditulis di hyperterminal dan isi text field status motor DC. Data yang ditulis di

hyperterminal menggunakan koneksi pada COM port 11 serial port komputer dan isi text

field status motor DC adalah data yang dikirimkan ke telepon seluler 2 menggunakan

COM port 11 dan melakukan pengisian text field status motor DC.

Tabel 4.5 Tabel Data Hasil Percobaan Menerima Data Dari Telepon Seluler 2

Menggunakan Bluetooth dari Serial Port Komputer

Data yang ditulis di hyperterminal

pada COM port 11

Isi Text field status

motor DC

p berhenti

q ccw

r cw

Data-data hasil pengujian pada Tabel 4.5 menunjukkan bahwa J2ME melakukan

proses menerima data pada serial port komputer yang terdapat pada komputer sehingga

aplikasi dapat menerima data dari komputer.

Penjelasan terhadap data-data hasil pengujian pada Tabel 4.2 menunjukkan

keakurasian antara aplikasi J2ME yang telah dibuat dengan proses-proses yang terjadi pada

sistem. Dengan demikian, kesimpulan yang diperoleh adalah sistem telah berjalan sesuai

dengan tujuan dan batasan masalah.

63

4.3 Pengujian Sistem Minimum Mikrokontroler

Pada pengujian Sistem Minimum Mikrokontroler dilakukan dengan cara

mengetikkan karakter “p”, “q”, “r”, atau “s” di hyperterminal. Tabel menunjukkan data

hasil percobaan pengendalian motor DC dengan mengetikkan karakter “p”, “q” atau “r”

pada hyperterminal dengan keluaran berupa tampilan pada indikator LED data 1(port D.4),

indikator LED data 2 (port D.5), dan kondisi motor DC. Tabel 4.7 menunjukkan data hasil

percobaan pemantauan status motor DC dalam bentuk karakter “p”, “q”, “r” setelah

mengetikkan karakter “s” yang tertampil pada hyperterminal.

Tabel 4.6. Tabel Data Hasil Percobaan Pengendalian Motor DC pada Sistem Minimum

Mikrokontroler

Karakter masukan Indikator LED 1

(port D.4)

Indikator LED 2

(port D.5) Kondisi motor DC

p 0 0 Motor DC berhenti berputar

q 0 1 Motor DC berputar ccw

r 1 0 Motor DC berputar cw

Berdasarkan data pada Tabel 4.6, port D.4 dan port D.5, kondisi motor DC sesuai

dengan yang telah ditentukan. Pada saat mikrokontroler mendapat masukan p, port D.4

mendapat logika 0, port D.5 mendapat logika 0, dan motor DC dalam kondisi berhenti

berputar. Ketika mikrokontroler mendapat masukan q, port D.4 mendapat logika 0, port

D.5 mendapat logika 1, dan motor DC dalam kondisi berputar ccw. Saat mikrokontroler

mendapat masukan r, port D.4 mendapat logika 1, port D.5 mendapat logika 0, dan motor

DC dalam kondisi berputar cw. Kesimpulan yang diperoleh adalah, sistem minimum telah

bekerja sesuai dengan flowchart Gambar 3.8 di dalam bab perancangan.

Tabel 4.7 Tabel Data Hasil Percobaan Pemantauan Status Motor DC pada Sistem

Minimum Mikrokontroler

Karakter

masukan

Indikator

LED 1

(port D.4)

Indikator

LED 2

(port D.5)

Kondisi motor DC

Jumlah cacahan

pada port A.0

logika 0/logika 1

Karakter

keluaran

s 0 0 motor DC berhenti 9 p

s 0 1 motor DC berputar ccw 4 q

0 1 motor DC berputar ccw 7 q

64

Tabel 4.7 Lanjutan Tabel Data Hasil Percobaan Pemantauan Status Motor DC pada Sistem

Minimum Mikrokontroler

Karakter

masukan

Indikator

LED 1

(port D.4)

Indikator

LED 2

(port D.5)

Kondisi motor DC

Jumlah cacahan

pada port A.0

logika 0/logika 1

Karakter

keluaran

s 0 1 motor DC berhenti 9 p

s 1 0 motor DC berputar cw 6 r

1 0 motor DC berputar cw 5 r

1 0 motor DC berhenti 9 p

Data pada Tabel 4.7 menjelaskan pengambilan data pada port A.0 dengan cara

proses cacahan untuk memeriksa kondisi motor DC sedang berputar atau berhenti yang

dibandingkan dengan kondisi motor DC yang sesungguhnya. Proses cacahan terjadi pada

port A.0 ditunjukkan pada “Jumlah cacahan pada port A.0 logika 0/logika 1”, kondisi

motor DC yang sesungguhnya ditunjukkan pada “kondisi motor DC” yang terdapat pada

Tabel 4.7. Pada saat mikrokontroler mendapat masukan, jumlah cacahan nilai logika

0/logika 1 yang terjadi pada port A.0 sebanyak 9 menunjukkan motor DC sedang berhenti

berputar. Pada saat mikrokontroler mendapat masukan, jumlah cacahan nilai logika

0/logika 1 yang terjadi pada port A.0 sebanyak kurang dari 9 menunjukkan motor DC

sedang berputar.

Pengujian dan pengamatan status motor DC pertama kali dilakukan pada saat motor

DC sedang berhenti (kondisi sesungguhnya) dengan nilai port D.4(bit 1) bernilai 0 dan port

D.5 (bit 2) bernilai 0 (yang nampak pada hardware). Pengecekan status motor DC berhenti

dilakukan dengan cara mengirimkan karakter “s” ke mikrokontroler menggunakan

hyperterminal. Jumlah cacahan yang terjadi pada port A.0 saat motor DC sedang berhenti

(yang sesungguhnya) berjumlah 9 (yang nampak pada hyperterminal), karakter keluaran

yang dikirimkan dari mikrokontroler berupa karakter “p” (yang nampak pada

hyperterminal).

Pengujian dan pengamatan status motor DC berputar ccw (pengujian dan

pengamatan dilakukan tiga kali) dilakukan pada saat motor DC sedang berputar ccw

(kondisi sesungguhnya) dengan nilai port D.4 (bit 1) bernilai 0 dan port D.5 (bit 2) bernilai

1 (yang nampak pada hardware). Pengecekan status motor DC berputar ccw dilakukan

65

dengan cara mengirimkan karakter “s” ke mikrokontroler menggunakan hyperterminal.

Jumlah cacahan yang terjadi pada port A.0 saat motor DC sedang berputar ccw (yang

sesungguhnya) berjumlah 4 (yang nampak pada hyperterminal), nilai port D.4 bernilai 0,

nilai port D.5 bernilai 1, karakter keluaran yang dikirimkan dari mikrokontroler berupa

karakter “q” (yang nampak pada hyperterminal). Untuk pengujian yang kedua, setelah

mengetikkan karakter “s” jumlah cacahan yang terjadi pada port A.0 saat motor DC sedang

berputar ccw (yang sesungguhnya) berjumlah 7 (yang nampak pada hyperterminal),

karakter keluaran yang dikirimkan dari mikrokontroler berupa karakter “q” (yang nampak

pada hyperterminal). Untuk pengujian yang ketiga dilakukan dengan cara memegang laju

putaran motor DC yang sedang berputar ccw sehingga motor DC berhenti berputar. Setelah

mengetikkan karakter “s” menggunakan hyperterminal, jumlah cacahan yang terjadi pada

port A.0 saat motor DC sedang berhenti (memegang motor DC yang sedang berputar ccw

sampai motor DC berhenti) berjumlah 9 (yang nampak pada hyperterminal), nilai port D.4

bernilai 0, nilai port D.5 bernilai 1, karakter keluaran yang dikirimkan dari mikrokontroler

berupa karakter “p” (yang nampak pada hyperterminal).

Pengujian dan pengamatan status motor DC berputar cw (pengujian dan

pengamatan dilakukan tiga kali) dilakukan pada saat motor DC sedang berputar cw

(kondisi sesungguhnya) dengan nilai port D.4 (bit 1) bernilai 1 dan port D.5 (bit 2) bernilai

0 (yang nampak pada hardware). Pengecekan status motor DC berputar cw dilakukan

dengan cara mengirimkan karakter “s” ke mikrokontroler menggunakan hyperterminal.

Jumlah cacahan yang terjadi pada port A.0 saat motor DC sedang berputar cw (yang

sesungguhnya) berjumlah 6 (yang nampak pada hyperterminal), nilai port D.4 bernilai 1,

nilai port D.5 bernilai 0, karakter keluaran yang dikirimkan dari mikrokontroler berupa

karakter “r” (yang nampak pada hyperterminal). Untuk pengujian yang kedua, setelah

mengetikkan karakter “s” jumlah cacahan yang terjadi pada port A.0 saat motor DC sedang

berputar cw (yang sesungguhnya) berjumlah 5 (yang nampak pada hyperterminal),

karakter keluaran yang dikirimkan dari mikrokontroler berupa karakter “r” (yang nampak

pada hyperterminal). Untuk pengujian yang ketiga dilakukan dengan cara memegang laju

putaran motor DC yang sedang berputar cw sehingga motor DC berhenti berputar. Setelah

mengetikkan karakter “s” menggunakan hyperterminal, jumlah cacahan yang terjadi pada

port A.0 saat motor DC sedang berhenti (memegang motor DC yang sedang berputar cw

sampai motor DC berhenti) berjumlah 9 (yang nampak pada hyperterminal), nilai port D.4

66

bernilai 0, nilai port karakter keluaran yang dikirimkan dari mikrokontroler berupa karakter

“p” (yang nampak pada hyperterminal).

Berdasarkan Tabel 4.7, karakter keluaran “p” terjadi pada saat mikrokontroler

mendapatkan jumlah cacahan logika 0/logika 1 sejumlah 9 yang ditampilkan pada

hyperterminal seperti terlihat pada Gambar 4.12 dan Gambar 4.13. Karakter “j”

menunjukkan tampilan saat terjadi pendeteksian logika 0, dan “j= “menunjukkan

banyaknya jumlah cacahan yang terjadi pada port A.0. Karakter “k” menunjukkan

tampilan saat terjadi pendeteksian logika 1, dan “k= “menunjukkan banyaknya jumlah

cacahan yang terjadi pada port A.0.

Gambar 4.12 Pengujian Pemantauan Status motor DC Berhenti Berputar Logika 0

Gambar 4.13 Pengujian Pemantauan Status motor DC Berhenti Berputar Logika 1

67

Berdasarkan Tabel 4.7, karakter keluaran “q” terjadi pada saat nilai port D.4

bernilai 0 dan port D.5 bernilai 1 yang ditampilkan pada hyperterminal seperti terlihat pada

Gambar 4.14. karakter keluaran “r” terjadi pada saat nilai port D.4 bernilai 1 dan port D.5

bernilai 0 yang ditampilkan pada hyperterminal seperti terlihat pada Gambar 4.15. Sistem

minimum telah bekerja sesuai dengan flowchart Gambar 3.7 di dalam bab perancangan.

Gambar 4.14 Pemantauan Status motor DC berputar ccw

Gambar 4.15 Pemantauan Status motor DC berputar cw

4.4 Pembahasan Program PC

Program PC digunakan sebagai pemantauan antara telepon seluler 2 dan

mikrokontroler. Pemantauan terdiri dari format SMS yang diterima dari telepon seluler 2,

menampilkan data yang akan dikirimkan ke mikrokontroler, menampilkan karakter yang

dikirimkan dari mikrokontroler dan menampilkan format SMS yang akan dikirimkan ke

telepon seluler 2. Format SMS terdiri dari cek, berhenti, ccw dan cw. Data yang

68

dikirimkan ke mikrokontroler terdiri dari ”115”, ”114”, ”113”, dan ”112”. Karakter yang

diterima dari mikrokontroler terdiri dari ”p”, ”q”, dan ”r”.

Pada saat software PC diaktifkan, tampilan pertama yang muncul ditunjukkan pada

Gambar 4.16. Gambar 4.16 merupakan tampilan dari form utama software PC yang terdiri

dari frame, option button, command button, combo box, teks.

Teks

Command button

Teks

Option buttonCombo box

Command button

Frame

Gambar 4.16 Tampilan Form Utama

Option button yang digunakan terdiri dari option button “ Kendali SMS” dan option

button “Kendali Manual”. Option button pada form utama digunakan sebagai pemilih

pengiriman data dari/ke mikrokontroler apakah motor DC dikendalikan dengan

menggunakan SMS atau dikendalikan secara manual.

Frame “Kendali Dengan SMS” berisi Text4, Text5, Text6, Text7, command button

“Stop”, dan command button “Keluar”. Text4 digunakan sebagai penampil format SMS

yang diterima dari telepon seluler 2, Text5 digunakan sebagai penampil format SMS yang

dikirimkan ke telepon seluler 2, Text6 digunakan sebagai penampil data yang akan

dikirimkan ke mikrokontroler, Text7 digunakan sebagai penampil karakter yang diterima

dari mikrokontroler, command button “Stop” digunakan untuk menghentikan putaran

motor, dan command button “Keluar” digunakan untuk keluar dari program.

Frame “Kendali Manual” berisi combo1, Text1, Text8, Text9, command button

“Stop”, command button “Keluar”, command button “Kirim Data”, dan command button

“Kirim SMS”. Combo1 digunakan untuk memilih data yang akan dikirimkan ke

mikrokontroler. Pilihan yang akan dikirimkan terdiri dari cek, berhenti, ccw dan cw.

Pilihan cek merupakan pilihan untuk meminta status motor DC (berhenti, ccw, dan cw)

69

yang dikirimkan dari mikrokontroler. Pilihan berhenti merupakan pilihan kepada

mikrokontroler agar motor DC berhenti. Pilihan ccw merupakan pilihan data kepada

mikrokontroler agar motor DC berputar ccw. Pilihan cw merupakan pilihan data kepada

mikrokontroler agar motor DC berputar cw. Text1 digunakan sebagai penampil data yang

akan dikirimkan ke mikrokontroler, Text8 digunakan sebagai penampil format SMS yang

akan dikirimkan ke telepon seluler 2, Text9 digunakan sebagai penampil karakter yang

diterima dari mikrokontroler, command button “Stop” digunakan untuk menghentikan

putaran motor, dan command button “Keluar” digunakan untuk keluar dari program.

Command button “Kirim Data” digunakan untuk mengirimkan data hasil pilihan ke

mikrokontroler. Command button “Kirim SMS” digunakan untuk mengirimkan format

SMS ke telepon seluler 2 yang merupakan status motor DC.

4.4.1 Option Kendali SMS

Option kendali SMS berfungsi untuk mengaktifkan pengendalian dan pemantauan

status motor DC yang dilakukan dengan membaca format SMS yang terbaca pada teks

“SMS Dari Handphone Server”. Option Kendali SMS terdiri dari command button “Stop”,

”Keluar”, dan timer. Tampilan dari form utama dapat dilihat pada Gambar 4.16. Fungsi

dari command button “Stop” adalah agar motor DC berada dalam kondisi berhenti

berputar. Command button “Keluar” adalah button untuk keluar dari aplikasi.

Fungsi dari Timer adalah untuk mengaktifkan perintah pemeriksaan masukan SMS

dan memberikan instruksi kepada mikrokontroler pada hardware sistem secara periodik.

Periode dari Timer yang digunakan adalah 3 detik, sehingga setiap 3 detik, software akan

melakukan pengecekan input SMS dan menampilkan format SMS yang dikirimkan dan

ditampilkan pada “SMS dari Handphone Server” yang digunakan untuk melakukan

pengendalian motor DC dan pemantauan status motor DC. Pengendalian motor DC terjadi

pada saat “SMS dari Handphone Server” berisi berhenti, ccw atau cw, dan pemantauan

status motor DC terjadi pada saat “SMS dari Handphone Server” berisi cek. Tampilan

pada saat terjadi pengendalian motor DC berhenti ditunjukkan pada Gambar 4.17.

Tampilan pada saat terjadi pemantauan status motor DC berhenti ditunjukkan pada

Gambar 4.18.

70

Gambar 4.17 Tampilan Form Perintah Pengendalian Motor DC Berhenti

Listing program untuk buka koneksi dengan mikrokontroler adalah sebagai berikut:

Listing program yang digunakan untuk mengirimkan data ke mikrokontroler yang

dikontrol oleh SMS dari Telepon seluler 1(user) adalah sebagai berikut :

'mengaktifkan serial COM 2 MSComm1.CommPort = 2 'tergantung COM port yang tersedia

MSComm1.Settings = "9600,N,8,1" 'contoh setting serial port MSComm1.InputLen = 0

MSComm1.RThreshold = 1 MSComm1.PortOpen = True

If Text4.Text = "cek" Then

MSComm1.Output = "s" Text6.Text = "115"

Option1.Value = True End If If Text4.Text = "berhenti" Then

Timer1.Enabled = True MSComm1.Output = "p"

Text6.Text = "112" End If If Text4.Text = "ccw" Then

Timer1.Enabled = True MSComm1.Output = "r"

Text6.Text = "113" End If If Text4.Text = "cw" Then

Timer1.Enabled = True MSComm1.Output = "q"

Text6.Text = "113" End If

71

Gambar 4.18 Tampilan Form Pemantauan Status Motor DC

Listing program yang digunakan untuk membuka koneksi bluetooth yang terjadi antara

telepon seluler 2 dengan komputer adalah sebagai berikut :

Listing program yang digunakan untuk menerima data dari mikrokontroler adalah sebagai

berikut :

4.4.2 Option Kendali Manual

Option Kendali Manual berfungsi untuk melakukan troubleshooting komunikasi

antara telepon seluler 2 (server) dengan komputer dan komputer dengan mikrokontroler.

4.4.2 Option Kendali Manual

Listing program yang digunakan untuk mengirimkan data dari komputer ke telepon

seluler adalah sebagai berikut :

'mengaktifkan komunikasi bluetooth MSComm1.CommPort = 11 'tergantung COM port yang tersedia MSComm1.Settings = "9600,N,8,1" 'contoh setting serial port

MSComm1.InputLen = 0 MSComm1.RThreshold = 1

MSComm1.PortOpen = True

Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent ' Errors Case comEventRxParity ' Parity Error.

MsgBox "Parity" ' Events

Case comEvReceive ' Received RThreshold # of chars. Text9.Text = MSComm1.Input End Select

geser = Left(Text9.Text, Len(Text9.Text) - 2)

Text8.Text = Right(geser, 1) End Sub

If Text7.Text = "p" Then

MSComm2.Output = "p" End If

If Text7.Text = "q" Then MSComm2.Output = "q" End If

If Text7.Text = "r" Then MSComm2.Output = "r"

End If

72

4.4.2 Option Kendali Manual

Option kendali manual berfungsi untuk melakukan troubleshooting komunikasi

antara telepon seluler 2 (server) dengan komputer dan komputer dengan mikrokontroler.

Kendali manual dimulai setelah user memilih Option Kendali Manual. Option Kendali

manual akan menonaktifkan object yang terdiri dari Teks4, Teks 5, Teks6, Teks7,

command button Stop, dan command button Keluar yang terdapat di dalam frame kendali

SMS dan mengaktifkan object yang terdiri dari combo1, Teks 1, Teks8, Teks9, command

button Stop, command button Keluar, command button Kirim Data, dan command button

Kirim SMS yang terdapat di dalam frame Kendali Manual. Tampilan dari form Kendali

Manual dapat dilihat pada Gambar 4.19. Fungsi dari command button “Stop” adalah agar

motor DC berada dalam kondisi berhenti berputar. Command button “Keluar” adalah

button untuk keluar dari aplikasi. Command button “Kirim Data” adalah button untuk

mengirimkan data ke mikrokontroler. Command button “Kirim SMS” adalah button untuk

mengirimkan data ke telepon seluler 2 yang berisi status motor DC.

Option Kendali Manual

Frame Kendali SMS

Frame kendali manual

Teks8

Teks1

Teks9

Combo1

Combo box

Command button

Teks

Teks4

Teks5

Teks6

Teks7

Gambar 4.19 Tampilan Form setelah memilih Option Kendali Manual

Pengendalian motor DC terjadi pada saat “Kendali Motor DC” berisi berhenti, ccw

atau cw, dan pemantauan status motor DC terjadi pada saat “Kendali Motor DC” berisi

cek.

73

Listing program untuk menutup kendali dengan SMS dan mengaktifkan kendali

manual adalah sebagai berikut :

Gambar 4.20 Tampilan Form Perintah Pengendalian Motor DC Berhenti

Gambar 4.20 menunjukkan tampilan Form setelah user memilih Kendali Motor

DC “berhenti” yang terdapat di dalam combo1, selanjutnya user memilih command button

Kirim Data yang mengirimkan data ASCII “112” ke mikrokontroler yang akan membuat

motor DC berada pada kondisi berhenti berputar.

Listing program kendali manual untuk mengirimkan data ke mikrokontroler adalah sebagai

berikut :

Private Sub Option2_Click() Frame1.Enabled = False Text4.Text = Clear

Text5.Text = Clear Text6.Text = Clear

Text7.Text = Clear Frame2.Enabled = True

Combo1.Text = Clear Text1.Text = Clear

Text2.Text = Clear Text3.Text = Clear End Sub

Private Sub Command5_Click() If Combo1.Text = "berhenti" Then MSComm1.Output = "p"

Text2.Text = "112" ElseIf Combo1.Text = "ccw" Then

MSComm1.Output = "r" Text2.Text = "113" ElseIf Combo1.Text = "cw" Then

MSComm1.Output = "q" Text2.Text = "114"

74

Gambar 4.21 Tampilan Form Pemantauan Status Motor DC

Gambar 4.21 menunjukkan tampilan Form setelah user memilih cek yang terdapat

di dalam combo1, selanjutnya user memilih command button Kirim Data yang akan

mengirimkan data ASCII “115” ke mikrokontroler. Karakter “p” merupakan karakter yang

dikirimkan oleh mikrokontroler, dan data “berhenti” merupakan status motor DC. Karakter

“p” akan dikirimkan ke telepon seluler 2 setelah user memilih command button Kirim SMS

yang akan mengirimkan SMS “berhenti” ke Handphone Client (telepon seluler 1).

Listing program kendali manual untuk mengambil data dari mikrokontroler adalah sebagai

berikut :

Private Sub Command6_Click() If Text8.Text = "r" Then

Text3.Text = "r" Text1.Text = "ccw" End If

If Text8.Text = "q" Then Text3.Text = "r"

Text1.Text = "cw" End If If Text8.Text = "p" Then

Text3.Text = "r" Text1.Text = "berhenti"

End If End Sub

ElseIf Combo1.Text = "cek" Then MSComm1.Output = "s"

Text2.Text = "115" End If End Sub

75

Listing program kendali manual untuk mengirimkan data ke telepon seluler 2 adalah

sebagai berikut :

If Text3.Text = "p" Then MSComm2.Output = "p" End If

If Text3.Text = "q" Then MSComm2.Output = "q"

End If If Text3.Text = "r" Then MSComm2.Output = "r"

End If

76

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dari hasil pengujian serta pengambilan data pada aplikasi SMS menggunakan

J2ME untuk pengendalian motor DC dapat diambil kesimpulan:

1. Sistem yang dirancang telah bekerja dengan baik.

2. Proses pengendalian dapat mengendalikan motor DC.

3. Proses pemantauan dapat berjalan dengan baik karena mampu mengirimkan status

motor DC yang menunjukkan kondisi motor DC.

5.2. Saran

Saran bagi pengembangan aplikasi ini selanjutnya adalah method alamat untuk

menerima SMS perlu dipertimbangkan agar sistem hanya berjalan oleh nomor telepon

yang ditentukan. Hal ini dikarenakan aplikasi yang telah dibuat melakukan pembacaan port

SMS tetapi tidak ada pemeriksaan nomor telepon pengirim pesan SMS.

77

DAFTAR PUSTAKA

1. Ma’Rifatul Iman, 2006, Rancang Bangun Sistem Otomatisasi Pintu Garasi Berbasis

Mikrokontroller Dengan SMS Menggunakan ATmega8535.

2. http://sakukupulsa.com/panduan.php Diakses tanggal 28 september 2010

3. Rahardjo, B., dkk., Tuntunan Pemrograman Java Untuk Handphone, Informatika,

Bandung.

4. Salahudin, M., Rosa A.S, 2008, Pemrograman J2ME, Informatika, Bandung.

5. Friedhelm Hillebrand., 2002, GSM and UMTS, The Creation of Global Mobile

Communication, John Wiley & Sons, New York.

6. Putra Sastra, Wiharta, Agus., 2005, Perancangan dan Pembuatan Sistem Kontrol

Dengan Memanfaatkan Layanan SMS Telepon Selular Berbasis Mikrokontroler

AT89C51, Teknik Elektro Universitas Udayana.

7. Wardhana, L., 2006, Mikrokontroler AVR ATMega8535, Penerbit Andi, Yogyakarta.

8. Purwani Wulandari, Ratna., 2006, Sistem Kontrol dan Monitoring Suhu Ruangan Via

Telepon, Jurusan Telekomunikasi Politeknik Elektronika Negeri Surabaya.

9. -----, 2002, Datasheet MAX232, MAXIM.

10. Izzuddin Mahali, Muh., 2007, Kontrol Dan Monitoring Peralatan Rumah Tangga

Melalui SMS (Short Message Service) Berbasis Mikrokontroler, Jurusan Pendidikan

Teknik Elektronika Universitas Negeri Yogyakarta.

11. http://www.alldatasheet.com/view.jsp?Searchword=L293&q=L293, diakses tanggal 23

September 2010.

12. http://staff.ui.ac.id/internal/040603019/material/DCMotorPaperandQA.pdf, diakses

tanggal 28 september 2010

13. http://delta-electronic.com/article/wp-content/uploads/2008/09/an00421.pdf, diakses

tanggal 28 september 2010

14. Malvino, Albert Paul, Ph.D., 1994, Prinsip – Prinsip Elektronika. Penerjemah: Prof.M.

Barmawi, Ph.D., Jakarta: Penerbit Erlangga

L1

Listing Program pada Mikrokontroler

'--------------------------------------------------------

'DEKLARASI HEADER

'--------------------------------------------------------

$regfile = "8535def.dat"

'--------------------------------------------------------

'DEKLARASI CRITAL

'--------------------------------------------------------

$crystal = 12000000

'--------------------------------------------------------

'DEKLARASI Baudrate

'--------------------------------------------------------

$baud = 9600

'--------------------------------------------------------

'DEKLARASI VARIABEL

'--------------------------------------------------------

Dim A As Byte , S As String * 2

Dim Data1 As Byte

Dim Data2 As Byte

Dim Data3 As Byte

'--------------------------------------------------------

'DEKLARASI SUB RUTIN

'--------------------------------------------------------

Declare Sub Kiri()

Declare Sub Kanan()

Declare Sub Mati()

Declare Sub Cek()

L1

'--------------------------------------------------------

'DEKLARASI PORT MIKROKONTROLLER

'--------------------------------------------------------

Config Pina.0 = Input

Config Portd.2 = Input

Config Portd.3 = Input

Config Portd.4 = Output

Config Portd.5 = Output

'--------------------------------------------------------

'RUTIN UTAMA

'--------------------------------------------------------

'Data3 = 9

Porta.0 = 0

Portd.4 = 0

Portd.5 = 0

Do

Mulai:

A = Inkey() 'ambil nilai ascii dari serial port

's = Inkey()

If A > 0 Then

Print ; A

Select Case A

Case 112 : Call Mati()

Case 113 : Call Kiri()

Case 114 : Call Kanan()

Case 115 : Call Cek()

Case Else: Goto Mulai ‘Jika terbaca karakter yang lain

L1

End Select

End If

Loop Until A = 27

A = Waitkey() ‘proses berhenti apabila mendapat nilai 27

's = waitkey() ‘menunggu data ascii

Print Chr(a)

'wait until ESC is pressed

Do

Loop Until Inkey() = 27

End

'--------------------------------------------------------

' Sub Rutin Putar Kiri

'--------------------------------------------------------

Sub Kiri()

Do

Portd.4 = 1

Portd.5 = 0

Loop

End Sub

'--------------------------------------------------------

' Sub Rutin Putar Kanan

'--------------------------------------------------------

Sub Kanan()

Portd.4 = 0

Portd.5 = 1

End Sub

L1

'--------------------------------------------------------

' Sub Rutin Mati

'--------------------------------------------------------

Sub Mati()

Portd.4 = 0

Portd.5 = 0

End Sub

'--------------------------------------------------------

' Sub Rutin Cek

'--------------------------------------------------------

Sub Cek()

'sensor

Data1 = 1

If Pina.0 = 1 Then

Goto Cek1

Elseif Pina.0 = 0 Then

Goto Cek2

End If

End Sub

Cek1:

Data2 = 0

Do

If Pina.0 = 1 Then

Print "j"

Incr Data2

End If

L1

Incr Data1

Loop Until Data1 = 17

Print "" ; Data2

If Data2 = 16 Then

Print "p"

Elseif Data2 < 16 Then

If Portd.4 = 0 Then

If Portd.5 = 1 Then

Print "r"

End If

End If

If Portd.4 = 1 Then

If Portd.5 = 0 Then

Print "q"

End If

End If

End If

Goto Mulai

Cek2:

Data2 = 0

Do

If Pina.0 = 0 Then

Print "k"

Incr Data2

End If

Incr Data1

Loop Until Data1 = 17

L1

Print "" ; Data2

If Data2 = 16 Then

Print "p"

Elseif Data2 < 16 Then

If Portd.4 = 0 Then

If Portd.5 = 1 Then

Print "r"

End If

End If

If Portd.4 = 1 Then

If Portd.5 = 0 Then

Print "q"

End If

End If

End If

Goto Mulai

L2

Listing Program pada Visual Basic

Dim blutut As String

Dim geser As String

Dim a As Integer

Dim b As Integer

Private Sub Form_Load()

Option1.Value = True

Text1.Text = Clear

Text2.Text = Clear

Text3.Text = Clear

Text4.Text = Clear

Text5.Text = Clear

Text6.Text = Clear

Text7.Text = Clear

Text8.Text = Clear

Text9.Text = Clear

Text2.Visible = False

Text3.Visible = False

Text10.Visible = True

Text11.Visible = False

Text12.Visible = False

Combo1.AddItem "cek"

Combo1.AddItem "berhenti"

Combo1.AddItem "ccw"

Combo1.AddItem "cw"

L2

MSComm1.CommPort = 2 'tergantung COM port yang tersedia

MSComm1.Settings = "9600,N,8,1" 'contoh setting serial port

MSComm1.InputLen = 0

MSComm1.RThreshold = 1

MSComm1.PortOpen = True

MSComm2.CommPort = 6 'tergantung COM port yang tersedia

MSComm2.Settings = "9600,N,8,1" 'contoh setting serial port

MSComm2.InputLen = 0

MSComm2.RThreshold = 1

MSComm2.PortOpen = True

End Sub

=====================================================================

Private Sub Form_Unload(Cancel As Integer)

MSComm1.PortOpen = False

MSComm2.PortOpen = False

End Sub

=====================================================================

Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent

' Errors

Case comEventRxParity ' Parity Error.

MsgBox "Parity"

' Events

Case comEvReceive ' Received RThreshold # of chars.

Text2.Text = MSComm1.Input

L2

End Select

geser = Left(Text2.Text, Len(Text2.Text) - 2)

Text10.Text = Right(geser, 1)

If Text10.Text = "p" Then

Text7.Text = "p"

Text5.Text = "berhenti"

End If

If Text10.Text = "q" Then

Text7.Text = "q"

Text5.Text = "ccw"

End If

If Text10.Text = "r" Then

Text7.Text = "r"

Text5.Text = "cw"

End If

End Sub

=====================================================================

Private Sub MSComm2_OnComm()

Select Case MSComm2.CommEvent

' Errors

Case comEventRxParity ' Parity Error.

MsgBox "Parity"

' Events

Case comEvReceive ' Received RThreshold # of chars.

Text11.Text = MSComm2.Input

L2

End Select

Text3.Text = Right(Text11.Text, Len(Text11.Text) - 1)

End Sub

=====================================================================

Private Sub Command1_Click()

End

End Sub

=====================================================================

Private Sub Command2_Click()

MSComm1.Output = "p"

End Sub

Private Sub Command3_Click()

MSComm1.Output = "p"

End Sub

=====================================================================

Private Sub Command4_Click()

End

End Sub

=====================================================================

Private Sub Command5_Click()

If Combo1.Text = "berhenti" Then

Text1.Text = "112"

MSComm1.Output = "p"

ElseIf Combo1.Text = "ccw" Then

Text1.Text = "113"

L2

MSComm1.Output = "q"

ElseIf Combo1.Text = "cw" Then

Text1.Text = "114"

MSComm1.Output = "r"

ElseIf Combo1.Text = "cek" Then

MSComm1.Output = "s"

Text1.Text = "115"

End If

End Sub

=====================================================================

Private Sub Command6_Click()

If Text10.Text = "p" Then

MSComm2.Output = "p"

End If

If Text10.Text = "q" Then

MSComm2.Output = "q"

End If

If Text10.Text = "r" Then

MSComm2.Output = "r"

End If

End Sub

Private Sub Option1_Click()

Frame1.Enabled = True

Text4.Text = Clear

Text5.Text = Clear

L2

Text6.Text = Clear

Text7.Text = Clear

Text5.Enabled = True

Text7.Enabled = True

Frame2.Enabled = False

Combo1.Text = Clear

Text1.Text = Clear

Text2.Text = Clear

Text3.Text = Clear

Text8.Text = Clear

Text9.Text = Clear

End Sub

=====================================================================

Private Sub Option2_Click()

Frame1.Enabled = False

Text4.Text = Clear

Text5.Text = Clear

Text6.Text = Clear

Text7.Text = Clear

Text5.Enabled = False

Text7.Enabled = False

Frame2.Enabled = True

Combo1.Text = Clear

Text1.Text = Clear

Text2.Text = Clear

L2

Text3.Text = Clear

End Sub

=====================================================================

Private Sub Timer1_Timer()

If Option1.Value = True Then

Text4.Text = Text3.Text

End If

If Text4.Text = "berhenti" Then

Text6.Text = "112"

MSComm1.Output = "p"

End If

If Text4.Text = "cw" Then

Text6.Text = "114"

MSComm1.Output = "r"

End If

If Text4.Text = "ccw" Then

Text6.Text = "113"

MSComm1.Output = "q"

End If

If Text4.Text = "cek" Then

Text6.Text = "115"

MSComm1.Output = "s"

If Text10.Text = "p" Then

Text5.Text = "berhenti"

Text7.Text = "p"

L2

Timer1.Enabled = False

idup_timer1

End If

If Text10.Text = "q" Then

Text5.Text = "ccw"

Text7.Text = "q"

Timer1.Enabled = False

idup_timer1

End If

If Text10.Text = "r" Then

Text5.Text = "cw"

Text7.Text = "r"

Timer1.Enabled = False

idup_timer1

End If

End If

End Sub

=====================================================================

Private Sub Timer2_Timer()

If Text10.Text = "p" Then

MSComm2.Output = "p"

Timer1.Enabled = False

idup_timer1

ElseIf Text10.Text = "q" Then

MSComm2.Output = "q"

L2

Timer1.Enabled = False

idup_timer1

ElseIf Text10.Text = "r" Then

MSComm2.Output = "r"

Timer1.Enabled = False

idup_timer1

End If

End Sub

=====================================================================

Private Sub idup_timer1()

If Text3.Text = "berhenti" Then

Timer1.Enabled = True

End If

If Text3.Text = "ccw" Then

Timer1.Enabled = True

End If

If Text3.Text = "cw" Then

Timer1.Enabled = True

End If

End Sub

=====================================================================

Private Sub Timer3_Timer()

If Option2.Value = True Then

If Text10.Text = "p" Then

Text9.Text = "p"

L2

Text8.Text = "berhenti"

ElseIf Text10.Text = "q" Then

Text9.Text = "q"

Text8.Text = "ccw"

ElseIf Text10.Text = "r" Then

Text9.Text = "r"

Text8.Text = "cw"

End If

End If

End Sub

L3

Listing Program pada Telepon Seluler 1

//listing program midlet dengan nama TestArif.java

import java.io.*;

import javax.microedition.io.*;

import javax.wireless.messaging.*;

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class TestArif extends MIDlet

implements CommandListener ,Runnable,

MessageListener

private Display display;

private Form form;

TextField status;

private ChoiceGroup jenisKelamin;

Thread thread;

String[] connections;

boolean done;

MessageConnection smsconn;

Message msg;

Command cmdKeluar, cmdKirimSMS, cmdOk;

public String isisms;

public TestArif()

display = Display.getDisplay(this);

form = new Form("J2ME untuk Pengendalian Motor DC");

cmdKeluar = new Command("Keluar", Command.EXIT, 1);

L3

cmdKirimSMS = new Command("Kirim SMS", Command.SCREEN, 1);

form.addCommand(cmdKirimSMS);

form.addCommand(cmdKeluar);

form.setCommandListener(this);

public void startApp()

bukaKoneksi(); //disini membuka koneksi untuk siap menerima sms masuk

status = new TextField("Status Motor DC", null, 25, TextField.UNEDITABLE);

form.append(status);

String[] gender = "cek","berhenti", "ccw", "cw";

jenisKelamin = new ChoiceGroup("Kendali Motor DC", Choice.EXCLUSIVE, gender,

null);

form.append(jenisKelamin);

display.setCurrent(form);

public void pauseApp()

public void destroyApp(boolean unconditional)

//sebelum aplikasinya keluar ato mati koneksi ditutup dulu

done = true;

thread = null;

if (smsconn != null)

try

smsconn.close();

catch (IOException e)

L3

//disini mati deh aplikasi kita

notifyDestroyed();

public void commandAction(Command c, Displayable s)

if (jenisKelamin.isSelected(0))

//Berhenti

isisms="cek";

status.setString(null);

else if (jenisKelamin.isSelected(1))

//Berhenti

isisms="berhenti";

else if (jenisKelamin.isSelected(2))

//CCW

isisms="ccw";

else if (jenisKelamin.isSelected(3))

//CW

isisms="cw";

Thread kirimsms = new RadioBerhenti(this);

kirimsms.start();

if (c == cmdKeluar)

destroyApp(false);

notifyDestroyed();

L3

public void terima(String isi, String no) //ini untuk tempat membaca sms yang masuk

this.status.setString(isi);

public String fixNomer(String no)

//dari format no gini "sms://+6285XXXX" jadi "+6285XXX" gitu fungsinya disini itu

String hs = null;

hs = no.substring(6, no.length());

return hs;

public void bukaKoneksi() //membuka koneksi agar bisa menerima sms yg masuk

String smsConnection = "sms://:" + "4321";

try

smsconn = (MessageConnection) Connector.open(smsConnection);

smsconn.setMessageListener(this);

catch (IOException ioe)

ioe.printStackTrace();

connections = PushRegistry.listConnections(true);

done = false;

thread = new Thread(this);

thread.start();

L3

public void tutupKoneksi() //untuk menutup koneksi sms

try

smsconn.close();

catch (IOException e)

public void run()

try

msg = smsconn.receive();

String senderAddress = msg.getAddress();

if (msg instanceof TextMessage)

String isiSmsMasuk = ((TextMessage) msg).getPayloadText();

terima(isiSmsMasuk, senderAddress);//ini memasukan sms yg diterima ke textbox

tutupKoneksi();

bukaKoneksi();

catch (IOException e)

public void notifyIncomingMessage(MessageConnection mc)

if (thread == null)

done = false;

thread = new Thread(this);

thread.start();

L3

//listing program class RadioBerhenti.java -> kirim SMS dengan isi “isisms” pada TestArif

import javax.microedition.io.Connector;

import javax.wireless.messaging.Message;

import javax.wireless.messaging.MessageConnection;

import javax.wireless.messaging.TextMessage;

public class RadioBerhenti extends Thread

String port ="4321", isiSmsKeluar;

private TestArif hpTerima;

RadioBerhenti(TestArif setting)

this.hpTerima = setting;

public void run()

try

String address = "sms://" + "+6285643590410" + ":" + port;

MessageConnection smsConnKir = null;

smsConnKir = (MessageConnection) Connector.open(address);

TextMessage txtmessage =

(TextMessage)

smsConnKir.newMessage(MessageConnection.TEXT_MESSAGE);

txtmessage.setAddress(address);

txtmessage.setPayloadText(hpTerima.isisms);

smsConnKir.send(txtmessage);

smsConnKir.close();

catch (Throwable t)

t.printStackTrace();

L4

Listing Program pada Telepon Seluler 2

//listing program midlet dengan nama Handphone2.java

import java.io.IOException;

import java.util.Vector;

import javax.bluetooth.DataElement;

import javax.bluetooth.DeviceClass;

import javax.bluetooth.DiscoveryAgent;

import javax.bluetooth.DiscoveryListener;

import javax.bluetooth.LocalDevice;

import javax.bluetooth.RemoteDevice;

import javax.bluetooth.ServiceRecord;

import javax.bluetooth.UUID;

import javax.microedition.io.*;

import javax.wireless.messaging.*;

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class Handphone2 extends MIDlet

implements CommandListener, Runnable,

MessageListener

public List HasilPencarian;

public Display display;

public Form form, pencarian, readyToConnectForm;

public TextField status, hobbies, sms;

Thread thread;

String[] connections;

L4

boolean done;

MessageConnection smsconn;

Message msg;

public Command cmdKeluar, cmdKirimSMS,

cmdBlutut, TombolExit, cmdAmbil,

TombolConnect,TombolPilih;

String btConnectionURL;

private ImageItem gambar1;

private Image logo,icongambar = null;

public String URLBluetooth, data;

private Thread Blututh;

public boolean terhubung=false;

private ambilBlutut ambil;

public Handphone2()

display = Display.getDisplay(this);

form = new Form("J2ME untuk Server");

cmdKeluar = new Command("Keluar", Command.EXIT, 1);

form.addCommand(cmdKeluar);

cmdAmbil = new Command("Ambil Data BT", Command.SCREEN, 1);

form.addCommand(cmdAmbil);

cmdBlutut = new Command("Cari BT", Command.SCREEN, 1);

form.addCommand(cmdBlutut);

pencarian = new Form("");

L4

gambar1 = new ImageItem("DETEKSI bluetooth device", icongambar,

Item.LAYOUT_CENTER, "");

pencarian.append(gambar1);

pencarian.append("\n ......\n\n");

TombolExit = new Command("Exit", Command.EXIT, 1);

pencarian.addCommand(TombolExit);

pencarian.setCommandListener(this);

readyToConnectForm = new Form("siap untuk terhubung");

readyToConnectForm.append(" siap dikoneksikan?");

TombolConnect = new Command("hubungkan", Command.ITEM, 1);

readyToConnectForm.addCommand(TombolConnect);

readyToConnectForm.setCommandListener(this);

HasilPencarian = new List("Pilih bluetooth device", Choice.IMPLICIT, new String[0], new

Image[0]);

TombolPilih = new Command("Pilih", Command.ITEM, 1);

HasilPencarian.addCommand(TombolPilih);

HasilPencarian.setCommandListener(this);

HasilPencarian.setSelectedFlags(new boolean[0]);

form.setCommandListener(this);

public void startApp()

bukaKoneksi();

status = new TextField("isi SMS", null, 25, TextField.UNEDITABLE);

form.append(status);

sms = new TextField("Status Motor DC", null, 25, TextField.UNEDITABLE);

form.append(sms);

L4

hobbies = new TextField("Kendali Motor DC", null, 25, TextField.UNEDITABLE);

form.append(hobbies);

display.setCurrent(form);

public void pauseApp()

public void destroyApp(boolean unconditional)

done = true;

thread = null;

if (smsconn != null)

try

smsconn.close();

catch (IOException e)

notifyDestroyed();

public void commandAction(Command c, Displayable s)

if (c == cmdBlutut)

this.Blututh = new BTUtility();

display.setCurrent(pencarian);

if (c == TombolPilih)

Blututh.start();

L4

if (c == TombolExit)

notifyDestroyed();

if (c == cmdKeluar)

destroyApp(false);

notifyDestroyed();

if (c == TombolConnect)

display.setCurrent(form);

if( c == cmdAmbil )

Thread ambildata = new ambilBlutut(this);

ambildata.start();

public void terima(String isi, String no) //ini untuk tempat membaca sms yang masuk

// String nonya = fixNomer(no);

this.status.setString(isi);

if (status.getString().equals("berhenti"))

this.sms.setString(null);

this.hobbies.setString(isi);

data="berhenti";

terhubung = true;

Thread kirimdata = new blututcw(this);

kirimdata.start();

L4

if (status.getString().equals("ccw"))

this.sms.setString(null);

this.hobbies.setString(isi);

data="ccw";

terhubung = true;

Thread kirimdata = new blututcw(this);

kirimdata.start();

if (status.getString().equals("cw"))

this.sms.setString(null);

this.hobbies.setString(isi);

data="cw";

terhubung = true;

Thread kirimdata = new blututcw(this);

kirimdata.start();

if (status.getString().equals("cek"))

this.hobbies.setString(null);

data="cek";

terhubung = true;

Thread kirimdata = new blututcw(this);

kirimdata.start();

if (sms.getString().equals("p"))

L4

//Berhenti

smsberhenti sb = new smsberhenti();

sb.berhenti("berhenti"); // <<----------- Ubah Sesukamu

else if (sms.getString().equals("q"))

//CCW

smsccw sc = new smsccw();

sc.ccw("ccw");

else if (sms.getString().equals("r"))

//CW

smscw scw = new smscw();

scw.cw("cw");

public String fixNomer(String no)

String hs = null;

hs = no.substring(6, no.length());

return hs;

public void bukaKoneksi() //membuka koneksi agar bisa menerima sms yg masuk

String smsConnection = "sms://:" + "4321";

try

smsconn = (MessageConnection) Connector.open(smsConnection);

smsconn.setMessageListener(this);

catch (IOException ioe)

ioe.printStackTrace();

L4

connections = PushRegistry.listConnections(true);

done = false;

thread = new Thread(this);

thread.start();

public void tutupKoneksi() //untuk menutup koneksi sms

try

smsconn.close();

catch (IOException e)

public void run()

try

msg = smsconn.receive();

String senderAddress = msg.getAddress();

if (msg instanceof TextMessage)

String isiSmsMasuk = ((TextMessage) msg).getPayloadText();

terima(isiSmsMasuk, senderAddress);//ini memasukan sms yg diterima ke textbox

tutupKoneksi();

bukaKoneksi();

catch (IOException e)

L4

public void notifyIncomingMessage(MessageConnection mc)

if (thread == null)

done = false;

thread = new Thread(this);

thread.start();

class BTUtility extends Thread implements DiscoveryListener

Vector remoteDevices = new Vector();

Vector namaBluetooth = new Vector();

DiscoveryAgent discoveryAgent;

UUID[] uuidSet = new UUID(0x1101);

int[] attrSet = 0x0100;

public BTUtility()

try

LocalDevice localDevice = LocalDevice.getLocalDevice();

discoveryAgent = localDevice.getDiscoveryAgent();

pencarian.append("\n");

discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this);

catch (Exception e)

public void deviceDiscovered(RemoteDevice remoteDevice, DeviceClass cod)

try

pencarian.append("dideteksi: " + remoteDevice.getFriendlyName(true));

L4

catch (Exception e)

pencarian.append("dideteksi: " + remoteDevice.getBluetoothAddress());

finally

remoteDevices.addElement(remoteDevice);

public void inquiryCompleted(int discType)

if (remoteDevices.size() > 0)

for (int i = 0; i < remoteDevices.size(); i++)

try

HasilPencarian.append(((RemoteDevice)

remoteDevices.elementAt(i)).getFriendlyName(true), logo);

catch (Exception e)

HasilPencarian.append(((RemoteDevice)

remoteDevices.elementAt(i)).getBluetoothAddress(), logo);

display.setCurrent(HasilPencarian);

else

public void run()

try

RemoteDevice remoteDevice = (RemoteDevice)

remoteDevices.elementAt(HasilPencarian.getSelectedIndex());

discoveryAgent.searchServices(attrSet, uuidSet, remoteDevice, this);

L4

catch (Exception e)

e.printStackTrace();

public void servicesDiscovered(int transID, ServiceRecord[] servRecord)

for (int i = 0; i < servRecord.length; i++)

DataElement serviceNameElement = servRecord[i].getAttributeValue(0x0100);

String _serviceName = (String) serviceNameElement.getValue();

String serviceName = _serviceName.trim();

URLBluetooth =

servRecord[i].getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);

display.setCurrent(readyToConnectForm);

readyToConnectForm.append("\n\nURL : " + URLBluetooth);

System.out.println("URL : " + URLBluetooth);

public void serviceSearchCompleted(int transID, int respCode)

if (respCode == DiscoveryListener.SERVICE_SEARCH_COMPLETED)

else

L4

//listing program class ambilBlutut.java -> untuk ambil data yang dikirim dari komputer

import java.io.IOException;

import java.io.InputStream;

import javax.microedition.io.Connector;

import javax.microedition.io.StreamConnection;

class ambilBlutut extends Thread

private Handphone2 hpTerima;

private boolean readData;

public String serialData;

public ambilBlutut(Handphone2 setting)

this.hpTerima = setting;

public void run()

hpTerima.terhubung = true;

if (hpTerima.terhubung = true)

try

serialData=null;

StreamConnection connection =

(StreamConnection)Connector.open(hpTerima.URLBluetooth);

InputStream in = connection.openInputStream();

byte[] rawData;

readData = true;

while(readData == true)

int lengthavai=0;

L4

lengthavai = in.available();

if(lengthavai > 0)

rawData = new byte[lengthavai];

int length = in.read(rawData);

serialData = new String(rawData);

hpTerima.sms.setString(serialData);

if (serialData==null)

readData=true;

if (serialData!=null)

readData = false;

if (hpTerima.sms.getString().equals("p"))

smsberhenti sb = new smsberhenti();

sb.berhenti("berhenti"); // <<----------- Ubah Sesukamu

else if (hpTerima.sms.getString().equals("q"))

smsccw sc = new smsccw();

sc.ccw("ccw");

else if (hpTerima.sms.getString().equals("r"))

smscw scw = new smscw();

scw.cw("cw");

in.close();

L4

connection.close();

catch(IOException ioe)

ioe.printStackTrace();

L4

//listing program class blututcw.java -> untuk kirim data ke komputer

import java.io.IOException;

import java.io.OutputStream;

import java.io.InputStream;

import javax.microedition.io.Connector;

import javax.microedition.io.StreamConnection;

class blututcw extends Thread

private Handphone2 hpTerima;

public blututcw(Handphone2 setting)

this.hpTerima = setting;

public void run()

try

if(hpTerima.data.equals("berhenti"))

StreamConnection connection = (StreamConnection)

Connector.open(hpTerima.URLBluetooth);

String msg ="berhenti";

OutputStream out = connection.openOutputStream();

out.write(msg.length());

out.write(msg.getBytes());

out.close();

connection.close();

if(hpTerima.data.equals("ccw"))

StreamConnection connection = (StreamConnection)

Connector.open(hpTerima.URLBluetooth);

L4

String msg ="ccw";

OutputStream out = connection.openOutputStream();

out.write(msg.length());

out.write(msg.getBytes());

out.close();

connection.close();

if(hpTerima.data.equals("cw"))

StreamConnection connection = (StreamConnection)

Connector.open(hpTerima.URLBluetooth);

String msg ="cw";

OutputStream out = connection.openOutputStream();

out.write(msg.length());

out.write(msg.getBytes());

out.close();

connection.close();

if(hpTerima.data.equals("cek"))

StreamConnection connection = (StreamConnection)

Connector.open(hpTerima.URLBluetooth);

String msg ="cek";

OutputStream out = connection.openOutputStream();

out.write(msg.length());

out.write(msg.getBytes());

out.close();

connection.close();

L4

Thread ambildata = new ambilBlutut(hpTerima);

ambildata.start();

catch (IOException ioe)

ioe.printStackTrace();

L4

//listing program class smsberhenti.java -> kirim SMS dengan format berhenti

import javax.microedition.io.Connector;

import javax.wireless.messaging.Message;

import javax.wireless.messaging.MessageConnection;

import javax.wireless.messaging.TextMessage;

class smsberhenti

String port ="4321", isiSmsKeluar;

public void berhenti(final String fungsi)

new Thread(new Runnable()

public void run()

try

String address = "sms://" + "+6285729819953" + ":" + port;

MessageConnection smsConnKir = null;

Message isiSmsNya = null;

smsConnKir = (MessageConnection) Connector.open(address);

TextMessage txtmessage = (TextMessage)

smsConnKir.newMessage(MessageConnection.TEXT_MESSAGE);

txtmessage.setAddress(address);

txtmessage.setPayloadText(fungsi);

isiSmsNya = txtmessage;

smsConnKir.send(isiSmsNya);

catch (Throwable t)

t.printStackTrace();

).start();

L4

//listing program class smsccw.java -> kirim SMS dengan format ccw

import javax.microedition.io.Connector;

import javax.wireless.messaging.Message;

import javax.wireless.messaging.MessageConnection;

import javax.wireless.messaging.TextMessage;

class smsccw

String port ="4321", isiSmsKeluar;

public void ccw(final String fungsi)

new Thread(new Runnable()

public void run()

try

String address = "sms://" + "+6285729819953" + ":" + port;

MessageConnection smsConnKir = null;

Message isiSmsNya = null;

smsConnKir = (MessageConnection) Connector.open(address);

TextMessage txtmessage =

(TextMessage)

smsConnKir.newMessage(MessageConnection.TEXT_MESSAGE);

txtmessage.setAddress(address);

txtmessage.setPayloadText(fungsi);

smsConnKir.send(txtmessage);

catch (Throwable t)

t.printStackTrace();

).start();

L4

//listing program class smscw.java -> kirim SMS dengan format cw

import javax.microedition.io.Connector;

import javax.wireless.messaging.Message;

import javax.wireless.messaging.MessageConnection;

import javax.wireless.messaging.TextMessage;

class smscw

String port ="4321", isiSmsKeluar;

public void cw(final String fungsi)

new Thread(new Runnable()

public void run()

try

String address = "sms://" + "+6285729819953" + ":" + port;

MessageConnection smsConnKir = null;

Message isiSmsNya = null;

smsConnKir = (MessageConnection) Connector.open(address);

TextMessage txtmessage =

(TextMessage)

smsConnKir.newMessage(MessageConnection.TEXT_MESSAGE);

txtmessage.setAddress(address);

txtmessage.setPayloadText(fungsi);

smsConnKir.send(txtmessage);

catch (Throwable t)

t.printStackTrace();

).start();

L5

RANGKAIAN MINIMUM SISTEM

RANGKAIAN CATU DAYA