bab ii dasar teori...arduino compatible antena berada pada pcb, dengan jarak komunikasi 5cm ~ 7cm...
TRANSCRIPT
5
BAB II
DASAR TEORI
Bab ini membahas mengenai teori-teori pendukung yang digunakan sebagai acuan
dalam merancang skripsi ini.
2.1 Radio Frequency Identification (RFID)
RFID hampir sama seperti barcode yang dapat mengenali melalui ID dari sebuah
objek. Namun, RFID menggunakan gelombang radio dalam berkomunikasi. RFID reader
akan mengirimkan sinyal radio yang akan ditangkap oleh Tag RFID. Kemudian, Tag akan
mengirimkan short string dari data. Komunikasi tersebut tergantung pada ukuran,
sensitivitas dari antena pembaca, dan kekuatan transmisi.
Rentang frekuensi yang digunakan RFID mulai dari kisaran di bawah 135kHz
sampai frekuensi tinggi di atas 135kHz, yaitu 24GHz. Tetapi, frekuensi yang biasanya
dipakai ialah 0- 135kHz, untuk frekuensi standar Industrial Scientific and Medical (ISM)
sekitar 6,78 MHz, 13,56 MHz, 27,125 MHz, 40,68 MHz, 869,0 MHz, 2,45 GHz, 5,8 GHz
dan 24.125 GHz, serta untuk di Eropa sekitar 865 dan 868MHz dan 915MHz untuk di
Amerika Serikat. ISO 18000-6 merupakan standar air interface untuk RFID 5 yang
beroperasi pada frekuensi antara 860 MHz sampai 960 MHz yang diaplikasikan untuk
manajemen barang.
Tag RFID yang digunakan pada skripsi ini ialah ISO 14443 yang berupa sirkuit
kartu. Kartu dapat berupa Tipe A dan Tipe B, yang keduanya berkomunikasi melalui radio
pada 13,56 MHz ( RFID HF). Perbedaan utama antara jenis ini menyangkut metode
modulasi, skema pengkodean dan prosedur inisialisasi protokol. Kedua kartu Tipe A dan
Tipe B menggunakan protokol transmisi yang sama. Protokol transmisi menentukan
pertukaran blok data dan mekanisme.[3]
6
2.2 Near Field Communication (NFC)
Gambar 2.1 Modul PN532 NFC RFID
NFC adalah teknologi nirkabel yang jarak komunikasinya kurang dari 4 cm. NFC
juga dapat berbagi data antar dua perangkat yang kompatibel. Sama seperti Bluetooth,
WiFi, dan nirkabel lainnya, NFC bekerja dengan cara mengirimkan informasi melalui
gelombang radio. Data dikirim NFC melalui induksi elektromagnetik antara dua
perangkat. Dengan jaraknya yang kurang dari 4 cm, NFC menjadi komunikasi tanpa kabel
yang lebih aman, ketimbang komunikasi yang dimiliki komunikasi tanpa kabel lainnya.
NFC merupakan perpanjangan dari RFID dimana NFC lebih banyak melakukan
pertukaran data dari pada RFID.
Modul NFC PN532 adalah salah satu modul yang dapat membaca dan menulis
Tag NFC/RFID.Modul versi 3 ini berukuran kompak(42,7×40,4 mm dengan ketebalan
hanya 4mm) sehingga mudah ditempatkan pada berbagai peralatan elektronika. Akses
untuk semua pin dari IC NXP532 disediakan melalui lubang solder berjarak 2,54mm
(0,1”standar pin pitch/ spacing) untik pin header 8-pin dan tambahan 4-pin dan tambahan
10-pin dengan pitch, 1,27mm/ 0.5” untuk fungsi-fungsi tambahan.
Ada empat jenis NFC yang semuanya berbasis RFID. Tipe 1, 2, dan 4
menggunakan standar ISO 14443A, sedangkan tipe 3 menggunakan ISO 18092. Sebagai
tambahan, tipe yang kelima adalah tipe yang kompatibel, tetapi tidak terlalu memenuhi
bagian dari spesifikasi NFC. RFID yang akan digunakan adalah ISO 14443A yang
memiliki fitur dan keungulan sebagai berikut:
7
Mendukung komunikasi I2C, SPI dan HSU (High Speed UART)
RFID reader / writer mode support
• Kartu Mifare 1k, 4k, Ultralight, dan DesFire
• Kartu ISO / IEC 14443-4 seperti CD97BX, CD light, DesFire, P5CN072
(SMX)
• Kartu Jewel Innovision seperti kartu IRT5001
• Kartu FeliCa seperti RCS_860 dan RCS_854
Arduino compatible
Antena berada pada PCB, dengan jarak komunikasi 5cm ~ 7cm
Standar 5V TTL untuk I2C dan UART, 3.3V TTL SPI
Bekerja sebagai reader / writer RFID
Bekerja sebagai kartu 14443A
Mendukung NFC dengan ponsel Android
Ukuran kecil: 43mm * 41mm * 4mm
Pada skripsi ini modul NFC yang digunakan adalah PN532 NFC RFID versi 3.
Modul ini memiliki tiga komunikasi yaitu HSU, I2C dan SPI. I2C dan HSU memiliki pin
yang sama. Definisi pin IIC dicetak di depan dan HSU dicetak di bagian belakang. Modus
HSU dikonfigurasi sebagai mode default.
Gambar 2.2 Switch untuk memilih komunikasi modul
8
2.3 Arduino Mega 2560
Arduino Mega 2560 adalah papan mikrokontroler berdasarkan ATmega2560
(datasheet). Ini memiliki 54 pin input / output digital (dimana 14 dapat digunakan sebagai
output PWM), 16 input analog, 4 UART (port serial perangkat keras), osilator kristal 16
MHz, koneksi USB, colokan listrik, header ICSP, dan tombol reset. Ini berisi semua yang
dibutuhkan untuk mendukung mikrokontroler, cukup hubungkan ke komputer dengan
kabel USB atau nyalakan dengan adaptor AC ke DC atau baterai untuk memulai.
Gambar 2.3 Arduino Mega
Masing-masing dari 54 pin digital pada Mega dapat digunakan sebagai input atau
output, dengan menggunakan fungsi pinMode(), digitalWrite(), dan
digitalRead(). Mereka beroperasi pada 5 volt. Setiap pin dapat menyediakan atau
menerima maksimum 40 mA dan memiliki resistor pull-up internal (terputus bila ada
kesalahan) 20-50 kOhms.
Gambar 2.4 Pin Atmega 2560
9
2.4 Ethernet ENC28J60
Gambar 2.5 Ethernet ENC28J60
Arduino Ethernet Shield V1 memungkinkan Arduino terhubung ke internet. Hal
ini didasarkan pada chip ethernet Wiznet W5100. Wiznet W5100 menyediakan sebuah
jaringan (IP) stack yang mampu untuk kedua TCP dan UDP. Ini mendukung hingga
empat koneksi soket simultan.
Pustaka Ethernet dapat digunakan untuk menulis sketsa yang terhubung ke
internet. Ethernet terhubung ke papan Arduino menggunakan header wire-wrap panjang.
Hal ini membuat tata letak pin tetap utuh dan memungkinkan pin lain dapat ditumpuk di
atas Ethernet Shield memiliki koneksi RJ-45 standar, dengan transformator jalur terpadu
dan Power over Ethernet diaktifkan. Ethernet Shield memiliki beberapa informasi LED:
• PWR: menunjukkan bahwa papan dan shield aktif
• LINK: menunjukkan adanya network link dan berkedip saat shield
mentransmisikan atau menerima data
• FULLD: menunjukkan bahwa koneksi jaringan adalah full duplex
• 100M: menunjukkan adanya koneksi jaringan 100 Mb / s (berlawanan
dengan 10Mb / s)
• RX: berkedip saat perisai menerima data
• TX: berkedip saat perisai mengirim data
• COLL: berkedip saat tabrakan jaringan terdeteksi
10
2.5 Solenoid-Door Lock
Gambar 2.6 Solenoid-Door Lock
Solenoid adalah aktuator yang mampu melakukan gerakan linier. Solenoid dapat
berupa elektromekanis (AC/DC), hidrolik atau pneumatik. Semua operasi berdasar pada
prinsip-prinsip dasar yang sama. Dengan memberikan sumber tegangan maka solenoid
dapat menghasilakan gaya yang linier. Contohnya untuk menekan tombol, memukul
tombol pada piano, operator katup, dan bahkan untuk robot melompat. Solenoid DC
beroperasi pada prinsip-prinsip seperti motor DC. Perbedaan antara solenoid dan motor
adalah bahwa solenoid adalah motor yang tidak dapat berputar.
Di dalam solenoida terdapat kawat melingkar pada inti besi. Ketika arus listrik
melalui kawat ini, maka terjadi medan magnet untuk menghasilkan energi yang bisa
mendorong inti besi. Poros dalam dari solenoid adalah piston seperti silinder terbuat dari
besi atau baja, yang disebut plunger (setara dengan sebuah dinamo). Medan magnet
kemudian menerapkan kekuatan untuk plunger ini, baik menarik atau repeling (kembali
posisi). Ketika medan magnet dimatikan, pegas plunger kemudian kembali ke keadaan
semula.
2.6 Real Time Clock (RTC)
RTC adalah perangkat keras yang berfungsi sebagai alat untuk menghitung waktu,
baik itu mulai dari tahun, bulan, tanggal, hari, jam, menit dan detik. Waktu tersebut akan
disimpan sehingga RCT akan menghasilkan waktu yang akurat.
Gambar 2.7 Modul RTC DS3231
11
RTC yang digunakan pada skripsi ini ialah DS3231. DS3231 adalah I2C dengan
harga yang murah dan sangat akurat. Perangkat menggunakan baterai yang berfungsi
untuk merawat ketepatan waktu ketika tegangan utama ke perangkat terganggu. DS3231
memiliki spesifikasi sebagai berikut :
• RTC yang sangat akurat mengelola semua fungsi pengatur waktu secara
lengkap
• Real-Time Clock dapat menghitung detik, menit, jam, tanggal, bulan, hari
dalam seminggu, dan tahun, dengan kemampuan koreksi tahun kabisat
sampai 2100
• Akurasi ± 2ppm dari 0 ° C sampai +40 ° C
• Akurasi ± 3.5ppm dari -40 ° C sampai +85 ° C
• Keluaran sensor digital dengan akurasi ±3°C 6.
• Register untuk trim yang berumur
• RST Output / Pushbutton Reset Debounce Input
• Dua Alarm Time-of-Day
• Sinyal Output Wave-Programmable
• Antarmuka serial sederhana sehingga dapat menghubungkan ke
kebanyakan Microcontrollers
• Antarmuka I2C yang cepat (400kHz)
• Masukan cadangan menggunakan baterai untuk pencatatan waktu terus-
menerus
• Low power operation, memperpanjang waktu penggunaan baterai
cadangan
• Operasi tegangan berkisar 3.3V
• Rentang Suhu Operasional: Komersial (0 ° C sampai + 70 ° C) dan Industri
(-40° C sampai +85 ° C)
12
2.7 LCD (Liquid Crystal Display)
Gambar 2.8 LCD karakter 20×4
LCD (Liquid Crystal Display) adalah salah satu komponen elektronika yang
berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. LCD sudah
tersedia dalam bentuk modul yaitu tampilan LCD beserta rangkaian pendukungnya. LCD
mempunyai pin data, kontrol catu daya, dan pengatur kontras tampilan. LCD juga
merupakan perangkat display yang paling umum dipasangkan di Mikrokontroller,
Mengingat ukurannya yang kecil dan kemampuannya menampilkan karakter atau grafik
yang lebih dibandingkan display seven-segmen. Pada pengembangan sistem embedded,
LCD mutlak diperlukan sebagai sumber pemberi informasi utama, misalnya alat
pengukur kadar gula darah, penampil waktu jam, penampil counter putaran motor industri
dan lain-lain.
Pada skripsi ini pin yang terdapat pada LCD tidak langsung dihubungkan
keArduino akan tetapi pin tersebut dihubungkan ke I2C PCF8574 terlebih dahulu.
Kemudian I2C tersebut akan langsung dihubungkan dengan pin serial clock (SDA) dan
serial data (SCL) Arduino. I2C PCF8574 memiliki fitur sebagai berikut :
• Konsumsi Standby-Current yang Rendah 10 μA Max
• I2C ke Parallel-Port Expander
• Open-Drain Interrupt Output
• Kompatibel dengan kebanyakan Microcontrollers
• Keluaran Latched Dengan Kemampuan High-Current Drive untuk mengontrol
LED secara langsung
• Kinerja Latch-Up Melebihi 100 mA Per JESD 78, Kelas II
Gambar 2.9 Modul I2C PCF8574
13
2.8 Buzzer
Buzzer merupakan komponen elektronika yang mengubah sinyal listrik menjadi
getaran suara. Buzzer biasanya digunakan sebagai pemberitahuan atau peringatan pada
suatu alat tertentu. Jenis Buzzer yang biasanya ditemukan atau sering digunakan yaitu
Buzzer berjenis Piezoelectric, karena Buzzer Piezoelectric memiliki harga yang relative
cukup murah, ringan dan mudah untuk digabungkan dengan mikrokontroler.
Gambar 2.10 Buzzer
2.9 Router
Router adalah sebuah alat yang mengirimkan paket data melalui sebuah jaringan
atau Internet menuju tujuannya, melalui sebuah proses yang dikenal sebagai routing.
Router berfungsi sebagai penghubung antar dua atau lebih jaringan untuk meneruskan
data dari satu jaringan ke jaringan lainnya.
Gambar 2.11 Router
Fungsi utama Router adalah merutekan paket (informasi). Sebuah Router
memiliki kemampuan Routing, artinya Router secara cerdas dapat mengetahui kemana
rute perjalanan informasi (paket) akan dilewatkan, apakah ditujukan untuk host lain yang
satu network ataukah berada di network yang berbeda. Jika paket-paket ditujukan untuk
host pada network lain maka router akan meneruskannya ke network tersebut.
Sebaliknya, jika paket-paket ditujukan untuk host yang satu network maka router akan
menghalangi paket-paket keluar.
14
2.10 Hypertext Preprocessor (PHP)
Gambar 2.12 Logo PHP
Sumber: https://secure.php.net/contact.php
PHP adalah bahasa server-side scripting yang menyatu dengan HTML untuk
membuat halaman web yang dinamis. Karena itu sintaks dan perintah-perintah PHP akan
dieksekusi di server kemudian hasilnya dikirimkan ke browser dalam format HTML. Jadi
kode program yang ditulis dalam PHP tidak akan terlihat oleh user sehingga keamanan
halaman web lebih terjamin. Hal ini juga berbeda jika dibandingkan dengan
pemrograman client-side seperti JavaScript yang diproses pada web browser
PHP dirancang untuk membentuk halaman web yang dinamis, yaitu halaman web
yang dapat membentuk suatu tampilan berdasarkan halaman permintaan terkini, seperti
menampilkan isi basis data ke halaman web. PHP dapat digunakan dengan gratis dan
bersifat Open Source Product, sehingga source code PHP dapat diubah dan
didistribusikan secara bebas.
2.11 MySql
MySQL adalah sebuah implementasi dari sistem manajemen basis data relasional
(RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public
License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan
batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat
komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basis
data yang telah ada sebelumnya; SQL (Structured Query Language). SQL adalah sebuah
konsep pengoperasian basis data, terutama untuk pemilihan atau seleksi dan pemasukan
data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.
Dalam bahasa SQL pada umumnya informasi tersimpan dalam tabel-tabel yang
secara logik merupakan struktur dua dimensi terdiri dari baris (row atau record) dan
kolom (column atau field). Sedangkan dalam sebuah database dapat terdiri dari beberapa
table.
15
2.12 XAMPP Server
Gambar 2.13 Logo Xampp
XAMPP adalah program aplikasi pengembang yang berguna untuk
pengembangan website berbasis PHP dan MySQL. Perangkat lunak komputer ini
memiliki kelebihan untuk bisa berperan sebagai server web Apache untuk simulasi
pengembangan website. Tool pengembangan web ini mendukung teknologi web populer
seperti PHP, MySQL, dan Perl. Melalui program ini, programmer web dapat menguji
aplikasi web yang dikembangkan dan mempresentasikannya ke pihak lain secara
langsung dari komputer, tanpa perlu terkoneksi ke internet. XAMPP juga dilengkapi fitur
manajemen database PHPMyAdmin seperti pada server hosting sungguhan, sehingga
pengembang web dapat mengembangkan aplikasi web berbasis database secara mudah.
Program XAMPP banyak diaplikasikan dan digunakan oleh kalangan pengguna
komputer di bidang pemrograman web. XAMPP dapat dijalankan di sistem operasi
Windows 2000/XP/Vista/7/8 dan sistem operasi lain. Fungsinya adalah sebagai server
yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server, MySQL
database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan
Perl.
2.13 Laravel
Laravel adalah framework pengembangan web MVC yang ditulis dalam PHP.
Laravel juga mempermudah dalam pengerjaan proyek secara bersama, oleh karena itu
Laravel sangat membantu untuk pengembangan web lebih lanjut. Laravel juga
menyediakan migrasi database yang sangat membantu. Laravel mendukung beberapa
database seperti MySQL, MSSQL, PostgreSQL, dan SQLite. Pada saat migrasi database
16
tidak akan dipersulit dengan ketidakcocokan tipe database yang akan digunakan. Ini
membuat proyek web yang dikerjakan lebih terstruktur dan lebih mudah dipahami.
Tugas Akhir ini menggunakan framework laravel 5.4.33. Seperti yang telah
diketahui, Laravel adalah framework yang berbasis MVC. Dalam membuat API yang
dibutuhkan ialah Model dan Controller. Model adalah wujud dari database, baik itu
kolom dan relasi database yang dibutuhkan untuk mendefinisikan sebuah model adalah
menciptakan kelas baru yang memperluas kelas Model. Sementara nama kelas ditulis
dengan format CamelCase. Contohnya jika di database nama tabelnya adalah
“stiker_user” maka nama kelas tersebut menjadi “StrikerUser”. Karena kelas Model
akan membaca tabel “StikerUser” sebagai “stiker_users”, untuk dapat tetap membaca
tabel di database sebagai “stiker_produk” maka dapat didefinisikan variabel
protected $table = 'striker_produk'. Dengan cara tersebut dapat
digunakan tabel yang tidak sesuai dengan nama kelas.
class StikerUser extends Model
{
protected $table = 'stiker_user’;
}
Kode 2.1 Kode Mendeklarasikan Nama table pada Model Laravel
Controller pada Laravel terbagi menjadi dua jenis yaitu controller standar dan
controller source. Tugas mereka adalah memahami permintaan yang masuk dan
mengirim respons yang tepat. Controller standar atau controller tradisional dimana
tindakan detail yang mengambil satu parameter dan yang berada di Projects controller,
berdasarkan ketentuan, dapat peroleh di /proyek/detail/123. Controller source,
memungkinkan untuk menentukan pengendali yang tenang yang merespons HTTP yang
berbeda, seperti GET, POST, PUT, dan DELETE.
Gambar 2.14 MVC Laravel