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
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
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
//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();