BAB II TINJAUAN PUSTAKA
2.1 Received Signal Strength Indicator (RSSI) Dalam telekomunikasi, Received Signal Strength Indicator (RSSI) adalah sebuah ukuran kekuatan sinyal radio yang diterima oleh receiver. Teknologi localization node of wireless sensor network(WSN) biasanya menggunakan nilai RSSI untuk melakukan pengukuran jarak [2] Dengan mengumpulkan nilai RSSI, maka dapat ditentukan jarak antara transmitter dan receiver. 2.1.1
Model Shadowing Persamaan 2.1 adalah model shadowing yang banyak digunakan dalam
tranmisi sinyal wireless.[3] =
− 10 lg
+
(2.1)
Keterangan, d adalah jarak dari pemancar dan penerima demgan satuan dalam meter, do adalah jarak referensi yang biasa bernilai sama dengan 1 meter, Pr(d) adalah kekuatan sinyal yang diterima oleh penerima (dBm), XdBm adalah variabel acak Gaussian yang nilai rata-ratanya adalah 0, nilai ini menggambarkan perubahan kekuatan sinyal yang diterima dalam jarak tertentu, n adalah indeks path loss. Sehingga diperoleh persamaan model shadowing yang disederhanakan yang ditunjukkan pada persamaan 2.2. =
− 10 lg
(2.2)
5
Dengan do= 1m, sehingga diperoleh persamaan pengukuran jarak berdasarkan pada nilai RSSI yang digunakan dalam praktek ditunjukkan dalam persamaan dibawah ini. = = 10
=
− 10 lg
!""# $%&
(2.3) (2.4)
Dengan A adalah kekuatan sinyal yang diterima dalam jarak 1m dengan satuan dBm.[4] Tabel 1. Indeks path loss untuk lingkungan yang berbeda-beda Lingkungan
Indeks path loss, n
Free Space Urban area cellular radio Shadowed urban cellular radio Line of Sight
2 2,7 – 3.5 3–5 1,6 – 1,8
Terhalang gedung-gedung
4 -6
Terhalang pabrik-pabrik
2–3
2.2 Gelombang Radio Gelombang radio adalah satu bentuk dari radiasi elektromagnetik, dan terbentuk ketika objek bermuatan listrik dari gelombang osilator (gelombang pembawa) dimodulasi(ditumpangkan frekuensinya)
dengan frekuensi yang
terdapat dalam frekuensi gelombang radio (RF; "radio frequency")) pada suatu spektrum elektromagnetik, dan radiasi elektromagnetiknya bergerak dengan cara osilasi elektrik maupun magnetik. Frekuensi radio adalah tingkat osilasi dalam kisaran 3 kHz sampai 300 GHz, yang sesuai dengan frekuensi gelombang radio, dan arus bolak yang membawa sinyal radio. Gelombang elektromagnetik lain yang memiliki frekuensi di atas gelombang radio meliputi sinar gamma, sinar-X, inframerah, ultraviolet, dan cahaya terlihat.
6
Ketika gelombang radio dikirim melalui kabel kemudian dipancarkan oleh antena, osilasi dari medan listrik dan magnetik tersebut dinyatakan dalam bentuk arus bolak-balik balik dan voltase di dalam kabel. Dari pancaran gelombang radio ini kemudian dapat diubah oleh radio penerima (pesawat radio) menjadi menjad signal audio atau lainnya yang membawa siaran dan informasi. Aplikasi tranmisi gelombang radio dipakai sebagai dasar gelombang pada televisi, radio, radar, dan telepon genggam pada umumnya. Tabel 2. Nama-nama nama band yang terdapat dalam spectrum frekuensi radio[5]
7
2.3 Spread Spectrum Sistem komunikasi spread spectrum dilatarbelakangi oleh kebutuhan akan sistem komunikasi yang dapat mengatasi masalah interferensi, dapat menjamin kerahasiaan informasi yang dikirim dan dapat beroperasi pada tingkat signal to noise ratio (S/N) yang rendah atau tahan terhadap derau yang besar. Dalam sistem komunkasi sekarang ini, dimana penggunaan frekuensi sudah cukup padat sehingga interferensi dan noise dari transceiver lain cukup besar. Pengembangan selanjutnya, digunakan pada sistem penentuan lokasi dengan ketetapan tinggi (high-resolution ranging), sistem anti lintasan jamak (anti multipath) dan sistem akses jamak (multiple access). Ada beberapa metode dari sistem spread spectrum yang didasarkan pada teknik modulasi, diantaranya. a. Direct Sequence Spread Spectrum (DSSS) b. Frequency Hopping Spread Spectrum (FHSS) Kode yang digunakan spread spectrum memiliki sifat random (acak) tetapi berulang secara periodal sehingga dinamakan acak semu (Pseudorandom) atau sering juga disebut noise semu (Pseudonoise). Pembangkit sinyal kode pseudonoise disebut Pseudo Random Generator (PRG) atau Pseudo Noise Generator (PNG) yang dapat direalisasikan dengan susunan shift register dengan umpan balik tertentu dan sering disebut Shift Register Generator (SRG). Sinyal informasi akan memodulasi sinyal pembawa dan menghasilkan sinyal pembawa yang dimodulasi data. Sinyal pembawa yang telah dimodulasi data akan ditebarkan pada bandwidth frekuensi yang lebih besar. Proses penebaran diakukan dengan cara mengkorelasikan dengan kode Pseudonoise (PN) yang dihasilkan oleh Pseudo Random Generator (PRG). Hasil proses penebaran adalah berupa sinyal spread spectrum. Pada penerima spread spectrum terjadi proses despreading dilakukan dengan cara mengalikan sinyal yang diterima (sinyal spread spectrum) dengan kode PN yang terdapat pada sistem penerima. Proses despreading akan mengubah spektrum sinyal pembawa yang dimodulasi data kembali ke bandwidth semula. 8
2.3.1 Sistem Direct Sequence Spread Spectrum (DSSS) DSSS dipilih karena adanya kemudahan dalam mengacak data yang akan di spreading. Dalam DSSS spreading hanya menggunakan sebuah generator noise yang periodik yang disebut Pseudo Noise Generator (PNG). Kode yang digunakan pada sistem spread spectrum memiliki sifat acak tetapi periodik sehingga disebut sinyal acak semu disebut Pseudo Random Generator (PRG). Kode tersebut bersifat sebagai noise tapi deterministik sehingga disebut juga noise semu (Pseudo Noise). Kode PN merupakan rangkaian bit yang berkecepatan tinggi yang bernilai polar (1 dan -1) atau non polar (1 dan 0). Pembangkit sinyal kode ini disebut Pseudo Random Generator (PRG) atau Pseudo Noise Generator (PNG). PRG inilah yang akan melebarkan (sehingga memiliki frekuensi yang lebih tinggi) dan sekaligus mengacak sinyal data yang akan dikirimkan. Dalam skema ini, masing masing bit pada sinyal yang asli ditampilkan oleh bit-bit multipel pada sinyal yang ditransmisikan, yang disebut kode tipis (chipping). Kode tipis yang menyebarkan secara langsung sepanjang band frekuensi yang lebih luas sebanding dengan jumlah bit yang dipergunakan. Oleh karena itu, kode tipis 10-bit menyebarkan sinyal sepanjang band frekuensi yang 10 kali lebih besar dibandingkan kode tipis 1-bit. Patut dicatat bahwa bit informasi dari satu(logika 1) mengalikan bit-bit pseudorandom dalam kombinasi tersebut sehingga sinyal keluaran memiliki nilai yang sama dengan kode PN, sementara bit informasi 0 menyebabkan bit-bit pseudorandom ditransmisikan dengan mengalami inversi. Kombinasi bit stream memiliki data rate yang sama dengan deretan pseudorandom yang asli, sehingga memiliki bandwidth yang lebih lebar dibandingkan dengan stream informasi. Pada contoh ini, bit stream lebih besar 3 kali lipat rate informasi.
9
Gambar 2.1a DSSS Pada Pemancar
Gambar 2.1b DSSS Pada Penerima Gambar 2.1 menunjukkan implementasi deretan langsung yang khusus. Dalam hal ini, stream informasi dan stream pseudorandom bahkan dikonversi ke sinyal-sinyal analog lalu dikombinasikan, bukannya menunjukkan OR-eksklusif dari dua stream dan kemudian memodulasikannya. Penyebaran spektrum dapat dicapai melalui teknik deretan langsung yang ditentukan dengan mudah. Sebagai contoh, anggap saja sinyal informasi memiliki lebar bit sebesar tb yang ekuivalen terhadap rate data = 1/tb. Dalam hal ini, bandwidth sinyal tergantung pada teknik pengkodean, kira-kira 2/tb. Hampir sama dengan itu, bandwidth sinyal pseudorandom adalah 2/Tc dimana Tc adalah lebar bit pseudorandom input. Bandwidth sinyal yang dikombinasikan kira-kira sebesar jumlah dari 2 bandwidth 10
tersebut. Jumlah penyebaran yang dicapai adalah hasil langsung dari rate data pseudorandom. Semakin besar data rate pseudorandom input, semakin besar jumlah penyebarannya. [16]
Gambar 2.2 Contoh DSSS Menggunakan BPSK
2.4
Modul Wireless Radio frekuensi 2.4Ghz XBee PRO Radio Frequency Tranciever atau pengirim dan penerima frequensi radio
ini berfungsi untuk komunikasi secara nirkabel (wireless). Salah satu modul komunikasi wireless dengan frekuensi 2.4Ghz adalah Xbee-PRO ZB ZigBee/IEEE 802.15.4 2.4GHz. Radio frequency tranciever ini merupakan sebuah modul yang terdiri dari RF receiver dan RF transmiter. Modul RF interface XBee/XBee-PRO ZB ini berhubungan dengan melalui logic-level asynchronous serial port. Melalui serial port ini, modul dapat berkomunikasi dengan logic dan voltage kompatibel Universal Asynchronous Receiver-Transmitter (UART) atau melalui level translator ke semua serial device contohnya pada RS-232 atau USB interface board. UART atau Universal Asynchronous Receiver-Transmitter adalah bagian perangkat keras komputer yang menerjemahkan bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat peripheral. Device 11
yang memiliki interface UART dapat terhubung langsung pada pin modul RF. Sistem data flow diagram pada UART dapat dilihat pada Gambar 2.3.[6]
Gambar 2.3 Sistem data flow diagram pada lingkungan UART.
Gambar 2.4 modul XBee PRO Pada dasarnya, XBee memiliki 2 mode beroperasi yakni mode Transparant dan API. Akan tetapi, apabila mode API digunakan, dibutuhkan pemaketan data RF. Untuk itu, data akan di-buffer terlebih dahulu sebelum dikirim atau diterima. Flow data serial menjadi paket RF. Pada XBee apabila ada data input (DI), data akan masuk ke DI buffer. Setelah itu, input data akan diteruskan ke RF TX buffer, kemudian untuk mentransmisikan input data, posisi RF switch menjadi transmitter. Begitu juga sebaliknya, apabila ada data yang diterima, posisi RF switch menjadi receiver lalu data akan masuk RF RX buffer, kemudian data diteruskan ke DO buffer lalu menjadi data output (DO),
12
kemudian DO diteruskan dari XBee ke host. Diagram data flow internal XBee dapat dilihat pada Gambar 2.5.[6]
Gambar 2.5 Diagram data flow internal
2.5 Setting Alamat Modul XBee PRO (AT command) Langkah pertama yang harus dilakukan dalam menggunakan Xbee-PRO agar dapat melakukan komunikasi point to point adalah melakukan setting konfigurasi alamat (address). Proses konfigurasi ini dapat dilakukan melalui perangkat lunak X-CTU yang merupakan perangkat lunak aplikasi khusus untuk Xbee-PRO. Cara lain untuk melakukan setting dapat dilakukan melaui hyperterminal.
Untuk
melakukan
seting
konfigurasi
address
melalui
hyperterminal ada dua metode. Metode pertama disebut one line per command dan metode kedua disebut multiple command on one line. Metode 1 (One line per command) Send AT Command
Sistem Response
+++
OK
(Enter into Command Mode)
ATDL <Enter>
{current value} (Read Destination Address Low)
ATDL1A0D <Enter>
OK (Modify Destination Address Low)
ATWR <Enter>
OK (Write to non-volatile memory) 13
ATCN <Enter>
OK (Exit Command Mode)
Metode 2 (Multiple commands on one line) Send AT Command +++
Sistem Response OK (Enter into Command Mode)
ATDL <Enter>
{current value} (Read Destination Address Low)
ATDL1A0D,WR,CN<Enter> OK OK OK Setelah Command diatas selesai, maka Xbee kembali ke mode transparent. Xbee radio memiliki 64-bit nomor serial yang dicetak pada dibelakangnya. Alamat bagian awalnya (high) 0013A200. Alamat bagian terakhirnya (low) akan selalu berbeda disetiap modul RF. Semua merk Xbee memiliki alamat awalnya adalah 0013A200.[7] 2.6 API mode Pada mode operasi XBee Application Programming Interface (API), data yang masuk diurutkan pada frame sesuai dengan urutan yang telah ditentukan. Data frame yang berurutan ini akan membantu dalam proses membedakan command, command response, dan status pengiriman. API frame dapat dilihat pada Gambar 2.6.[6]
Gambar 2.6 struktur UART data frame •
Frame Delimiter: merupakan suatu byte (0x7E) yang membatasi antara satu API frame dan API frame yang lain atau menandakan bahwa API frame dimulai.
14
•
Length terdiri dari 2 byte (MSB dan LSB) yang menspesifikasi jumlah byte yang terkandung dalam kotak frame data. Namun tidak termasuk checksum.
•
Frame data: frame yang berisikan data utama dari API. Frame data dari uart data frame membentuk struktur API-specific sebagai berikut:
Gambar 2.7 Frame data UART dan Struktur API-spesifik cmdID frame (API-identifier) menandakan bahwa pesan API terkandung dalam cmdData frame. Modul Xbee mendukung API frame berikut: Tabel 3. Nama API frame dan Nilainya API Frame Names
API ID
AT Command Request
0x08
AT Command- Queue Parameter Value
0x09
ZigBee Transmit Request
0x10
Explicit Addressing ZigBee Command Frame
0x11
Remote Command Request
0x17
Create Source Route
0x21
AT Command Response
0x88
Modem Status
0x8A
ZigBee Transmit Status
0x8B
ZigBee Receive Packet (AO=0)
0x90
ZigBee Explicit Rx Indicator (AO=1)
0x91
ZigBee IO Data Sample Rx Indicator
0x92
XBee Sensor Read Indicator (AO=0)
0x94
Node Identification Indicator (AO=0)
0x95
Remote Command Response
0x97 15
Over-the-Air Firmware Update Status
0xA0
Route Record Indicator
0xA1
Frame data yang digunakan pada penelitian ini terdapat tiga jenis yaitu Zigbee Receive Packet, AT Command dan AT Command Response.
2.6.1 Zigbee Receive Pakcet Frame Type : 0x90 Ketika modul menerima RF data, data dikirim keluar secara UART menggunakan jenis pesan ini. Tabel 4. Urutan jenis frame untuk Zigbee RX Packet Frame Fields
Offset
Example
Description
0
0x7E
MSB 1
0x00
Number of bytes between the
LSB 2
0x12
length and the checksum
Frame Type
3
0x90
Frame ID
4
0x00
Start Delimiter Length
Identifies the UART data
A
frame for the host to
P
correlate with a subsequent
I
Frame-
ACK (acknowledgement). If
specific Data
set to 0, no response is sent.
MSB 5
0x13
6
0xA2
7
0x00
P A
16
C
64-bit
8
0x40
K
Source
9
0x52
E
Address
10
0x2B
LSB 11
0xAA
16-bit
MSB
0x7D
Source
12
T
64-bit address of sender
16-bit address of sender
Network Address
Receive
LSB 13
0x84
14
0x01
0x01 - Packet Acknowledged
Options
0x02 - Packet was a broadcast packet Received
15
0x52
16
0x78
17
0x44
18
0x61
19
0x74
20
0x61
21
0x0D
Data
Checksum
Received RF data
0xFF - the 8 bit sum of bytes from offset 3 to this byte.
2.6.2 AT Command Request Frame type : 0x08 Jenis frame ini digunakan untuk menanyakan atau
men-setting
parameter-parameter modul pada perangkat local. Penerapan API command ini berubah setelah pengeksekusian command.
Contoh API berikut
menggambarkan sebuah frame API untuk menanyakan nilai parameter NJ.
17
Dalam hal ini, tidak perlu mengirim “AT” karena jenis frame Api yang digunakan adalah AT command request. Tabel 5. Urutan Frame AT Command Request Frame Fields Start
Offset
Example
Description
0
0x7E
MSB 1
0x00
Number of bytes between
LSB 2
0x12
the length and the
Delimiter Length
checksum FrameA specific P
Frame Type 3
0x08
Frame ID
0x01
4
Data
Identifies the UART data frame for the host to
I
correlate with a subsequent ACK (acknowledgement). If set to 0, no response is
P
sent.
A
AT
C
Command
K
5
0x4E (N) Command Name - Two ASCII characters that
6
0x4A (J)
identify the AT Command
E T Parameter Value
If present, indicates the
(optional)
requested parameter value to set the given register. If no characters present, register is queried. 9
Checksum
0x0D
0xFF - the 8 bit sum of bytes from offset 3 to this byte.
18
Contoh diatas menggambarkan sebuah AT command ketika menanyakan nilai NJ. 2.6.3 AT Command Response Frame Type : 0x88 Dalam response sebuah pesan AT command,
modul Xbee akan
mengirim sebuah pesan AT Command Response. Sebagai contoh, perintah BD(Baud rate). Tabel 6. Urutan AT Command Response Frame Fields Start
Offset
Example
Description
0
0x7E
MSB 1
0x00
Number of bytes between
LSB 2
0x05
the length and the
Delimiter Length
checksum FrameA specific P
Frame Type 3
0x88
Frame ID
0x01
4
Data
Identifies the UART data frame for the host to
I
correlate with a subsequent ACK (acknowledgement). If set to 0, no response is
P
sent.
A
AT
C
Command
K
5
6
E
‘B’ =
Command Name - Two
0x42
ASCII characters that
‘D’ =
identify the AT Command
0x44
T Command Status
7
0x00
0= OK 1= ERROR 2= Invalid Command 3 = Invalid Parameter 19
Command
Register data in binary
Data
format. If the register was set, then this field is not returned, as in this example. 8
0x0D
0xFF - the 8 bit sum of bytes from offset 3 to this
Checksum
byte.
Contoh : jika parameter BD diubah pada perangkat local dengan frame ID 0x01. Jika sukses (parameter valid) maka respon seperti diatas akan diterima. [6] 2.7. Deskripsi Command Modul Xbee Pro ZB memperkirakan nilai numerik dalam heksadesimal. Nilai heksadesimal ditunjukkan dengan awalan “0x”. Setiap perintah terkandung dalam katagori perintah. 2.7.1 DB (Receive Signal Strength) Command Parameter DB digunakan untuk membaca kekuatan sinyal yang diterima dalam dBm dari paket RF yang diterima terakhir. Nilai yang dilaporkan akurat antara - 40 dBm dan sensitivitas modul RF penerima. Nilai absolut dilaporkan dari modul sebagai contoh: 0x58 = - 88 dBm (desimal). Jika tidak ada paket RF yang diterima (setelah reset terakhir, power cycle atau sleep event) , maka “0” yang akan dilaporkan. AT Command
: ATDB
Parameter Range [read-only]: 0x17-0x5C (XBee), 0x24-0x64 (XBee-PRO) Perintah ATDB dapat dilakukan langsung melalui hyperterminal, dengan terlebih dahulu mengetik +++ untuk masuk ke Command Mode.
20
2.8
Mikrokontroler Mikrokontroller merupakan sebuah processor yang digunakan untuk
kepentingan kontrol. Meskipun mempunyai bentuk yang jauh lebih kecil dari suatu komputer pribadi dan computer mainframe, mikrokontroller dibangun dari elemen – elemen dasar yang sama. Seperti umumnya komputer, mikrokontroller adalah alat yang mengerjakan instruksi – instruksi yang diberikan kepadanya. Artinya, bagian terpenting dan utama dari suatu sistem terkomputerisasi adalah program itu sendiri yang dibuat oleh seorang programmer. Program ini menginstruksikan komputer untuk melakukan tugas yang lebih kompleks yang diinginkan oleh programmer. [8] Beberapa fitur yang umumnya ada di dalam mikrokontroller adalah sebagai berikut : • RAM ( Random Access Memory ) RAM digunakan oleh mikrokontroller untuk tempat penyimpanan variable. Memori ini bersifat volatile yang berarti akan kehilangan semua datanya jika tidak mendapatkan catu daya. • ROM ( Read Only Memory ) ROM seringkali disebut sebagai kode memori karena berfungsi untuk tempat penyimpanan program yang akan diberikan oleh user. • Register Merupakan tempat penyimpanan nilai – nilai yang akan digunakandalam proses yang telah disediakan oleh mikrokontroller. • Special Function Register Merupakan register khusus yang berfungsi untuk mengatur jalannya mikrokontroller. Register ini terletak pada RAM. • Input dan Output Pin
21
Pin input adalah bagian yang berfungsi sebagai penerima signal dari luar, pin ini dapat dihubungkan ke berbagai media inputan seperti keypad, sensor, dan sebagainya. Pin output adalah bagian yang berfungsi untuk mengeluarkan signal dari hasil proses algoritma mikrokontroller. • Interrupt Interrupt bagian dari mikrokontroller yang berfungsi sebagai bagian yang dapat melakukan interupsi, sehingga ketika program utama sedang berjalan, program utama tersebut dapat diinterupsi dan menjalankan program interupsi terlebih dahulu. Beberapa interrupt pada umumnya adalah sebagai berikut : Interrupt Eksternal Interrupt akan terjadi bila ada inputan dari pin interrupt Interrupt timer Interrupt akan terjadi bila waktu tertentu telah tercapai Interrupt serial Interupt yang terjadi ketika ada penerimaan data dari komunikasi serial[8] 2.8.1 Fitur AVR ATMega328
ATMega328
adalah
mikrokontroller
keluaran
dari
atmel
yang
mempunyai arsitektur RISC (Reduce Instruction Set Computer) yang dimana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC (Completed Instruction Set Computer). Mikrokontroller ini memiliki beberapa fitur antara lain : •
130 macam instruksi yang hampir semuanya dieksekusidalam satu siklus clock.
•
32 x 8-bit register serba guna.
•
Kecepatan mencapai 16 MIPS dengan clock 16 MHz.
22
•
32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2 KB dari flash memori sebagai bootloader.
•
Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 1KB sebagai tempat penyimpanan data semi permanent karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan.
•
Memiliki SRAM (Static Random Access Memory) sebesar 2KB.
•
Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width Modulation) output.
•
Master / Slave SPI Serial interface. Mikrokontroller ATmega 328 memiliki arsitektur Harvard, yaitu
memisahkan memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan kerja dan parallelism. Instruksi – instruksi dalam memori program dieksekusi dalam satu alur tunggal, dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah diambil dari memori program. Konsep inilah yang memungkinkan instruksi – instruksi dapat dieksekusi dalam setiap satu siklus clock. 32 x 8-bit register serba guna digunakan untuk mendukung operasi pada ALU ( Arithmatic Logic unit ) yang dapat dilakukan dalam satu siklus. 6 dari register serbaguna ini dapat digunakan sebagai 3 buah register pointer 16-bit pada mode pengalamatan tak langsung untuk mengambil data pada ruang memori data. Ketiga register pointer 16-bit ini disebut dengan register X ( gabungan R26 dan R27 ), register Y ( gabungan R28 dan R29 ), dan register Z ( gabungan R30 dan R31 ). Hampir semua instruksi AVR memiliki format 16-bit. Setiap alamat memori program terdiri dari instruksi 16-bit atau 32-bit. Selain register serba guna di atas, terdapat register lain yang terpetakan dengan teknik memory mapped I/O selebar 64 byte. Beberapa register ini digunakan untuk fungsi khusus antara lain sebagai register control Timer/ Counter, Interupsi, ADC, USART, SPI, EEPROM, dan fungsi I/O lainnya. Register – register ini menempati memori pada alamat 0x20h – 0x5Fh.[9]
23
Berikut ini adalah tampilan architecture ATmega 328 :
Gambar 2.8 Architecture ATmega328 2.6.2 Konfigurasi PIN ATMega328
Gambar 2.9 Konfigurasi Pin ATMega328
24
Tabel 7. Konfigurasi Port B
Tabel 8. Konfigurasi Port C
25
Tabel 9. Konfigurasi Port D
2.8.2 Fitur Mikrokontroller ATmega16U2 Atmega16U2 memiliki fitur USB dan ISP Flash Controller. Fitur USB controller pada Atmega16U2 adalah -
Complies fully with Universal Serial Bus Specification REV 2.0
-
48 MHz PLL for Full-speed Bus Operation : data transfer rates at 12 Mbit/s USB kontroller menyediakan hardware untuk mengimplementasi sebuah
perangkat USB2.0 full-speed yang sesuai dalam Atmega16U2. Diagram blok sederhana USB kontroller digambarkan sebagai berikut,
26
Gambar 2.10 Diagram blok USB kontroller USB kontroller memerlukan sebuah referensi clock 48MHz ± 0.25% untuk penyesuaian USB full-speed. Clock ini dibangkitkan oleh sebuah internal PLL. Refereni clock untuk PLL harus disediakan oleh sebuah eksternal kristal atau masukan eksternal clock. Hanya kedua opsi clock ini yang mampu menyediakan referensi clock dalam kebutuhan akurasi dan jitter spesifikasi USB. Untuk memenuhi spesifikasi karakteristik listrik USB, USB Pad (D + atau D-) harus didukung pada tegangan 3.0V ke 3.6V. Mikrokontroller Atmega16U2 dapat diberi tegangan hingga 5.5V, suatu regulator internal tersedia agar mendukung USB pad dengan benar. a. Pilihan Powering Modul USB Berdasarkan pada target aplikasi catu daya yang dipilih (Vcc), Atmega16U2 USB kontroller membutuhkan skema powering yang berbeda, seperti telihat pada gambar berikut,
27
Gambar 2.11 Mode pengoperasian versus frekuensi dan catu daya (Vcc) ATmega16U2 tampil sebagai virtual com port untuk perangkat lunak pada komputer. Firmware Atmega16U2 meneggunakan driver standar USB COM. [15]
2.9 Liquid Crystal Display (LCD) 2x16 Kegunaan LCD banyak
sekali
dalam perancangan suatu system
dengan menggunakan mikrokontroler. LCD (Liquid Crystal Display) dapat berfungsi untuk menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler. Pada praktek proyek ini, LCD yang digunakan adalah LCD 16 x 2 yang artinya lebar display 2 baris 16 kolom dengan 16 Pin konektor.[8]
Adapun konfigurasi dan deskripsi dari pin-pin LCD antara lain: GND 0V (Pin 1)
: Merupakan sumber tegangan +5V
VCC (Pin 2)
: Merupakan sambungan ground.
VEE (Pin 3)
: Merupakan input tegangan Kontras LCD.
RS Register Select (Pin 4)
: Merupakan Register pilihan 0 = Register 28
Perintah, 1 = register data R/W (Pin 5)
: Merupakan read select, 1 = read, 0 = write.
Enable Clock LCD (Pin 6)
: Merupakan masukan logika 1 setiap kali
pengiriman Atau pembacaan data D0 – D7 (Pin 7 – Pin 14)
: Merupakan Data Bus 1 -7
Anoda ( Pin 15)
: Merupakan masukan tegangan positif
backlight Katoda (Pin 16)
:
Merupakan
masukan
tegangan
negatif
backlight
Gambar 2.12 LCD 2 x 16
Display karakter pada LCD diatur oleh pin EN, RS dan RW. Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa sebuah data sedang dikirimkan. Untuk mengirimkan data ke LCD, maka melalui
program EN harus dibuat logika low “0” dan set pada dua jalur
kontrol yang lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika “1” dan tunggu dan berikutnya di set.[10]
29
BAB III
PERANCANGAN SISTEM
3.1 Metode Penelitian Metode pengukuran jarak dalam penelitian ini menggunakan prinsip Riceived Signal Strenght Indocator (RSSI) untuk mengetahui jarak Transceiver Tran 1 terhadap Transceiver 2. 2 Untuk satu dimensi pengukuran dapat dilihat pada gambar 7.1. Transceiver A dan B berada pada situasi line-of of- sight. Umumnya untuk
memungkinkan
posisinya secara 2D atau
3D adalah
dengan
menambahkan beberapa receiver.[11] receiver [11] Dalam penelitian ini difokuskan untuk 1 dimensi saja yaitu jarak.
Gambar 3.1 Ilustrasi Penelitian Hal yang pertama dilakukan adalah melakukan percobaan untuk menetapkan nilai RSSI pada jarak 1 meter yang dijadikan nilai konstanta A pada persamaan 2.3. Kemudian dilakukan pengujian dari jarak 5m-90m 5m dan dilanjutkan dengan pengujian pada jarak 100m-200m(dengan 100m (dengan interval 10m) untuk menentukan batas kemampuan alat dalam mengukur jarak dengan kesalah(error) terkecil. 30
3.2 Perancangan Alat
3.2.1
Diagram Blok Rangkaian
Adapun diagram blok dari sistem yang dirancang, seperti yang diperlihatkan pada gambar 3.2
Gambar 3.2 Diagram blok rangkaian Dari blok diagram pada Gambar 3.2 menunjukkan skema perangkat keras pendukung sistem. Pada rancangan alat ukur jarak yang terdiri dari dua buah transceiver Xbee XBP24-Z7WIT-004 yaitu satu buah sebagai transmitter (remote node) dan satu buah receiver (local noder). Kemudian data RSSI akan dicatat dan disimpan pada database visual basic (PC) dan di analisa jarak antara kedua titik wireless tersebut. Modul Xbee 1 dan MCU 1 sebagai local MCU, modul Xbee 2 dan MCU 2 sebagai remote MCU.
31
3.2.2 Flowchart Mulai
Remote MCU 2mengirim RF Data ‘0’
Local Xbee menerima RF data Local MCU mengecek nilai RSSI
Apakah nilai RSSI ≠ 0x00 ?
tidak
Cek kembali konfigurasi dari kedua Xbee
ya Tampilkan nilai RSSI ke LCD
Kirim Nilai RSSI ke Visual basic 6.0 melalui ATMega 16U2 Ambil sampel RSSI 25 kali Analisa nilai RSSI ke jarak
Selesai Gambar 3.3 Diagram alir data
32
3.2.3
Rangkaian Mikrokontroller Atmega328P
Pada
Gambar
3.4
menampilkan
rangkaian
sistem
minimum
mikrokontroler Atmega328P, atau dengan kata lain rangkaian yang harus ada untuk menjalankan suatu mikrokontroler
Gambar 3.4. Sistem mikrokontroller ATMega328P Pada Gambar 3.4 menunjukkan rangkaian minimal yang diperlukan agar mikrokontroler mampu bekerja. Sistem tersebut terdiri dari x-tal Q1 senilai 16 MHz, 2 buah kapasitor senilai 22pF. Komponen ini berfungsi sebagai osilator untuk mikrokontroler. Sistem reset otomatis menggunakan 33
kapasitor 10uF/16V dan sebuah resistor senilai 10KΩ. Dengan pemasangan kapasitor dan resitor ini, pada saat power supply dinyalakan maka mikrokontroler akan reset secara otomatis, kemudian bekerja secara normal. Hal ini disebabkan oleh proses pengisian dan pengosongan pada komponen kapasitor. Pada kaki-kaki PB5, PB4 dan PB3 serta RST (Reset) dihubungkan ke PC untuk jalur pemrograman secara langsung. Atau biasa disebut ISP (In Sistem Programming). 3.2.4
Rangkaian ATMega16U2
Komunikasi serial merupakan hal yang penting dalam sistem embedded, karena dengan komunikasi serial kita dapat dengan mudah menghubungkan mikrokontroler dengan devais lainnya. Komunikasi 16U2 dengan 328P menggunakan Komunikasi serial UART, sehingga hanya membutuhkan pin RX 16U2 yang dihubungkan ke pin TX 328P dan pin TX 16U2 dihubungkan ke pin RX 328P. Mikrokontroller Atmega16U2 berperan sebagai jembatan antara port USB komputer dan port serial prosesor utama (atmega328P) karena fitur USB Rev.2.0-nya . Atmega16U2 menjalankan software yang disebut firmware (dinamakan demikian karena tidak bisa mengubahnya setelah diprogram dalam chip) yang dapat diperbarui(updated) melalui protokol usb khusus yang disebut DFU (Device Firmware Update). Firmware tersebut yang berperan sebagai konverter USB ke Serial.
Gambar 3.5 Sistem Mikrokontroller Atmega16u2 34
DFU (Device Firmware Update) adalah mekanisme yang diterapkan untuk melakukan modifikasi perangkat firmware. Setiap perangkat yang mendukung USB dapat memanfaatkan kemampuan ini. Suatu perangkat tidak bisa secara bersamaan melakukan dua operasi yaitu DFU mode dan aktivitas normalnya, aktifitas normal tersebut harus berhenti selama operasi DFU.[17] 3.2.5
Rangkaian LCD (Liquid Crystal Display)
LCD adalah suatu display dari bahan cairan Kristal yang berfungsi menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler.
Gambar 3.6 Rangkaian Skematik dari LCD ke mikrokontroler Pada gambar rangkaian di atas pin 2 dihubungkan ke Vcc (5V), pin 1 dan 16 dihubungkan ke Gnd (Ground), pin 3 merupakan pengaturan tegangan Contrast dari LCD, pin 4 merupakan Register Select (RS), pin 5 merupakan R/W (Read/Write) dihubungkan ke ground(0v) karena program yang akan dibuat hanya memerintah untuk menulis ke LCD, pin 6 merupakan Enable, pin 11-14 merupakan data. Reset, Enable dan data
dihubungkan ke
mikrokontroler Atmega328P. Fungsi dari potensiometer (R1) adalah untuk mengatur gelap/terangnya karakter yang ditampilkan pada LCD. 35
Tabel 10. Koneksi hubungan antara Modul Lcd dengan Mikrokontroller Pin Lcd
Keterangan
Pin
Keterangan
Mikrokontroller 1
GND
8
GND
2
+5V
7
Vcc
4
RS
18
Port B.4
5
RW
8
GND
6
EN
17
Port B.3
11
D4
13
Port D.7
12
D5
12
Port D.6
13
D6
11
Port D.5
14
D7
6
Port D.4
3.2.6
Rangkaian Power Supply
a. Power Supply 5 volt Rangkaian power supply berfungsi untuk mensupplay arus dan tegangan ke seluruh rangkaian yang ada. Rangkaian power supply ini terdiri dari satu keluaran, yaitu 5 volt, keluaran 5 volt digunakan untuk menghidupkan seluruh rangkaian termasuk rangkaian power supply 3,3 volt, karena rangkaian power supply 3,3 volt tersebut memerlukan tegangan input sebesar 5 volt agar tegangan keluarannya stabil sehingga tidak mengganggu proses pengiriman dan penerimaan data melalui gelombang radio. Rangkaian skematik power supply 5 volt dapat dilihat pada gambar 3.6 di bawah ini:
36
Gambar 3.7. Rangkaian power supply 5 Volt Trafo stepdown yang berfungsi untuk menurunkan tegangan dari 220 volt AC menjadi 12 volt AC & 6 volt AC. Kemudian 12 volt AC akan disearahkan dengan menggunakan dua buah dioda, selanjutnya 5 volt DC akan diratakan oleh kapasitor 2200 µF. Regulator tegangan 5 volt (LM7805CT) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan masukannya. LED hanya sebagai indikator apabila PSA dinyalakan. Transistor PNP TIP 32 disini berfungsi sebagai penguat arus apabila terjadi kekurangan arus pada rangkaian, sehingga regulator tegangan (LM7805CT) tidak akan panas ketika rangkaian butuh arus yang cukup besar.
37
b. Power Supply 3,3 volt
Gambar 3.8 Rangkaian power supply 3,3 volt LP2985-33DBVR digunakan untuk meregulasi tegangan masuk (5 volt) menjadi tegangan keluaran 3,3 volt. Kapasitor pada keluaran (pin 5) digunakan untuk stabilitas tegangan keluaran. Pin ON/OFF dihubungkan ke Vin jika fitur shutdown tidak digunakan.[13] 3.3 Perancangan Perangkat keras
3.3.1
Perancangan Xbee Pro Series 2 dengan Atmega328P
Gambar 3.9 Antarmuka Xbee ke mikrokontroller
38
Dalam penelitian ini menggunakan 2 buah modul wireless, yaitu jenis Xbee Pro Series 2. Setiap Xbee memiliki alamat masing-masing yakni 0013A200409EE10C (local node) dan 0013A200409EE0D2 (remote node). Komunikasi Xbee dengan mikrokontroller menggunakan Komunikasi serial UART, sehingga hanya membutuhkan pin RX Xbee yang dihubungkan ke pin TX mikrokontroller dan pin TX Xbee dihubungkan ke pin RX mikrokontroller. 3.4 Flowchart pada Mikrokontroller dan Visual Basic (PC) 3.4.1 Remote Mikrokontroller Konsep pemrograman pada remote mikrokontroler dapat digambarkan dengan menggunakan diagram alir (flowchart) seperti berikut Mulai
Inisialisasi serial
Kirim Data serial melalui pin TX
Delay 1000 miliseconds
selesai
Gambar 3.10 Flowchart program pada remote mikrokontroller 3.4.2 Local Mikrokontroller Konsep pemrograman pada local mikrokontroler dapat digambarkan dengan menggunakan diagram alir (flowchart) seperti berikut 39
Mulai
Inisialisasi serial dan port
tidak Jika ada/tidak data yang diterima pada receive serial buffer?
ya
Kirim API AT Command request ,” ATDB” Cek kembali receive serial buffer
Delay 200 miliseconds
Jika ada/tidak data respon dari AT command?
tidak
ya For Int i =0 ; i <10; i++
Baca serial receive buffer
Tampilkan Byte ke 8 ke LCD
selesai Gambar 3.11 Flowchart program pada mikrokontroller lokal
40
Alur kerja diagram alir adalah sebagai berikut: 1. Start dimulainya program 2. Pertama-tama dilakukan untuk inisialisasi serial dan port, proses ini berfungsi untuk mendefinisikan pin-pin I/O mikrokontroller yang akan digunakan dalam rangkaian dan untuk menentukan baud rate yang digunakan untuk mengirim data serial. 3.
Melakukan proses pembacaan serial receive buffer, apakah receive buffer menerima RF data ? Jika ada RF data packet yang diterima maka mikrokontroller akan meminta AT command “ATDB”, jika tidak ada maka mikrokontroller akan terus melakukan pengecekan pada serial receive buffer.
4.
Kemudian mikrokontroller akan melakukan delay selama 200ms untuk menunggu respon dari Xbee.
5. Melakukan proses pembacaan serial receive buffer kembali, apakah ada respon AT command dibalas oleh Xbee? Jika ada mulai melakukan pembacaan setiap byte yang dikirim Xbee sebanyak 10 kali, jika tidak ada maka mikrokontroller akan terus melakukan pengecekan pada serial receive buffer. 6. Tampilkan nilai byte ke 8 ke LCD dan kirim nilai tersebut ke PC karena nilai byte tersebut merupakan nilai RSSI yang akan dianalisa.
41
3.4.3 Visual Basic (PC) Mulai
Inisialisasi serial dan port
Jika ada/tidak data yang diterima pada serial receive ?
tidak ya
Simpan data yang diterima ke “buffer"
Pisahkan string dengan angka, angka di simpan ke “IntRssi” Delay 1000 milisekon
Ambil nilai IntRssi sebanyak 25 kali
Ambil nilai rata-rata Rssi dari 25 data, simpan ke “IntTotal”
jarak = 10 ^ ((IntTotal - 51.375) / 17.6)
Tampilkan jarak
Selesai Gambar 3.12 Flowchar Program pada Visual Basic 6.0 42