Anda di halaman 1dari 114

WIRELESS PORTABLE BARCODE SCANNER

BERBASIS ARDUINO NANO

SKRIPSI

Disusun Oleh :

WAN BUDIMAN
NIM : 16220002

JURUSAN TEKNIK ELEKTRO


FAKULTAS TEKNIK & INFORMATIKA
UNIVERSITAS GAJAYANA
MALANG
2021
WIRELESS PORTABLE BARCODE SCANNER
BERBASIS ARDUINO NANO

Disusun Oleh :

Wan Budiman
NIM : 16220002

Skripsi ini telah disetujui oleh Dosen Pembimbing

Pada tanggal

DOSEN PEMBIMBING

Achmad Setiawan, S.T., M.T. I Nyoman Suspita, S.T., M.M.


NIDN : 0726087002 NIDN : 0702047602

i
WIRELESS PORTABLE BARCODE SCANNER
BERBASIS ARDUINO NANO

Disusun Oleh :

Wan Budiman
NIM : 16220002

Skripsi ini telah disetujui oleh Dosen Penguji


Pada tanggal

Mengetahui
Ketua Prodi Teknik Elektro

M. Nur Sulaiman, S.T.,M.T.


NIDN : 0730037002

ii
ABSTRAK
Wan Budiman, 2021. Wireless Portable Barcode Scanner Berbasis Arduino
Nano. Skripsi Jurusan Teknik Elektro, Fakultas Teknik & Informatika
Universitas Gajayana. Pembimbing: Achmad Setiawan,S.T.,MT.dan I
Nyoman Suspita, S.T.,M.M.

Tugas akhir ini merancang dan membuat prangkat barcode scanner yang
portable dan bisa digunakan dengan praktis. Dimana bisa mengirimkan data secara
nirkabel.
Wireless portable barcode scanner ini menggunakan board Arduino Nano
dimana terdapat Mikrokontroler ATmega328 yang berfungsi sebagai pengolah data
data dari barcode scanner, mengirimkan data secara wireless lewat modul
NRF24L01. Menggunakan software borland delphi d an MS.Acces sebagai media
penyimpanan data barcode sederhana. Dilengkapi dengan baterai kapasitas
10.000MAH yang digunakan sebagai Catudaya.
Dari hasil pengujian, perangkat Wireless Portable dapat melakukan proses
kirim data barcode dengan jarak ± 40 Meter. Dengan 10x pengujian kirim data
barcode yang sama. Data yang didapatkan sesuai dengan data yang di tampilkan
pada serial monitor di PC (Personal komputer).

Kata kunci: Barcode Scanner, Kode Barcode, Arduino Nano, NRF24L01,


Portable.

iii
KATA PENGANTAR

Puji syukur atas kehadiran Allah SWT atas limpahan rahmat dan hidayah-

Nya sehingga penulis dapat menyelesaikan skripsi dengan judul “Wireless Portable

Barcode Scanner”. Skripsi ini merupakan salah satu syarat untuk memperoleh gelar

sarjana bagi setiap mahasiswa Jurusan Teknik Elektro pada Fakultas Teknik &

Informatika Universitas Gajayana Malang.

Keberhasilan penulis dalam menyelesaikan skripsi ini tidak lepas dari

bantuan dan dukungan berbagai pihak. Karena itu, penulis mengucapkan terima

kasih kepada:

1. Bapak Achmad Setiawan, ST, MT selaku dosen pembimbing I

2. I Nyoman Suspita, S.T., M.M selaku dosen pembimbing II.

3. Kedua orang tua saya yang tidak lelah - lelahnya mengirimkan doa.

4. Teman teman dan sanak family,Pak Mario,Aditya, Galih,Nindya, jemi,jeef.

Penulis menyadari bahwa dalam penulisan skripsi ini kurang sempurna,

untuk itu penulis mengharapkan kritik dan saran yang sifatnya membangun demi

sempurnanya skripsi ini.

Penulis berharap semoga Skripsi ini berguna bagi penulis khususnya dan

semua pihak pada umumnya.

Malang, 29 Maret 2021

Penulis.

iv
DAFTAR ISI

Halaman

LEMBAR PERSETUJUAN .................................................................................. i

LEMBAR PENGESAHAN .................................................................................. ii

ABSTRAK ............................................................................................................ iii

KATA PENGANTAR .......................................................................................... iv

DAFTAR ISI .......................................................................................................... v

DAFTAR GAMBAR ............................................................................................ ix

DAFTAR TABEL ............................................................................................... xii

BAB I PENDAHULUAN ...................................................................................... 1

1.1 Latar Belakang ......................................................................................... 1

1.2 Rumusan Masalah .................................................................................... 2

1.3 Batasan Masalah ....................................................................................... 2

1.4 Tujuan ....................................................................................................... 3

1.5 Metodologi ............................................................................................... 3

1.6 Sistematika Penulisan Laporan ................................................................ 4

BAB II LANDASAN TEORI ............................................................................... 5

2.1 Wireless Network Menggunakan Modul NRF24L01 ............................... 5

2.2 Modul Wireless NRF24L01 ..................................................................... 7

v
2.2.1 Enhanced ShockBurst TM Timing................................................... 13

2.2.2 MULTICEIVER ............................................................................... 13

2.3 Arduino IDE ........................................................................................... 16

2.4 Arduino Nano ......................................................................................... 16

2.4.1 Berikut Konfigurasi pin Arduino Nano........................................... 17

2.4.2 Spesifikasi Arduino Nano ............................................................... 19

2.4.3 Pin Input/Output Arduino Nano ...................................................... 19

2.4.4 Sumber Daya Arduino Nano ........................................................... 21

2.4.5 Peta Memori Arduino Nano ............................................................ 22

2.4.6 Memori Program ............................................................................. 22

2.4.7 Memori Data ................................................................................... 22

2.4.8 Memori Data EEPROM .................................................................. 23

2.5 Kode Baris (Barcode) ............................................................................. 24

2.5.1 Definis Barcode ............................................................................... 24

2.5.2 Prinsip Baca Kode Barcode ............................................................ 29

2.5.3 Jenis-jenis Alat Pembaca Barcode .................................................. 30

2.6.5 Interface .......................................................................................... 31

2.6.6 Interface Barcode ............................................................................ 32

2.6.7 Barcode Scanner Honeyweel PS\2 ................................................. 33

2.6.8 Format Data Keluaran Barcode ....................................................... 34

2.7 Komunikasi Serial .................................................................................. 36

vi
A. Sinyal komunikasi serial memiliki beberapa elemen penting

diantaranya: .................................................................................................... 38

2.8 Komunikasi SPI (Serial Peripheral Interface) ....................................... 40

2.8.1 SPI Control Register (SPCR) Mode SPCR yang digunakan sebagai

berikut : ........................................................................................................ 41

2.8.2 SPI Status Register (SPSR) Dalam SPCR mode pengaturan yang

dilakukan adalah sebagai berikut ................................................................... 41

BAB III PERANCANGAN DAN PEMBUATAN ALAT ................................ 42

3.1 Blok Diagram ......................................................................................... 42

3.1.1 Penjelasan Blok Diagram ................................................................ 43

3.1.2 Cara Kerja Sistem ........................................................................... 43

3.2 Perancangan Perangkat Keras (Hardware) ............................................ 44

3.2.1 Perancangan Board Arduino Nano TX dan RX. ............................ 44

3.2.2 Perancangan Board Arduino Nano RX .......................................... 44

3.2.3 Perancangan Wireless 2.4GHz Menggunakan Modul NRF24L01 . 46

3.2.4 Perancangan Sistem Barcode Scanner ............................................ 47

3.3 Perancangan Perangkat Lunak (Software) ............................................. 49

3.4 Perancangan NRF Network .................................................................... 54

3.4.1 Blok Diagram .................................................................................. 54

3.4.2 Cara Kerja Komunikasi dari Node ke Komputer ............................ 55

vii
3.4.3 Mekanisme Membedakan Asal Node yang Mengirimkan Data

Barcode : ........................................................................................................ 55

3.4.5 Perancangan Perangkat Lunak (Software) NRF Network (Client) 56

3.4.6 Perancangan Perangkat Lunak (Software) NRF Network (Host) ... 57

BAB IV PENGUJIAN ALAT............................................................................. 62

4.1 Pengujian Input Output Board Arduino Nano ........................................ 62

4.2 Pengujian Modul NRF24L01 ................................................................. 66

4.3 Pengujian Barcode Scanner .................................................................... 70

4.4 Pengujian Keseluruhan Sistem ............................................................... 74

4.5 Pengujian NRF Network. ....................................................................... 82

4.6 Pengujian Unjuk Kerja Piranti ............................................................... 96

BAB V KESIMPULAN ...................................................................................... 98

5.1 Kesimpulan .................................................................................................. 98

5.2 Saran ....................................................................................................... 99

DAFTAR PUSTAKA ........................................................................................ 100

LAMPIRAN ....................................................................................................... 101

viii
DAFTAR GAMBAR

Gambar 2.1 Topologi Wireless Network menggunakan NRF. ............................... 5

Gambar 2.2 Tree Topology pada Modul NRF24l01 ............................................... 6

Gambar 2.3 Karakteristik Umum NRF24L01 ......................................................... 8

Gambar 2.4 Modul wireless NRF24L01 ................................................................. 8

Gambar 2.5 Konfigurasi pin NRF24L01 ................................................................ 9

Gambar 2.6 Channel Modul NRF24L01 ............................................................... 11

Gambar 2.7 Operasi pewaktuan read dan write SPI ............................................. 12

Gambar 2.8 Urutan pewaktuan dari Modul NRF24L01 ....................................... 13

Gambar 2.9 Sistem Multiceiver ............................................................................ 14

Gambar 2.10 Pola pemberian alamat pada pipe .................................................... 15

Gambar 2.11 Konfigurasi Pin ATMega328 .......................................................... 17

Gambar 2.12 Peta Memori Program ATMega 328. .............................................. 22

Gambar 2.13 Peta Memori Data ATMega 328 ..................................................... 23

Gambar 2.14 Anatomi Barcode............................................................................. 27

Gambar 2.15 Konektor PS/2 ................................................................................. 32

Gambar 2.16 Diagram Sinyal Barcode ................................................................. 33

Gambar 2.17 Barcode Scanner PS2 ...................................................................... 34

Gambar 2.18 Format Frame Komunikasi Serial Sinkron...................................... 36

Gambar 2.19 Format Frame Komunikasi Serial Asinkron ................................... 37

Gambar 3.1 Blok diagram Wireless Portable Barcode Scanner ........................... 42

Gambar 3.2 Perancangan Arduino Nano Pada Bagian TX .................................. 44

Gambar 3.3 Perancangan Arduino Nano Pada Bagian RX .................................. 44

Gambar 3.4 Perancangan Wireless 2.4GHz Menggunakan Modul NRF24L01 ... 46

ix
Gambar 3.5 Perancangan Sistem Barcode Scanner Menggunakan Socket PS/2 .. 47

Gambar 3.6 Perancangan Sambungan Barcode Scanner ke Arduino Nano .......... 48

Gambar 3.7 Alur Pemrograman Wireless Barcode Scanner Bagian TX dan RX . 49

Gambar 3.8 Blok Diagram NRF Network ............................................................ 54

Gambar 3.9 Topologi jaringan wireless network menngunakan NRF.................. 55

Gambar 3.10 Alur Pemrograman Wireless NRF Network Node 01 & Node 02 . 56

Gambar 3.11 Alur Pemrograman Wireless NRF Network Node 00 .................... 57

Gambar 4.1 Pengujian Input Output Arduino Nano ............................................. 62

Gambar 4.2 Pengujian pada saat push button Tidak Ditekan (OFF) .................... 64

Gambar 4.3 Pengujian Pada saat push Button ditekan(ON) ................................. 64

Gambar 4.4 Pengujian Modul Wireless NRF24L01 ............................................. 66

Gambar 4.5 Hasil Pengujian Modul Wireless NRF24L01.................................... 69

Gambar 4. 6 Pengujian Barcode Scanner .............................................................. 70

Gambar 4.7 Hasil Pengujian Barcode Scanner ..................................................... 72

Gambar 4.8 Proses Pengambilan/Scan data Barcode ............................................ 72

Gambar 4.9 Data Barcode Scanner ....................................................................... 73

Gambar 4.10 Blok Diagram Sistem Keseluruhan ................................................. 74

Gambar 4.11 Pengujian Keseluruhan Sistem pada Barcode Scanner. ................. 78

Gambar 4.12 Pengujian keseluruhan sistem pada Barcode Scanner..................... 79

Gambar 4.13 Pengujian keseluruhan Sistem pada Barcode Scanner. ................... 80

Gambar 4.14 Blok Diagram Sistem NRF Network .............................................. 82

Gambar 4.15 Pengujian NRF Network Node 01 . ................................................ 89

Gambar 4.16 Pengujian NRF Network Node 02 . ................................................ 89

Gambar 4.17 Pengujian NRF Network Bagian RX .............................................. 90

x
Gambar 4.18 Pengujian NRF Network sample data Barcode. .............................. 91

Gambar 4.19 Pengujian Proses Pengambilan Data Barcode ................................. 92

Gambar 4.20 Pengujian Sample Data Barcode ..................................................... 93

Gambar 4.21 Hasil Pengujian scanning kode Barcode di Serial Monitor............. 93

Gambar 4.22 Pengujian Data Barcode pada Borland Delphi ................................ 94

Gambar 4.23 Pengujian Data Barcode pada Database MS.Acces ........................ 95

xi
DAFTAR TABEL

Tabel 2.1 Karakteristik Umum NRF24L01 ........................................................... 7

Tabel 2.2 Penjelasan Pin NRF24L01 ..................................................................... 9

Tabel 2.3 Fungsi-fungsi dalam NRF24 (hanya yang umum digunakan) ............. 10

Tabel 2.4 Konfigurasi Pin Arduino Nano ............................................................. 17

Tabel 2.5 Jenis – jenis Pembaca Barcode ............................................................ 31

Tabel 2.6 Keterangan pin Barcode Scanner Honeyweel PS\2 .............................. 34

Tabel 3.1 Penggunaan Pin Pada Arduino Nano ................................................... 45

Tabel 3.2 Pengunaan Pin pada Modul NRF24L01 .............................................. 46

Tabel 3.3 Penggunaan Pin Pada Barcode Scanner ............................................... 48

Tabel 4.1 Hasil Pengujian Input/Output .............................................................. 65

Tabel 4.2 Hasil Pengujian Pengiriman Data Tanpa Penghalang.......................... 96

Tabel 4.3 Hasil Pengujian Pengiriman Data dengan Penghalang ........................ 97

xii
BAB I
PENDAHULUAN

1.1 Latar Belakang

Dalam sistem penjualan umum nya saat ini tidak terpisahkan dengan

teknologi yang digunakan untuk menjumlahkan hasil belanjaan secara otomatis.

Contoh aplikasi sistem ini adalah sistem barcode scanner penjualan di toko Sardo

Swalayan. Sistem Barcode mempunyai peran yang penting dalam sistem

automatisasi. Barcode menyediakan tingkat keakuratan dalam pengambilan data

informasi teks yang sederhana dan murah. Tujuan pokok penggunaan teknologi

Barcode adalah mengidentifikasi sesuatu dengan memberi label barcode yang

berisi data. Sebagai contoh, pegawai toko men-scanning barcode pada suatu

produk, dimana barcode scanner biasanya terhubung langsung ke PC,

menggunakan kabel data USB tipe A, kemudian mencari informasi di database dan

informasi lebih detail termasuk deskripsi barang dan harga.

Dari proses pengambilan data secara langsung dengan menggunakan

barcode scanner yang ada saat ini dirasa kurang efektif. Perlu adanya sistem yang

portable dan praktis. dimana ruangan yang begitu luas dan tempat yang tinggi maka

kelamahan barcode yang ada saat ini terkendala dengan sumber energi nya yaitu

listrik, dimana biasanya langsung bersumber dari PC, serta terkendala saat

mengirimkan data dari hasil scanner ke PC, yang menggunakan socket kabel USB

tipe A atau PS/2. Maka dari itu pastinya membutuhkan kabel yang panjang sehingga

akan memakan biaya tambahan serta menghambat ruang gerak yang luas.

Untuk menjawab permasalahan di atas, maka diperlukan sebuah sistem

barcode scanner yang portable dan praktis. Yang bertujuan untuk mempermudah

1
2

dan mempercepat pengambilan data yang diperlukan. Maka saya sebagai penulis

mengajukan tugas akhir dengan judul “WIRELESS PORTABLE BARCODE

SCANNER BERBASIS ARDUINO NANO”.

1.2 Rumusan Masalah

Dari latar belakang di atas dapat dirumuskan permasalahan yang akan dibahas

yaitu:

1. Bagaimana merancang prangkat keras dan menerapkan wireless barcode

scanner yang bisa mengirimkan data barcode scanner secara wireless

(tanpa kabel).

2. Bagaimana Merancang sistem prangkat lunak agar barcode scanner dengan

board Arduino Nano dan Modul Wireless NRF24L01, dapat mengirimkan

data secara wireless.

3. Bagaimana merancang database yang bisa menyimpan kode barcode.

1.3 Batasan Masalah

Agar permasalahan dalam penulisan Tugas Akhir ini tidak berkembang

karena keterbatasan pengetahuan, waktu dan biaya maka pembahasan dibatasi pada

poin-poin berikut:

1. Menggunakan Modul Wireless NRF24L01

2. Menggunakan Mikrokontroller Arduino Nano.

3. Menggunakan Barcode Scanner 1D tipe Voyager1250g.

4. Lebih menitikberatkan pada sistem komunikasi data dari barcode scanner

ke PC, bukan pada perangkat database.

5. Tidak membahas kebutuhan daya.

6. Menggunakan PC, minimum Prosesor : 1 gigahertz (GHz) atau diatasnya,


3

RAM : 1 gigabyte (GB) for 32-bit atau 2 GB for 64-bit, Windows 10 : 64-

bit dan 32-bit, Graphics card : DirectX 9 atau diatasnya.

1.4 Tujuan

Tujuan dari Tugas Akhir ini adalah membuat dan merancang Sistem

pembaca data barcode scanner yang dapat mengirimkan data melalui jaringan

wireless yang terkoneksi dalam sebuah sistem wireless network. Sehingga untuk

melakukan proses pengambilan data menjadi lebih mudah dan cepat.

1.5 Metodologi

Metodologi yang digunakan dalam penulisan Tugas Akhir ini adalah


Prototyping berikut tahapan nya :
1. Studi Literatur.

Mengumpulkan data melalui sumber-sumber bacaan dari media cetak dan

media elektronik sebagai referensi alat yang akan dibuat.

2. Perancangan Hardware.

Melakukan perancangan dan pembuatan alat wireless portable barcode

scaner berbasis Arduino Nano

3. Perancangan Software.

Merancang program Arduino IDE agar Arduino Nano dapat melakukan

proses pengolahan data dari barcode scanner sehingga bisa mengirimkan

data barcode secara wireless ke PC, lewat Modul wireless NRF24L01.

4. Pengujian Alat.

Maka akan di lakukan uji coba dari sebuah barcode scanner mengirimkan

data ke PC, secara wireless menggunakan Modul NRF24L01 kemudian

dapat diketahui data yang diterima apakah sesuai.

5. Penulisan Laporan .
4

1.6 Sistematika Penulisan Laporan

Secara garis besar pembahasan dari tugas akhir ini terbagi dalam beberapa

bab yaitu :

BAB I : Pendahuluan

Berisi tentang gambaran umum latar belakang penulisan tugas akhir,

rumusan masalah, batasan masalah, tujuan, metologi penelitian dan

sistematika penulisan.

BAB II : Landasan Teori .

Membahas tentang teori penunjang yang digunakan dalam Perancangan dan

pembuatan alat.

BAB III : Perancangan dan Pembuatan Alat.

Berisi tentang persiapan perancangan dan pembuatan alat dari keseluruhan

sistem.

BAB IV : Pengujian Alat

Membahas tentang pengujian yang dilakukan terhadap sistem atau alat yang

telah dibuat.

BAB V : Kesimpulan dan Saran

Berisi hasil ringkasan dari uraian keseluruhan tugas akhir, serta saran-saran

untuk pengembangan lebih lanjut


BAB II
LANDASAN TEORI

Dalam tugas akhir ini, menggunakan Modul NRF24L01. Oleh karena itu

pada bab ini akan terlebih dahulu membahas tentang wireless network

menggunakan Modul NRF24L01

2.1 Wireless Network Menggunakan Modul NRF24L01

Untuk modul NRF yang perlu diperhatikan dalam penggunaannya adalah

pengalamatan adress untuk bagian Host atau client. Prinsip kerja dari wireless

network menggunakan NRF adalah dengan mendeteksi apakah ada jaringan

wireless disekitar modul NRF saat alamat (adress) yang sudah di atur benar, maka

otomatis modul NRF akan terhubung secara langsung baik dari host ke client

maupun dari client menuju host. Berikut cara kerja topologi jaringan wireless

network menggunakan NRF.

Gambar 2.1 Topologi Wireless Network menggunakan NRF.


Sumber : www.howtomechatronics.com

Dari Gambar 2.7 terlihat Satu modul NRF24L01 yaitu sebagai host dapat

secara aktif mendengarkan hingga 6 modul sebagai client secara bersama.

5
6

Berikut dibawah ini terlihat pada Gambar 2.8. Topologi Tree pada modul

NRF24L04.

Gambar 2.2 Tree Topology pada Modul NRF24l01


Sumber : www.Howtomechatronics.com

Dari Gambar 2.8. terlihat bahwa NRF bisa saling terhubung dengan adanya

penyambung antara node 0111 dengn node yang lainnya menuju base 00 yaitu NRF

node 011 dan node 01 menjadi sebagai repeater. Repeater ini berasal dari bahasa

inggris yakni “repeat” yang berarti pengulangan atau lebih lengkapnya repeater

adalah alat yang berguna untuk mengulang dan meneruskan kembali signal. Alat

yang berfungsi untuk memperluas jangkauan sinyal wireless yang lemah dari

wireless utama.
7

2.2 Modul Wireless NRF24L01

Module Wireless NRF24L01 merupakan Module yang mempunyai fungsi

untuk komunikasi jarak jauh atau nirkabel yang memanfaatkan gelombang RF 2.4

GHz yang biasanya diaplikasikan untuk Scientific, Industrial, maupun Medical.

Tegangan operasional normal untuk mengakses Module ini yaitu 3.3Vdc, Module

NRF24L01 memiliki perangkat keras yang berupa baseband logic Enhanced

ShockBurst dan protocol accelerator yang memungkinan untuk berkomunikasi

dalam kecepatan tinggi. NRF24LO1 menggunakan antarmuka SPI untuk

berkomunikasi. Selain itu, Module ini juga memiliki fitur true ULP solution, yang

berfungsi sebagai penghemat konsumsi daya sehingga hemat energi.

NRF24L01 adalah piranti Low Power Transceiver yang bekerja pada Band

2.4 sampai 2.4835 GHz dengan kecepatan transfer hingga 2Mbps. Secara umum

piranti NRF24L01 ini mempunyai spesifikasi sebagai berikut:

Tabel 2.1 Karakteristik Umum NRF24L01

Parameter Nilai Tipikal


Frekuensi Kerja 2.4 GHz sampai 2.4835 GHz
Jumlah kanal 125 kanal
Multiceiver 6 pipe per kanal
Spasi antar kanal 1 MHz atau 2 MHz
Kecepatan Transfer 250 Kbps sampai 2 MBps
Power 0, -6, -12 dan -18 dBm
Interface 4 wire SPI

Sumber : www.scribd.com/document/370202121/Modul-NRF-1

Berikut adalah blok diagram dari NRF24L01 yang terdapat pada Gambar

2.9 dan Gambar 2.10.


8

Gambar 2.3 Karakteristik Umum NRF24L01


Sumber : www.nordicsemi.com

Gambar 2.4 Modul wireless NRF24L01


Sumber : Datasheet NRF24L01

Adapun beberapa spesifikasi dari modul Wireless NRF24L01 sebagai berikut :

• Tegangan kerja rendah 1.9 – 3.6 V

• Tegangan kerja IO port 0 -3.3 Volt

• Transmit power 6dB

• Transmission range 250m area terbuka

• Current 9.0 mA

• Ukuran PCB 15 x 29 mm.

Spesifikasi pin-pin modul NRF24L01 sebagai berikut :


9

Gambar 2.5 Konfigurasi pin NRF24L01


Sumber : Datasheet NRF24L01

Modul Wireless NRF24L01 memiliki 8 buah pin, yang penjelasannya

dapat dilihat pada tabel 2.3.

Tabel 2.2 Penjelasan Pin NRF24L01

PIN NAMA FUNGSI KETERANGAN


1 VCC Power Power supply(1.9V-3.6V)
2 GND Power Ground (0)
3 CE Digital Input Chip Enable Activates RX or TX Mode
/Aktifasi Board NRF24L01 dan pengaturan mode
TX maupun RX
4 CSN Digital Input SPI chip Select
5 SCK Digital Input SPI Clock
6 IRQ Digital Output Maskable Interrupt
7 MOSI Digital Input SPI Slave Data Input
8 MISO Digital Output SPI Slave Data Output

Sumber : Datasheet NRF24L01

Untuk dapat memanfaatkan fitur-fitur yang dimiliki oleh NRF24L01

menggunakan board Arduino, para pengembang Arduino telah mengembangkan

sebuah library khusus yang disebut RF24. Berikut ini fungsi-fungsi yang umum

digunakan dalam komunikasi data berbasis NRF24L01.


10

Tabel 2.3 Fungsi-fungsi dalam NRF24 (hanya yang umum digunakan)

No Sintaks Fungsi
1 RF24( CE, CSN) Constructor dengan penetapan letak
pin CE dan CSN pada Arduino
2 begin( ) Memulai operasi chip NRF24L01
3 openWritingPipe (uint64_t Open pipe untuk penulisan (Tx)
alamat)
4 openReadingPipe(uint8_t Open Pipe untuk pembacaan (Rx),
nomor, uint64_t alamat) nomor -> nomor pipe ( 1 - 5),
alamat-> alamat 40 bit
5 startListening( ) Mode Rx
6 stopListening( ) Mode Tx
7 available( ) Pengecekan data ada di buffer ata
8 read( *buff, uint8_t panjang) Pembacaan data dari buffer
9 write( *buff, uint8_t panjang) Penulisan data ke buffer untuk
dikirim
10 setChannel(uint8_t kanal) Set kanal dari 0 -127

Sumber : www.scribd.com/document/370202121/Modul-NRF-1

Ada beberapa fitur Modul Wireless NRF24L01 sebagai berikut :

1. Data rate mencapai 2Mbps

2. Penanganan transaksi paket otomatis

3. Beroperasi pada pada pita ISM 2.4 GHZ

4. Konsumsi daya yang rendah

5. Penanganan paket data otomatis

Ketika CSN diatur low, maka kondisi ini menandakan bahwa siap

mengambil intruksi. Setiap intruksi baru harus dimulai dengan transisi high ke low

pada CSN. Pada pararel intruksi SPI word diterapkan pada pin MOSI, status

register bergeser secara serial melalui pin MISO. Perintah SPI untuk pemindahan

data serial seperti berikut :

1. <Command word : MSBit to LSBit (one byte)>

2. <Data bytes : LSByte to MSBit in each byte first>


11

Modul NRF24L01 dapat dikonfigurasikan dalam mode power down,

standby, rx dan tx.

Modul NRF24L01 dapat mengirimkan dan menerima data pada frekuensi

tertentu yang disebut Channel. Modul transceiver NRF24L01 dapat berkomunikasi

lewat empat pin SPI. Parameter seperti frekuensi channel sebanyak 125 channel,

dan data rate (250kbps,1mbps, dan 2mbps) dapat dikonfigurasikan melalui Spi

interface.

Agar dua atau lebih modul dapat saling berkomunikasai, maka modul harus

berada di saluran yang sama. Saluran ini dapat digunakan pada frekuensi yang

berada di pita ISM 2,4 GHz atau lebih, bisa diantara 2,400 hingga 2,525 GHz (2400

hingga 2525 MHz). Setiap saluran memiliki bandwidth kurang dari 1MHz. sehigga

banyak cahnnel yang tersedia adalah 125 channel dengan jarak 1MHz. Jadi, modul

dapat menggunakan 125 saluran berbeda pada satu modul komunikasi yang bekerja

secara mandiri di satu tempat.

Gambar 2.6 Channel Modul NRF24L01


Sumber : www.lastminuteEngineers.com
12

Proses writing bisa berakhir sebelum semua byte dalam register multi-byte

telah ditulis. Dalam hal ini MSByte yang tidak tertulis akan tetap tidak berubah-

ubah. Misalkan LSByte dari RX_ADDR_P0 dapat dimodifikasi dengan satu byte

ke register akan selalu terbaca ke MISO setelah trasisi high ke low pada CSN.

Gambar 2.7 Operasi pewaktuan read dan write SPI


Sumber : www.nordicsemi.com

Keterangan :

Cn : SPI instruksi bit

Sn : Status register bit

Dn : Data bit (LSByte ke MSByte, MSBit disetiap byte pertama)

Operasi SPI pada Gambar 2.13 Modul harus berada dalam kondisi standby

mode atau power down sebelum melakukan proses penulisan ke konfigurasi

register.

Diagram urutan pewaktuan dari modul NRF24L01 yang ditunjukkan pada

Gambar 2.14 di bawah ini :


13

Gambar 2.8 Urutan pewaktuan dari Modul NRF24L01


Sumber : www.nordicsemi.com

2.2.1 Enhanced ShockBurst TM Timing

Bagian ini menjelaskan urutan waktu Enhanced ShockBurstTM dan

bagaimana semua mode dimulai dan dioperasikan. Waktu Enhanced ShockBurst

dikontrol melalui antarmuka Data dan Kontrol. NRF24L01 dapat diatur ke mode

statis atau mode otomatis dimana mesin mengontrol status internal. Setiap

mode/urutan otomatis diakhiri dengan interupsi pada pin IRQ. Semua interupsi

diindikasikan sebagai tanda IRQ dalam diagram waktu.

2.2.2 MULTICEIVER

Multiceiver adalah fitur dalam NRF24L01, dimana 1 buah NRF dalam mode

Rx (Receiver) dapat melayani penerimaan data dari 6 buah NRF lain dalam mode

Tx(Transceiver) pada satu kanal frekuensi. Secara diagram terlihat pada Gambar

2.15 sebagai berikut :


14

Gambar 2.9 Sistem Multiceiver


Sumber : www.nordicsemi.com

Pada dasarnya konsep Muticeiver adalah membagi masing-masing PTX

(yaitu PTX1 sampai PTX6) agar mempunyai saluran tersendiri (disebut pipe)

sedemikian rupa sehingga setiap PTX dapat dikenali dan dilayani oleh PRX secara

mandiri. Fitur multiceiver merupakan fitur yang digunakan dalam mode TX dan

RX yang berisi serangkaian enam pipe data pararel dengan masing-masing alamat

yang berbeda. Setiap pipe data memiliki alamat data yang berbeda.

memberi alamat yang berbeda untuk masing-masing PTX sebagaimana

diagram berikut:
15

Gambar 2.10 Pola pemberian alamat pada pipe


Sumber : www.nordicsemi.com

Dari Gambar 2.16 diatas terlihat bahwa :

a. Pipe 0 harus dibuat berbeda dengan pipe 1 sampai 5.

b. Pipe 5 mempunyi 4 Byte atas yang sama ( Byte 1 sampai Byte 4) dan 1 Byte

bawah yang berbeda (Byte 0)


16

2.3 Arduino IDE

Arduino adalah platform pembuatan prototype elektronik yang bersifat

open-source hardware yang berdasarkan pada perangkat keras dan perangkat lunak

yang fleksibel dan mudah digunakan.

Bahasa pemrograman Arduino adalah bahasa pemrograman yang umum

digunakan untuk membuat perangkat lunak yang ditanamkan pada board Arduino.

Bahasa permrograman arduino mirip dengan bahasa pemrograman C++. Tapi untuk

Arduino sendiri mempunyai jendela pemrograman IDE. Arduino adalah kombinasi

dari hardware, bahasa pemrograman dan Integrated Development Environment

(IDE) yang canggih. IDE adalah sebuah software yang sangat berperan untuk

menulis program, meng-compile menjadi kode biner dan meng-upload ke dalam

memory microcontroller.

2.4 Arduino Nano

Arduino Nano merupakan mikrokontroler berbasis ATmega 328 sebagai

komponen inti atau otak dari Mikrokontroler Arduino Nano (versi Arduino Nano

3.xx). Keunggulan dari Arduino Nano ini adalah ukurannya yang kecil sehingga

bisa menghemat tempat di dalam sistem. menggunakan mini B-USB kabel.

Tampilan Arduino Nano dapat dilihat pada Gambar 2.17.


17

Gambar 2.11 Konfigurasi Pin ATMega328


Sumber : Datasheet ATMega328

2.4.1 Berikut Konfigurasi pin Arduino Nano.

Tabel 2.4 menjelaskan konfigurasi pin dari Arduino Nano.

Tabel 2.4 Konfigurasi Pin Arduino Nano


Nomor Pin Nama Pin Nomor Pin Nama Pin
Arduino Nano Arduino Nano Arduino Nano Arduino Nano
1 Digital Pin 1 (TX) 16 Digital Pin 13 (SCK)
2 Digital Pin 0 (RX) 18 AREF
3 Reset, aktif LOW 19 Analog Input 0
4 GND 20 Analog Input 1
5 Digital Pin 2 21 Analog Input 2
6 Digital Pin 3 (PWM) 22 Analog Input 3
7 Digital Pin 4 23 Analog Input 4
8 Digital Pin 5 (PWM) 24 Analog Input 5
9 Digital Pin 6 (PWM) 25 Analog Input 6
10 Digital Pin 7 26 Analog Input 7
11 Digital Pin 8 27 VCC (5 Volt)
12 Digital Pin 9 (PWM) 28 Reset
13 Digital Pin 10 (PWM- 29 Ground
SS)
14 Digitl Pin 11 (PWM- 30 VIN (Input
MOSI) tegangan supply)
15 Digital Pin 12 (MISO) 16 Digital Pin 13 (SCK)

Sumber : Datasheet Arduino Nano.


18

Adapun spesifikasi data teknis board Arduino Nano sebagai berikut :

Arduino Nano memiliki 30 Pin. Berikut konfigurasi pin Arduino Nano.

1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya digital.

2. GND merupakan pin ground untuk catu daya digital.

3. AREF merupakan Referensi tegangan untuk input analog. Digunakan

dengan fungsi analogReference().

4. RESET merupakan Jalur LOW ini digunakan untuk me-reset

(menghidupkan ulang) mikrokontroler. Biasanya digunakan untuk

menambahkan tombol reset pada shield yang menghalangi papan utama

Arduino.

5. Serial RX (0) merupakan pin sebagai penerima TTL data serial.

6. Serial TX (1) merupakan pin sebagai pengirim TTL data serial.

7. External Interrupt (Interupsi Eksternal) merupakan pin yang dapat

dikonfigurasi untuk memicu sebuah interupsi pada nilai yang rendah,

meningkat atau menurun, atau perubahan nilai.

8. Output PWM 8 Bit merupakan pin yang berfungsi untuk data analogWrite().

9. SPI merupakan pin yang berfungsi sebagai pendukung komunikasi.

10. LED merupakan pin yang berfungsi sebagai pin yag diset bernilai HIGH,

maka LED akan menyala, ketika pin diset bernilai LOW maka LED padam.

LED Tersedia secara built-in pada papan Arduino Nano.

11. Input Analog (A0-A7) merupakan pin yang berfungsi sebagi pin yang dapat

diukur/diatur dari mulai Ground sampai dengan 5 Volt, juga memungkinkan

untuk mengubah titik jangkauan tertinggi atau terendah mereka

menggunakan fungsi analogReference().


19

2.4.2 Spesifikasi Arduino Nano

Berikut ini adalah Spesifikasi yang dimiliki oleh Arduino Nano:

1. MikrokontrolerAtmel ATmega168 atau ATmega328

2. 5 V Tegangan Operasi

3. 7-12VInput Voltage (disarankan)

4. 6-20VInput Voltage (limit)

5. Pin Digital I/O14 (6 pin digunakan sebagai output PWM)

6. 8 Pin Input Analog

7. 40 mA Arus DC per pin I/O

8. Flash Memory16KB (ATmega168) atau 32KB (ATmega328) 2KB

digunakan oleh Bootloader

9. 1 KbyteSRAM (ATmega168) atau 2 Kbyte(ATmega328)

10. 512 ByteEEPROM (ATmega168) atau 1Kbyte (ATmega328)

11. 16 MHz Clock Speed

12. Ukuran1.85cm x 4.3cm

2.4.3 Pin Input/Output Arduino Nano

Masing-masing dari 14 pin digital Arduino Nano dapat digunakan sebagai

Input atau Output menggunakan fungsi pinMode(), digitalWrite() dandigitalRead().

Setiap pin beroperasi pada tegangan 5 Volt. Setiap pin mampu menerima atau

menghasilkan arus maksimum sebasar 40 mA dan memiliki resistor pull-up internal


20

sebesar 20-30 KOhm. Sebagai tambahan, beberapa pin Input digital memiliki

kegunaan khusus yaitu:

➢ Komunikasi serial: pin 0 (RX) dan pin 1 (TX), digunakan untuk menerima

(RX) dan mengirim (TX) data secara serial.

➢ External Interrupt: pin 2 dan pin 3, pin ini dapat dikonfigurasi untuk memicu

sebuah interrupt pada nilai rendah, sisi naik atau turun atau pada saat terjadi

perubahan nilai.

➢ Pulse Width Modulation (PWM): pin 3,5,6,9,10 dan 11, menyediakan

keluaran PWM 8-bit dengan menggunakan fungsi analogWrite().

➢ Serial Peripheral Interface (SPI): pin 10 (SS), 11 (MOSI), 12 (MISO) dan

13 (SCK), pin ini mendukung komunikasi SPI dengan menggunakan SPI

library.

➢ LED: pin 13, terdapat built-in LED yang terhubung ke pin digital 13. Ketika

pin bernilai HIGH maka LED menyala, sebaliknya ketika pin bernilai LOW

maka LED akan padam.

Arduino Nano memiliki 8 Input analog yang diberi label A0 sampai A7,

setiap pin menyediakan resolusi sebanyak 10 bit (1024 nilai yang berbeda). Secara

umum pin-pin diukur nilai tegangan dari ground (0V) hingga 5V, walaupun begitu

dimungkinkan untuk mengganti nilai batas atas dengan menggunakan pin AREF

dan fungsi analogReference(). Sebagai tambahan beberapa pin Input analog

memiliki fungsi khusus yaitu pin A4 (SDA) dan pin A5 (SCL) yang digunakan

untuk komunikasi Two Wire Interface (TWI) atau Inter Integrated Circuit (I2C)

dengan menggunakan Wire library .


21

2.4.4 Sumber Daya Arduino Nano

Arduino Nano dapat diaktifkan melalui koneksi USB Mini-B, atau melalui

catu daya eksternal dengan tegangan belum teregulasi antara 6-20 Volt yang

dihubungkan melalui pin 30 atau pin VIN, atau melalui catu daya eksternal

dengan tegangan teregulasi 5 volt melalui pin 27 atau pin 5V. Sumber daya akan

secara otomatis dipilih dari sumber tegangan yang lebih tinggi. Chip FTDI

FT232L pada Arduino Nano akan aktif apabila memperoleh daya melalui USB,

ketika Arduino Nano diberikan daya dari luar (Non-USB) maka Chip FTDI tidak

aktif dan pin 3.3V pun tidak tersedia (tidak mengeluarkan tegangan), sedangkan

LED TX dan RX pun berkedip apabila pin digital 0 dan 1 berada pada posisi

HIGH.

Pin-pin tegangan pada Arduino Nano adalah sebagai berikut:

➢ Pin Vin adalah pin untuk mengalirkan sumber tegangan keArduino Nano

ketika menggunakan sumber tegangan eksternal (selain dari koneksi USB

atau sumber tegangan yang teregulasi lainnya).

➢ Pin 5V adalah pin yang menyediakan tegangan teregulasi sebesar 5 Volt

berasal dari regulator tegangan pada Arduino Nano.

➢ Pin 3V3 adalah pin yang meyediakan tegangan teregulasi sebesar 3,3 volt

berasal dari regulator tegangan pada Arduino Nano.

➢ Pin GND adalah pin ground.


22

2.4.5 Peta Memori Arduino Nano

Arduino Nano adalah board Arduino yang menggunakan mikrokontroler

atmega328. Maka peta memori Arduino Nano sama dengan peta memori pada

mikrokontroler ATmega328.

2.4.6 Memori Program

ATMega328 memiliki 32K byte On-chip In-System Reprogrammable

Flash Memory untuk menyimpan program. Memori flash dibagi kedalam dua

bagian, yaitu bagian program bootloader dan aplikasi seperti terlihat pada Gambar

2.18, Bootloader adalah program kecil yang bekerja pada saat sistem dimulai yang

dapat memasukkan seluruh program aplikasi kedalam memori prosesor.

Gambar 2.12 Peta Memori Program ATMega 328.


Sumber : Datasheet Atmega328/P:34

2.4.7 Memori Data

Memori Data Memori data ATMega328 terbagi menjadi 4 bagian, yaitu 32

lokasi untuk register umum, 64 lokasi untuk register I/O, 160 lokasi untuk register

I/O tambahan dan sisanya 2048 lokasi untuk data SRAM internal. Register umum

menempati alamat data terbawah, yaitu 0x0000 sampai 0x001F. Register I/O
23

menempati 64 alamat berikutnya mulai dari 0x0020 hingga 0x005F. Register I/O

tambahan menempati 160 alamat berikutnya mulai dari 0x0060 hingga 0x00FF.

Sisa alamat berikutnya mulai dari 0x0100 hingga 0x08FF digunakan untuk SRAM

internal. Peta memori data dari ATMega328 dapat dilihat pada Gambar 2.19.

Gambar 2.13 Peta Memori Data ATMega 328


Sumber : Datasheet Atmega328/P:35

2.4.8 Memori Data EEPROM

Arduino Nano terdiri dari 1 KByte memori data EEPROM. Pada memori

EEPROM, data dapat ditulis / dibaca kembali dan ketika catu daya dimatikan, data

terakhir yang ditulis pada memori EEPROM masih tersimpan pada memori ini, atau

dengan kata lain memori EEPROM bersifat nonvolatile. Alamat EEPROM dimulai

dari 0x000 hingga 0x3FF.


24

2.5 Kode Baris (Barcode)

Barcode pertama kali muncul dan diperkenalkan oleh dua orang mahasiswa

Drexel Institute of Technology Bernard Silver dan Norman Joseph Woodland

pada tahun 1948. Mereka mulai mematenkan inovasi barcode tersebut pada tahun

1949 dan permohonan tersebut baru dikabulkan pada tahun 1952. Namun baru

pada tahun 1996, penemuan mereka mulai digunakan dalam dunia komersial.

2.5.1 Definis Barcode

Barcode adalah Sebuah kode batang atau barcode adalah susunan garis

cetak vertikal hitam (bar) dan putih (spasi) dengan lebar garis yang berbeda, untuk

menyimpan data – data spesifik seperti kode produksi, nomor identitas dan lainnya,

sehingga komputer dapat mengidentifikasi dengan informasi yang dikodekan dalam

barcode. Kode barcode juga dapat digambarkan dengan angka 1 untuk

melambangkan garis hitam dan 0 untuk garis putih. Misalnya 0011000

mepresentasikan spasi-spasi-garis-garis-spasi-spasi-spasi. Garis-garis ini

digambarkan berderet secara horizontal dan merupakan representasi karakter-

karakter alpha-numerik (alphabet dan numerik), untuk membantu pembacaan

barcode secara manual, biasanya dicantumkan juga angka - angka atau huruf-huruf

di bawah kode baris tersebut.

Barcode juga merupakan suatu teknologi identifikasi otomatis yang sangat

sederhana, pengambilan datanya dilakukan dengan lebih cepat dan lebih akurat.

Barcode scanner marupakan hardware yang menghubungkan kode bar (barcode)

dengan komputer dan menerjemahkannya dalam bentuk angka/karakter yang bisa

dikenali oleh sebuah aplikasi.


25

Fungsi barcode scanner atau barcode reader umumnya digunakan oleh

toko-toko, perusahaan, rumah sakit, perpustakaan dan lain-lain. Port barcode bisa

dipasangkan untuk port serial, PS 2 atau USB.

Jenis-jenis, Barcode yaitu :

1. Barcode satu dimensi (1D)

Barcode satu dimensi biasanya dinamakan linear bar codes (kode berbentuk

baris).

a. Kode 39 sebuah barcode alphanumeric (barcode full ASCII).

Mempunyai panjang baris yang bervariasi. Digunakan untuk tanda

pengenal identitas.

b. Interleaved 2 of 5, memiliki bentuk numeric dan mempunyai panjang

baris yang bervariasi. Digunakan untuk industry dan laboratorium.

c. Kode 128 barcode full ASCI yang memiliki kerapatan sangat tinggi

serta panjang baris yang bervariasi. Digunakan untuk sistem shiping and

warehouse management.

d. UPC (Universal Prount Code), sebuah barcode numeric dan

memiliki panjang baris yang tetap. Banyak digunakan pelabelan

produk-produk berukuran kecil.

2. Barcode dua dimensi (2D)

Barcode dua dimensi ini memiliki beberapa keuntungan dibandingkan

linear bar codes (barcode satu dimensi) yaitu, Mampu memuat ratusan digit

karakter dan tampilannya juga berbeda dengan satu dimensi. Pada barcode dua

dimensi informasi atau data yang besar bisa disimpan dalam ruang yang kecil.
26

Dengan contoh yaitu PDF417 yang mampu menyimpan lebih dari 2000 karakter

dalam sebuah ruang 4.

Terdapat beberapa standar kode dalam Barcode sesuai dengan kegunaan

dan tujuan pemakaian Barcode, seperti pada daftar berikut :

1. Uniform Product Code (UPC): Diguanakan untuk checkout penjualan,

persediaan, dan sebagainya pada toko retail.

2. Code 39 (Code 3 of 9): Digunakan untuk identifikasi, inventarisasi, dan

pengiriman pelacakan.

2. POSTNET: Digunakan untuk kode pos encoding di US mail.

3. European Article Number (EAN): Digunakan untuk sebuah superset dari

UPC yang memungkinkan digit ekstra untuk identifikasi negara.

4. Japanese Article Number (JAN): Dhampir serupa dengan EAN, namum

penggunaan jenis ini lebih banyak digunakan di Jepang.

5. Bookland: bekerja berdasarkan nomor ISBN dan digunakan pada sampul

buku.

6. ISSN bar Code: Bekerja berdasarkan nomor ISSN, digunakan pada majalah

di luar AS.

7. Code 128: Digunakan dalam preferensi untuk Code 39 karena lebih kompak.

8. Interleaved 2 of 5 Digunakan dalam industri pelayaran dan gudang.

9. Codabar: Digunakan olen Federal Express, di perpustakaan dan bank darah.

10. Magnetic Ink Character Recognition (MICR) : Sebuah font khusus yang

digunakan untuk nomor di bagian bawah cek bank.

11. OCR-A: Format pengenalan karakter optik yang digunakan pada sampul

buku, untuk nomor ISBN agar bisa dibaca oleh manusia.


27

12. OCR-B: Digunakan untuk mempermudah pembacaan Barcode versi UPC,

EAN, JAN, Bookland, dan ISSN dan Code 39.

13. MaxiCode: Digunakan oleh United Parcel Service.

14. PDF417: Suatu jenis Barcode 2-D barn yang dapat enCode sampai 1108 byte

informasi; dapat terkompresi seperti pada sebuah portabel file data (PDF).

Bentuk barcode dapat dilihat dari Gambar 2.20 sebagai berikut :

Gambar 2.14 Anatomi Barcode


Sumber : http://www.kiosbarcode.com/anatomi-barcode

Keterangan Gambar anatomi Barcode dari Gambar 2.20 :

1. Number System Character

Angka ini merupakan sebuah bilangan barcode UPC yang

mengkarakteristikkan jenis-jenis khusus pada barcode. Didalam barcode UPC,

NSC ini biasanya terletak disebelah kiri barcode.

Kode-kode yang tertera adalah sebagai berikut:

0-standard UPC number

1-reserved

2-random weight items likefruits,vegetables,andmeats

3-Pharmaceuticals.
28

4-in-storecodeforretailers

5-Coupons

6-Standard UPCnumber

7-Standard UPC number

8-reserved

9-reserved

2. Guard Bars

Ada tiga guard bars yang ditempatkan diawal, ditengah, dan akhir barcode.

Guards bars bagian awal dan akhir di encode kan sebagai “bar-space-bar” atau

“101”. Guardbar bagian tengah di-encode-kan sebagai “space-bar-space” atau

“01010”.

3. Manufacturer code

Kode perusahaan ini ada lima digit bilangan yang secara khusus

menetukan manufaktur suatu produk. Kode perusahaan/manufaktur ini

dilindungi dan ditetapkan oleh Uniform Code Council .

4. Product Code

Kode Produk ini terdiri dari 5 digit bilangan yang ditetapkan oleh

perusahaan/manufaktur untuk setiap produk yang dihasilkanya.Setiap produk

yang berbeda dan setiap ukuran yang berbeda memiliki kode produk yang unik.

5. Check Digit

Disebut sebagai digit shelfcheck. Check digit ini terletak dibagian luar

sebelah kanan barcode. Check digit ini merupakan suatu olds Programmer’s trick

untuk memvalidasi digit-digit lainya yang dibaca secara teliti Selanjutnya, masing-

masing batang pada barcode memiliki ketebalan yang berbeda. Ketebalan inilah

yang akan diterjemah kanpada suatu nilai. Demikian, karena ketebalan batang
29

barcode menentukan waktu lintasan bagi titik sinar pembaca yang dipancarkan oleh

alat pembaca.

Oleh sebab itu, batang-batang barcode harus dibuat demikian sehingga

memilki kontras yang tinggi terhadap celah antara yang menentukan cahaya.

Sisi- sisi batang barcode harus tegak dan lurus, serta tidak ada lubang atau noda

titik tengah permukaannya. Sementara itu, ukuran titik sinar pembaca juga tidak

boleh melebihi celah antara batang barcode. Saat ini, ukuran titik sinar yang

umum digunakan adalah 4 kali titik yang dihasilkan printer pada resolusi 300dpi.

2.5.2 Prinsip Baca Kode Barcode

Barcode merupakan instrumen yang bekerja berdasarkan asas kerja digital.

Pada konsep digital, hanya ada 2 sinyal data yang dikenal dan bersifat boolean,

yaitu 0 atau 1. Ada arus listrik atau tidak ada (dengan besaran tegangan tertentu,

misalnya 5 volt dan 0 volt). Barcode menerapkannya pada batang-batang baris yang

terdiri dari warna hitam dan putih. Warna hitam mewakili bilangan 1 dan warna

putih mewakili bilangan 0. Warna hitam akan menyerap cahaya yang dipancarkan

oleh alat pembaca barcode, sedangkan warna putih akan memantulkan balik cahaya

tersebut. Selanjutnya, masing-masing batang pada barcode memiliki ketebalan

yang berbeda. Ketebalan inilah yang akan diterjemahkan pada suatu nilai.

Saat ini terdapat beberapa jenis instrumen pembaca barcode, yaitu: pena,

laser, serta kamera. Pembaca berbentuk pena memiliki pemancar cahaya dan dioda

foto yang diletakkan bersebelahan pada ujung pena. Pena disentuhkan dan

digerakkan melintasi deretan batang barcode, dioda foto akan menerima

intensitas cahaya yang dipantulkan dan mengubahnya menjadi sinyal listrik, lalu

diterjemahkan dengan sistem yang mirip dengan morse.


30

Pembaca dengan pemancar sinar laser tidak perlu digesekkan pada

permukaan barcode, tapi dapat dilakukan dari jarak yang relatif lebih jauh. Selain

itu, pembaca jenis ini memiliki cermin-cermin pemantul sehingga sudut

pembacaan lebih fleksible. Pembaca barcode dengan sistem kamera menggunaka

sensor CCD (charge coupled device) untuk merekam foto barcode, baru

kemudian dibaca dan menterjemahkan kedalam sinyal elektronik digital.

Suatu bilangan barcode tunggal sebenarnya terdiri dari tujuh unit. Satu unit

terdiri dari salah satu warna hitam atau putih. Sebuah unit yang berwarna

hitam ditunjukkan dengan sebuah bar, sedangkan yang berwarna putih ditunjukkan

dengan sebuah space (spasi). Cara lain penulisan barcode adalah dengan bilang “1”

untuk menyatakan black bar dan bilangan “0” untuk menyatakan white space.

2.5.3 Jenis-jenis Alat Pembaca Barcode

Ada 4 jenis pembaca Barcode yang ditunjukkan pada tabel berikut ini. Tiap-

tiap pembaca barcode mempunyai harga khusus dan karakteristik pengoperasian.

Jenis – jenis pembaca Barcode dapat dilihat pada tabel dibawah ini :
31

Tabel 2.5 Jenis – jenis Pembaca Barcode


Jenis Deskripsi Sensitifitas Sensitifitas
LED Red light emitting diode Paling rendah
IR Infrared Sedang
Narrow Band Laser Paling tinggi
Fiberoptic Environment Tinggi

Sumber : www.olsera.com/id/pos

2.6.5 Interface

Menurut (Dwi Sutadi, 2003) Interface atau antar muka adalah rangkaian

yang bertugas menyesuaikan kerja dari peripheral yang sesuai dengan cara kerja

komputer itu sendiri. Rangkaian ini diperlukan karena besarnya (tegangan, arus,

daya dan kecepatan proses) piranti peripheral kebanyakan tidak sesuai dengan

peripheral input-output device, maka besaran ini harus disesuaikan dengan bantuan

interface. Untuk menghubungkan piranti peripheral seperti relay, motor, indikator,

sensor, catu daya, dan lain-lain diperlukan interface. Pengertian interface itu sendiri

adalah rangkaian elektronika yang digunakan untuk menghubungkan antara dua

sistem, agar sistem tersebut bisa berkomunikasi atau proses handshaking.

1. Interface Port Parallel

Parallel Port merupakan salah satu Interface yang ada dari beberapa jenis

Interface. Parallel Port sudah disediakan dengan sistem serial port untuk

pengiriman data ke printer yang teknologinya cepat berkembang. Parallel Port

mempunyai kemampuan pengiriman 8 bit data sedangkan serial port hanya dapat

mengirim 1 bit data dalam waktu yang bersamaan.

2. Interface Keyboard

Keyboard PC dibangun dengan mikrokontroler MCS48, yang merupakan

saudara tua MCS51 tapi jauh lebih sederhana. Konektor yang umum digunakan
32

saat ini adalah tipe PS/2. Komunikasi pada keyboard adalah secara serial dan

dibutuhkan 2 bit untuk mengontrol sinyal clock.

2.6.6 Interface Barcode

Dalam pembacaannya barcode memiliki beberapa mode interface yaitu :

➢ Keyboard mode

➢ RS232 mode

➢ USB mode

(Sumber: Bar Code Reader CD-2860 User's Manual)

Dalam perancangan skripsi digunakan keyboard mode dengan

menggunakan PS/2 connector. Dibawah ini merupakan bentuk dan fungsi masing-

masing dari port PS2 :

Fungsi pin Mini-DIN (PS/2) terdapat pada gambar 2.21 dibawah ini :

Gambar 2.15 Konektor PS/2


Sumber : Anonymous, "PS-2 Port”, http://www.ctips.com/ps2.html, 2005
33

Dalam keyboard mode ini, barcode memiliki sistem pengiriman data yang

sama dengan keyboard. Sistem pengiriman data barcode ini adalah secara

synchronous. Dibawah ini adalah gambar diagram sinyal barcode :

Gambar 2.16 Diagram Sinyal Barcode


Sumber : Anonymous, "PS-2 Port", http://www.ctips.com/ps2.html, 2005

Langkah awal untuk membuat barcode dapat mengirimkan data ke

mikrokontroller adalah mikrokontroller tersebut harus memberi nilai logika high

pada pin clock barcode dan data barcode. Apabila barcode tersebut menerima data

dari buku yang terdapat label barcode yang di scanning maka barcode akan

mengirimkan sinyal clock dan data secara synchronous, yaitu pengiriman data yang

diawali dengan perubahan bit clock dari high ke low (falling edge). Seperti

ditunjukan pada Gambar 2.22.

2.6.7 Barcode Scanner Honeyweel PS\2

Barcode Scanner Honeyweel menggunakan socket PS\2 yang hanya bisa

membaca kode barcode sebanyak maksimal 13 digit. Dan menggunakan tegangan

maksimal 5 Volt DC.


34

Gambar 2.17 Barcode Scanner PS2


Sumber : www.Honeyweel.com

Tabel 2.6 Keterangan pin Barcode Scanner Honeyweel PS\2

N0. Pin Keterangan


1 VCC Supply tegangan 5V
2 Clock Clock pin
3 Data Data pin
4 GND GND

Sumber : www.Honeyweel.com

2.6.8 Format Data Keluaran Barcode

Data keluaran barcode berupa scan code yang terdiri atas make code dan

break code yang memiliki nilai yang berbeda untuk setiap karakter (huruf dan

angka). Make code merupakan nilai dari suatu karakter. Sedangkan break code

adalah suatu nilai yang menandakan akhir dari sebuah karakter. Break code terdiri

dari dua byte, byte pertama selalu bernilai FOh, dan byte kedua merupakan nilai

dari make codenya.


35

Pembaca Barcode memiliki kinerja yang terbatas Dengan string biner, maka

dapat menggunakan aturan pengkodean untuk mendapatkan nomor EAN / UPC,

Saat tombol pada keyboard ditekan, kode dikirim ke CPU host. Dengan bantuan

tabel pencarian ASCII, host dapat menentukan fungsi tombol yang ditekan. Kode

yang ditransmisikan disebut kode pemindaian dan selanjutnya diklasifikasikan

sebagai kode “make” .

Kebanyakan kode pemindaian adalah panjang 1 byte, dengan pengecualian

beberapa kunci diperpanjang (SHIFT, CTRL, PAUSE). Tombol yang diperluas

dapat dikenali oleh awalan E0h ke kode pembuatannya. Kode istirahat yang sesuai

untuk kunci terdiri dari awalan byte F0h, diikuti oleh kode pembuatan untuk kunci

itu. Sekali lagi, kunci diperpanjang adalah pengecualian untuk aturan ini dengan

byte F0h ditempatkan setelah byte E0h dari kode pembuatan awal. Kunci PAUSE

adalah pengecualian untuk keputusan kunci standar dan diperpanjang. Pertama,

kode pembuatannya adalah panjang 8 byte dan dimulai dengan E1h dan bukan E0h.

Kedua, tidak ada kode istirahat. Kode pembuatan dan pemecahan untuk semua

tombol pada keyboard PS/2 merupakan set kode pemindaian.

Ada tiga set kode pemindaian yang didefinisikan tetapi hanya kode

pemindaian yang ditetapkan dua yang diakui sepenuhnya dan digunakan sebagai

default yang ditetapkan oleh semua keyboard PS/2 modern.

Untuk lebih jelas mencantumkan kode tombol pada keyboard PS/2 standar,

dengan kode pemindaiannya (set code), terdapat pada lampiran no.4 datasheet tabel

keyboard PS/2 standart.


36

2.7 Komunikasi Serial

Komunikasi Serial adalah pengiriman data satu persatu secara berurutan

dalam waktu terterntu. Oleh karena itu komunikasi serial lebih lambat dari pada

komunikasi paralel Dalam komunikasi serial dikenal 2 cara pengiriman yaitu secara

sinkron dan asinkron. salah satu metode komunikasi datanya dimana hanya satu bit

data yang dikirimkan melalui satu jalur pada suatu waktu tertentu. Terdapat dua jenis

komunikasi serial, yaitu:

1. Komunikasi Serial Sinkron : adalah komunikasi dimana ada satu pihak

(pengirim atau penerima) yang menghasilkan clock dan mengirimkan clock tersebut

bersama-sama dengan data. Contoh komunikasi serial sinkron padat dilihat pada

komunikasi PC dengan keyboard.

Gambar 2.18 Format Frame Komunikasi Serial Sinkron


Sumber : William Stallings,2001: 182

Dalam komunikasi serial sinkron, suatu blok bit ditransmisikan dalam suatu

deretan tanpa kode start dan stop. Frame diawali dengan suatu preamble yang disebut

flag, yang panjangnya 8 bit. Flag yang sama juga dipergunakan sebagai post amble.

Receiver mencari pola flag untuk menandai permulaan 18 frame, yang dikuti beberapa

bit-bit kontrol, bit-bit data, bit-bit kontrol lagi dan diakhiri dengan flag yang berfungsi

sebagai postamble.
37

2. Komunikasi Serial Asinkron : adalah komunikasi serial dimana kedua pihak

(pengirim dan penerima) masing-masing menghasilkan clock namun hanya data yang

ditransmisikan, tanpa clock. Agar data yang dikirim sama dengan yang diterima, maka

frekuensi clock harus sama dan terdapat sinkronisasi. Setelah adanya sinkronisasi, maka

pengirim akan mengirimkan datanya sesuai clock pengirim dan penerima akan

membaca data sesuai dengan clock penerima. Contoh komunikasi serial asinkron dapat

dilihat pada Universal Asynchronous Receiver Transmitter (UART) yang digunakan

pada serial port (COM) PC.

Gambar 2.19 Format Frame Komunikasi Serial Asinkron


Sumber : William Stallings,2001: 180

Bila tidak ada frame yang ditransmisikan, jalur di antara transmitter dan

receiver dinyatakan dalam status idle. Definisi idle akuivalen terhadap elemen-elemen

pensinyalan untuk biner 1. Sehingga idle dapat berupa adanya tegangan negatif pada

jalur tersebut. Permulaan frame ditandai dengan suatu start bit dengan nilai biner 0,

yang diikuti 5 sampai 8 bit data termasuk bit paritas dan diakhiri dengan bit stop dengan

nilai biner 1.
38

A. Sinyal komunikasi serial memiliki beberapa elemen penting

diantaranya:

1. Kecepatan Data (Baud Rate)

Kecepatan Data atau dikenal dengan istilah baud rate merupakankecepatan

transmisi data per bit yang dinyatakan dalam satuan Bps (BitperSecond).

Komunikasi serial antara satu modul perangkat elektronik dengan modul lain dalam

penetapan baud rate antara keduanya harus sama, sehingga keduanya bisa

berkomunikasi.

2. Jumlah bit data per karakter (data length)

Dalam komunikasi data serial mode asynchronous biasanya berlangsung

transmisi data yang dikemas dalam bentuk karakter. Dalam satu karakter

diperbolehkan terdiri dari beberapa variasi jumlah bit. Dari sekian variasi yang

diperbolehkan diantaranya adalah terdiri dari 7 bit dan 8 bit (panjang data

karakternya saja). Kedua variasi ini adalah yang paling sering digunakan dalam

komunikasi data serial.

3. Bit Parity

Bit parity adalah bit yang digunakan sebagai alat pemeriksaan kesalahan

sederhana dalam proses transmisi data digital. Bit parity ini akan diletakkan setelah

susunan bit data. Bit parity ini ada tiga macam, yaitu : parity ganjil, parity genap

dan tanpa parity (tidak diikutkan dalam pemeriksaan kesalahan).


39

Berdasarkan arah proses komunikasi serial terdapat tiga metode, yaitu Full

- duplex, Half-Duplex dan Simplex.

1. Full-duplex.

Metode ini merupakan komunikasi antara kedua belah pihak dapat berbagi

informasi dan berkomunikasi secara bersamaan dan interaktif dan dalam waktu

yang bersamaan. Umumnya alat yang memanfaatkan metode komunikasi tersebut

menggunakan dua jalur komunikasi. Kekurangan dari metode ini adalah kecepatan

transmisinya yang berkurang menjadi setengah dari biasanya.

2. Half-Duplex

Metode ini memungkinkan komunikasi antara dua belah pihak, yaitu

pengirim dan penerima dapat saling berbagi informasi dan berkomunikasi secara

interaktif, tetapi tidak dalam waktu yang bersamaan. Apabila keduanya mencoba

berkomunukasi bersamaan maka akan terjadi collison (tabrakan).

3. Simplex

Komunikasi yang tidak memungkinkan penerima dan pengirim saling

bertukar informasi. Pada komunikasi ini sinyal-sinyal dikirim hanya satu arah

dalam waktu yang bersamaan. Karena melalui satu arah, komunikasi ini tidah

terjadi secara interaktif, informasi hanya disampaikan melalui satu titik tertentu.
40

2.8 Komunikasi SPI (Serial Peripheral Interface)

Serial Peripheral Interface (SPI) adalah protokol data serial sinkron

digunakan oleh mikrokontroler untuk berkomunikasi dengan satu atau lebih

perangkat periferal cepat jarak pendek. Hal ini juga dapat digunakan untuk

komunikasi antara dua mikrokontroler. Dengan koneksi SPI selalu ada perangkat

satu master (biasanya mikrokontroler) yang mengontrol perangkat periferal. Serial

Peripheral Interface ( SPI ) merupakan salah satu mode komunikasi serial

synchrounous kecepatan tinggi yang dimiliki oleh Atmega 328. Komunikasi SPI

membutuhkan 3 jalur yaitu MOSI, MISO, dan SCK. Melalui komunikasi ini19 data

dapat saling dikirimkan baik antara mikrokontroler maupun antara mikrokontroler

dengan peripheral lain di luar mikrokontroler.

Penjelesan tiga jalur utama dari SPI adalah sebagai berikut :

1. MOSI : Master Output Slave Input artinya jika dikonfigurasi sebagai

master maka pin MOSI sebagai output tetapi jika dikonfigurasi sebagai

slave maka pin MOSI sebagai input 1.

2. MISO : Master Input Slave Output artinya jika dikonfigurasi sebagai master

maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka

pin input sebagai output.

3. CLK : Clock jika dikonfigurasi sebagai master maka pin CLK berlaku

sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku

sebagai input. Untuk mengatur mode kerja komunikasi SPI ini dilakukan

menggunakan register SPCR (SPI Control Register) , SPSR (SPI Status

Register) dan SPDR (SPI Data Register)


41

2.8.1 SPI Control Register (SPCR) Mode SPCR yang digunakan sebagai

berikut :

a. Bit-6 SPE (SPI Enable) SPE digunakan untuk mengaktifkan dan

menonaktifkan komunikasi SPI dimana jika SPI bernilai 1 maka

komunikasi SPI aktif sedangkan jika bernilai 0 maka komunikasi SPI tidak

aktif.

b. Bit-4 MSTR (Master or Slave Select) MSTR digunakan untuk

mengkonfirmasi sebagai master atau slave secara software dimana jika

MSTR bernilai 1 maka terkonfigurasi sebagai master 20 sedangkan MSTR

bernilai 0 maka tekonfigurasi sebagai slave. Pengaturan bit MSTR ini tidak

akan bisa dilakukan jika pin SS dikonfigurasi sebagai input karena jika pin

SS dikonfigurasi sebagai input maka penentuan master atau slave-nya

otomatis dilakukan secara hardware yaitu dengan level tegangan pada SS.

c. Bit-1 SPR 1/0 (SPI Clock Rate Select) SPR1 dan SPR0 digunakan untuk

menentukan kecepatan clock yang digunakan dalam komunikasi SPI.

2.8.2 SPI Status Register (SPSR) Dalam SPCR mode pengaturan yang

dilakukan adalah sebagai berikut :

1. SPIF (SPI Interrupt Flag) merupakan bendera yang digunakan untuk

mengetahui bahwa proses pengiriman data 1 byte sudah selesai. Jika

proses pengiriman data sudah selesai maka SPIF akan bernilai 1 (High).

2. SPI Data Register (SPDR) SPDR merupakan register yang digunakan

untuk menyimpan data yang akan dikirim atau diterima pada komunikasi

SPI.
BAB III
PERANCANGAN DAN PEMBUATAN ALAT

Pada bab ini dibahas mengenai perencangan dan pembuatan alat yang

meliputi perangkat keras (hardware) dan perangkat lunak (software) sebagai satu

sistem yang disebut “Wireless Barcode Portable Berbasis Arduino Nano”.

3.1 Blok Diagram

Blok diagram dari sistem Komunikasi Data Menggunakan Modul

NRF24L01 Berbasis Arduino Nano ditunjukan Gambar 3.1.

TX
Modul
Board
Barcode Scanner Wireless
Arduino Nano NRF24L01

Modul
PC Board
Arduino Nano
Wireless
NRF24L01
(Personal Komputer)

Gambar 3.1 Blok diagram Wireless Portable Barcode Scanner


Sumber : Perancangan

42
43

3.1.1 Penjelasan Blok Diagram

1. Barcode Scanner PS/2

Barcode Scanner berfungsi sebagai pemindai kode batang ke angka.

2. Arduino Nano

Boar arduino nano Merupakan kontrol utama dari sistem untuk memproses

data dari Barcode Scanner.

3. NRF24L01

Berfungsi Sebagai media komunikasi Wireless 2.4GHz. Dalam sistem ini,

NRF24L01 berfungsi sebagai transciever (Tx) dan receiver (RX). Tx

berfungsi sebagai pengirim data input dari Barcode Scanner sedangkan RX

berfungsi menerima perintah atau data yang dikirm oleh TX kemudian data

hasil scanning barcode di tampilkan di PC.

4. PC (Personal komputer)

Merupakan media sebagai sarana untuk menampilkan data dan menyimpan

data di Database MS.Acces.

3.1.2 Cara Kerja Sistem

Dalam proses baca(read) data barcode, tombol switch pada barcode ditekan

terlebih dahulu maka barcode scanner langsung memproses baca data yang di

scanning kemudian data dari barcode scanner akan di proses oleh Board Arduino

Nano untuk di kirimkan secara wireless (nirkabel) melalui Modul (NRF24L01 TX).

Ketika data yang sudah dikirimkan melalui Modul (NRF24L01 TX) dan

Berhasil di proses (kirim) maka Modul (NRF24L01 RX) akan langsung menerima

data dan membaca (read) dan tulis (write) kemudian data tersebut di tampilkan dan

di simpan di sebuah PC (Personal Komputer).


44

3.2 Perancangan Perangkat Keras (Hardware)

3.2.1 Perancangan Board Arduino Nano TX dan RX.

Rancangan Arduino Nano pada bagian TX pada Gambar 3.2.

Gambar 3.2 Perancangan Arduino Nano Pada Bagian TX


Sumber : Perancangan

3.2.2 Perancangan Board Arduino Nano RX

Gambar 3.3 Perancangan Arduino Nano Pada Bagian RX


Sumber : Perancangan
45

Board Arduino Nano merupakan Mikrokontroler berbasis ATmega 328

sebagai komponen inti atau otak dari Mikrokontroler Arduino Nano (versi

Arduino Nano 3.xx). Keunggulan dari Arduino Nano ini adalah ukurannya yang

kecil sehingga bisa menghemat tempat di dalam sistem.

Module Wireless NRF24L01 merupakan Module yang mempunyai fungsi

untuk komunikasi jarak jauh atau nirkabel yang memanfaatkan gelombang RF 2.4

GHz, yang biasanya diaplikasikan untuk Scientific , Industrial, maupun Medical.

Pada Modul ini menggunakan antarmuka SPI (Serial Parallel Interface) untuk

berkomunikasi dengan Mikrokontroler dalam hal ini Arduino. Tegangan

operasional normal untuk mengakses Module ini yaitu 3.3Vdc.

Berikut ini adalah penjelasan dari fungsi pin-pin Ardunino Nano yang

terhubung ke barcode scanner dan NRF yang digunakan sebagai berikut :

Tabel 3.1 Penggunaan Pin Pada Arduino Nano

NO. PIN Keterangan Fungsi


1. D2 DATA Ke Barcode Scanner
2. D3 Clock Ke Barcode Scanner
3. D9 CE Ke NRF24L01
4. D10 CSN ke NRF24L01
5. D11 MOSI ke NRF24L01
6. D12 MISO ke NRF24L01
7. D13 SCK Ke NRF24L01

Sumber : Perancangan
46

3.2.3 Perancangan Wireless 2.4GHz Menggunakan Modul NRF24L01

Perancangan Wireless 2.4GHz menggunakan Modul NRF24L01

ditunjukkan pada Gambar 3.4.

Gambar 3.4 Perancangan Wireless 2.4GHz Menggunakan Modul NRF24L01


Sumber : Perancangan

Pada Tabel 3.2 Akan dijelaskan pengunaan pin pada Modul NRF24L01

Tabel 3.2 Pengunaan Pin pada Modul NRF24L01

No. Pin Keterangan


1 VCC Supply tegangan 3,3V
2 D9 Ke pin D9/CE Arduino Nano
3 D10 Ke pin D10/CSN Arduino Nano
4 D11 Ke pin D11/MOSI Arduino Nano
5 D12 Ke pin D12/MISO Arduino Nano
6 D13 Ke pin D13/SCK Arduino Nano
7 GND Ground

Sumber : Perancangan

Kapasitor C1 sebesar 10uF/16V pada VCC dan GND digunakan sebagai

penstabil tegangan input NRF24L01 yaitu 3,3V.


47

3.2.4 Perancangan Sistem Barcode Scanner

Perancangan sistem barcode scanner ditujukkan pada Gambar 3.5 dalam

tugas akhir ini, menggunakan jenis barcode scanner Socket PS/2 .

Gambar 3.5 Perancangan Sistem Barcode Scanner Menggunakan Socket PS/2


Sumber : Perancangan

Barcode Scanner PS/2 ini digunakan sebagai input data barcode pada Board

Arduino Nano.

Untuk perancangan dari barcode scanner PS/2 ke Arduino Nano ditunjukan

pada Gambar 3.5 dalam tugas akhir ini, 2 pin sebagai input Data dan Clock

sedangkan 2 pin lagi VCC dan GND.


48

Gambar 3.6 Perancangan Sambungan Barcode Scanner ke Arduino Nano


Sumber : Perancangan

Pada Table 3.3 Akan di jelaskan penggunaan pin pada socket PS2

Tabel 3.3 Penggunaan Pin Pada Barcode Scanner

No. Pin Keterangan


1 VCC Supply tegangan 5V
2 2 Input dari pin D2 Arduino Nano
3 3 Input dari pin D3 Arduino Nano
4 GND GND

Sumber : Perancangan
49

3.3 Perancangan Perangkat Lunak (Software)

Alur pemrograman dari sistem komunikasi data menggunakan Modul

wireless NRF24L01 berbasis Arduino Nano di tunjukan Gambar 3.7. pada bagian

TX dan RX.

START

Inisialisasi pin Arduino Nano START


NRF24L01
Barcode Scanner Ps2
Inisialisasi pin Arduino Nano
NRF24L01
T
Apakah Scan Enter

T
Y APAKAH ADA DATA
BARCODE
YANG DITERIMA DI RX
Baca Data Barcode

Rubah scan codes ke


char characters Y
Baca data barcodeTX

Simpan
Data.BarcodeTX
Tampilkan di PC

Kirim Data BarcodeTX


END
Ke RX
TX RX
Gambar 3.7 Alur Pemrograman Wireless Barcode Scanner Bagian TX dan RX
Sumber : Perancangan
50

Berikut ini adalah penjelasan bagian-bagian flowcart dan cuplikan program

nya untuk bagian TX (client).

1. START

Program dimulai

2. Inisialisasi pin Arduino Nano, pin NRF24L01, pin Barcode Scanner

Menginisialisasi pin Arduino Nano yang digunakan untuk Interface dengan

NRF24L01 dan Barcode Scanner.

• Berikut ini cuplikan program nya :

#include <SPI.h>
#include <NRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
uint64_t addrTx = 0x0F0F0F0F01LL; // Alamat TX
struct data_s
{
char barcodetx[15];
};
data_s Data;
RF24 Radio(9,10); // CE = 9 CSN = 10
int SCAN_ENTER = 0x5a;
int SCAN_BREAK = 0xf0;
int breakActive = 0;
int clockPin = 3;
int dataPin = 2;
void setup()
{
Serial.begin(9600);
Radio.begin();
Radio.setChannel(100);
Radio.openWritingPipe( addrTx );
pinMode(dataPin, INPUT);
pinMode(clockPin, INPUT);
pinMode(ledPin, OUTPUT);
}
3. Apakah Scan Enter/di tekan ?

Agar Barcode scanner melakukan proses pengambilan data.

void loop()
51

{
dataValue = dataRead();
byte brikutnya.
if (dataValue == SCAN_BREAK) {
breakActive = 1;
}
4. Merubah Scan Code ke Char characters Berikut ini Cuplikan Programnya

Jika data yang dihasilkan Barcode Scanner sesuai dengan kode maka

karakter yang dihasilkan sesuai.

for (int i = 0; i < quantityCodes; i++) {


byte temp = scanCodes[i];
if(temp == dataValue){
if(!breakActive == 1){
buffer[bufferPos]=characters[i];
bufferPos++;
} } }
if(dataValue == SCAN_ENTER){
Serial.print("\nbuffer: ")
int i=0;
if (buffer[i] != 0) {
while(buffer[i] != 0) {
Serial.print( buffer[i] );
Data.barcodetx[i] = buffer[i];
buffer[i] = 0;
i++;

5. Simpan Data.BarcodeTX. Berikut ini cuplikan Programnya :

Data.barcodetx[i] = buffer[i];

buffer[i] = 0;
i++; } }

6. Kirim Data.Barcode TX ke RX. Berikut ini cuplikan Programnya :

Radio.write( &Data, sizeof(Data) );


delay (100);
Serial.print("\nbarcodetx: ");
Serial.print(Data.barcodetx[0]);
Serial.print(Data.barcodetx[1]);
Serial.print(Data.barcodetx[2]);
Serial.print(Data.barcodetx[3]);
Serial.print(Data.barcodetx[4]);
52

Serial.print(Data.barcodetx[5]);
Serial.print(Data.barcodetx[6]);
Serial.print(Data.barcodetx[7]);
Serial.print(Data.barcodetx[8]);
Serial.print(Data.barcodetx[9]);
Serial.print(Data.barcodetx[10]);
Serial.print(Data.barcodetx[11]);
Serial.print(Data.barcodetx[12]);
Serial.println(" [send data to RX]");
bufferPos = 0;
delay(200);

Berikut ini adalah penjelasan bagian-bagian flowcart dan cuplikan program

nya untuk bagian RX (Host).

1. Inisialisasi Pin Arduino Nano RX . Berikut ini Cuplikan Programnya :

#include <SPI.h>
#include <NRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
uint64_t addrRx = 0x0F0F0F0F01LL; // Alamat RX
struct data_s
{
char barcodetx[15];
};
data_s Data;
RF24 Radio(9,10); // CE = 9 CSN = 10
void setup()
{
Serial.begin(9600);
Radio.begin();
Radio.setChannel(100);
Radio.openReadingPipe(1, addrRx );
Radio.startListening();
delay(200);
}

2. Apakah ada Data Barcode dari TX diterima. Berikut ini cuplikan

Programnya :

if (Radio.available())
{ while (Radio.available())
{
3. Baca Data Barcode TX kemudian tampilkan di PC. Berikut ini cuplikan
53

Programnya :

Radio.read(&Data, sizeof(Data));
Serial.println(Data.barcodetx);
Serial.println("Data barcode");
delay(100);
54

3.4 Perancangan NRF Network

Pada bagian ini membahas tentang menggabungkan beberapa perangkat

barcode scanner sebagai alat scanning kode barcode yang digunakan agar bisa

bekerja sebagai sistem yang saling terhubung.

3.4.1 Blok Diagram

Blok diagram dari sistem NRF Network, ditunjukan Gambar 3.9.

Node 01
NRF 2
Barcode 1
Client 1
Transmitter

Node 00
NRF 1
Host
Receiver Data

PC
Node 02
NRF 3
Barcode 2
Client 2
Transmitter

Gambar 3.8 Blok Diagram NRF Network


Sumber : Perancangan

Dari Gambar 3.9 di atas untuk Node 00 difungsikan sebagai host yang

menerima data dari client . Untuk Node 01 dan Node 02 difungsikan sebagai client

yang mengirimkan data ke host, dimana Node 01 dan Node 02 difungsikan menjadi

node yang setara semua, seperti pada Gambar 3.10.


55

Gambar 3.9 Topologi jaringan wireless network menngunakan NRF


Sumber : www.howtomechatronics.com

Dari Gambar 3.10 terlihat bahwa satu Modul NRF menjadi host dan 6

Modul NRF sebagai pegirim data (client).

3.4.2 Cara Kerja Komunikasi dari Node ke Komputer

Mekanisme tiap Node berdiri sendiri - sendiri, dimana Node 00 (NRF 1)

difungsikan sebagai host yang menerima data kemudian mengirimkan data

langsung ke Komputer Database. Sedangkan NRF2 (Node 01) dan NRF3 (Node

02) difungsikan sebagai client yang bertugas mengirimkan Data ke host secara

wireless (nirkabel) lewat Modul NRF24L01.

3.4.3 Mekanisme Membedakan Asal Node yang Mengirimkan Data Barcode

Untuk tiap-tiap data yang dikirimkan, terdapat perbedaan di akhir Kode

Barcode, yang fungsinya untuk menandakan dari mana Kode Barcode tersebut

berasal dari (Node 01 atau Node 02).


56

3.4.5 Perancangan Perangkat Lunak (Software) NRF Network (Client)

START START

Inisialisasi pin Arduino Nano Inisialisasi pin Arduino Nano


NRF24L01 NRF24L01
Barcode Scanner 1 Barcode Scanner 2

T T
Apakah Scan Apakah Scan
Enter Enter
Node 1 Node 2

Y Y
Baca Data Barcode 1 Baca Data Barcode 2

Rubah scan code ke Rubah scan code ke


char characters char characters

Simpan Simpan
Data.BarcodeTX 1 Data.BarcodeTX 2

Kirim Data BarcodeTX 1 Kirim Data BarcodeTX 2


( Kode Barcode) + (Node01) ( Kode Barcode) + (Node 02)
Ke RX Node 00 Ke RX Node 00

TX 1 TX 2
Gambar 3.10 Alur Pemrograman Wireless NRF Network Node 01 & Node 02
Sumber : Perancangan
57

3.4.6 Perancangan Perangkat Lunak (Software) NRF Network (Host)

START

Inisialisasi pin Arduino Nano


NRF24L01
Node 00

T
APAKAH ADA DATA
BARCODE 1 & 2
YANG DITERIMA DI RX
Node 00

Y
Baca data barcodeTX

Tampilkan di
komputer database

END

RX
Gambar 3.11 Alur Pemrograman Wireless NRF Network Node 00
Sumber : Perancangan
58

Berikut ini adalah penjelasan bagian-bagian flowchart dan cuplikan

programnya untuk NRF Network (Client).

1. START

Program dimulai

2. Inisialisasi pin Arduino Nano, Pin NRF24L01 Network, Pin Barcode

Scanner Menginisialisasi pin Arduino Nano yang digunakan untuk

Interface dengan NRF24L01 dan Barcode Scanner. Berikut ini cuplikan

programnya :

#include <RF24.h>
#include <RF24Network.h>
#include <SPI.h>
RF24 radio(9, 10); // nRF24L01 (CE,CSN)
RF24Network network(radio); // Include the
radio in the network
const uint16_t this_node01 = 00; // Address to RX
Node 00
struct data_s
{char barcodetx[25];};
data_s Data;
int SCAN_ENTER = 0x5a;
int SCAN_BREAK = 0xf0; // berhenti memindai
int breakActive = 0;
int clockPin = 3;
int dataPin = 2;
int clockValue = 0;
byte dataValue;
bytescanCodes[10]={0x45,0x16,0x1e,0x26,0x25,0x2e,0
x36,0x3d,0x3e,0x46};
char characters[10] = {'0', '1', '2', '3', '4',
'5', '6', '7', '8', '9'};
int quantityCodes = 13;
char buffer[64] = {};
int bufferPos = 0;
int bufferLength = 64;
void setup()
{Serial.begin(9600);
Serial.println("ready to send data");
SPI.begin();
radio.begin();
59

network.begin(100, this_node01); //(channel,


node address)
radio.setDataRate(RF24_2MBPS);
pinMode(dataPin, INPUT);
pinMode(clockPin,INPUT);
pinMode(ledPin , OUTPUT);

3. Apakah Scan Enter/di tekan ?

Agar Barcode scanner melakukan proses pengambilan data.

void loop()
{
dataValue = dataRead();
if (dataValue == SCAN_BREAK) {
breakActive = 1; }

4. Merubah Scan Code ke Char characters Berikut ini cuplikan Programnya:

Jika data yang dihasilkan Barcode Scanner sesuai dengan kode maka

karakter yang dihasilkan sesuai.

for (int i = 0; i < quantityCodes; i++) {


byte temp = scanCodes[i];
if(temp == dataValue){
if(!breakActive == 1){
buffer[bufferPos] =
characters[i];
bufferPos++;
} } }
if(dataValue == SCAN_ENTER){
Serial.print("\nbuffer: ")
int i=0;
if (buffer[i] != 0) {
while(buffer[i] != 0) {
Serial.print( buffer[i] );
Data.barcodetx[i] = buffer[i];
buffer[i] = 0;
i++;
60

5. Simpan Data BarcodeTX. Berikut ini cuplikan Programnya :

Data.barcodetx[i] = buffer[i];
buffer[i] = 0;
i++; } }
6. Kirim Data.Barcode (TX1 & TX2) ke RX. Berikut ini cuplikan Programnya

network.update();
RF24NetworkHeader header(this_node01);
Serial.print("\nbarcodetx: ");
Serial.print(Data.barcodetx[0]);
Serial.print(Data.barcodetx[1]);
Serial.print(Data.barcodetx[2]);
Serial.print(Data.barcodetx[3]);
Serial.print(Data.barcodetx[4]);
Serial.print(Data.barcodetx[5]);
Serial.print(Data.barcodetx[6]);
Serial.print(Data.barcodetx[7]);
Serial.print(Data.barcodetx[8]);
Serial.print(Data.barcodetx[9]);
Serial.print(Data.barcodetx[10]);
Serial.print(Data.barcodetx[11]);
Serial.print(Data.barcodetx[12]);
Serial.print(Data.barcodetx[13]=' ');
Serial.print(Data.barcodetx[14]='N');
Serial.print(Data.barcodetx[15]='o');
Serial.print(Data.barcodetx[16]='d');
Serial.print(Data.barcodetx[17]='e');
Serial.print(Data.barcodetx[18]='1');
bufferPos = 0;
bool ok = network.write(header,&Data,
sizeof(Data)); // Send the data
delay(200);
61

Berikut ini adalah penjelasan bagian-bagian flowchart dan cuplikan

programnya untuk NRF Network (Host).

1. Inisialisasi pin Arduino Nano RX node 00. Berikut ini cuplikan Programnya

#include <RF24.h>
#include <RF24Network.h>
#include <SPI.h>
RF24 radio(9, 10); // nRF24L01 (CE,CSN)
RF24Network network(radio); // Include the
radio in the network
const uint16_t this_node = 00;
struct data_s
{ char Kalimat[25];
};
data_s Data;
void setup()
{
Serial.begin(9600);
Serial.println("ready to receive data from tx");
SPI.begin();
radio.begin();
network.begin(100, this_node); //(channel, node
address)
radio.setDataRate(RF24_2MBPS); }
2. Data Barcode dari TX diterima. Berikut ini cuplikan Programnya :
network.update();
//====receiving====//
while ( network.available() ){ \
RF24NetworkHeader header;

3. Baca Data Barcode TX kemudian tampilkan di PC. Berikut ini cuplikan


Programnya :
data_s Data;
network.read(header,&Data,sizeof(Data));
Serial.println(Data.Kalimat);
}
BAB IV
PENGUJIAN ALAT
Untuk melengkapi proses perancangan, diperlukan tahap pengujian untuk

mengetahui apakah dari sistem komunikasi data menggunakan transciever 2.4 GHz

atau Modul NRFL01 yang berbasis Arduino Nano bisa bekerja sesuai dengan

fungsinya masing-masing. Jika bagian-bagian dari sistem dapat menjalankan

fungsinya yang telah di rencanakan, maka dapat dipastikan sistem dapat berfungsi

sesuai tujuan yang diinginkan.

4.1 Pengujian Input Output Board Arduino Nano

Pengujian Arduino Nano dilakukan untuk menguji apakah board Arduino

Nano dapat bekerja dengan fungsi Input/Output Arduino Nano. Blok pengujiannya

dapat di tunjukkan pada Gambar 4.1.

LED merah
Tombol/
Arduino Nano
swicth

LED kuning

Gambar 4.1 Pengujian Input Output Arduino Nano


Sumber : Pengujian

62
63

4.1.1. Tujuan

Tujuan dari pengujian ini adalah untuk menguji fungsi input/output Arduino

Nano.

4.1.2. Alat dan bahan

1. Arduino Nano + kabel USB mini

2. Project board

3. LED merah, LED kuning dan push button

4.1.3. Langkah pengujian

1. Membuat program sebagi berikut :

void setup()
{
pinMode (2, INPUT_PULLUP ); //pin D2 sebagai
input push button
pinMode (5, OUTPUT );//pin D5 sebagai output LED
MERAH
pinMode (6, OUTPUT );//pin D6 sebagai output LED
KUNING
}
void loop ()
{
if(digitalRead(2)==LOW){ //jika push button
ditekan,maka
digitalWrite (5, HIGH); //LED MERAH ON
digitalWrite (6, LOW); //LED KUNING OFF
}
else{ //jika push button
tidak ditekan,maka
digitalWrite (5, LOW); //LED MERAH OFF
digitalWrite(6, HIGH); //LED KUNING ON
} }

2. Men-dowload-kan program ke dalam Arduino Nano

3. Menghubungkan LED merah, LED kuning dan tombol/switch ke board

Arduino Nano.
64

4. Mengamati Output LED pada saat switch tidak ditekan(switch OFF)

5. Mengamati Output LED pada saat switch ditekan (switch ON)

4.1.4. Hasil pengujian

Dari hasil pengujian yang dilakukan, didapatkan hasil seperti pada Gambar

4.2 dan Gambar 4.3.

Gambar 4.2 Pengujian pada saat push button Tidak Ditekan (OFF)
Sumber : Pengujian

Gambar 4.3 Pengujian Pada saat push Button ditekan(ON)


Sumber : Pengujian
65

Data hasil pengujian dapat dilihat pada tabel 4.1.

Tabel 4.1 Hasil Pengujian Input/Output

No. Switch Pin D5 (V) LED Merah Pin D6(V) LED Kuning
1. ON 4.25 ON 0 OFF
2. OFF 0 OFF 4.30 ON

Sumber : Pengujian

4.1.5. Analisa

Arduino Nano dapat melakukan fungsi Input dan Output sesuai program

yang telah dibuat. Pada saat push button ON (ditekan) maka LED merah ON dengan

tegangan pada pin D5 4,25 V dan LED Kuning OFF dengan tegangan pada pin D6

0 V. Saat push button OFF (tidak ditekan) maka LED Merah OFF dengan tegangan

pada pin D5 0 V dan LED Kuning ON dengan tegangan pada pin D6 4,30 V.
66

4.2 Pengujian Modul NRF24L01

Pengujian Modul NRF24L01 dilakukan dengan menggunakan 2 buah

Arduino Nano yang masing-masing pada bagian Arduino Nano di lengkapi dengan

Modul Wireless NRF24L01. Blok pengujiannya ditunjukkan pada Gambar 4.3.

TX

SERIAL MONITOR = PC ARDUINO NANO NRF24L01

SERIAL MONITOR = PC ARDUINO NANO NRF24L01

RX
Gambar 4.4 Pengujian Modul Wireless NRF24L01
Sumber : Pengujian

4.2.1 Tujuan

Tujuan dari pengujian adalah untuk menguji komunikasi antara 2 buah

Arduino Nano dengan menggunakan Modul Wireless NRF24L01, dimana dengan

mengunakan 1 Arduino Nano sebagai Tx dan 1 Arduino Nano sebagai Rx.


67

4.2.2 Alat dan bahan

1. Arduino Nano + kabel USB mini

2. NRF24L01

3. Serial monitor pada PC

4.2.3 Langkah pengujian

1. Membuat program sebagai berikut :

• Untuk bagian Tx :

#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
uint64_t pipe = 0xF0F0F0F0F01LL;
uint8_t CE = 9;
uint8_t CSN = 10;
int n = 0;
boolean Flag = false;
struct payload
{char Kata[25];};
payload Data;
RF24 Radio(CE, CSN);
void setup()
{ Serial.begin(9600);
Radio.begin();
Radio.setChannel(100); //set berbeda untuk tiap
pasangan node
Radio.openReadingPipe(1, pipe);
Radio.startListening();
}void loop(){
if ( Radio.available() )
{Radio.read(&Data, sizeof(Data) );
Serial.println(Data.Kata);}
if (Flag == true)
{Radio.stopListening(); delay(100);
Radio.openWritingPipe(pipe); delay(100);
Radio.write(&Data, sizeof(Data) ); delay(100);
Flag = false;
Radio.startListening();
delay(100);
}}void serialEvent()
{while (Serial.available() )
{char data = (char)Serial.read();
Data.Kata[n] = data; n++;
68

if (data == '_') { Flag = true; n=0; }}}

• Untuk bagian Rx :

#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
uint64_t pipe = 0xF0F0F0F0F01LL;
uint8_t CE = 9;
uint8_t CSN = 10;
int n = 0;
boolean Flag = false;
struct payload
{char Kata[25];};
payload Data;
RF24 Radio(CE, CSN);
void setup()
{ Serial.begin(9600);
Radio.begin();
Radio.setChannel(100); //set berbeda untuk tiap
pasangan node
Radio.openReadingPipe(1, pipe);
Radio.startListening();
}void loop()
{if ( Radio.available() )
{ Radio.read(&Data, sizeof(Data) );
Serial.println(Data.Kata);}
if (Flag == true)
{Radio.stopListening(); delay(100);
Radio.openWritingPipe(pipe); delay(100);
Radio.write(&Data, sizeof(Data) ); delay(100);
Flag = false;
Radio.startListening();
delay(100);}}void serialEvent()
{while (Serial.available() ){
char data = (char)Serial.read();
Data.Kata[n] = data; n++;
if (data == '_') { Flag = true; n=0; }}}

1. Men-dowload-kan program ke dalam Arduino Nano

2. Mengetikan pesan pada serial monitorTX

3. Mengamati pesan yang diterima pada serial monitor RX


69

4.2.4 Hasil Pengujian

Dari pengujian yang dilakukan, didapatkan hasil pada tampilan serial

monitor seperti yang ditunjukkan pada Gambar 4.5.

Gambar 4.5 Hasil Pengujian Modul Wireless NRF24L01


Sumber : Pengujian

4.2.5 Analisa

Pada Gambar 4.5 menunjukkan pengujian yang dilakukan, dimana COM 5

Merupakan serial monitor TX dan COM 3 merupakan serial monitor RX. Dari hasil

pengujian, komunikasi menggunakan Modul Wireless NRF24L01 berjalan dengan

baik terlihat dari pesan “WAN BUDIMAN 16220002_ “ yang dikirimkan TX lalu

di terima dan di tampilkan di serial monitor RX.


70

4.3 Pengujian Barcode Scanner

Pengujian Barcode Scanner dilakukan dengan menggunakan 1 buah

Arduino Nano. Dimana Barcode Scanner yang digunakan merupakan jenis Barcode

Scanner PS/2. Barcode Scanner kemudian dihubungkan langsung dengan Arduino

Nano dan Arduino Nano terhubung langsung ke PC. Pengujian ditunjukkan pada

Gambar 4.6.

PC
Tampilkan data barcode di Arduino Nano
Serial Monitor

Barcode scanner PS2

Gambar 4. 6 Pengujian Barcode Scanner


Sumber : Pengujian

4.3.1 Tujuan

Tujuan dari pengujian ini adalah untuk menguji komunikasi antara Barcode

Scanner dengan Arduino Nano serta antar Arduino dengan PC apakah bisa

memproses membaca data barcode.

4.3.2 Alat dan bahan

1. Arduino Nano + kabel USB mini

2. Barcode Scanner

3. Serial Monitor
71

4.3.3 Langkah Pengujian

1. Membuat program sebagai berikut :

int SCAN_ENTER = 0x5a;


int SCAN_BREAK = 0xf0;
int breakActive = 0;
int clockPin = 3;
int dataPin = 2;
int clockValue = 0;
bytedataValue; byte
scanCodes[10]={0x45,0x16,0x1e,0x26,0x25,0x2e,0x36,0
x3d,0x3e,0x46};
char characters[10]={'0', '1', '2', '3', '4', '5',
'6', '7', '8', '9'};
int quantityCodes = 13;
char buffer[64] = {};
int bufferPos = 0;
int bufferLength = 64;
void setup() {pinMode(dataPin, INPUT);
pinMode(clockPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);}
void loop() {dataValue = dataRead();
if (dataValue==SCAN_BREAK) {
breakActive = 1;}for (int i = 0; i < quantityCodes;
i++) {
byte temp = scanCodes[i];
if(temp == dataValue){
if(!breakActive==1){
buffer[bufferPos]=characters[i]; bufferPos++;
}}}
if(dataValue == SCAN_ENTER){
Serial.print("\nbuffer: ");
int i=0;
if (buffer[i] != 0) {
while(buffer[i] != 0) {
Serial.print( buffer[i] );
buffer[i] = 0;
i++;} } Serial.println(" [Enter]");
bufferPos = 0;
digitalWrite(ledPin, HIGH);
delay(300);
digitalWrite(ledPin, LOW); }
if(dataValue!=SCAN_BREAK){breakActive =0;
} dataValue = 0; }int dataRead(){byte val = 0;
while (digitalRead(clockPin));
while (!digitalRead(clockPin));
while (digitalRead(clockPin));
72

for (int offset = 0; offset < 8; offset++) {


while (digitalRead(clockPin));
val |= digitalRead(dataPin) << offset;
while (!digitalRead(clockPin));}
while (digitalRead(clockPin));
while (!digitalRead(clockPin));
while (digitalRead(clockPin));
while (!digitalRead(clockPin));
return val; }

1. Men-dowload-kan program ke dalam Arduino Nano

2. Menyiapkan kode barcode yang akan di Scan

3. Melakukan proses Scan Barcode, amati informasi pada serial monitor.

4.3.4 Hasil pengujian

Dari pengujian yang dilakukan , didapatkan infomasi yang ditampilan pada

serial monitor. Hasil Scan Barcode ditunjukkan pada Gambar 4.7.

Gambar 4.7 Hasil Pengujian Barcode Scanner


Sumber : Pengujian

Gambar 4.8 Proses Pengambilan/Scan data Barcode


Sumber : Pengujian
73

4.3.5 Analisa

Gambar 4.9 menunjukkan pengujian yang dilakukan, dimana COM 5

Merupakan Serial Monitor Barcode Scanner. Dari hasil pengujian, menggunakan

Barcode Scanner PS2 untuk mendapatkan data Barcode berjalan dengan baik.

Terlihat dari tampilan di serial monitor yang sesuai dengan data Barcode yang di

Scan. Berikut merupakan Data Barcode Gambar 4.9. yang di ambil dan sesuai

dengan data barcode yang di tampilkan di serial monitor.

Gambar 4.9 Data Barcode Scanner


Sumber : Pengujian
74

4.4 Pengujian Keseluruhan Sistem

Pengujian keseluruhan Sistem dilakukan untuk mengetahui apakah sistem

komunikasi Data Barcode menggunakan Modul Wireless NRF24L01 bekerja

sesuai dengan Perancangan. Blok pengujiannya ditunjukkan pada Gambar 4.10.

TX
Modul
Board
Barcode Scanner Wireless
Arduino Nano NRF24L01

Modul
PC Board
Arduino Nano
Wireless
NRF24L01
(Personal Komputer)

RX
Gambar 4.10 Blok Diagram Sistem Keseluruhan
Sumber : Pengujian

4.4.1 Tujuan

Menguji apakah rangkaian keseluruhan sistem komunikasi menggunakan

Modul Wireless NRF24L01 berbasis Arduino Nano dapat bekerja sesuai

Perancangan dan dapat bekerja dengan program yang telah dibuat, dengan

menggunakan Input-an Barcode Scanner PS2 dan Data Barcode yang di Scan

kemudian data bercode dikirimkan secara Wireless melalui Modul wireless

NRF24l01.
75

4.4.2 Alat dan Bahan

1. Sistem komunikasi data menggunakan Modul Wireless NRF24l01

berbasis Arduino Nano

2. Kabel USB mini

3. Barcode Scanner

4. Serial monitor pada PC

4.4.3 Langkah Pengujian Program Keseluruhan.

1. Membuat program sebagai berikut :

• Untuk bagian Tx :
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
uint64_t addrTx = 0x0F0F0F0F01LL; // Alamat TX
struct data_s
{char barcodetx[15];};
data_s Data;
RF24 Radio(9,10); // CE = 9 CSN = 10
int SCAN_ENTER = 0x5a;
int SCAN_BREAK = 0xf0;
int breakActive = 0;
int clockPin = 3;
int dataPin = 2;
int clockValue = 0;
byte dataValue;
bytescanCodes[10]={0x45,0x16,0x1e,0x26,0x25,0x2e,0
x36,0x3d,0x3e,0x46};char characters[10]={'0', '1',
'2', '3', '4', '5', '6', '7', '8', '9'};int
quantityCodes = 13;
char buffer[64] = {};
int bufferPos = 0;
int bufferLength = 64;
void setup(){ Serial.begin(9600);
Radio.begin();
Radio.setChannel(100);
Radio.openWritingPipe( addrTx );
pinMode(dataPin, INPUT);
pinMode(clockPin, INPUT);
pinMode(ledPin, OUTPUT);
} void loop()
{
76

dataValue = dataRead();
if (dataValue == SCAN_BREAK)
{ breakActive = 1;}
for (int i = 0; i < quantityCodes; i++) {
byte temp = scanCodes[i];
if(temp == dataValue){
if(!breakActive == 1){
buffer[bufferPos]=characters[i];
bufferPos++;
}}}
if(dataValue == SCAN_ENTER){
Serial.print("\nbuffer: ");
int i=0;
if (buffer[i] != 0) {
while(buffer[i] != 0) {
Serial.print( buffer[i] );
Data.barcodetx[i] = buffer[i];
buffer[i] = 0;
i++;}}
Serial.println(" [Enter]");
bufferPos = 0;
digitalWrite(ledPin, HIGH);
delay(300);
digitalWrite(ledPin, LOW);
Radio.write( &Data, sizeof(Data) );
delay (100);
Serial.print("\nbarcodetx: ");
Serial.print(Data.barcodetx[0]);
Serial.print(Data.barcodetx[1]);
Serial.print(Data.barcodetx[2]);
Serial.print(Data.barcodetx[3]);
Serial.print(Data.barcodetx[4]);
Serial.print(Data.barcodetx[5]);
Serial.print(Data.barcodetx[6]);
Serial.print(Data.barcodetx[7]);
Serial.print(Data.barcodetx[8]);
Serial.print(Data.barcodetx[9]);
Serial.print(Data.barcodetx[10]);
Serial.print(Data.barcodetx[11]);
Serial.print(Data.barcodetx[12]);
Serial.println(" [send data to RX]");
bufferPos = 0;
delay(200);
}if(dataValue != SCAN_BREAK){
breakActive = 0;
} dataValue = 0; }
int dataRead() {
byte val = 0;
while (digitalRead(clockPin));
77

while (!digitalRead(clockPin));
while (digitalRead(clockPin));
for (int offset = 0; offset < 8; offset++) {
while (digitalRead(clockPin));
val |= digitalRead(dataPin) << offset;
while (!digitalRead(clockPin));}
while (digitalRead(clockPin)); // Wait
for LOW.while (!digitalRead(clockPin)); // Wait
for HIGH.
while (digitalRead(clockPin)); // Wait for
LOW.
while (!digitalRead(clockPin)); // Wait for
HIGH.
return val; }

• Untuk Bagian RX :

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>

uint64_t addrRx = 0x0F0F0F0F01LL; // Alamat RX


struct data_s
{
char barcodetx[15];
};
data_s Data;
RF24 Radio(9,10); // CE = 9 CSN = 10
void setup()
{
Serial.begin(9600);
Radio.begin();
Radio.setChannel(100);
Radio.openReadingPipe(1, addrRx );
Radio.startListening();
delay(200);
}void loop(){
if (Radio.available())
{
while (Radio.available())
{
Radio.read(&Data, sizeof(Data));
Serial.println(Data.barcodetx);
Serial.println("Data barcode");
delay(100);
}
}
}
78

2. Men-dowload-kan program kedalam Arduino Nano

3. Melakukan pengujian komunikasi Barcode Scanner dengan menggunakan

Arduino Nano.

4. Melakukan pengujian pengiriman Data Barcode lewat Modul Wireless

NRF24L01, dengan melakukan beberapa perubahan data barcode yang di

scan.

5. Membandingkan Data Barcode yang muncul pada Serial Monitor dengan

Data yang di Scan.

4.4.4 Hasil Pengujian Keselurahan Sistem

Dari pengujian yang dilakukan, didapatkan hasil seperti Gambar 4.11 (untuk

Barcode Scanner dan Modul Wireless NRF2L01) dan Gambar 4.12. (untuk hasil

Data Barcode yang di Scan.

Gambar 4.11 Pengujian Keseluruhan Sistem pada Barcode Scanner.


Sumber : Pengujian
79

Data hasil pengujian pada Barcode Scanner terlihat pada Gambar 4.12.

dimana COM5 adalah (TX) dan COM3 (RX). (TX) adalah bagian Barcode Scanner

yang mengambil data barcode kemudian mengirimkan Data Barcode ke RX.

Gambar 4.12 Pengujian keseluruhan sistem pada Barcode Scanner.


Sumber : Pengujian
80

Data hasil pengujian menampilkan data barcode yang dikirim lewat modul

Wireless NRF24L01 dan di tampilkan lewat Borland Delphi terlihat pada Gambar

4.13.

Gambar 4.13 Pengujian keseluruhan Sistem pada Barcode Scanner.


Sumber : Pengujian

4.4.5 Analisa keseluruhan sistem

Gambar 4.12 dan Gambar 4.13 menunjukkan pengujian yang dilakukan,

dimana COM3 merupakan serial Monitor RX dan data barcode yang di tampilkan
81

di boarland delphi sama dengan data yang di tampilkan di serial monitor, dari hasil

pengujian, komuniksi antara barcode scanner dengan Arduino dan antara Modul

NRF24l01 berjalan dengan baik, terlihat data barcode yang dihasilkan dari barcode

scanner dapat dikirim melalui modul wireless NRF24l01 yang dikirimkan TX dan

diterima oleh RX. Dengan data Barcode yang benar dan akurat.
82

4.5 Pengujian NRF Network.

Pengujian NRF Network dilakukan untuk mengetahui apakah sistem

komunikasi Data Barcode menggunakan Modul Wireless NRF24L01 bekerja

sesuai dengan Perancangan. Blok pengujiannya ditunjukkan pada Gambar 5.1.

TX 1
BARCODE
Board Modul
SCANNER
Node 1 Arduino Nano NRF24L01

PC Board Modul
(Personal Komputer) Arduino Nano NRF24L01
RX

BARCODE
Board Modul
SCANNER
Node 2 Arduino Nano NRF24L01

TX2
Gambar 4.14 Blok Diagram Sistem NRF Network
Sumber : Pengujian

4.5.1 Alat dan bahan

1. Arduino Nano + kabel USB mini

2. Modul NRF24L01

3. Barcode Scanner PS2

4. Serial Monitor pada PC

5. Software Borland Delphi pada PC


83

4.5.2 Langkah Pengujian

1. Membuat program sebagai berikut :

• Untuk bagian Tx 1 :

#include <RF24.h>
#include <RF24Network.h>
#include <SPI.h>
RF24 radio(9, 10); // nRF24L01 (CE,CSN)
RF24Network network(radio); // Include the radio
in the network
const uint16_t this_node01 = 00;// Address of this
node in Octal format
struct data_s
{char barcodetx[25];};
data_s Data;
int SCAN_ENTER = 0x5a;
int SCAN_BREAK = 0xf0;
int breakActive = 0;
int clockPin = 3;
int dataPin = 2;
int clockValue = 0;
byte dataValue;
bytescanCodes[10]={0x45,0x16,0x1e,0x26,0x25,0x2e,0x3
6,0x3d,0x3e,0x46};
char characters[10] = {'0', '1', '2', '3', '4', '5',
'6', '7', '8', '9'};
int quantityCodes = 13;
char buffer[64] = {};
int bufferPos = 0;
int bufferLength = 64;
void setup()
{Serial.begin(9600);
Serial.println("ready to send data");
SPI.begin();
radio.begin();
network.begin(100, this_node01); //(channel, node
address)
radio.setDataRate(RF24_2MBPS);
pinMode(dataPin, INPUT);
pinMode(clockPin,INPUT);
pinMode(ledPin , OUTPUT);
RF24NetworkHeader header(this_node01);
(Data.barcodetx[0]='T');
(Data.barcodetx[1]='X');
(Data.barcodetx[2]='1');
(Data.barcodetx[3]=' ');
(Data.barcodetx[4]='O');
84

(Data.barcodetx[5]='K');
(Data.barcodetx[6]='E');
Bool ok =network.write(header,&Data,sizeof(Data));
} void loop() {
dataValue = dataRead();
if (dataValue == SCAN_BREAK) {
breakActive = 1; }
for (int i = 0; i < quantityCodes; i++) {
byte temp = scanCodes[i];
if(temp == dataValue){
if(!breakActive == 1){
buffer[bufferPos]=
characters[i];
bufferPos++;
} } } if(dataValue == SCAN_ENTER){
Serial.print("\nbuffer: ");
// Read the buffer//baca buffer
int i=0;
if (buffer[i] != 0) {
while(buffer[i] != 0) {
Serial.print( buffer[i] );Data.barcodetx[i] =
buffer[i];buffer[i] = 0; i++;}}
Serial.println(" [Enter]");
bufferPos = 0;
// Blink the LED
digitalWrite(ledPin, HIGH);
delay(300);
digitalWrite(ledPin, LOW);
network.update();
RF24NetworkHeader header(this_node01);
Serial.print("\nbarcodetx: ");
Serial.print(Data.barcodetx[0]);
Serial.print(Data.barcodetx[1]);
Serial.print(Data.barcodetx[2]);
Serial.print(Data.barcodetx[3]);
Serial.print(Data.barcodetx[4]);
Serial.print(Data.barcodetx[5]);
Serial.print(Data.barcodetx[6]);
Serial.print(Data.barcodetx[7]);
Serial.print(Data.barcodetx[8]);
Serial.print(Data.barcodetx[9]);
Serial.print(Data.barcodetx[10]);
Serial.print(Data.barcodetx[11]);
Serial.print(Data.barcodetx[12]);
Serial.print(Data.barcodetx[13]=' ');
Serial.print(Data.barcodetx[14]='N');
Serial.print(Data.barcodetx[15]='o');
Serial.print(Data.barcodetx[16]='d');
Serial.print(Data.barcodetx[17]='e');
85

Serial.print(Data.barcodetx[18]='1');
bufferPos = 0;
bool ok = network.write(header,&Data, sizeof(Data));
// Send the data
delay(200); }
// Reset the SCAN_BREAK state if the byte was
a normal one//setel ulag status scan_break jika byte
kembali normal
if(dataValue != SCAN_BREAK){
breakActive = 0; }
dataValue = 0;
}
int dataRead() {
byte val = 0;
while (digitalRead(clockPin));
while (!digitalRead(clockPin));
while (digitalRead(clockPin));
for (int offset = 0; offset < 8; offset++) {
while (digitalRead(clockPin));
val |= digitalRead(dataPin) << offset;
while (!digitalRead(clockPin));}
while (digitalRead(clockPin));
while (!digitalRead(clockPin));
while (digitalRead(clockPin));
while (!digitalRead(clockPin));
return val;}
• Untuk Bagian Tx 2 :

#include <RF24.h>
#include <RF24Network.h>
#include <SPI.h>
RF24 radio(9, 10); // nRF24L01 (CE,CSN)
RF24Network network(radio);// Include the radio in
the network
const uint16_t this_node02 = 00;
struct data_s
{ char barcodetx[25]; };
data_s Data;
int SCAN_ENTER = 0x5a;
int SCAN_BREAK = 0xf0;
int breakActive = 0;
int clockPin = 3;
int dataPin = 2;
int clockValue = 0;
byte dataValue;
bytescanCodes[10]={0x45,0x16,0x1e,0x26,0x25,0x2e,0
x36,0x3d,0x3e,0x46;
char characters[10] = {'0', '1', '2', '3', '4',
'5', '6', '7', '8', '9'};
86

int quantityCodes = 13;


char buffer[64] = {};
int bufferPos = 0;
int bufferLength = 64;
void setup()
{
Serial.begin(9600);
Serial.println("ready to send data");
SPI.begin()
radio.begin();
network.begin(100, this_node02);//(channel, node
address)
radio.setDataRate(RF24_2MBPS);
pinMode(dataPin, INPUT);
pinMode(clockPin,INPUT);
pinMode(ledPin , OUTPUT);
RF24NetworkHeader header(this_node02);
(Data.barcodetx[0]='T');
(Data.barcodetx[1]='X');
(Data.barcodetx[2]='2');
(Data.barcodetx[3]=' ');
(Data.barcodetx[4]='O');
(Data.barcodetx[5]='K');
(Data.barcodetx[6]='E');
Bool ok =network.write(header,&Data,
sizeof(Data)); // Send the data
}
void loop()
{dataValue = dataRead();
if (dataValue == SCAN_BREAK) {
breakActive = 1;
} for (int i = 0; i < quantityCodes; i++) {
byte temp = scanCodes[i];
if(temp == dataValue){
if(!breakActive == 1){
buffer[bufferPos]=characters[i];
bufferPos++; } } }
if(dataValue == SCAN_ENTER){
Serial.print("\nbuffer: ");
int i=0;
if (buffer[i] != 0) {
while(buffer[i] != 0) {
Serial.print( buffer[i] );
Data.barcodetx[i] = buffer[i];
buffer[i] = 0;
i++; } }
Serial.println(" [Enter]");
bufferPos = 0;
87

digitalWrite(ledPin, HIGH);
delay(300);
digitalWrite(ledPin, LOW
network.update();
RF24NetworkHeader header(this_node02);
Serial.print("\nbarcodetx: ");
Serial.print(Data.barcodetx[0]);
Serial.print(Data.barcodetx[1]);
Serial.print(Data.barcodetx[2]);
Serial.print(Data.barcodetx[3]);
Serial.print(Data.barcodetx[4]);
Serial.print(Data.barcodetx[5]);
Serial.print(Data.barcodetx[6]);
Serial.print(Data.barcodetx[7]);
Serial.print(Data.barcodetx[8]);
Serial.print(Data.barcodetx[9]);
Serial.print(Data.barcodetx[10]);
Serial.print(Data.barcodetx[11]);
Serial.print(Data.barcodetx[12]);
Serial.print(Data.barcodetx[13]=' ');
Serial.print(Data.barcodetx[14]='N');
Serial.print(Data.barcodetx[15]='o');
Serial.print(Data.barcodetx[16]='d');
Serial.print(Data.barcodetx[17]='e');
Serial.print(Data.barcodetx[18]='2');
bufferPos = 0;
bool ok =network.write(header,&Data,sizeof(Data));
delay(200);
}
if(dataValue != SCAN_BREAK){
breakActive = 0;}
dataValue = 0; }
int dataRead() {
byte val = 0;
while (digitalRead(clockPin));
while (!digitalRead(clockPin));
while (digitalRead(clockPin));
for (int offset = 0; offset < 8; offset++) {
while (digitalRead(clockPin));
val |= digitalRead(dataPin) << offset;
while (!digitalRead(clockPin));
} while (digitalRead(clockPin));
while (!digitalRead(clockPin));
while (digitalRead(clockPin));
while (!digitalRead(clockPin));
return val;
}
88

• Untuk Bagian RX Node 00 Membuat Program Sebagai Berikut :

#include <RF24.h>
#include <RF24Network.h>
#include <SPI.h>
RF24 radio(9, 10); // nRF24L01 (CE,CSN)
RF24Network network(radio); // Include the radio
in the network
const uint16_t this_node = 00;
struct data_s
{
char Kalimat[25];
};
data_s Data;
void setup()
{
Serial.begin(9600);
Serial.println("ready to receive data from tx");
SPI.begin();
radio.begin();
network.begin(100, this_node); //(channel, node
address)
radio.setDataRate(RF24_2MBPS);
}
void loop()
{
network.update(); // Check the network regularly
//====receiving====//
while ( network.available() )
{
RF24NetworkHeader header;
data_s Data;
network.read(header,&Data,sizeof(Data));
Serial.println(Data.Kalimat);
}
}
89

4.5.3 Hasil Pengujian NRF Network Menggunakan 2 Barcode Scanner

Dari pengujian yang dilakukan, didapatkan hasil seperti Gambar 4.15 (untuk

barcode scanner dan Modul Wireless NRF2L01) dan Gambar 4.17. (untuk hasil

Data Barcode yang discan.

Gambar 4.15 Pengujian NRF Network Node 01 .


Sumber : Pengujian

Gambar 4.16 Pengujian NRF Network Node 02 .


Sumber : Pengujian
90

Data hasil Pengujian pada Barcode Scanner terlihat pada Gambar 4.17.

dimana COM3 (RX) node 00. Sedangkan (TX) adalah bagian Barcode Scanner

yang mengambil data yaitu (TX 1 yang berarti bagian node 01 = Barcode Scanner

1) sedangkan (TX2 berarti node 02 = Barcode Scanner 2) mengirimkan Data

Barcode ke RX.

Gambar 4.17 Pengujian NRF Network Bagian RX


Sumber : Pengujian
91

Berikut adalah Data Barcode yang di ambil sebagai sample untuk pengujian

NRF Network menggunakan lebih dari satu Barcode Scanner terlihat pada gambar

4.18.

Gambar 4.18 Pengujian NRF Network sample data Barcode.


Sumber : Pengujian
92

4.5.4 Hasil Pengujian Keseluruhan Sistem NRF Network Wireless Barcode

Scanner

Dari pengujian yang dilakukan, didapatkan hasil seperti Gambar 4.19 (untuk

Barcode Scanner dan Modul Wireless NRF2L01) dan Gambar 4.20. (untuk hasil

Data Barcode yang di Scan.

Gambar 4.19 Pengujian Proses Pengambilan Data Barcode


Sumber : Pengujian
93

Berikut adalah sample Data Barcode yang di scanning oleh Barcode

Scanner terlihat pada Gambar 4.20.

Gambar 4.20 Pengujian Sample Data Barcode


Sumber : Pengujian

Berikut terlihat hasil pengujian scanning kode barcode terlihat pada

Gambar 4.21.

Gambar 4.21 Hasil Pengujian scanning kode Barcode di Serial Monitor


Sumber : Pengujian
94

4.5.5 Hasil Pengujian Tampak Pada Software Borland Delphi

Berikut adalah pengujian Data Barcode yang di scanning kemudian

ditampilkan di Borland Dephi lalu Data Barcode disimpan di Database yang telah

disediakan terlihat pada Gambar 4.22. Data Barcode digunakan untuk menyimpan

Data Buku pada sebuah perpustakaan.

Gambar 4.22 Pengujian Data Barcode pada Borland Delphi


Sumber : Pengujian
95

Berikut adalah Data beberapa Buku yang berhasil disimpan di Database

Microsoft Access tampak pada Gambar 4.23.

Gambar 4.23 Pengujian Data Barcode pada Database MS.Acces


Sumber : Pengujian

Terlihat pada gambar 4.23 Pada akhir Data Barcode terdapat kode Node 1

dan Node 2. Pada bagian Node 1 berarti Data Barcode di scanning oleh Barcode

Scanner 1 dan Node 2 berarti Data Barcode di scanning oleh Barcode scanner yang

ke 2.

4.5.6 Analisa Hasil Keseluruhan Menggunakan NRF Network

Terlihat pada Gambar 4.20 dan Gambar 4.21 menunjukkan pengujian yang

dilakukan, dimana COM3 merupakan serial Monitor RX Node 00 dan Data

Barcode yang di tampilkan di Serial Monitor, Dari hasil pengujian, Sistem

komunikasi NRF Network bisa bekerja dengan baik, antara Barcode Scanner

dengan Arduino Nano dan Modul wireless NRF2401 berjalan dengan lancar,

terlihat Data Barcode yang dihasilkan dari Barcode Scanner dapat dikirim melalui

modul wireless NRF24l01 dengan menggunakan program NRF Network yang

dikirimkan TX 1 & TX 2 dan diterima oleh RX. Dengan menggunakan program

NRF Network program jadi lebih simple dan pengiriman data yang cepat serta Data

Barcode yang diterima benar dan akurat.


96

4.6 Pengujian Unjuk Kerja Piranti

4.6.1 Pengujian Modul NRF24L01 Tanpa Penghalang.

Hasil pengujian pengiriman data barcode dari node transmitter menuju node

receiver dengan menggunakan modul NRF24l01 tanpa antena external dapat dilihat

pada tabel dibawah ini.

Tabel 4.2 Hasil Pengujian Pengiriman Data Tanpa Penghalang

Jarak Pengujian 40 Meter


Kesesuaian
NO. Input Data Barcode Output Data Barcode
Data
1 8996001401033 8996001401033 Sesuai
2 8996001401033 8996001401033 Sesuai
3 8996001401033 8996001401033 Sesuai
4 8996001401033 8996001401033 Sesuai
5 8996001401033 8996001401033 Sesuai
Jarak Pengujian > 40 Meter
6 8996001401033 -- Tidak sesuai
7 8996001401033 -- Tidak sesuai
8 8996001401033 -- Tidak sesuai
9 8996001401033 -- Tidak sesuai
10 8996001401033 -- Tidak sesuai

Sumber : Pengujian

4.6.2 Analisa Hasil Pengujian tanpa Penghalang

Dari jumlah pengujian 1 s.d. 5 dengan jarak maksimal 40 meter diperoleh

pula 5x kesesuaian data antara input dan output kode barcode dengan

persentase100%.

Dari jumlah pengujian 6 s.d. 10 dengan jarak lebih dari 40 meter, data yang

diterima tidak sesuai atau tidak ada data yang diterima di PC.

Dari pengujian pada tabel 4.2 diatas dapat disimpulkan bahwa sistem

hanya dapat melakukan kirim dan terima data maksimal jarak 40 Meter.
97

4.6.3 Pengujian Modul NRF24L01 dengan Penghalang.

Pengujian ini dilakukan dengan mengirimkan data barcode secara wireless


dengan penghalang berupa dinding ruangan.

Tabel 4.3 Hasil Pengujian Pengiriman Data dengan Penghalang

Pengujian Jarak ± 30 Meter


No. Input Data Barcode Output Data barcode Kesesuaian
Data
1 8996001401033 8996001401033 Sesuai
2 8996001401033 8996001401033 Sesuai
3 8996001401033 -- Tidak Sesuai
4 8996001401033 -- Tidak Sesuai
5 8996001401033 -- Tidak Sesuai

Sumber : Pengujian

4.6.4 Analisa Hasil Pengujian dengan Penghalang

Dari 5x jumlah pengujian, Dari hasil pegujian diatas terlihat bahwa data

NRF24L01 yang bisa dikirim hanya 40% karena adanya penghalang maka NRF

tidak bisa maksimal mengirimkan data. Untuk hasil error 60% atau data yang

dikirim kan tidak bisa ditampilkan di serial monitor pada PC (Personal Komputer)

karena terputus nya sinyal wireless pada NRF24lL01.


BAB V
KESIMPULAN
5.1 Kesimpulan

Setelah melakukan beberapa pengujian alat, maka hasil pengujian pada

Wireless Portable Barcode Scanner berbasis Arduino Nano dapat disimpulkan

sebagai berikut :

1. Sistem Perangkat keras dapat :

❖ Sistem perangkat keras dapat membaca maksimal 13 digit angka

kode barcode, dan bisa mengirim data barcoda dengan jarak

maksimal 40 meter tanpa penghalang

2. Sistem Perangkat lunak dapat :

❖ Sistem perangkat lunak dapat mengolah data barcode dari kode

batang ke kode angka.

❖ Mengirimkan kode barcode secara wireless lewat modul

NRF24L01.

❖ Bisa mengirimkan kode barcode secara bergantian dari dua

client dan diterima oleh satu host.

❖ Bisa membedakan dari mana sumber data barcode scanner, yaitu

terdapat pembeda pada akhir dari kode barcode yang diterima

dari node 01 dan node 02.

❖ Data barcode dapat disimpan pada PC, menggunakan database

MS.Acces.

98
99

5.2 Saran

Tugas akhir yang berjudul “Wireless Portable Barcode Scanner Berbasis

Arduino Nano” Dalam melakukan penyusunan skripsi mulai pembuatan alat dapat

beroperasi, penyusun mendapatkan hasil yang baik dan memuaskan namun walau

demikian, penyusun menyadari bahwa dalam penyusunan skripsi dan pembuatan

alat masih terdapat banyak kelemahan yang perlu dilakukan perbaikan agar kinerja

sistem lebih optimal, diantaranya mampu membaca data barcode 2D dan 3D yang

bilangan karakter nya lebih banyak serta jarak pengiriman data yang lebih jauh dan

stabil, seperti mengunakan modul Nodemcu Esp8266, Modul LoRa, Modul RF

transceiver APC220, dan Modul NRF24L01+PA+LNA(Antenna).

Untuk itu perlu adanya repeater sebagai penghubung atau penguat jaringan

karna saat ad penghalang maka sinyal wireless pada NRF tidak bisa terhubung

dengan baik maka dari itu peru adanya node yang berfungsi manjadi repeater

sebagai penghubung/penguat pada jaringan wireless NRF24L01 yang bisa

meneruskan data yang dikirim dari Client menuju Host.


DAFTAR PUSTAKA

Data sheet Atmega328p.

Datasheet NRF24L01.

Datasheet Barcode Scanner 1D.

Malvino, Albert Paul.1986. Prinsip - Prinsip Elektronika. Jakarta: Erlangga.

Malvino, Albert Paul. 2003. Prinsip-Prinsip Elektronika, Jakarta: Salemba Teknika.

Nordic Semiconductor, 2007. nRF24L01 Single Chip 2.4GHz Transceiver

Stallings, William. 2001. Dasar-Dasar Komunikasi Data, Jakarta: Salemba


Teknika.
Widodo, Romy Budhi dan Joseph Dedy Irawan. 2007. Interfacing Pararel dan Serial
Menggunakan Delphi, Yogyakarta : Graha Ilmu.
Winoto, Ardi. 2008. Mikrokontroler AVR ATMega8/32/16/8535 dan
Pemrogramannya dengan Bahasa C pada WinAVR, Bandung: Informatika

100
101

LAMPIRAN

Anda mungkin juga menyukai