Aplikasi Embedded Internet pada Vending Machine Menggunakan
Microprocessor Rabbit RCM3200
1. Pendahuluan
Vending Machine adalah sebuah mesin penjual
minuman yang dapat beroperasi secara
standalone untuk melayani transaksi pembelian
minuman atau makanan kecil. Vending Machine
konvensional yang beredar saat ini memiliki
beberapa kekurangan yaitu pengelola tidak dapat
mempunyai informasi secara on-line yang
sewaktu-waktu bisa diakses misalnya tentang
kondisi mesin seperti: hasil transaksi penjualan,
stok produk yang tersimpan pada mesin, kondisi
mesin pendingin dan lain-lain.
Untuk mengatasi masalah itu pada penelitian ini
dibangun sebuah model sistem embedded
pengendali vending machine yang memiliki
koneksi Internet (embedded Internet). Dengan
demikian seluruh aktifitas mesin dapat dimonitor
oleh pengelola mesin secara jarak jauh sepanjang
masih ada koneksi web Internet. Pengelola dapat
memonitor transaksi penjualan, stok produk serta
temperatur mesin pendingin. Sistem embedded
Internet saat ini sudah mulai populer
diaplikasikan pada sistem kendali, peralatan
rumah tangga, instrumentasi dan lain-lain
2. Embedded Internet Rabitcore
2.1 Mikroprosesor Rabbit 3000 [3,4]
Mikroprosesor yang akan digunakan adalah
mikroprosesor Rabbit 3000 mempunyai kemampuan
yang tinggi, low-EMI microprocessor yang
didesain secara spesifik untuk embedded control,
komunikasi, dan koneksi dengan Ethernet dan
Internet.
Buffer I/O Rabbit mempunyai batas kemampuan
arus sourcing dan sinking sebesar 6.8 mA per pin
dengan batas tegangan maksimum untuk semua
I/O adalah 5.5 V.
RCM3200 mempunyai I/O parallel sebanyak 52
buah yang dikelompokkan menjadi 7 port
(masing-masing 8 bit) yang tersedia pada header
J1 dan J2. Sebanyak 44 bidirectional I/O terletak
pada pin PA0-PA7, PB0, PB2-PB7, PD2-PD7,
PE0-PE1, PE3-PE7, PF0-PF7, dan PG0-PG7.
2.2 Dynamic C [5,6]
Dynamic C merupakan integrated development
system yang dirancang khusus untuk embedded
software (yang menggunakan bahasa pemrograman
C). Software ini didesain untuk
digunakan pada kontroler Z-World dan kontroler
lainnya yang berbasiskan mikroprosesor Rabbit.
Rabbit 2000 dan Rabbit 3000 merupakan
mikroprosesor 8 bit yang mempunyai performa
yang tinggi yang dapat menerima aplikasi bahasa
C sampai dengan 50.000 statements atau 1 MB.
Dynamic C terintegrasi dari beberapa fungsi
yaitu editing, compiling, linking, loading, dan
debugging dalam 1 program. Pada kenyataannya,
compiling, linking, loading adalah 1 fungsi. Di
dalam Dynamic C terdapat editor teks yang
mudah untuk digunakan. Program dapat
dieksekusi dan debugged secara interaktif pada
level kode mesin. Menu-menu dan keyboard
shortcut tersedia juga dalam Dynamic C. Selain
itu, bahasa assembly juga didukung oleh
Dynamic C dan dapat digunakan bersama-sama
dengan bahasa C.
Cara memprogram mikroprosesor menggunakan
Dynamic C adalah sbb :
1. Membuat listing program (baik dalam bahasa
C atau assembly ),
2. Langkah selanjutnya program di-compile agar
dapat di-download pada mikroprosesor
dengan menekan tombol F9.
2.3 Pemrograman Socket dengan PHP
Penelitian ini mencoba untuk mengaplikasikan
PHP terutama penggunaan pemrograman socket.
Socket menyediakan jalan bagi client dan server
untuk saling berkomunikasi di dalam jaringan
komputer. Socket membuat jalur end to end
communication (yang memungkinkan client
untuk mengirim request ke server dan server
menerima request tersebut dan memberikan
respon kepada client). Sebagai contoh adalah
sebuah web server melayani request client
dengan membuka sebuah socket (biasanya port
80) dan client (web browser) berkomunikasi
dengannya melalui socket tersebut. Untuk dapat
mengaktifkan fitur socket pada PHP, maka perlu
menghilangkan tanda “;” pada baris
extension=php_sockets.dll dalam file ‘php.ini’.
Beberapa fungsi yang dipakai adalah sebagai
berikut :
•Socket_create() untuk membentuk socket.
resource socket_create (int
domain, int type, int protocol)
•Socket_bind() untuk memberi nama pada
socket (mempunyai nilai balik, TRUE saat
sukses atau FALSE saat gagal).
bool socket_bind (resource socket,
string address [, int port])
•Socket_listen() untuk mendengar koneksi
pada socket (mempunyai nilai balik TRUE
saat sukses atau FALSE saat gagal).
bool socket_listen (resource
socket [, int backlog])
•Socket_accept() untuk menerima koneksi
pada socket.
resource socket_accept (resource
socket)
•Socket_close() untuk menutup socket.
void socket_close (resource
socket)
•Socket_read() untuk membaca bytes yang ada
pada socket.
string socket_read (resource
socket, int length [,int type])
•Socket_write() untuk menulis pada socket.
int socket_write (resource socket,
string buffer [, int length])
Contoh pemrograman socket dengan PHP :
$host = "192.168.12.13";
$port = 1241;
// bentuk socket
$socket = socket_create(AF_INET,
SOCK_STREAM, 0) or die("Socket gagal
dibentuk\n");
// bind socket pada port
$result = socket_bind($socket, $host,
$port) or die("Socket gagal dibind\
n");
// mulai listening
$result = socket_listen($socket, 3)
or die("Listen Gagal\n");
// terima request koneksi
// bentuk cocket lain untuk menghandle
komunikasi
while(1)
{
$spawn = socket_accept($socket) or
die("Gagal menerima koneksi\n");
// baca input dari client
$input = socket_read($spawn, 1024) or
die("Gagal membaca input\n");
echo $input;
// kirim kembali ke client
$output = "alo\n";
socket_write($spawn, $output, strlen
($output)) or die("Gagal membuat
output\n");
// tutup socket
socket_close($spawn);
}
socket_close($socket);
?>
Listing diatas menjadikan komputer dengan IP
192.168.12.13 sebagai server yang membuka
layanan pada port 1241 dan setelah menerima
input dari client, server akan mengirimkan
balasan pada client.
Resmana Lim , Lauw Lim Un Tung
Fakultas Teknologi Industri, Jurusan Teknik Elektro, Universitas Kristen Petra
Hendrawan
Alumni Fakultas Teknologi Industrin, Jurusan Teknik Elektro, Universitas Kristen Petra
Langganan:
Posting Komentar (Atom)
1. Bagaimana cara kerjanya. ( Meiz Allfarizy / 41407010019 )
BalasHapusCara krjanya adalah saat pertama kali dinyalakan, maka akan dilakukan inisialisasi port dan alamat IP tertentu. Kemudian mulai mencek penekanan keypad. Jika tidak ada penekanan keypad, maka program akan menunggu selama 60 detik. Dan setelah waktu 60 detik terpenuhi tanpa ada penekanan keypad, maka dijalankan pengecekan input data (berupa suhu). Dan jika data telah siap atau tersedia, data tersebut dikonversikan menjadi derajat celsius yang kemudian dikirimkan pada server. Kemudian dilakukan cek penekanan keypad kembali. Jika ada penekanan keypad, maka RabbitCore akan meminta input data berupa NRP, password dan pilihan minuman yang dipesan serta menampilkannya pada LCD. Dan setelah semua input data masuk, maka data tersebut akan dikirimkan pada server (untuk dicek validasinya). Setelah mendapat balasan dari server (bahwa data tersebut valid), maka transaksi pembelian dijalankan. Dan jika tidak valid, maka transaksi ditolak. Untuk membatalkan transaksi, user dapat menekan tombol ”cancel” pada keypad.
2. Apa yang dimaksud software Dinamic C. ( Laura Zinia Valentine / 41407010003 ).
Dynamic C merupakan integrated development system yang dirancang khusus untuk embedded software (yang menggunakan bahasa pemrograman C). Software ini didesain untuk digunakan pada kontroler Z-World dan kontroler lainnya yang berbasiskan mikroprosesor Rabbit. Rabbit 2000 dan Rabbit 3000 merupakan mikroprosesor 8 bit yang mempunyai performa yang tinggi yang dapat menerima aplikasi bahasa C sampai dengan 50.000 statements atau 1 MB. Dynamic C terintegrasi dari beberapa fungsi yaitu editing, compiling, linking, loading, dan debugging dalam 1 program. Pada kenyataannya, compiling, linking, loading adalah 1 fungsi. Di dalam Dynamic C terdapat editor teks yang mudah untuk digunakan. Program dapat dieksekusi dan debugged secara interaktif pada level kode mesin. Menu-menu dan keyboard shortcut tersedia juga dalam Dynamic C. Selain itu, bahasa assembly juga didukung oleh Dynamic C dan dapat digunakan bersama-sama dengan bahasa C.
4. Sebutkan kekurangan dan kelebihannya. ( Lucky Lukmansyah / 41407010010 ).
Kekurangannya
• Sistem masih belum menjamin sekuritas pengiriman data. Karena data yang dikirim masih dalam bentuk plain text, sehingga data dapat dengan mudah untuk dibaca oleh semua orang sehingga masih dapat terjadi kecurangan.
• Kekurangan pada protokol transaksi sistem, yaitu saat itu transaksi yang terjadi belum selesai (contoh: sudah dilakukan pengurangan rekening pada database, kemudian pada saat server mengirim respon, jaringan internet putus) telah dapat diatasi dengan menambahkan acknowlegment pada client dan kemudian dilakukan update pada database server .
• Sistem vending machine masih terdapat bug, yaitu pada saat terjadi bentrok antara proses monitoring suhu dan proses transaksi. Hal ini diatasi dengan melakukan pembatalan transaksi oleh user.
Kelebihannya
• Seluruh aktifitas mesin dapat dimonitor oleh pengelola mesin secara jarak jauh sepanjang masih ada koneksi web Internet.
• Pengelola dapat memonitor transaksi penjualan, stok produk serta temperatur mesin pendingin.
5. gambar (miftah farid/ 41407010024)
http://s395.photobucket.com/albums/pp34/Miftah_farid/?action=view¤t=postinganega.jpg