Tugas Praktikum Mikroprosesor

Posted on Updated on

Nama : Surono

NIM   : 11.11.1996

Kelas  : TI 11 S

Daftar Link TI 11 S

Link Dosen

APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN MENGGUNAKAN SENSOR GERAK DAN MIKROKONTROLER ARDUINO

       1. Latar Belakang Masalah

Dengan semakin meningkatnya kemampuan ekonomi masyarakat di Indonesia, menyebabkan semakin meningkat pula daya beli masyarakat terutama di bidang otomotif. Hal ini tentu menjadi masalah tersendiri karena akan menyebabkan lalulintas di jalan raya akan semakin padat dan kerwanan kecelakaan pun akan sering terjadi. Oleh karena itu dibutuhkan suatu alat untuk memantau arus lalulintas di jalan raya agar para pengguna jalan dapat mendapatkan informasi kepadatan lalu lintas tersebut dengan mengakses ke server melalui aplikasi berbasis Android.

Perkembangan sistem operasi Android sebagai salah satu sistem operasi untuk perangkat mobile telah menyebabkan membanjirnya perangkat-perangkat mobile berbasis Android di pasaran. Didukung teknologi terbaru dan berbagai fitur serta kemudahan dalam komunikasi terutama koneksi internet membuat perangkat mobile ini diminati banyak pengguna. Hal ini yang menjadi alasan dipilihnya Android sebagai aplikasi klien.

Dengan kombinasi teknologi mikrokontroler dan Android informasi kepadatan lalu lintas tidaklah susah didapatkan. Oleh karena itu, dalam paper ini dikembangkan sistem penghitungan kepadatan arus lalu lintas mobil yang dilengkapi enkripsi untuk mengamankan data.

     2. Tinjauan Pustaka

Arduino adalah sebuah mikrokontroler single-board yang bersifat open-source. Hardware mikrokontroler Arduino diprogram dengan menggunakan bahasa pemrograman wiring-based yang berbasiskan syntax dan library. Pemrograman wiring-based ini tidak berbeda dengan C/C++, tetapi dengan beberapa penyederhanaan dan modifikasi. Untuk memudahkan dalam pengembangan aplikasinya, mikrokontroler Arduino juga menggunakan Integerated Development Environment (IDE) berbasis processing.

Mikrokontroler Arduino dapat dipasangkan dengan bermacam-macam sensor dan aktuator lainnya. Adapun sensor dan aktuator yang dapat dipasangkan pada Arduino seperti sensor gerak, ultrasonik, panas, suara, Ethernet Shield, LED Display dan yang lainnya.

  • Mikrokontroler Arduino Uno

Dengan adanya sensor dan aktuator ini membuat mikrokontroler Arduino dapat berinteraksi dengan lingkungan sekitarnya. Penggunaan sensor maupun aktuator disesuaikan dengan kebutuhan dan tujuannya. Sebagai contoh adalah aplikasi Line Tracker, pada aplikasi ini hardware yang digunakan yaitu sensor line tracker dan motor. Sehingga mikrokontroler Arduino dapat mengikuti jejak garis yang dilacak.

arduino

Gambar 1 Mikrokontroler Arduino Uno

  • Sensor Gerak

Sensor gerak merupakan sensor yang dapat mendeteksi gerakan yang terjadi disekitar sensor. Sensor gerak memiliki bentuk yang kecil, membutuhkan daya listrik yang rendah, dan mudah dalam pengaplikasiannya dalam kehidupan sehari-hari. Sensor gerak dibuat dari sebuah pyroelectric sensor yang memiliki kristal pada tengahnya yang berfungsi untuk mendeteksi tingkat radiasi dari infrared. Sensor gerak ini memiliki 2 bagian yang sensitif terhadap radiasi infrared. Ketika suatu gerakan melewati sensor, bagian pertama akan menghasilkan tingkat radiasi infrared yang lebih tinggi dibandingkan bagian kedua, sehingga sensor akan menghasilkan positif diferensial. Kemudian ketika gerakan tersebut akan meninggalkan sensor, bagian pertama akan menghasilkan tingkat radiasi infrared yang lebih rendah daripada bagian kedua, sehingga sensor akan menghasilkan negatif diferensial. Ketika sensor menghadapi positif dan negatif diferensial, sensor akan mendeteksinya sebagai sebuah gerakan dan akan memberikan sinyal HIGH. Namun jika tidak terjadi gerakan atau dalam kondisi idle, sensor akan menghasilkan sinyal LOW. Proses ini dapat ditunjukkan pada Gambar 3. Sensor gerak memiliki bingkai lensa berwarna putih yang terletak seperti setengah bola. Bingkai lensa tersebut berfungsi untuk menyebarkan kepekaan sensor pyroelectric sehingga memiliki jangkauan pendeteksian yang lebih luas.

sensorGambar 3. Cara Kerja Sensor Gerak

  • PHP CodeIgniter

CodeIgniter adalah sebuah open-source framework PHP yang menerapkan disain Model-View-Controller pada framework-nya. CodeIgniter diciptakan oleh Rick Ellis pada versi pertamanya menggunakan PHP 4. Dokumentasi yang baik, dukungan komunitas yang besar, fleksibelitas dalam pengembangannya membuat CodeIgniter menjadi framework yang popular diantara framework PHP lainnya.

Keunggulan utama CodeIgniter dibandingkan framework lainnya adalah CodeIgniter memiliki kesederhanaan dalam pengembangannya, sehingga mudah untuk dipelajari. Selain itu keunggulan lainnya adalah CodeIgniter merupakan sebuah framework yang ringan dan tidak membebani server ketika menangani load yang besar dari client. Maka dari itu, CodeIgniter memiliki performa yang lebih baik diantara framework lainnya.

Aplikasi CodeIgniter adalah aplikasi yang menerapkan konsep tiga tingkat. Tingkat-tingkat itu diantaranya Model-View-Controller. Controller adalah layer dimana fungsi-fungsi logika dijalankan. Model merupakan layer yang menghubungkan basis data dengan aplikasi. Sedangkan View merupakan tempat dimana interface diimplementasikan.

  • Android

Pada platform Android, SDK yang digunakan adalah Eclipse. Untuk mengembangkan aplikasi Android dibutuhkan plugin bernama Android Development Tools (ADT) [4]. ADT ini berfungsi untuk mengemulasikan sebuah aplikasi yang dibuat seakan-akan ketika aplikasi dijalankan, aplikasi tersebut berjalan pada hardware yang sebenarnya. Dalam mengembangkan aplikasi Android dengan menggunakan SDK, terdapat bagian penting terdapat pada aplikasi itu sendiri yaitu Activity Class, Android Manifest, Android UI, dan R.java.

Activity Class merupakan class dtulis dengan menggunakan bahasa Java. Activity Class ini berisi halaman yang akan tampil pada layar ketika aplikasi berjalan. Pada Activity Class inilah logika untuk mengimplementasikan interface diterapkan. Untuk setiap layout memiliki pengaturan letak setiap elemen. Pada aplikasi Android setiap layout dipresentasikan dengan file Extensible Markup Language (XML). Untuk Activity Class yang bernama Main, akan terdapat file XML bernama Main.xml. Untuk menjembatani antara class dan layout terdapat sebuah file bernama R.java. R.java merupakan class yang secara otomatis dihasilkan ketika membangun sebuah aplikasi. File R.java ini akan selalu ada disetiap aplikasi Android. Setiap aplikasi Android mutlak memiliki sebuah Android Manifest yang umumnya terdapat pada file AndroidManifest.xml. Pada manifest ini terdapat informasi mengenai spesifikasi dari aplikasi yang diciptakan. Pada manifest tersebut terdapat versi, label, intent yang digunakan, akses aplikasi yang diberikan, dan banyak lagi. Setiap aplikasi Android memiliki file manifest yang berbeda yang bergantung pada akses yang akan digunakan oleh aplikasi tersebut.

  • ARCFOUR (RC4)

ARCFOUR (RC4) adalah sebuah stream cipher yang didisain pada tahun 1987 oleh Ron Rives untuk perusahaan RSA Security. RC4 adalah variabel key-size stream cipher dengan menerapkan operasi yang berorientasi pada tiap byte datanya. Stream cipher adalah sebuah simetrik key cipher dimana byte dari plaintext dikombinasikan dengan pseudorandom cipher. Sedangkan cipher adalah sebuah algoritma yang digunakan untuk melakukan enkripsi dan dekripsi. RC4 yang memiliki kecepatan dan algoritma yang sederhana membuat RC4 diterapkan pada berbagai aplikasi. Keefesienannya dalam implementasinya baik dalam software membuat RC4 mudah untuk dikembangkan.

Dalam implementasinya, algoritma RC4 membutuhkan sebuah key untuk menghasilkan pseudorandom byte pada saat enkripsi maupun dekripsi. Key yang digunakan haruslah rahasia dan hanya diketahui oleh pengirim dan penerima dari ciphertext yang dikirim.

rc4Gambar 2. Stream Cipher Diagram

Seperti pada stream cipher lainnya, pseudorandom stream bit atau keystream ini dapat digunakan sebagai enkripsi dengan menggabungkan plaintext dengan menggunakan bit-wise exclusive-or atau XOR. Sedangkan dekripsinya menggunakan cara yang sama karena RC4 adalah operasi simetrik. Untuk menghasilkan keystream, cipher membuat inisialisasi awal yang terdiri dari 2 bagian, yaitu:

1. Permutasi dari 256 kemungkinan (dipresentasikan oleh array “S”)

2. index pointer 8-bit (dipresentasikan oleh “i” dan “j”).

Permutasi awal diinisialisasikan dari panjang key yang akan digunakan, biasanya 40 bit hingga 256 bit dengan menggunakan algoritma Key-Scheduling (KSA). Setelah proses ini selesai, stream dari bit akan dihasilkan dengan menggunakan algoritma

     3. Pembahasan

     Analisa sistem

Cara kerja dari sistem Alat ini yaitu setiap mikrokontroler Arduino pada setiap jalan yang akan dipantau mengirimkan datanya ke sebuah server pusat, dimana server tersebut akan menyimpan semua informasi mengenai data dari mikrokontroler Arduino itu sendiri maupun data jumlah kendaraan. Server pusat tersebut juga akan menjadi sumber data bagi aplikasi client. Setiap mikrokontroler Arduino akan mengirimkan datanya ke server menggunakan perangkat GSM Shield, dimana GSM Shield ini adalah berupa modem GSM yang memiliki koneksi internet.

Pada pengumpulan data dilakukan oleh mikrokontroler Arduino dengan menggunakan sensor geraknya. Sensor gerak pada mikrokontroler Arduino akan bekerja jika terjadi gerakan disekitarnya. Sensor gerak akan bernilai HIGH jika mendeteksi adanya gerakan dan akan bernilai LOW jika tidak terdeteksi adanya gerakan. Setiap jalur jalan membutuhkan dua buah sensor gerak, dimana untuk menghilangkan error rate dari gerakan yang bukan mobil. Mikrokontroler Arduino akan mendeteksi adanya satu kendaraan mobil yang lewat dengan menggunakan syarat bahwa kedua sensor harus dalam keadaan HIGH. Dengan jarak antara kedua sensor yang lebih panjang dari panjang kendaraan roda dua, maka kendaraan roda dua tidak akan dihitung oleh mikrokontroler Arduino. Proses pengumpulan data berhenti sampai disini. Data akan dikirimkan mikrokontroler Arduino ke server melalui koneksi internet dengan menggunakan protokol HTTP. Proses selanjutnya adalah pengolahan data yang

dilakukan oleh server. Server mendapatkan data dari Arduino yang mengirimkan data secara berkala. Data yang dikirimkan melalui tahap enkripsi terlebih dahulu. Enkripsi yang digunakan adalah enkripsi RC4 yang menggunakan private key erbeda-beda di setiap transaksi datanya. Setiap data yang diterima akan disimpan pada database jika data yang diterima valid. Untuk menentukan valid atau tidaknya data yang diterima, data tersebut akan disesuaikan dengan format data yang sudah ditentukan oleh server.

Proses Penghitungan Kendaraan

Untuk mendeteksi kendaraan yang bergerak digunakan 2 buah sensor gerak. Sensor menandakan terjadinya gerakan dengan sebuah sinyal HIGH, dan menandakan sinyal LOW jika tidak terjadi gerakan. Ketika sebuah sensor menandakan sinyal HIGH tetapi sensor lainnya menandakan sinyal LOW, maka tidak akan ada penghitungan jumlah kendaraan. Namun, jika kedua buah sensor menandakan sinyal HIGH maka akan dianggap terjadi satu gerakan kendaraan yang melintas.

kcode Mendeteksi Kendaraan :

If pirPin1 = HIGH do

If pirPin2 = HIGH do

ledPin = HIGH

objectCounter + 1

Wait 50 ms

endIf

endIF

Proses Enkripsi Dekripsi RC4

Data jumlah kendaraan yang sudah dihitung akan dikirim secara berkala ke server. Namun sebelum data tersebut dikirim ke server, data tersebut diolah terlebih dahulu lalu kemudian dienkripsi dengan menggunakan private key yang sudah ditentukan. Setelah menjadi sebuah ciphertext yang terenkripsi, mikrokontroller Arduino akan melakukan sambungan dengan server. Kemudian mikrokontroler Arduino akan mengirimkan ciphertext tersebut menggunakan protokol HTTP dengan fungsi GET. Namun, jika server tidak dapat terhubung akan dilakukan pengiriman pada periode selanjutnya. Setelah terjadi transaksi data antara mikrokontroler Arduino dengan server, server akan mengirimkan sebuah privatekey baru sebagai tanda data telah diterima. Private key tersebut dikirimkan dalam bentuk ciphertext yang sudah terenkripsi. Ciphertext tersebut akan didekripsi dengan menggunakan private key sebelumnya. Setelah didekripsi, mikrokontroler Arduino akan mengganti private key lama dengan private key yang baru.

kode untuk enkripsi RC4:

for i from 0 to 255

S[i] := i

Endfor

j := 0

for i from 0 to 255

j := (j + S[i] + key[i mod keylength]) mod 256

swap values of S[i] and S[j]

i := 0

j := 0

while GeneratingOutput:

i := (i + 1) mod 256

j := (j + S[i]) mod 256

swap values of S[i] and S[j]

K := S[(S[i] + S[j]) mod 256]

Ciphertext = data XOR S[(S[i]+S[j])%256])

output Ciphertext

Endwhile

sumber:

Klik untuk mengakses ITS-paper-20035-5108100004-Paper.pdf

Tinggalkan komentar