TUGAS AKHIR
SINKRONISASI JAM DIGITAL NIRKABEL
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Disusun oleh:
NUGROHO BUDI WICAKSONO
NIM : 095114030
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
i
TUGAS AKHIR
SINKRONISASI JAM DIGITAL NIRKABEL
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Disusun oleh:
NUGROHO BUDI WICAKSONO
NIM : 095114030
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
FINAL PROJECT
WIRELESS SYNCHRONIZATION ON
DIGITAL CLOCK
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Electrical Engineering Study Program
By:
NUGROHO BUDI WICAKSONO
NIM : 095114030
ELECTRICAL ENGINEERING STUDY PROGRAM
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
vi
HALAMAN PERSEMBAHAN DAN MOTO HIDUP
Moto Hidup:
Tugas Akhir ini kupersembahkan untuk,
Gusti Yesus Pangeran Dalem
Ibu Catharina Elisabeth Sundari
Bapak Athanasius Sunarno
Kakakku Antonius Nugraha Widhi Pratama
“You maydelay, but the
time
willNOT
”~Benjamin Franklin~
viii
INTISARI
Sistem penunjukan waktu di universitas dan perusahaan masih banyak menggunakan jam dinding. Pencocokan waktu di setiap ruangan masih menggunakan cara manual, yakni dengan mencocokkan jarum jam dan menit pada setiap jam dinding. Dalam beberapa bulan, jam dinding menunjukkan waktu yang berbeda. Ketepatan penunjukan waktu dipengaruhi oleh daya tahan baterai. Dengan menggunakan metode sinkronisasi di setiap ruangan, maka masalah perbedaan penunjukan waktu dapat diatasi.
Sistem sinkronisasi jam digital nirkabel terdiri dari 2 subsistem, yakni master dan slave. Sistem terdiri dari 1 subsistem master dan 2 subsistem slave. Subsistem master berfungsi sebagai pusat kontrol yang terhubung dengan komputer pada saat sinkronisasi waktu dengan server NTP, dan mengatur waktu alarm. Antarmuka yang digunakan subsistem master pada saat sinkronisasi waktu dengan server NTP adalah Visual Basic. Subsistem slave berfungsi sebagai penerima data waktu yang dikirimkan oleh master dan penampil jam digital dan alarm.
Prototipe jam digital dapat tersinkronisasi secara nirkabel pada jarak optimal 3 meter. Komunikasi GUI dengan server NTP dan komunikasi GUI dengan subsistem master berhasil diimplementasikan pada sistem. Jarak 45 meter sesuai dengan tujuan penelitian belum terpenuhi.
ix
ABSTRACT
Universities and companies still use wall clock. Each clock in different room is manually synchronized. In recent months, the clock will show different minutes or hour. The accuracy of the time is affected by the battery of the clock. Using the synchronization method, the problem can be solved.
Wireless synchronization on digital clock consists of 2 subsystems, master and slave. The system consists of a master and 2 slaves. Master is used as a control center that connected to the computer at the time synchronization with NTP server and set the alarm time. Visual Basic is used to connecting master with the NTP server. Slave serves as time receiver, clock display and alarm ringer.
The prototype of wireless digital clock can be synchronized at 3 meters. Communication between GUI with NTP server and communication between GUI with master are successfully implemented on the system. The distance of 45 meters according to the research objective is not achieved.
xi
DAFTAR ISI
HALAMAN JUDUL ... i
TITLE PAGE ... ii
LEMBAR PERSETUJUAN ... iii
LEMBAR PENGESAHAN ... iv
LEMBAR PERNYATAAN KEASLIAN KARYA ... v
HALAMAN PERSEMBAHAN DAN MOTO HIDUP ... vi
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... vii
INTISARI ... viii
ABSTRACT ... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xi
DAFTAR GAMBAR ... xiv
DAFTAR TABEL ... xvi
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Tujuan dan Manfaat Penelitian ... 2
1.3 Batasan Masalah ... 2
1.4 Metodologi Penelitian ... 3
1.5 Sistematika Penulisan ... 4
BAB II DASAR TEORI ... 5
2.1 Network Time Protokol ... 5
2.2 Arduino Duemilanove ... 5
2.2.1 Mikrokontroler ATmega328 ... 7
2.2.2 Serial Peripheral Interface ... 8
2.2.3 Komunikasi Serial USART ... 11
2.2.4 Rangkaian Reset ... 13
2.3 Real-Time Clock DS1307 ... 13
2.3.1 Konfigurasi Pin RTC DS1307 ... 14
xii
2.3.3 Definisi Kondisi Bus I2C ... 15
2.3.4 Peta Alamat (Address Map) RTC DS1307 ... 16
2.4 Transceiver Nordic nRF24L01 ... 16
2.5 Penampil Liquid Crystal Display (LCD) ... 18
2.6 Penampil 7 Segment ... 20
2.7 IC 74HC595 ... 21
2.8 Buzzer ... 22
2.9 Visual Basic ... 23
2.10 UNIX Timestamp ... 24
BAB III RANCANGAN PENELITIAN ... 25
3.1 Diagram Blok Sistem ... 25
3.2 Perancangan Perangkat Keras ... 26
3.2.1 Perancangan Subsistem Master ... 26
3.2.1.1 Board Arduino Duemilanove ... 27
3.2.1.2 Rangkaian RTC DS1307 ... 28
3.2.1.3 Rangkaian Penampil LCD ... 29
3.2.1.4 Rangkaian Transceiver nRF24L01 ... 29
3.2.1.5 Rangkaian Alarm... 30
3.2.2 Perancangan Subsistem Slave ... 31
3.2.2.1 Sistem Minimum ATmega328 ... 31
3.2.2.2 Rangkaian Penampil 7 Segment ... 32
3.3 Perancangan Perangkat Lunak ... 33
3.3.1 Perancangan Program Visual Basic ... 33
3.3.1.1 Subrutin Atur Sinkronisasi dan Port Komunikasi... 36
3.3.1.2 Subrutin Atur Alarm... 37
3.3.1.3 Subrutin Kirim Data ke Arduino ... 38
3.3.2 Diagram Alir Subsistem Master ... 38
3.3.3 Diagram Alir Subsistem Slave ... 40
3.3.3.1 Subrutin Tampilkan Data Waktu RTC ke 7 Segment ... 40
BAB IV HASIL DAN PEMBAHASAN ... 42
4.1 Implementasi Perancangan Perangkat Keras ... 42
4.2 Implementasi Perancangan Perangkat Lunak ... 45
xiii
4.2.2 Implementasi Diagram Alir Subsistem Master ... 48
4.2.3 Implementasi Diagram Alir Subsistem Slave ... 51
4.3 Hasil Pengamatan dan Pembahasan ... 52
4.3.1 Komunikasi GUI dengan Server NTP ... 52
4.3.2 Komunikasi GUI dengan Subsistem Master ... 53
4.3.3 Hasil Pengamatan pada Sistem Sinkronisasi Jam Digital Nirkabel ... 54
4.3.3.1 Metode Penskalaan Waktu Pengiriman Data ... 55
4.3.3.2 Metode Uji Coba Sistem ... 68
4.3.4 Hasil Pengamatan pada Subsistem Master dan Subsistem Slave ... 73
4.3.4.1 Hasil Pengamatan pada Subsistem Master... 73
4.3.4.2 Hasil Pengamatan pada Subsistem Slave ... 74
BAB V KESIMPULAN DAN SARAN ... 76
5.1 Kesimpulan ... 76
5.2 Saran ... 76
DAFTAR PUSTAKA ... 77
xiv
DAFTAR GAMBAR
Gambar 1.1 Blok model perancangan ... 3
Gambar 2.1Modul mikrokontroler Arduino Duemilanove ... 5
Gambar 2.2 Konfigurasi pin ATmega168/ATmega328 pada Arduino Duemilanove ... 6
Gambar 2.3 Perangkat lunak Arduino ... 6
Gambar 2.4 Komunikasi master-slave pada SPI ... 9
Gambar 2.5 Diagram pewaktuan pemindahan data dengan Clock Phase (CPHA)=0 ... 10
Gambar 2.6 Diagram pewaktuan pemindahan data dengan CPHA=1 ... 10
Gambar 2.7 Register UBRRn ... 12
Gambar 2.8 Diagram waktu untuk reset eksternal ... 13
Gambar 2.9 Konfigurasi pin RTC DS1307 ... 14
Gambar 2.10 Transfer data pada I2C... 15
Gambar 2.11Konfigurasi pin nRF24L01 ... 17
Gambar 2.12 Bentuk fisik modul LCD Topway ... 19
Gambar 2.13 Tampilan 7 segment ... 20
Gambar 2.14 Konfigurasi 7 segment tipe common anode ... 20
Gambar 2.15 Konfigurasi 7 segment tipe common cathode ... 21
Gambar 2.16 Konfigurasi pin IC 74HC595 ... 21
Gambar 2.17 Diagram waktu IC 74HC595 ... 22
Gambar 2.18 Rangkaian buzzer ... 22
Gambar 2.19 IDE Visual Basic ... 24
Gambar 2.20 Ilustrasi object, property, method dan event ... 24
Gambar 3.1 Diagram blok sistem ... 25
Gambar 3.2 Alokasi pin subsistem master ... 28
Gambar 3.3 Rangkaian RTC DS1307 ... 28
Gambar 3.4 Rangkaian penampil LCD ... 29
Gambar 3.5 Modul transceiver nRF24L01 ... 29
Gambar 3.6 Rangkaian penghubung modul transceiver nRF24L01 ... 30
Gambar 3.7 Rangkaian Alarm ... 30
Gambar 3.8 Sistem minimum dan alokasi pin subsistem slave ... 31
xv
Gambar 3.10 GUI Visual Basic ... 34
Gambar 3.11 Diagram alir utama GUI Visual Basic ... 34
Gambar 3.12 Diagram alir subrutin atur sinkronisasi dan port komunikasi ... 36
Gambar 3.13 Diagram alir subrutin atur alarm... 37
Gambar 3.14 Diagram alir subrutin kirim data ke Arduino ... 38
Gambar 3.15 Diagram alir subsistem master ... 39
Gambar 3.16 Diagram alir utama subsistem slave ... 40
Gambar 3.17 Subrutin tampilkan data waktu RTC ke 7 segment ... 41
Gambar 4.1 Hasil implementasi subsistem master ... 42
Gambar 4.2 Tampilan LCD subsistem master ... 43
Gambar 4.3 Hasil implementasi subsistem slave 1 ... 44
Gambar 4.4 Hasil implementasi subsistem slave 2 ... 44
Gambar 4.5 Implementasi perancangan perangkat lunak ... 45
Gambar 4.6 Peringatan adanya kesalahan pengaturan data mode alarm jam tertentu ... 47
Gambar 4.7 Jumlah kesalahan dalam pengaturan data alarm ... 47
Gambar 4.8 Data yang dikirim GUI ... 48
Gambar 4.9 Isi data yang dikirim GUI ... 48
Gambar 4.10 Data dari GUI ... 53
Gambar 4.11 Data dari Terminal ... 54
Gambar 4.12 Denah lokasi metode penskalaan pengamatan pertama... 60
Gambar 4.13 Denah lokasi metode penskalaan pengamatan ke-2 ... 61
Gambar 4.14 Denah lokasi metode penskalaan pengamatan ke-3 ... 64
Gambar 4.15 Denah lokasi metode uji coba sistem... 69
Gambar 4.16 Selisih waktu yang ditampilkan LCD ... 72
Gambar 4.17 Data yang dikirim subsistem slave 1 ... 72
Gambar 4.18 Pembacaan osiloskop fungsi loop subsistem master ... 74
Gambar 4.19 Pembacaan osiloskop fungsi loop subsistem slave 1 ... 74
xvi
DAFTAR TABEL
Tabel 2.1 Konfigurasi dan deskripsi pin ATmega328 ... 7
Tabel 2.2 Konfigurasi alternatif port D ... 8
Tabel 2.3 Pin ATmega328 yang digunakan sebagai SPI ... 11
Tabel 2.4 Perhitungan register UBRRn ... 12
Tabel 2.5 Keterangan konfigurasi pin DS1307 ... 14
Tabel 2.6 Register RTC dan RAM ... 16
Tabel 2.7 Keterangan konfigurasi pin nRF24L01 ... 17
Tabel 2.8 Keterangan konfigurasi pin LCD Topway ... 19
Tabel 2.9 Keterangan konfigurasi pin IC 74HC595 ... 21
Tabel 3.1 Alokasi pin ATmega328 dengan RTC DS1307 ... 26
Tabel 3.2 Alokasi pin ATmega328 dengan LCD ... 27
Tabel 3.3 Alokasi pin ATmega328 dengan nRF24L01 ... 27
Tabel 3.4 Alokasi pin ATmega328 dengan buzzer ... 27
Tabel 3.5 Alokasi pin ATmega328 dengan 7 Segment (74HC595), dan LED ... 32
Tabel 3.6 Susunan biner pin-pin 7 segment ... 33
Tabel 3.7 Obyek pada GUI Visual Basic ... 35
Tabel 4.1 Perubahan pada GUI... 46
Tabel 4.2 Header data GUI ... 47
Tabel 4.3 Alamat dan Fungsi EEPROM ... 49
Tabel 4.4 Identitas alarm pada subsistem master ... 50
Tabel 4.5 Format data dan header data subsistem master ... 51
Tabel 4.6 Format data dan header data subsistem slave 1 dan subsistem slave 2 ... 51
Tabel 4.7 Identitas alarm pada subsistem slave ... 52
Tabel 4.8 Komunikasi GUI dengan server NTP ... 52
Tabel 4.9 Perbandingan data yang dikirim dan diterima ... 53
Tabel 4.10 Perbandingan waktu komputer dengan subsistem master ... 54
Tabel 4.11 Format pewaktuan metode penskalaan ... 55
Tabel 4.12 Metode penskalaan pengamatan pertama jarak 1 m – 3 m ... 57
Tabel 4.13 Metode penskalaan pengamatan pertama jarak 4m, 5m, 10m, dan 15m ... 58
xvii
Tabel 4.15 Persentase keberhasilan metode penskalaan pengamatan pertama ... 60
Tabel 4.16 Metode penskalaan pengamatan ke-2 jarak 5 m & 10 m ... 61
Tabel 4.17 Persentase keberhasilan metode penskalaan pengamatan ke-2 ... 61
Tabel 4.18 Metode penskalaan pengamatan ke-3 jarak 1 m & 2 m ... 62
Tabel 4.19 Metode penskalaan pengamatan ke-3 jarak 3 m – 6 m ... 63
Tabel 4.20 Persentase keberhasilan metode penskalaan pengamatan ke-3 ... 64
Tabel 4.21 Metode penskalaan pengamatan ke-4 jarak 1 m – 4 m ... 65
Tabel 4.22 Persentase keberhasilan metode penskalaan pengamatan ke-4 ... 66
Tabel 4.23 Metode penskalaan pengamatan ke-5 ... 66
Tabel 4.24 Uji coba sistem pengamatan pertama mode alarm interval ... 69
Tabel 4.25 Uji coba sistem pengamatan ke-2 mode alarm jam tertentu ... 70
Tabel 4.26 Uji coba sistem pengamatan ke-3 mode alarm mati ... 71
Tabel 4.27 Persentase keberhasilan metode uji coba sistem ... 72
Tabel 4.28 Waktu loop subsistem master ... 73
Tabel 4.29 Waktu loop subsistem slave 1 ... 74
1
1
BAB I
PENDAHULUAN
1.1
Latar Belakang
Jam adalah alat untuk mengukur waktu [1]. Sistem penunjukan waktu di universitas
dan perusahaan masih banyak menggunakan jam dinding. Pencocokan waktu di setiap
ruangan masih menggunakan cara manual, yakni dengan mencocokkan setiap jam dinding.
Dalam beberapa bulan, jam dinding menunjukkan waktu yang berbeda. Ketepatan
penunjukan waktu dipengaruhi oleh daya tahan baterai [2, 3].
Dengan menggunakan metode sinkronisasi di setiap ruangan, maka masalah
perbedaan penunjukan waktu dapat diatasi. Salah satu mekanisme sinkronisasi waktu yang
digunakan pada jaringan komputer adalah sinkronisasi berbasis Network Time Protocol
(NTP). Mekanisme ini memungkinkan setiap komputer dalam satu jaringan dapat
tersinkronisasi dengan server NTP, sehingga setiap komputer menunjukkan informasi
waktu yang sama. Adanya informasi waktu yang standar dari NTP bisa dibuat sistem jam
digital yang disinkronisasikan secara terpusat [4].
Berdasarkan latar belakang ini, penulis ingin membuat sebuah sistem sinkronisasi
jam digital nirkabel. Sistem menggunakan jaringan internet, kontroler Arduino, dan modul
transceiver nRF24L01 frekuensi radio (RF) dengan modulasi Gaussian Frequency
Shift-Keying (GFSK) [5]. Daya jangkau transceiver nRF24L01 mencapai 45-55 meter di tempat
yang dikelilingi banyak gedung [6].
Sistem ini dikembangkan dari sistem yang sudah ada sebelumnya, yaitu
sinkronisasi jam digital [4], perencanaan dan pembuatan sistem penunjuk waktu
tersinkronisasi secara digital [7], penampil jamak jam digital berbasis mikrokontroler
AT89C2051 menggunakan komunikasi serial [8], dan jam dan alarm sekolah berbasis
mikrokontroler ATmega16 [9]. Penelitian-penelitian tersebut menggunakan teknologi
inframerah yang jarak maksimal transmisinya 7,5 meter [7], dan menggunakan kabel
(wired) [8, 9]. Sistem yang akan dibuat dapat mengatasi permasalahan jarak transmisi dan
kerumitan instalasi jam digital menggunakan kabel.
Pengaturan sinkronisasi sistem ini diperoleh dari server NTP yang terhubung
dengan komputer. Sinkronisasi antara komputer dengan server NTP menggunakan
mikrokontroler. Subsistem master digunakan untuk mengirimkan dan menerima data
sinkronisasi. Data sinkronisasi diterima oleh subsistem slave dan diolah mikrokontroler
untuk ditampilkan pada jam digital. Data hasil sinkronisasi pada subsistem slave
dikirimkan kembali ke subsistem master. Komunikasi data antara subsistem master dan
subsistem slave menggunakan modul nRF24L01. Masing-masing subsistem memiliki IC
RTC (Real Time Clock) yang digunakan sebagai pewaktu. Sistem dikondisikan hanya
bekerja jika terdapat arus listrik dari PLN. Kondisi tidak terdapat arus listrik PLN di luar
perancangan sistem. Fasilitas alarm ditambahkan pada sistem ini dapat digunakan sebagai
penanda waktu tertentu. Fasilitas alarm sistem ini dapat diaplikasikan pada perusahaan
yang memiliki waktu kerja yang berbeda, yaitu area produksi dengan waktu kerja shift
(contoh: 3 shift dalam 1 hari, @ shift 8 jam) dan administrasi dengan waktu kerja tertentu
(contoh: pukul 08.00 – 16.00).
1.2
Tujuan dan Manfaat Penelitian
Tujuan penelitian ini adalah:
1. Menghasilkan prototipe jam digital yang tersinkronisasi nirkabel dan
tersinkronisasi dengan server NTP,
2. Menghasilkan prototipe jam digital yang dapat tersinkronisasi dengan jarak 45
meter pada lokasi yang dikelilingi banyak gedung.
Manfaat penelitian ini adalah:
1. Dapat digunakan sebagai penunjuk waktu pada ruang kuliah dan laboratorium,
2. Dapat digunakan sebagai acuan, rujukan, dan bahan pertimbangan untuk
memperbanyak prototipe jam digital.
1.3
Batasan Masalah
Penelitian ini dibatasi pada sinkronisasi antara 1 subsistem master dengan penampil
LCD dan 2 subsistem slave dengan tampilan 4 digit 7 segment. Masing-masing subsistem
slave mempunyai identitas atau alamat yang berbeda. Pengujian subsistem master dan
subsistem slave dalam gedung dengan ketinggian yang sama pada ruang terbuka dan ruang
tertutup. Spesifikasi sistem sebagai berikut:
1. Modul mikrokontroler menggunakan Arduino Duemilanove pada subsistem master.
2. Modul transceiver yang digunakan adalah nRF24L01.
4. Sistem sinkronisasi bersifat close loop.
5. Topologi jaringan yang digunakan adalah topologi star.
1.4
Metodologi Penelitian
Metodologi yang digunakan penelitian ini adalah
1. Studi pustaka mengumpulkan bahan-bahan referensi berupa buku-buku, dan
jurnal-jurnal penelitian.
2. Perancangan perangkat keras dan perangkat lunak. Tahap ini bertujuan untuk
mencari bentuk optimal dari sistem yang akan dibuat dengan mempertimbangkan
faktor permasalahan, dan ketersediaan komponen.
Gambar 1.1 Blok model perancangan
3. Pembuatan perangkat keras dan lunak yang digambarkan pada Gambar 1.1. Sistem
memulai proses sinkronisasi saat user menjalankan program Visual Basic dan
menyetel waktu sinkronisasi dan alarm. Data waktu sinkronisasi dan alarm diolah
oleh mikrokontroler dan subsistem master untuk dikirimkan ke subsistem slave.
Data tampilan jam digital pada subsistem slave dikirimkan kembali ke subsistem
master untuk mengamati tampilan jam digital pada subsistem slave.
4. Proses pengambilan data. Pengambilan data dilakukan dengan membandingkan
data tampilan waktu subsistem slave dengan subsistem master dalam jeda waktu
sinkronisasi tertentu, dan mengetahui jarak maksimal antarsubsistem. Pengambilan
data dilakukan pada ruang terbuka dan tertutup. Kondisi ruang terbuka adalah tidak
adanya penghalang (tembok, sekat, dll) antar-transceiver atau LOS (Line Of Sight),
kondisi ruang tertutup adalah lokasi kondisi pengambilan data dilakukan pada
ruangan yang terpisah.
5. Analisis dan penyimpulan hasil percobaan. Analisis data dilakukan dengan
membandingkan keakuratan data tampilan waktu subsistem slave dengan subsistem Subsistem Master
Subsistem Slave Network
Time Protokol
Komputer Kontroler Alarm LCD
nRF24L01
Kontroler Jam Digital Alarm nRF24L01
master. Penyimpulan hasil percobaan dilakukan dengan melihat persentase
keberhasilan sistem. Indikator keberhasilan sistem adalah subsistem slave
menunjukkan waktu yang sama dengan subsistem master.
1.5
Sistematika Penulisan
BAB I : PENDAHULUAN
Bab ini berisi latar belakang masalah, tujuan dan manfaat penelitian, batasan
masalah, metodologi penelitian, serta sistematika penulisan.
BAB II : DASAR TEORI
Bab ini berisi studi pustaka mengenai teori-teori yang mendasari penelitian ini.
BAB III : RANCANGAN PENELITIAN
Bab ini berisi blok diagram sistem, diagram alir perancangan, dan rancangan
tampilan pada software.
BAB IV : HASIL DAN PEMBAHASAN
Bab ini berisi hasil perancangan, data pengujian, analisis data, dan pembahasan
data.
BAB V : KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan akhir dan saran-saran penulis mengenai sistem yang
5
2
BAB II
DASAR TEORI
[1-9]
Bab ini menjelaskan tentang teori komponen-komponen utama dan
protokol-protokol yang mendasari sistem “Sinkronisasi Jam Digital Nirkabel”. Komponen
-komponen yang digunakan adalah Network Time Protokol , Arduino Duemilanove,
Mikrokontroler ATmega328, Real-Time Clock DS1307, Transceiver Nordic nRF24L01,
Penampil Liquid Crystal Display (LCD), Penampil 7 Segment, IC 74HC595, Buzzer, dan
Visual Basic. Pemaparan dasar teori diurutkan sesuai dengan blok model perancangan pada
Gambar 1.1.
2.1
Network Time Protokol
Network Time Protocol (NTP) merupakan protokol yang digunakan untuk
melakukan time-synchronization antara satu host dengan host lainnya. NTP menggunakan
portUser Datagram Protocol (UDP) 123 pada layer transpor. NTP pertama kali didesain
oleh Dave Mills dari University of Delaware [10]. Host yang dimaksud adalah komputer
yang terhubung dengan jaringan internet [11]. Salah satu contoh dibutuhkannya penunjuk
waktu yang sama pada komputer adalah kebutuhan ketepatan penjadwalan dalam proses
kontrol industri [12].
2.2
Arduino Duemilanove
Arduino Duemilanove adalah sebuah perangkat keras dari Arduino berupa sistem
minimum dengan mikrokontroler ATmega168/ATmega328 [13].
Arduino Duemilanove memiliki 14 pin input/output digital (6 pin diantaranya dapat
digunakan sebagai outputPulse Width Modulation/PWM), 6 pin input analog, osilator 16
MHz, dan koneksi USB dengan cip Future Technology Devices International (FTDI).
Modul mikrokontroler Arduino Duemilanove ditunjukkan pada Gambar 2.1, sedangkan
Gambar 2.2 menunjukkan konfigurasi pin ATmega168/ATmega328 pada Arduino
Duemilanove.
Pemrograman Arduino Duemilanove menggunakan perangkat lunak Arduino
(Gambar 2.3). ATmega168/ATmega328 pada Arduino sudah terpasang bootloader yang
memungkinkan pengguna untuk mengunggah kode tanpa menggunakan perangkat keras
tambahan.
Gambar 2.2 Konfigurasi pin ATmega168/ATmega328 pada Arduino Duemilanove [13]
Gambar 2.3 Perangkat lunak Arduino [13]
Fasilitas komunikasi Arduino Duemilanove meliputi komunikasi antara Arduino
Duemilanove dengan komputer, Arduino Duemilanove dengan Arduino yang lain, dan
menyediakan fasilitas Universal Synchronous and Asynchronous serial Receiver and
Transmitter (USART) pada pin D0 (RX) dan pin D1 (TX). Cip FTDI FT232RL digunakan
untuk komunikasi serial lewat USB dan driver FTDI yang terdapat pada perangkat lunak
digunakan untuk mengkonfigurasikan virtual COM port.
2.2.1
Mikrokontroler ATmega328
Mikrokontroler sering dipakai sebagai komponen pengendali pada suatu peralatan
karena memiliki kelengkapan-kelengkapan yang diperlukan untuk bekerja dalam sistem
cip tunggal dan juga pertimbangan ekonomis [14]. Dalam penelitian ini digunakan
mikrokontroler ATmega328 karena kompatibilitasnya dengan Arduino dan fiturnya cukup
lengkap. ATmega328 memiliki fitur 32 kByte downloadable flash memory, 1 kByte
Electrically Erasable Programmable Read-Only Memory (EEPROM), 2 kByte internal
Static Random-Access Memory (SRAM), 2 Timer/Counter 8 bit dan 1 Timer/Counter 16
bit, 6 kanal PWM, Serial USART yang dapat diprogram, dan frekuensi kerja sampai
dengan 20 MHz [15].
Fungsi masing-masing pin pada Gambar 2.2 dijelaskan pada Tabel 2.1. Fungsi
khusus port D dijelaskan pada Tabel 2.2.
Tabel 2.1 Konfigurasi dan deskripsi pin ATmega328 [15]
No Pin Nama Pin Keterangan
7 VCC Sumber tegangan
Masing-masing pin pada port B memiliki resistor pull-up internal dan dapat digunakan sebagai 8 bit I/O digital. pin PB6 dan pin PB7 terhubung dengan kristal 16 MHz, tidak digunakan sebagai I/O. Pin PB1 - pin PB3 dapat digunakan sebagai output PWM.
23,24,25,26, 27,28,1
Port C (PC6:0)
Masing-masing pin pada port C memiliki resistor pull-up internal dan dapat digunakan sebagai 7 bit I/O analog. Pin PC6 digunakan sebagai input reset, tidak digunakan sebagai I/O.
2,3,4,5,6,11, 12,13
Port D (PD7:0)
Masing-masing pin pada port D memiliki resistor pull-up internal dan dapat digunakan sebagai 8 bit I/O digital. Pin PD3 dapat digunakan sebagai output PWM.
Konfigurasi alternatif port D dapat dilihat pada Tabel 2.2
Tabel 2.2 Konfigurasi alternatif port D [15]
No Pin Nama Pin Keterangan
AIN1 (Analog Comparator Negative Input)
PCINT23 (Pin Change Interrupt 23)
AIN0 (Analog Comparator Positive Input)
OC0A (Timer/Counter0 Output Compare Match A Output)
PCINT22 (Pin Change Interrupt 22)
T1 (Timer/Counter 1 External Counter Input)
OC0B (Timer/Counter0 Output Compare Match B Output)
PCINT21 (Pin Change Interrupt 21)
XCK (USART External Clock Input/Output)
T0 (Timer/Counter 0 External Counter Input)
PCINT20 (Pin Change Interrupt 20)
INT1 (External Interrupt 1 Input)
OC2B (Timer/Counter2 Output Compare Match B Output)
PCINT19 (Pin Change Interrupt 19)
INT0 (External Interrupt 0 Input)
PCINT18 (Pin Change Interrupt 18)
TXD (USART Output Pin)
PCINT17 (Pin Change Interrupt 17)
RXD (USART Input Pin)
PCINT16 (Pin Change Interrupt 16)
7 PD1
6 PD0
10 PD4
9 PD3
8 PD2
13 PD7
12 PD6
11 PD5
2.2.2
Serial Peripheral Interface
Serial Peripheral Interface (SPI) merupakan salah satu metode pengiriman data
dari suatu perangkat ke perangkat lainnya [16]. Metode ini merupakan metode yang
bekerja pada metode full duplex dan merupakan standar sinkronisasi serial data link yang
dikembangkan oleh Motorola. Pada SPI, perangkat dibagi menjadi dua bagian yaitu master
dan slave, dengan master sebagai perangkat yang menginisiasi pengiriman data. Sebuah
master dalam aplikasinya dapat digunakan untuk mengatur pengiriman data dari atau ke
beberapa slave sekaligus. Komunikasi serial data antara master dan slave pada SPI diatur
melalui 4 buah pin yang terdiri dari SCLK, MOSI, MISO, dan SS. Keempat pin tersebut
dijelaskan sebagai berikut:
a. Serial Clock (SCLK) merupakan data biner yang keluar dari master ke slave yang
komponen prosedur komunikasi data SPI. Dalam beberapa perangkat, istilah yang
digunakan untuk pin ini adalah SCK.
b. Master Output Slave Input (MOSI) merupakan pin yang berfungsi sebagai jalur
data pada saat data keluar dari master dan masuk ke dalam slave. Istilah lain untuk
pin ini antara lain Slave Input Master Output (SIMO), Serial Data In (SDI), Data
In (DI), dan Serial In (SI).
c. Master Input Slave Output (MISO) merupakan pin yang berfungsi sebagai jalur
data yang keluar dari slave dan masuk ke dalam master. Istilah lain untuk pin ini
adalah Slave OutputMaster Input (SOMI), Serial Data Out (SDO), Data Out (DO),
dan Serial Out (SO).
d. Slave Select (SS) merupakan pin yang berfungsi untuk mengaktifkan slave
sehingga pengiriman data hanya dapat dilakukan jika slave dalam keadaan aktif
(active low). Istilah lain untuk SS antara lain Chip Select (CS), nCS, nSS, dan Slave
Transmit Enable (STE).
Pin SCLK, MOSI, dan SS merupakan pin dengan arah pengiriman data dari master
ke slave. Sebaliknya, MISO mempunyai arah komunikasi data dari slave ke master.
Pengaturan hubungan antara pin MISO dan MOSI harus sesuai dengan ketentuan.
Ketentuan tersebut adalah pin MISO pada master harus dihubungkan dengan pin MOSI
pada slave, begitu juga sebaliknya. Hal ini dilakukan untuk menghindari terjadinya
kesalahan prosedur pada pengiriman data. Istilah pin-pin SPI untuk berbagai perangkat
mungkin saja mempunyai istilah yang berbeda dengan istilah di atas tergantung pada
produsen.
Gambar 2.4 Komunikasi master-slave pada SPI [15]
Komunikasi data SPI dimulai pada saat master mengirimkan clock melalui SCK
Kemudian, master memberi logika low atau 0 pada SS untuk mengaktifkan slave sehingga
pengiriman data (berupa siklus clock) siap untuk dilakukan. Pada saat siklus clock terjadi,
transmisi data full duplex terjadi dengan dua keadaan sebagai berikut:
a. Master mengirim sebuah bit pada jalur MOSI dan slave membacanya pada jalur
yang sama.
b. Slave mengirim sebuah bit pada jalur MISO dan master membacanya pada jalur
yang sama.
Transmisi dapat menghasilkan beberapa siklus clock. Jika tidak ada data yang
dikirim lagi maka master menghentikan clock tersebut dan menonaktifkan slave.
Gambar 2.5 Diagram pewaktuan pemindahan data dengan Clock Phase (CPHA)=0 [15]
Diagram pewaktuan (timing diagram) SPI dimulai pada saat SS diaktifkan (low).
Pada Gambar 2.5 dan Gambar 2.6 menunjukkan bahwa satu siklus clock terdiri dari 8 bit
data. Saat SS aktif, MISO/MOSI mulai mengirimkan data mulai dari Most Significant Bit
(MSB) data tersebut. Pada saat clock berubah maka proses pengiriman data dilanjutkan
pada bit yang lebih rendah. Proses tersebut berlangsung sampai pengiriman data selesai
dengan mengirimkan bit Least Significant Bit (LSB) dan siklus clock berakhir serta SS
kembali dinonaktifkan (high). Saat siklus clock berakhir, biasanya slave mengirimkan
interrupt ke master yang mengindikasikan bahwa pengiriman data telah selesai dan siap
untuk melakukan pengiriman data selanjutnya. Dalam diagram pewaktuan, clock
mempunyai beberapa mode pengaturan polaritas (Clock Polarity/CPOL) dan fase (Clock
Phase/CPHA). Pin-pin ATmega328 yang digunakan sebagai SPI ditunjukkan pada Tabel
2.3
Tabel 2.3 Pin ATmega328 yang digunakan sebagai SPI [15]
No Pin Nama Pin Keterangan
SCK (SPI Bus Master clock Input)
PCINT5 (Pin Change Interrupt 5)
MISO (SPI Bus Master Input/Slave Output)
PCINT4 (Pin Change Interrupt 4)
MOSI (SPI Bus Master Output/Slave Input)
OC2A (Timer/Counter2 Output Compare Match A Output)
PCINT3 (Pin Change Interrupt 3)
SS (SPI Bus Master Slave select)
OC1B (Timer/Counter1 Output Compare Match B Output)
PCINT2 (Pin Change Interrupt 2)
16 PB2
19 PB5
18 PB4
17 PB3
2.2.3
Komunikasi Serial USART
Universal Synchronous and Asynchronous serial Receiver and Transmitter
(USART) merupakan salah satu mode komunikasi serial yang memiliki fleksibilitas tinggi.
USART dapat digunakan untuk melakukan transfer data antarmikrokontroler maupun
modul-modul eksternal termasuk komputer yang memiliki fitur Universal Asynchronous
serial Receiver and Transmitter (UART). USART memungkinkan transmisi data secara
sinkron maupun asinkron, sehingga USART kompatibel dengan UART.
Pengaturan mode USART pada mikrokontroler ATmega328 dilakukan pada
Register n A), UCSRnB (USART Control and Status Register n B), UCSRnC (USART
Control and Status Register n C), dan UBRRn (UBRRnL dan UBRRnH – USART Baud
Rate Registers). Register UBRRn digunakan untuk menentukan baud rate mikrokontroler
pada saat terhubung dengan komputer.
Gambar 2.7 Register UBRRn [15]
Register UBRRn adalah register 16 bit. Bit 15-12 belum digunakan (reserved bits)
saat register UBRRnH digunakan, sehingga bit 15-12 harus bernilai 0. Bit 11-0 adalah
register 12 bit untuk mengatur baud rate USART dengan 4 bit pada UBRRnH dan 8 bit
pada UBRRnL. Penentuan nilai baud rate dan nilai register UBRRn ditunjukkan pada
Tabel 2.4.
Tabel 2.4 Perhitungan register UBRRn [15]
Mode Operasi Penentuan nilai Baud Rate Penentuan nilai Register UBRRn
Asinkron. Mode
fosc = frekuensi osilator (frekuensi kristal)
UBRRn = nilai register UBRRn (UBRRnH-UBRRnL)
1
Perhitungan yang digunakan untuk menentukan nilai error baud rate adalah
2.2.4
Rangkaian
Reset
Pin reset pada mikrokontroler AVR adalah aktif low. Jika sinyal berlogika low
diberikan pada pin reset, maka kondisi mikrokontroler pada keadaan reset.
Gambar 2.8 Diagram waktu untuk reset eksternal [15]
Tujuan reset pada mikrokontroler adalah sebagai berikut [17]:
a. Melepas semua jalur, dan mengkondisikan semua pin (kecuali pin XTAL) dalam
keadaan awal (tri-state), menginisialisasi register I/O, dan mengubah nilai counter
dalam keadaan 0.
b. Mengkondisikan mikrokontroler dalam mode program.
Pin reset memiliki resistor pull-up internal. Pada lingkungan yang memiliki
gangguan, resistor pull-up internal tidak dapat berfungsi dengan baik. Oleh karena itu,
resistor pull-up eksternal dibutuhkan untuk menjaga agar pin reset tidak berlogika 0 secara
tidak disengaja. Nilai resistor pull-up eksternal secara teori bernilai bebas, tetapi secara
aplikatif digunakan nilai resistor tertentu, agar logika pin reset dapat diubah menjadi 0 saat
diprogram. Nilai resistor yang direkomendasikan adalah lebih besar dari 4,7 kOhm [17].
2.3
Real-Time Clock
DS1307
Serial Real Time Clock (RTC) DS1307 merupakan jam/kalender full binary code
decimal (BCD) yang dilengkapi NV RAM sebesar 56 Byte. RTC mengkonsumsi daya kecil
dan arus yang dipakai sebesar 500 nA. Alamat dan data dikirim secara serial melalui jalur
komunikasi I2C (bidirectional bus). Informasi kalender meliputi tahun, bulan, tanggal dan
hari sedangkan informasi jam meliputi detik, menit, dan jam. Akhir dari suatu bulan
disesuaikan lagi dengan bulan berikutnya secara otomatis, termasuk pengecekan tahun
DS1307 memiliki rangkaian power sense yang dapat mengetahui kegagalan daya dan
secara otomatis menggunakan sumber tegangan cadangan [14].
2.3.1
Konfigurasi Pin RTC DS1307
Gambar 2.9 dan Tabel 2.5 di bawah ini merupakan konfigurasi dan keterangan pin
pada IC Real Time Clock DS1307.
Gambar 2.9 Konfigurasi pin RTC DS1307 [18]
Tabel 2.5 Keterangan konfigurasi pin DS1307 [18]
No Pin Nama Pin Keterangan
1 X1
2 X2
3 VBAT Terhubung dengan baterai 3 V untuk catu daya cadangan
4 GND Ground
5 SDA I/O data serial (serial data input/output) 6 SCL Input clock serial (serial clock input) 7 SQW/OUT Output gelombang kotak/output driver 8 VCC Sumber tegangan
Terhubung dengan kristal 32,768 kHz
2.3.2
Komunikasi Serial antar-IC (I2C/TWI)
Inter Integrated Circuit (I2C) adalah sebuah protokol untuk komunikasi serial antar
Integrated Circuit (IC) dan sering disebut Two Wire Interface (TWI). I2C digunakan untuk
komunikasi antara mikrokontroler dan perangkat periferal seperti memori, sensor
temperatur dan I/O expander [19].
Komunikasi I2C dilakukan melalui dua jalur, yaitu: SDA dan SCL. Setiap
perangkat I2C memiliki 7 bit alamat yang unik. Alamat MSB selalu tetap dan ditujukan
untuk kategori perangkat yang digunakan. Sebagai contoh, 1010 biner ditujukan untuk
serial EEPROM. Tiga bit berikutnya memungkinkan 8 kombinasi alamat dengan 8
perangkat bertipe sama dan beroperasi pada jalur I2C yang sama. Pengiriman data hanya
dapat dimulai saat kondisi bus I2C tidak sibuk, ditandai dengan logika high yang cukup
lama pada pin SCL maupun SDA. Selama pengiriman data, SDA harus dalam keadaan
sebagai sinyal-sinyal kendali, seperti: sinyal start (high ke low) atau sinyal stop (low ke
high). Gambar 2.10 menunjukkan transfer data pada I2C.
Gambar 2.10 Transfer data pada I2C [18]
2.3.3
Definisi Kondisi
Bus
I2C [18]
Definisi kondisi bus pada sistem komunikasi serial I2C/TWI dijelaskan sebagai
berikut:
a. Bus tidak sibuk (bus not busy): menyatakan kondisi bus tidak sibuk, yaitu pada saat
SCL dan SDA berlogika high.
b. Mulai transfer data (start data transfer): ditandai dengan perubahan kondisi SDA
dari high ke low saat SCL berlogika high.
c. Akhiri transfer data (stop data transfer): ditandai dengan perubahan kondisi SDA
dari low ke high saat SCL dalam berlogika high.
d. Data valid: jika setelah start, kondisi SDA tidak berubah selama SCL high, baik
SDA high maupun SDA low tergantung dari bit yang ingin ditransfer, maka data
yang dikirim bit demi bit dianggap valid. Setiap siklus SCL high baru menandakan
pengiriman bit baru. Duty cycle untuk SCL tidak harus 50%, tetapi frekuensi
kemunculannya hanya ada dua macam, yaitu mode standar 100 kHz dan fast mode
atau mode cepat 400 kHz. Setelah SCL mengirimkan sinyal high yang ke-8, arah
transfer SDA berubah dan sinyal ke-9 pada SDA ini dianggap sebagai acknowledge
dari receiver ke transmitter. DS1307 hanya bisa melakukan transfer pada mode
standar 100 kHz.
e. Pemberitahuan (Acknowledge): receiver wajib mengirimkan sinyal acknowledge
memberikan extra clock atau clock tambahan pada SCL, yaitu clock ke-9 yang
memberikan kesempatan receiver untuk mengirimkan sinyal acknowledge ke
transmitter berupa logika low pada SDA selama SCL high. Meskipun master
berperan sebagai receiver, master tetap berperan sebagai penentu sinyal stop. Pada
bit akhir penerimaan Byte terakhir, master tidak mengirimkan sinyal acknowledge.
SDA dibiarkan high oleh receiver dalam hal ini master, kemudian master
mengubah logika SDA dari low menjadi high yang berarti sinyal stop.
2.3.4
Peta Alamat (
Address Map
) RTC DS1307
Peta alamat RTC dan register RAM DS1307 ditunjukkan pada Tabel 2.6. Register
RTC terletak di alamat 00h sampai 07h, sedangkan register RAM terletak di alamat 08h
sampai 3Fh.
Tabel 2.6 Register RTC dan RAM [18]
Alamat Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Fungsi Keterangan
00h CH Detik 00-59
01h 0 Menit 00-59
12 10 jam 1-12+AM/PM
24 PM/AM
03h 0 0 0 0 0 Hari 01-07
04h 0 0 Tanggal 01-31
05h 0 Bulan 01-12
06h Tahun 00-99
07h out 0 0 SQWE 0 0 RS1 RS0 Kontrol
-08h-3Fh RAM 56 x 8 00h-FFh
Menit Detik
10 menit 10 detik
Jam Jam
Tahun Bulan 0
02h 10 jam
Hari
10 hari (tanggal) Tanggal
2.4
Transceiver
Nordic nRF24L01
nRF24L01 adalah transceiver radio dengan cip tunggal yang digunakan pada band
ISM (Industrial, Scientific, dan Medical) 2,4 GHz - 2,5 GHz. Transceiver nRF24L01
terdiri dari frekuensi synthesizer yang terintegrasi, penguat daya, osilator kristal,
demodulator, modulator dan protokol Enhanced ShockBurst™. Daya output, kanal
frekuensi, dan protokol diprogram melalui SPI [5]. Modulasi yang digunakan adalah
modulasi GFSK. Parameter kanal frekuensi, daya output, dan data rate GFSK dapat
diubah. Konfigurasi pin dan keterangan konfigurasi pin nRF24L01 ditunjukkan pada
Gambar 2.11Konfigurasi pin nRF24L01 [5]
Tabel 2.7 Keterangan konfigurasi pin nRF24L01 [5]
No Pin Nama Pin Fungsi Pin Keterangan
1 CE Input digital Pin enable untuk mengaktifkan mode RX atau TX 2 CSN Input digital SPI chip select/SPI slave select
3 SCK Input digital SPI clock
4 MOSI Input digital SPI slave data input
5 MISO Output digital SPI slave data output dengan pilihan tri-state
6 IRQ Output digital Pin maskable interrupt,aktif rendah
7 VDD Sumber tegangan Sumber tegangan (+1,9 V sampai dengan +3,6 V)
8 VSS Sumber tegangan Ground
9 XC2 Output analog Terhubung dengan kristal pin 2 10 XC1 Input analog Terhubung dengan kristal pin 1 11 VDD_PA Sumber Tegangan Output Output untuk penguat daya internal
12 ANT1 RF Antarmuka antena 1
13 ANT2 RF Antarmuka antena 2
14 VSS Sumber tegangan Ground
15 VDD Sumber tegangan Sumber tegangan (+1,9 V sampai dengan +3,6 V)
16 IREF Input analog Arus referensi, terhubung dengan resistor 2,2 kΩ dengan
ground
17 VSS Sumber tegangan Ground
18 VDD Sumber tegangan Sumber tegangan (+1,9 V sampai dengan +3,6 V) 19 DVDD Output Output internal untuk de-coupling
20 VSS Sumber tegangan Ground
Arus yang digunakan sangat rendah, yaitu 9 mA pada daya output -6 dBm dan 12,3
mA pada mode RX. Mode Power Down dan Standby membuat penghematan daya dapat
direalisasikan. Metode penanganan paket (packet handling) yang digunakan adalah [20]:
a. ShockBurst™ (kompatibel dengan nRF2401, nRF24E1 nRF2402 dan nRF24E2
dengan data rate 1 Mbps),
nRF24L01 yang dikonfigurasi sebagai RX primer (PRX) dapat menerima data
melalui 6 pipa data (data pipe) yang berbeda. Sebuah pipa data akan memiliki alamat unik,
tetapi memiliki kanal frekuensi yang sama [20]. Enam pipa data multiceiver ini dapat
dikonfigurasikan dalam topologi star 1:6 [5]. Fitur multiceiver nRF24L01 dapat digunakan
untuk membangun Personal Area Network dalam berbagai aplikasi [21].
nRF24L01 dilengkapi dengan baseband protocol engine (Enhanced ShockBurst™)
yang mendukung aplikasi nirkabel berdaya rendah. Fitur utama Enhanced ShockBurst™
adalah:
a. Panjang data yang dinamis (dynamic payload length) dari 1 sampai 32 Byte,
b. Penanganan paket data otomatis (automatic packet),
c. Penanganan transaksi paket data otomatis (auto packet transaction),
d. Pengenalan otomatis (auto acknowledgement),
e. Pengiriman data kembali secara otomatis (auto retransmit).
Mode dynamic payload memungkinkan komunikasi half duplex antara slave dan
master dan komunikasi half duplex lebih menghemat konsumsi daya. Selain itu, dengan
auto packet transaction komunikasi menjadi cukup aman dan kuat [22].
GFSK adalah teknik modulasi dimana data melewati low-pass filter Gaussian
sebelum dimodulasi dengan FSK [23]. GFSK adalah salah satu bentuk dari Continuous
Phase Frequency Shift Keying (CPFSK). Dua teknik modulasi ini merupakan turunan dari
FSK yang efisiensi dayanya rendah, tetapi kebutuhan bandwidth FSK semakin lebar
dengan meningkatnya simbol modulasi. Pada aplikasi modern dengan data-rate yang
rendah, modulasi GFSK menggunakan fungsi Gaussian sebagai pulsa membentuk filter
untuk mengurangi bandwidth transmisi [24].
Kata Gaussian pada GFSK mengacu pada bentuk sinyal radio. GFSK membatasi
pancaran/emisi untuk sebuah jalur spektrum yang relatif sempit dan dengan demikian
sesuai untuk keperluan sekunder. Teknik pemrosesan sinyal yang baik adalah mencegah
meluasnya kebocoran energi RF, terutama bagi pengguna sekunder dari sebuah jalur
frekuensi [25].
2.5
Penampil
Liquid Crystal Display
(LCD)
LCD adalah material yang mengalir seperti cairan, tetapi memiliki struktur molekul
dikembangkan, yaitu field effect dan dynamic scattering. Keunggulan LCD dibandingkan
dengan LED adalah daya yang diperlukan lebih rendah, tampilan yang lebih lengkap
(angka, huruf grafis dan warna) dan kemudahan dalam memprogram. Kerugian LCD
dibandingkan dengan LED adalah waktu hidup (lifetime) yang lebih singkat, waktu
tanggap yang lebih lambat dan memerlukan sumber cahaya baik internal atau eksternal
[26].
LCD yang dipakai adalah LCD Topway LMB162AFC 2x16 karakter yang
kompatibel dengan Hitachi tipe HD44780U. LCD memerlukan tiga jalur kontrol dan
delapan jalur data (untuk mode8 bit) atau empat jalur data (untuk mode4 bit). Ketiga jalur
kontrol yang dimaksud adalah pin E, RS, dan R/W. Gambar 2.12 menunjukkan bentuk
fisik modul LCD, dan Tabel 2.8 menunjukkankonfigurasi pin 1-16 pada LCD Topway.
Gambar 2.12 Bentuk fisik modul LCD Topway [27]
Tabel 2.8 Keterangan konfigurasi pin LCD Topway [28]
No Pin Nama Pin Fungsi Pin Keterangan
1 VSS Sumber tegangan Ground
2 VDD Sumber tegangan Sumber tegangan positif
3 V0 Sumber tegangan Sumber tegangan referensi untuk mengatur kontras LCD 4 RS Sumber tegangan Register select
5 R/W Input Read/write control bus
6 E Input Data enable,biasanya juga disebut EN
7 DB0
8 DB1
9 DB2
10 DB3
11 DB4
12 DB5
13 DB6
14 DB7
15 BLA Sumber tegangan Sumber tegangan positif back light
16 BLK Sumber tegangan Sumber tegangan negatif back light
Pin E adalah pin Enable yang digunakan untuk mengaktifkan LCD. Sebelum
mengirim data ke LCD pin E harus berlogika high, kemudian jalur kontrol yang lain
diprogram. Data yang dikirim terletak pada jalur data. Transisi dari logika high ke logika
low memberitahu LCD untuk mengambil data pada jalur kontrol dan jalur data. Pin RS
adalah pin register select. Saat pin RS berlogika low, data yang dikirim adalah
perintah-perintah seperti membersihkan layar, posisi kursor, dan lain-lain. Jika pin RS berlogika
high, maka data yang dikirim adalah teks data dimana teks ini yang harus ditampilkan pada
layar. Pin R/W adalah pin Read/Write. Pada saat pin R/W berlogika low, informasi pada
jalur data berupa pengiriman data ke LCD (write). Sedangkan saat pin R/W berlogika high,
informasi pada jalur data berupa pengambilan data dari LCD (read) [26].
2.6
Penampil 7
Segment
Seven segment merupakan LED yang disusun atas 7 segment yang dipergunakan
untuk menampilkan angka 0 sampai 9 dan sejumlah karakter alfabet.
Gambar 2.13 Tampilan 7 segment [19]
Seven segment terdiri dari dua konfigurasi, yaitu common anode dan common
cathode. Seven segment tipe common anode, anode dari setiap LED dihubungkan menjadi
satu dan dihubungkan dengan sumber tegangan positif [19]. Katode dari masing-masing
LED berfungsi sebagai input dari 7 segment, seperti ditunjukkan pada Gambar 2.14.
Gambar 2.14 Konfigurasi 7 segment tipe common anode [19]
Sesuai dengan Gambar 2.14, untuk menyalakan salah satu segmen, maka katode
diberi logika low. Jika segmen „a‟ akan dinyalakan, maka katode pada segmen „a‟ harus
Seven segment tipe common cathode, katode dari setiap LED dihubungkan menjadi
satu dan dihubungkan dengan ground dan anode dari masing-masing LED berfungsi
sebagai input dari 7 segment.
Gambar 2.15 Konfigurasi 7 segment tipe common cathode [19]
Sesuai dengan Gambar 2.15, untuk menyalakan salah satu segmen, maka diberi
logika high. Jika segmen „a‟ akan dinyalakan, maka anode pada segmen „a‟ harus diberi
logika high, dengan demikian maka segmen „a‟akan menyala.
2.7
IC 74HC595
IC 74HC595 adalah IC dengan 8-bit serial-in, serial or parallel-out shift register
with output latches. Salah satu aplikasi IC 74HC595 adalah menambah jumlah I/O
mikrokontroler.
Gambar 2.16 Konfigurasi pin IC 74HC595 [29]
Tabel 2.9 Keterangan konfigurasi pin IC 74HC595 [29]
No Pin Nama Pin Keterangan No Pin Nama Pin Keterangan
1 Q1 9 Q7' Output data serial
2 Q2 10 M R Master reset
3 Q3 11 SH_CP Shift register clock input
4 Q4 12 ST_CP Storage register clock input
5 Q5 13 OE Output enable
6 Q6 14 DS Input data serial
7 Q7 15 Q0 Output data pararel
8 GND Ground 16 Vcc Sumber tegangan
Konfigurasi pin IC 74HC595 ditunjukkan pada Gambar 2.16 dan keterangan
konfigurasi pin ditunjukkan pada Tabel 2.9. Diagram waktu IC 74HC595 ditunjukkan pada
Gambar 2.17.
Gambar 2.17 Diagram waktu IC 74HC595 [29]
2.8
Buzzer
Buzzer digunakan sebagai penghasil bunyi. Frekuensi bunyi buzzer dapat diatur
sesuai yang diinginkan dengan cara mengatur program pada mikrokontroler [9]. Rangkaian
buzzer ditunjukkan pada Gambar 2.18.
Nilai RE_buzz dan RB_buzz ditentukan dengan perhitungan:
Visual Basic adalah salah satu bahasa pemrograman komputer. Bahasa
pemrograman adalah perintah-perintah yang dimengerti oleh komputer untuk melakukan
tugas-tugas tertentu. Visual Basic dikembangkan oleh Microsoft sejak tahun 1991 dan
merupakan pengembangan dari bahasa pemrograman BASIC (Beginner’s All-purpose
Symbolic Instruction Code) yang dikembangkan pada era 1950-an. Visual Basic
merupakan salah satu development tool, yaitu alat bantu untuk membuat berbagai macam
program komputer, khususnya yang menggunakan sistem operasi Windows. Visual Basic
merupakan salah satu bahasa pemrograman komputer yang mendukung penggunaan obyek
(Object Oriented Programming = OOP) [30].
Tampilan Integrated Development Environment Visual Basic ditunjukkan pada
Gambar 2.19. Bagian-bagian utama IDE Visual Basic yang ditunjukkan Gambar 2.19
Dalam pemrograman berbasis obyek (OOP) perlu dipahami istilah object, property,
method dan event. Object adalah komponen di dalam sebuah program. Property adalah
Event adalah kejadian yang dapat dialami oleh object. Ilustrasi object, property, method
dan event ditunjukkan Gambar 2.20.
Gambar 2.19 IDE Visual Basic
Gambar 2.20 Ilustrasi object, property, method dan event
2.10
UNIX Timestamp
UNIX timestamp juga biasa disebut sebagai POSIX/epoch time [31]. Tipe data
UNIX timestamp adalah integer 32-bit yang digunakan untuk merepresentasikan jumlah
detik sejak tanggal 1 Januari 1970s. Salah satu contoh representasi UNIX timestamp adalah
1314067316 yang berarti tanggal 23 Agustus 2011 pukul 02:41:56.
OBJECT: FORM
Property: - Caption - Enable - Visible
Method: - Hide - Show - Move
25
3
BAB III
RANCANGAN PENELITIAN
[1-31]
Bab ini menjelaskan mengenai perancangan sistem “Sinkronisasi Jam Digital
Nirkabel” terdiri dari Diagram Blok Sistem, Perancangan Perangkat Keras, dan Perancangan Perangkat Lunak.
3.1
Diagram Blok Sistem
Perancangan diagram blok sistem Sinkronisasi Jam Digital Nirkabel ditunjukkan
pada Gambar 3.1:
Diagram blok penelitian ini terdiri dari 2 subsistem, yakni master dan slave. Sistem
terdiri dari 1 subsistem master dan 2 subsistem slave. Subsistem master berfungsi sebagai
pusat kontrol yang terhubung dengan komputer pada saat sinkronisasi waktu dengan server
NTP, dan mengatur waktu alarm. Subsistem slave berfungsi sebagai penerima data waktu
yang dikirimkan oleh master dan penampil jam digital dan alarm.
Subsistem master terdiri dari board Arduino Duemilanove ATmega328, rangkaian
RTC DS1307, rangkaian transceiver nRF24L01, rangkaian LCD, dan rangkaian alarm.
Komunikasi board Arduino dengan komputer melalui port USART ATmega328.
Pengaturan waktu dan alarm ditangani oleh Visual Basic (VB) agar memperoleh Graphical
User Interface (GUI) yang memudahkan pengguna (user friendly). VB terhubung dengan
internet untuk mendapatkan data waktu dari server NTP. Data waktu yang diperoleh VB
dikirimkan ke ATmega328 dan disimpan pada RTC. Data waktu RTC diolah ATmega328
untuk ditampilkan pada LCD dan secara periodik data waktu dikirimkan ke subsistem
slave. Agar subsistem slave memenuhi validasi sinkronisasi waktu, maka subsistem slave
akan mengirimkan data waktu yang ditampilkan jam digital pada subsistem master dalam
periode waktu tertentu. Jika terdapat kesalahan dalam penunjukan waktu dalam skala menit
pada subsistem slave, maka subsistem master mengirimkan data waktu ke subsistem slave
secara otomatis.
3.2
Perancangan Perangkat Keras
Perancangan perangkat keras sistem dibagi menjadi dua bagian, yaitu subsistem
master dan subsistem slave. Perbedaan subsistem master dengan subsistem slave pada
perancangan perangkat keras terdapat pada rangkaian penampil. Rangkaian penampil pada
subsistem master adalah LCD, sedangkan subsistem slave adalah 7 segment.
3.2.1
Perancangan Subsistem
Master
Perancangan subsistem master terdiri dari 5 bagian, yaitu Board Arduino
Duemilanove, Rangkaian RTC DS1307, Rangkaian Penampil LCD, Rangkaian
Transceiver nRF24L01, dan Rangkaian Alarm.
Tabel 3.1 Alokasi pin ATmega328 dengan RTC DS1307
Nomor Pin Nama Pin Nomor Pin Nama Pin
28 PC5 (SCL) 6 SCL
27 PC4 (SDA) 5 SDA
ATmega328 dan RTC DS1307
Tabel 3.2 Alokasi pin ATmega328 dengan LCD
Nomor Pin Nama Pin Nomor Pin Nama Pin
4 PD2 11 D4
5 PD3 12 D5
6 PD4 13 D6
11 PD5 14 D7
13 PD7 4 RS
14 PB0 6 E
ATmega328 dan LCD
ATmega328 LCD
Tabel 3.3 Alokasi pin ATmega328 dengan nRF24L01
Nomor Pin Nama Pin Nomor Pin Nama Pin
12 PC0 1 CE
16 PB2 (SS) 2 CSN
19 PB5 (SCK) 3 SCK
17 PB3 (MOSI) 4 MOSI
18 PB4 (MISO) 5 MISO
23 PD6 6 IRQ
ATmega328 dan nRF24L01
ATmega328 nRF24L01
Tabel 3.4 Alokasi pin ATmega328 dengan buzzer
Nomor Pin Nama Pin
15 PB1
ATmega328 dan Buzzer ATmega328
Buzzer
Alokasi pin yang digunakan board Arduino Duemilanove (ATmega328) dengan
RTC DS1307 ditunjukkan pada Tabel 3.1. Alokasi pin ATmega328 dengan LCD
ditunjukkan pada Tabel 3.2. Alokasi pin ATmega328 dengan nRF24L01 ditunjukkan pada
Tabel 3.3. Alokasi pin ATmega328 dengan buzzer ditunjukkan pada Tabel 3.4.
3.2.1.1
Board
Arduino Duemilanove
Sistem minimum ATmega328 yang digunakan subsistem master adalah board
Arduino Duemilanove. Penggunaan sistem minimum ATmega328 produksi Arduino Team
diharapkan dapat mengoptimalkan kinerja subsistem master. Alokasi pin untuk
Gambar 3.2 Alokasi pin subsistem master
Rangkaian osilator menggunakan crystal 16 MHz dan kapasitor 22 pF. Penentuan
nilai crystal 16 MHz sesuai dengan datasheet [15] dan penentuan nilai kapasitor M_C1 dan
M_C2 sebesar 22pF sesuai dengan anjuran nilai kapasitor pada application note dari Atmel
[17].
3.2.1.2
Rangkaian RTC DS1307
Protokol komunikasi serial yang digunakan RTC DS1307 adalah I2C/TWI. Pin
RTC DS1307 dan ATmega328 yang digunakan pada I2C adalah pin SCL dan SDA.
Perancangan rangkaian RTC DS1307 ditunjukkan Gambar 3.3.
Gambar 3.3 Rangkaian RTC DS1307
Penggunaan resistor pull-up RTC_R1 dan RTC_R2 dikarenakan pin SDA dan SCL
adalah open drain [18]. Frekuensi CrystalX_RTC sebesar 32,768 kHz sesuai dengan nilai
yang disarankan pada datasheet [18]. Baterai eksternal RTC_B1 digunakan sebagai sumber
3.2.1.3
Rangkaian Penampil LCD
Penampil yang digunakan adalah LCD Topway LMB162AFC 2x16 karakter dan
dikonfigurasikan menggunakan 4 jalur data (mode 4 bit). Pin LCD nomor 5 dihubungkan
dengan ground, sehingga berlogika rendah dan pin R/W LCD dalam keadaan W (Write).
Perancangan rangkaian penampil LCD ditunjukkan Gambar 3.4
Gambar 3.4 Rangkaian penampil LCD
3.2.1.4
Rangkaian
Transceiver
nRF24L01
Rangkaian transceiver nRF24L01 yang digunakan sudah dalam bentuk modul yang
diproduksi oleh Sparkfun. Modul transceiver nRF24L01 ditunjukkan pada Gambar 3.5.
Modul transceiver nRF24L01 menggunakan cip nRF24L01+ yang diproduksi oleh Nordic
Semiconductor dan bekerja pada band ISM 2,400 GHz - 2,4835 GHz. Modul ini dilengkapi
dengan regulator tegangan 3,3 V dan chip antenna. Modul transceiver nRF24L01
digunakan sebagai pengirim dan penerima data waktu dari atau menuju ATmega328.
Penghubungan modul transceiver nRF24L01 dengan ATmega328 ditunjukkan
pada Gambar 3.6. Metode pengiriman data antara nRF24L01 dengan ATmega328
menggunakan SPI.
Gambar 3.6 Rangkaian penghubung modul transceiver nRF24L01
3.2.1.5
Rangkaian Alarm
Perancangan rangkaian alarm menggunakan transistor PNP A733 yang
dikonfigurasikan sebagai saklar untuk mengaktifkan buzzer dan output transistor aktif
rendah. Bunyi output buzzer dapat diubah sesuai dengan frekuensi output pin PB1 pada
program mikrokontroler. Rangkaian alarm ditunjukkan pada Gambar 3.7.
Gambar 3.7 Rangkaian Alarm
Perancangan rangkaian alarm mengikuti persamaan 2.2, 2.3, 2.4, dan 2.5. Tegangan
E
V yang diinginkan adalah 3 V. Arus penguatan dc transistor A733 (hFE) adalah 90 dan
arus maksimal pada kaki collector (ICMAX) sebesar 150 mA [33].
Nilai RB_buzzdan RE_buzz adalah
mA 75 10 150 2 1 max I 2 1
A
3.2.2
Perancangan Subsistem
Slave
Subsistem slave yang dibuat terdiri dari 2 buah perangkat keras. Dua perangkat
keras ini mempunyai 2 komponen rangkaian yang sama. Perancangan subsistem slave
terdiri dari Sistem Minimum ATmega328 dan Rangkaian Penampil 7 Segment. Alokasi pin
yang digunakan ATmega328 subsistem slave dengan RTC DS1307, nRF24L01, dan buzzer
sama dengan alokasi pin untuk subsistem master (Tabel 3.1, Tabel 3.3, dan Tabel 3.4).
3.2.2.1
Sistem Minimum ATmega328
Sistem minimum ATmega328 untuk subsistem slave mengadaptasi rangkaian
board Arduino Duemilanove.
Gambar 3.8 Sistem minimum dan alokasi pin subsistem slave
Sistem minimum ATmega328 berfungsi sebagai penerima data waktu dari
waktu ke subsistem master dalam periode tertentu. Sistem minimum dan alokasi pin
subsistem slave ditunjukkan pada Gambar 3.8.
Rangkaian osilator menggunakan crystal 16 MHz dan kapasitor 22 pF. Penentuan
nilai crystal 16 MHz sesuai dengan datasheet [15] dan penentuan nilai kapasitor S_C1 dan
S_C2 sebesar 22pF sesuai dengan anjuran nilai kapasitor pada application note dari Atmel
[17].
3.2.2.2
Rangkaian Penampil 7
Segment
Alokasi pin ATmega328 dengan rangkaian penampil 7 segment ditunjukkan pada
Tabel 3.5. Rangkaian penampil 7 segment ditunjukkan pada Gambar 3.9.
Tabel 3.5 Alokasi pin ATmega328 dengan 7 Segment (74HC595), dan LED
Nomor Pin Nama Pin Nomor Pin Nama Pin
4 PD2 14 DS (SERIN)
5 PD3 12 ST_CP (LATCH)
6 PD4 11 SH_CP (CLK)
11 PD5
ATmega328, 7 Segment (74HC595), dan LED
ATmega328 74HC595
LED
Gambar 3.9 Rangkaian penampil 7 segment
Data waktu yang ditampilkan adalah jam dan menit. LED L_D1 berfungsi sebagai
komunikasi serial lewat IC 74HC595. Jika pin 12 (LATCH) IC 74HC595 berlogika low,
maka IC 74HC595 dalam kondisi mendengarkan (listening). Pin 11 (CLK) IC 74HC595
berfungsi untuk mengatur pergeseran bit input. Pin 14 (SERIN) IC 74HC595 digunakan
untuk meneruskan data bit yang akan digeser.
Daftar susunan biner pada tampilan 7 segment, berdasarkan susunan pin-pin LED 7
segment ditunjukkan pada Tabel 3.6
Tabel 3.6 Susunan biner pin-pin 7 segment
Desimal h g f e d c b a
0 0 0 1 1 1 1 1 1
1 0 0 0 0 0 1 1 0
2 0 1 0 1 1 0 1 1
3 0 1 0 0 1 1 1 1
4 0 1 1 0 0 1 1 0
5 0 1 1 0 1 1 0 1
6 0 1 1 1 1 1 0 1
7 0 0 0 0 0 1 1 1
8 0 1 1 1 1 1 1 1
9 0 1 1 0 1 1 1 1
3.3
Perancangan Perangkat Lunak
Perancangan perangkat lunak digunakan untuk memudahkan implementasi
program Visual Basic dan dalam pemrograman Arduino. Perancangan perangkat lunak
ditunjukkan dalam bentuk diagram alir. Perancangan perangkat lunak terdiri dari
Perancangan Program Visual Basic, Diagram Alir Subsistem Master, dan Diagram Alir
Subsistem Slave.
3.3.1
Perancangan Program Visual Basic
Perancangan GUI Visual Basic ditunjukkan pada Gambar 3.10. Salah satu obyek
VB yang digunakan pada perancangan GUI sistem Sinkronisasi Jam Digital Nirkabel
adalah frame. Frame pada sistem ini digunakan untuk memudahkan penunjukan urutan
program (program sequence) dengan mengatur property enabled-nya. Diagram alir utama
GUI Visual Basic ditunjukkan pada Gambar 3.11 dan memiliki 3 subrutin program, yakni:
subrutin atur sinkronisasi dan port komunikasi, subrutin atur alarm, dan subrutin kirim data
Sinkronisasi Waktu
Gambar 3.10 GUI Visual Basic
Atur SINKRONISASI dan COMM PORT
Atur alarm
Command button
Kirim ditekan?
Kirim data ke Arduino
Y
T Inisialisasi
Selesai Mulai
Command button
Tutup GUI ditekan?
T
Y
Gambar 3.11 Diagram alir utama GUI Visual Basic
Obyek-obyek yang digunakan pada perancangan GUI pada Gambar 3.10