sms gateway

30
 5 5 BAB II DASAR TEORI 2.1 Mikrokontroler ATMega16 Mikrokontroler adalah salah satu dari bagian dasar dari suatu sistem komputer. Meskipun mempunyai bentuk yang jauh lebih kecil dari suatu komputer pribadi dan komputer mainframe, mikrokontroler dibangun dari elemen-elemen dasar yang sama. Secara sederhana, komputer akan menghasilkan keluaran spesifik berdasarkan masukan yang diterima dan program yang dikerjakan. Seperti umumnya komputer, mikrokontroler adalah alat yang mengerjakan instruksi-instruksi yang diberikan kepadanya. Artinya, bagian terpenting dan utama dari suatu sistem terkomputerisasi adalah program itu sendiri yang dibuat oleh seorang  programmer . Program ini menginstruksikan komputer untuk melakukan jalinan yang panjang dari aksi-aksi sederhana untuk melakukan tugas yang lebih kompleks. Mikrokontroler adalah suatu chip dengan kepadatan yang sangat tinggi, dimana semua bagian yang diperlukan untuk suatu kontroler sudah dikemas dalam satu keping,  biasanya terdiri dari CP U (Central Proccesssing Unit ), RAM (  Random A cess Memory), EEPROM/EPROM/PROM/ROM, I/O, Timer  dan lain sebagainya. Rata-rata mikrokontroler memiliki instruksi manipulasi bit, akses ke I/O secara langsung dan mudah, dan proses interupsi yang cepat dan efisien. Mikrokontroler sekarang ini sudah banyak dapat kita temui dalam berbagai  peralatan elektronik, misalnya peralatan yang terdapat di rumah, seperti telepon digital, microwave oven , televisi, dan masih banyak lagi. Mikrokontroler juga dapat kita gunakan untuk berbagai aplikasi misalnya untuk pengendalian suatu alat, otomasi dalam industri dan lain-lain. Keuntungan menggunakan mikrokontroler adalah harganya murah, dapat diprogram berulang kali, dan dapat diprogram sesuai dengan keinginan kita. Universitas Sumatera Utara

Upload: looking4ozie

Post on 22-Jul-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

5

BAB II DASAR TEORI2.1 Mikrokontroler ATMega16 Mikrokontroler adalah salah satu dari bagian dasar dari suatu sistem komputer. Meskipun mempunyai bentuk yang jauh lebih kecil dari suatu komputer pribadi dan komputer mainframe, mikrokontroler dibangun dari elemen-elemen dasar yang sama. Secara sederhana, komputer akan menghasilkan keluaran spesifik berdasarkan masukan yang diterima dan program yang dikerjakan. Seperti umumnya komputer,

mikrokontroler adalah alat yang mengerjakan instruksi-instruksi yang diberikan kepadanya. Artinya, bagian terpenting dan utama dari suatu sistem terkomputerisasi adalah program itu sendiri yang dibuat oleh seorang programmer. Program ini menginstruksikan komputer untuk melakukan jalinan yang panjang dari aksi-aksi sederhana untuk melakukan tugas yang lebih kompleks. Mikrokontroler adalah suatu chip dengan kepadatan yang sangat tinggi, dimana semua bagian yang diperlukan untuk suatu kontroler sudah dikemas dalam satu keping, biasanya terdiri dari CPU (Central Proccesssing Unit), RAM (Random Acess Memory), EEPROM/EPROM/PROM/ROM, I/O, Timer dan lain sebagainya. Rata-rata

mikrokontroler memiliki instruksi manipulasi bit, akses ke I/O secara langsung dan mudah, dan proses interupsi yang cepat dan efisien. Mikrokontroler sekarang ini sudah banyak dapat kita temui dalam berbagai peralatan elektronik, misalnya peralatan yang terdapat di rumah, seperti telepon digital, microwave oven, televisi, dan masih banyak lagi. Mikrokontroler juga dapat kita gunakan untuk berbagai aplikasi misalnya untuk pengendalian suatu alat, otomasi dalam industri dan lain-lain. Keuntungan menggunakan mikrokontroler adalah harganya murah, dapat diprogram berulang kali, dan dapat diprogram sesuai dengan keinginan kita.

5Universitas Sumatera Utara

6

2.1.1 Spesifikasi Mikrokontroler ATMega16 Mikrokontroler AVR adalah mikrokontroler RISC 8 bit berdasarkan aristektur Harvard, yang dibuat oleh Atmel pada tahun 1996. AVR memiliki keunggulan dibandingkan dengan mikrokontroler lain, keunggulan AVR yaitu AVR memiliki kecepatan eksekusi program yang lebih cepat, karena sebagian besar instruksi dieksekusi dalam 1 siklus clock, lebih cepat dibandingkan MCS51 yang membutuhkan 12 siklus clock untuk mengeksekusi 1 instruksi. Mikrokontroler ATMega16 memiliki fitur yang lengkap (ADC internal, EEPROM internal, Timer/Counter, Watchdog Timer, PWM, Port I/O, komunikasi serial, Komparator, I2C,dll). Berikut ini merupakan beberapa spesifikasi ATMega16: 1. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16 Mhz. 2. Memiliki kapasitas flash memori 16Kbyte, EEPROM 512 Byte, dan SRAM 1Kbyte 3. Saluran Port I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D. 4. CPU yang terdiri atas 32 buah register 5. User interupsi internal dan eksternal 6. Port USART sebagai komunikasi serial 7. Konsumsi daya rendah (DC 5V) 8. Fitur peripheral, yang terdiri dari a. Tiga buah Timer/Counter dengan perbandingan 2 (dua) buah Timer/Counter 8 bit dengan Prescaler terpisah dan Mode Compare 1 (satu) buah Timer/Counter 16 bit dengan Prescaler terpisah, Mode Compare, dan Mode Capture b. Real Time Counter dengan osilator tersendiri c. 4 channel PWM d. 8 channel, 10-bit ADC 8 Single-ended Channel 7 Differential Channel hanya pada kemasan TQFP

Universitas Sumatera Utara

7

-

2 Differential Channel dengan Programmable Gain 1x, 10x, atau 200x

e. Byte-oriented Two-wire Serial Interface f. Antamuka SPI g. Watchdog Timer dengan osilator internal h. On-chip Analog Comparator

Gambar 2.1 Blok Diagram ATMega16

Universitas Sumatera Utara

8

2.1.2 Konfigurasi Pin ATMega16 Susunan pin mikrokontroler ATMega16 diperlihatkan pada Gambar 2.2 di bawah ini.

Gambar 2.2 Konfigurasi Pin ATMega16

Konfigurasi pin ATMega16 dengan kemasan 40 pin DIP (Dual In-line Package) dapat dilihat pada Gambar 2.2. Dari gambar di atas dapat dijelaskan fungsi dari masingmasing pin ATMega16 sebagai berikut: 1. Vcc merupakan pin yang berfungsi sebagai masukan catu daya. 2. GND merupakan pin Ground 3. Port A (PA07) merupakan pin input/output dua arah dan pin masukan ADC. 4. Port B (PB07) merupakan pin input/output dua arah dan pin dengan fungsi khusus seperti SPI, MISO, MOSI, SS, AIN1/OC0, AIN0/INT2, T1, T0 T1/XCK 5. Port C (PC07) merupakan pin input/output dua arah dan pin dengan fungsi khusus, seperti TOSC2, TOSC1, TDI, TD0, TMS, TCK, SDA, SCL 6. Port D (PD07) merupakan pin input/output dua arah dan pin dengan fungsi khusus, seperti RXD, TXD, INT0, INT1, OC1B, OC1A, ICP1

Universitas Sumatera Utara

9

7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler. 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal 9. AVCC merupakan pin masukan tegangan untuk ADC 10. AREF merupakan pin masukan tegangan referensi ADC

2.1.3 Arsitektur Mikrokontroler ATMega16 ATMega16 menggunakan arsitektur Harvard dengan memisahkan antara memori dan bus untuk program dan data untuk memaksimalkan kemampuan dan kecepatan. Instruksi dalam memori program dieksekusi dengan pipelining single level dimana ketika satu instruksi dieksekusi, instruksi berikutnya diambil dari memori program. Konsep ini mengakibatkan instruksi dieksekusi setiap siklus clock. CPU terdiri dari 32x8 bit general purpose register yang dapat diakses dengan cepat dalam satu siklus clock, yang mengakibatkan operasi Arithmetic Logic Unit (ALU) dapat dilakukan dalam satu siklus. Pada operasi ALU, dua operand berasal dari register, kemudian operasi dieksekusi dan hasilnya disimpan kembali pada register dalam satu siklus clock. Operasi aritmetik dan logika pada ALU akan mengubah bit-bit yang terdapat pada Status Register (SREG). Arsitektur Mikrokontroler ATMega16 dapat dilihat pada Gambar 2.3 yang terdapat di bawah ini.

2.1.4 Peta Memori ATMega16 2.1.4.1 Memori Program Arsitektur ATMega16 mempunyai dua memori utama, yaitu memori data dan memori program. Selain itu, ATMega16 memiliki memori EEPROM untuk menyimpan data. ATMega16 memiliki 16K byte On-chip In-System Reprogrammable Flash Memory untuk menyimpan program. Instruksi ATMega16 semuanya memiliki format 16 atau 32 bit, maka memori flash diatur dalam 8K x 16 bit. Memori flash dibagi kedalam

Universitas Sumatera Utara

10

dua bagian, yaitu bagian program boot dan aplikasi seperti terlihat pada Gambar 2.5. Bootloader adalah program kecil yang bekerja pada saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke dalam memori prosesor.

Gambar 2.3 Arsitektur Mikrokontroler ATMega16

Gambar 2.4 Peta Memori ATMega16

Universitas Sumatera Utara

11

2.1.4.2 Memori Data (SRAM) Memori data AVR ATMega16 terbagi menjadi 3 bagian, yaitu 32 register umum, 64 buah register I/O dan 1 Kbyte SRAM internal. General purpose register menempati alamat data terbawah, yaitu $00 sampai $1F. Sedangkan memori I/O menempati 64 alamat berikutnya mulai dari $20 hingga $5F. Memori I/O merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai fitur mikrokontroler seperti kontrol register, timer/counter, fungsi-fungsi I/O, dan sebagainya. 1024 alamat berikutnya mulai dari $60 hingga $45F digunakan untuk SRAM internal Register File R0 R1 R2 R29 R30 R31 I/O Registers $00 $01 $02 $3D $3E $3F Data Address Space $0000 $0001 $0002 $001D $001E $001F $0020 $0021 $0022 $005D $005E $005F Internal SRAM $0060 $0061 $045E $045F

Gambar 2.5 Peta Memori Data ATMega16

Universitas Sumatera Utara

12

2.1.4.3 Memori Data EEPROM ATMega16 terdiri dari 512 byte memori data EEPROM 8 bit, data dapat ditulis/dibaca dari memori ini, 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 mulai dari $000 sampai $1FF. 2.1.5 Software Mikrokontroler ATMega16 Sebuah mikrokontroler tidak akan bekerja bila tidak diberikan program untuk diisikan ke dalam mikrokontroler tersebut. Oleh karena itu, dalam tugas akhir ini akan digunakan perangkat lunak CodeVisionAVR sebagai media penghubung antara program yang akan diisikan ke mikrokontroler ATMega16 yang menggunakan bahasa C. Pemrograman mikrokontroler AVR dapat menggunakan low level language (assembly) dan high level language (C, Basic, Pascal, JAVA, dll) tergantung compiler yang digunakan. Bahasa Assembler pada mikrokontroler AVR memiliki kesamaan instruksi, sehingga jika telah menguasai pemrograman satu jenis mikrokontroler AVR, maka akan dengan mudah untuk memprogram mikrokontroler AVR jenis lain, tetapi bahasa assembler relatif lebih sulit dipelajari daripada bahasa C, untuk pembuatan suatu proyek yang besar akan memakan waktu yang lama, serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki keunggulan dibandingkan bahasa assembly yaitu penyusunan program akan lebih sederhana dan mudah pada proyek yang lebih besar. Bahasa C hampir bisa melakukan semua operasi yang dapat dikerjakan oleh bahasa mesin. CodeVisionAVR pada dasarnya merupakan perangkat lunak pemrograman mikrokontroler keluarga AVR berbasis bahasa C. Ada tiga komponen penting yang telah diintegrasikan dalam perangkat lunak ini: Compiler C, IDE dan program generator. Berdasarkan spesifikasi yang dikeluarkan oleh perusahaan pengembangnya, Compiler C yang digunakan hampir mengimplementasikan semua komponen standar

Universitas Sumatera Utara

13

yang ada pada bahasa C standar ANSI (seperti struktur program, jenis tipe data, jenis operator, dan library fungsi standar berikut penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C untuk aplikasi komputer, compiler C untuk mikrokontroler ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur AVR tempat program C tersebut ditanamkan (embedded). Khusus untuk library fungsi, disamPING library standar (seperti fungsi-fungsi matematik, manipulasi string, pengaksesan memori dan sebagainya), CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yang umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real time Clock), sensor suhu, SPI (Serial Peripheral Interface) dan lain sebagainya. Untuk memudahkan pengembangan program aplikasi, CodeVisionAVR juga dilengkapi IDE yang sangat user friendly. Selain menu-menu pilihan yang umum dijumpai pada setiap perangkat lunak berbasis Windows, CodeVisionAVR ini telah mengintegrasikan perangkat lunak downloader yang bersifat In System Programmer yang dapat digunakan untuk mentransfer kode mesin hasil kompilasi ke dalam sistem memori mikrokontroler AVR yang sedang diprogram. Selain itu, CodeVisionAVR juga menyediakan sebuah fitur yang dinamakan dengan Code Generator atau CodeWizardAVR. Secara praktis, fitur ini sangat bermanfaat membentuk sebuah kerangka program (template), dan juga memberi kemudahan bagi programmer dalam peng-inisialisasian register-register yang terdapat pada mikrokontroler AVR yang sedang diprogram. Dinamakan Code Generator, karena perangkat lunak CodeVision ini akan membangkitkan kode-kode program secara otomatis setelah fase inisialisasi pada jendela CodeWizardAVR selesai dilakukan. Penggunaan fitur ini pada dasarnya hampir sama dengan application wizard pada bahasa-bahasa pemrograman visual untuk komputer.

Universitas Sumatera Utara

14

2.1.6 Komunikasi Serial USART Komunikasi data adalah perpindahan data antara dua atau lebih peranti, baik yang berjauhan maupun yang berdekatan. Perpindahan data antara dua atau lebih peranti dapat dilaksanakan secara paralel atau seri. Komunikasi seri dapat dibedakan menjadi 2 macam, yaitu komunikasi dara seri sinkron dan komunikasi data asinkron. Dikatakan sinkron jika sisi pengirim dan sisi penerima ditabuh (clocked) oleh penabuh (clock) yang sama, satu sumber penabuh; data dikirim beserta penabuh. Dikatakan asinkron jika sisi pengirim dan sisi penerima ditabuh oleh penabuh yang terpisah dengan frekuensi yang hampir sama, data dikirim disertai informasi sinkronisasi. Pada proses inisialisasi ini setiap perangkat yang terhubung harus memiliki baudrate yang sama. Beberapa fasilitas yang disediakan USART AVR adalah sebagai berikut: Operasi full duplex (mempunyai register receive dan transmit yang terpisah) Mendukung kecepatan multiprosesor Mode kecepatan berode Mbps Operasi asinkron atau sinkron Operasi master atau slave clock sinkron Dapat menghasilkan baud-rate (laju data) dengan resolusi tinggi Modus komunikasi kecepatan ganda pada asinkron Dll

2.1.6.1 Inisialisasi USART Pada mikrokontroler AVR untuk mengaktifkan dan mengeset komunikasi USART dilakukan dengan cara mengaktifkan register-register yang digunakan untuk komunikasi USART. Register-register yang digunakan untuk komunikasi USART antara lain:

Universitas Sumatera Utara

15

1. USART I/O Data Register (UDR) UDR merupakan register 8 bit yang terdiri dari 2 buah dengan alamat yang sama, yang digunakan sebagai tempat untuk menyimpan data yang akan dikirimkan (TXB) atau tempat data diterima (RXB) sebelum data tersebut dibaca.

Gambar 2.6 Register UDR

2. USART Control and Status Register A (UCSRA)

Gambar 2.7 Register UCSRA Penjelasan bit penyusun UCSRA: a. RXC (USART Receive Complete) Bit ini akan set ketika data yang masuk ke dalam UDR belum dibaca dan akan berlogika nol ketika sudah dibaca. Flag ini dapat digunakan untuk membangkitkan interupsi RX jika diaktifkan dan akan berlogika nol secara otomatis bersamaan dengan eksekusi vektor interupsi yang bersangkutan. b. TXC (USART Transmit Complete) Bit ini akan set ketika data yang dikirim telah keluar. Flag ini akan membangkitkan interupsi TX jika diaktifkan dan akan clear secara otomatis bersamaan dengan eksekusi vektor interupsi yang bersangkutan c. UDRE (USART Data Register Empty)

Universitas Sumatera Utara

16

Flag ini sebagai indikator isi UDR. Jika bernilai satu maka UDR dalam keadaan kosong dan siap menerima data berikutnya, jika flag bernilai nol berarti sebaliknya. d. FE (Frame Error) Bit ini sebagai indikator ketika data yang diterima error, misalnya ketika stop bit pertama data dibaca berlogika nol maka bit FE bernilai satu. Bit akan bernilai 0 ketika stop bit data yang diterima berlogika nol. e. DOR (Data OverRun) Bit ini berfungsi untuk mendeteksi jika ada data yang tumpang tindih. Flag akan bernilai satu ketika terjadi tumpang tindih data. f. PE (Parity Error) : bit yang menentukan apakah terjadi kesalahan paritas Bit ini berfungsi jika ada kesalahan paritas. Bit akan berlogika satu ketika terjadi bit parity error apabila bit paritas digunakan. g. U2X (Double the USART Transmission Speed) : Bit yang berfungsi untuk menggandakan laju data manjadi dua kalinya. Hanya berlaku untuk modus asinkron, untuk mode sinkron bit ini diset nol. h. MPCM (Multi Processor Communication Mode) : Bit untuk mengaktifkan modus multi prosesor, dimana ketika data yang diterima oleh USART tidak mengandung informasi alamat akan diabaikan. 3. USART CONTROL AND STATUS REGISTER B (UCSRB)

Gambar 2.8 Register UCSRB

Universitas Sumatera Utara

17

Penjelasan bit penyusun UCSRB: a. RXCIE (RX Complete Interrupt Enable) Bit pengatur aktivasi interupsi penerimaan data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika dinonaktifkan. b. TXCIE (TX Complete Interrupt Enable) Bit pengatur aktivasi pengiriman data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika dinonaktifkan. c. UDRIE (USART Data Register Empty Interrupt Enable) : Bit ini berfungsi untuk mengaktifkan interupsi data register kosong, berlogika satu jika diaktifkan dan sebaliknya. d. RXEN (Receiver Enable) Bit ini berfungsi untuk mengaktifkan pin RX saluran USART. Ketika pin diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah digunakan sebagai saluran penerima USART e. TXEN (Transmitter Enable) Bit ini berfungsi untuk mengaktifkan pin TX saluran USART. Ketika pin diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah digunakan sebagai saluran pengirim USART f. UCSZ2 (Character Size) Bit ini bersama dengan UCSZ1 dan UCSZ0 dalam register UCSRC digunakan untuk memilih tipe lebar data bit yang digunakan Tabel 2.1 Penentuan Ukuran Karakter UCSZ[2..0] 000 001 010 011 100-110 111 Ukuran Karakter dalam bit 5 6 7 8 Tidak dipergunakan 9

Universitas Sumatera Utara

18

g. RXB8 (Receive Data Bit 8) Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit ini harus dibaca dahulu sebelum membaca UDR h. TXB8 (Transmit Data Bit 8) Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit ini harus ditulis dahulu sebelum membaca UDR

4. USART CONTROL AND STATUS REGISTER C (UCSRC)

Gambar 2.9 Register UCSRC Penjelasan bit penyusun UCSRC: a. URSEL (Register Select) : Bit ini berfungsi untuk memilih register UCSRC dengan UBBRH, dimana untuk menulis atau membaca register UCSRC maka bit harus berlogika satu. b. UMSEL (USART Mode Select) Bit pemilih mode komunikasi serial antara sinkron dan asinkron. c. UPM[10] (Parity Mode) Bit ini berfungsi untuk memilih mode paritas bit yang akan digunakan. Transmittter USART akan membuat paritas yang akan digunakan secara otomatis. d. USBS (Stop Bit Select) Bit yang berfungsi untuk memilih jumlah stop bit yang akan digunakan. e. UCSZ1 dan UCSZ0 : merupakan bit pengatur jumlah karakter serial

Universitas Sumatera Utara

19

Bit yang berfungsi untuk memilih lebar data yang digunakan dikombinasikan dengan bit UCSZ2 dalam register UCSRB f. UCPOL (Clock Parity) : Bit yang berguna hanya untuk modus sinkron. Bit in berhubungan dengan perubahan data keluaran dan sampel masukkan, dan clock sinkron (XCK)

2.1.7 Sensor Ultrasonik Sensor ultrasonik adalah sensor yang bekerja berdasarkan prinsip pantulan gelombang suara dan digunakan untuk mendeteksi keberadaan suatu objek tertentu di depannya, frekuensi kerjanya pada daerah di atas gelombang suara dari 40 KHz hingga 400 KHz. Sensor ultrasonik terdiri dari dari dua unit, yaitu unit pemancar dan unit penerima. Struktur unit pemancar dan penerima sangatlah sederhana, sebuah kristal piezoelektrik dihubungkan dengan mekanik jangkar dan hanya dihubungkan dengan diafragma penggetar. Tegangan bolak-balik yang memiliki frekuensi kerja 40 KHz 400 KHz diberikan pada plat logam. Struktur atom dari kristal piezoelektrik akan berkontraksi (mengikat), mengembang atau menyusut terhadap polaritas tegangan yang diberikan dan ini disebut dengan efek piezoelektrik. Besar amplitudo sinyal elekrik yang dihasilkan unit sensor penerima tergantung dari jauh dekatnya objek yang dideteksi serta kualitas dari sensor pemancar dan sensor penerima. Proses yang dilakukan pada sensor ini menggunakan metode pantulan untuk menghitung jarak antara sensor dengan obyek sasaran. Gelombang ultrasonik ini merambat melalui udara dengan kecepatan 344 meter per detik, mengenai obyek dan memantul kembali ke sensor. Selama menunggu pantulan, sensor PING akan menghasilkan pulsa. Pulsa ini akan berhenti ketika suara pantulan terdeteksi oleh sensor PING pada bagian penerima. Oleh karena itulah lebar pulsa dapat merepresentasikan jarak antara sensor PING dengan obyek. Selanjutnya mikrokontroler cukup mengatur lebar pulsa tersebut dan mengkonversinya dalam bentuk jarak.

Universitas Sumatera Utara

20

Sensor PING produksi dari Parallax merupakan salah satu sensor ultrasonik yang banyak digunakan. Sensor ini memiliki kelebihan hanya membutuhkan satu pin sinyal selain jalur 5 Volt dan Ground. Sensor PING dapat melakukan pengukuran dari 3 cm hingga 3 m. PING mengeluarkan pulsa output high pada pin SIG setelah memancarkan gelombang ultrasonik dan setelah gelombang pantulan terdeteksi PING akan membuat output low pada pin SIG. Lebar pulsa tinggi akan sesuai dengan lama waktu tempuh gelombang ultrasonik untuk 2x jarak ukur dengan obyek. Prinsip pantulan dari sensor ulrasonik ini dapat dilihat pada Gambar 2.10 sebagai berikut :

Gambar 2.10 Prinsip Kerja Sensor Ultrasonik

2.2 SMS (SHORT MESSAGE SERVICE) 2.2.1 Pengenalan SMS SMS adalah layanan untuk mengirim dan menerima pesan tertulis (teks) dari maupun kepada perangkat bergerak (Mobile Device). Pesan teks yang dimaksud tersusun dari huruf, angka, atau karakter alfanumerik. Pesan teks dikemas dalam satu paket/frame yang berkapasitas maksimal 160 byte yang dapat direpresentasikan berupa 160 karakter huruf latin atau 70 karakter alfabet non-latin seperti alfabet Arab atau Cina. SMS pada awal diciptakan adalah bagian dari layanan pada sistem GSM yang dikembangkan dan distandarisasi oleh ETSI. SMS semula hanyalah merupakan layanan yang bersifat komplementer terhadap dua layanan utama sistem GSM (atau sistem 2G pada umumnya) yaitu layanan suara dan switched data. Namun karena keberhasilan

Universitas Sumatera Utara

21

SMS yang tidak terduga, dengan ledakan pelanggan yang mempergunakannya, menjadikan SMS sebagai bagian integral dari layanan sistem. SMS adalah data tipe pesan asinkron yang pengiriman datanya dilakukan dengan mekanisme protokol store and forward. Hal ini berarti bahwa pengirim dan penerima SMS tidak perlu berada dalam status berhubungan (connected/online) satu sama lain ketika akan saling bertukar pesan. Keterbatasan SMS adalah pada ukuran pesan yang dapat dikirimkan, yaitu maksimal hanya sebesar 160 byte. Keterbatasan ini disebabkan karena mekanisme transmisi SMS itu sendiri. Pada awalnya, SMS merupakan sebuah layanan yang ditambahkan pada sistem GSM yang digunakan untuk mengirimkan data mengenai konfigurasi dari handset pelanggan GSM. SMS dikirimkan menggunakan signalling frame pada kanal frekuensi atau time slot frame GSM yang biasanya digunakan untuk mengirimkan pesan untuk kontrol dan sinyal setup panggilan telepon, seperti pesan singkat tentang kesibukan jaringan atau pesan CLI (Caller Line indentification). Frame ini bersifat khusus dan ada pada setiap panggilan telepon serta tidak dapat digunakan untuk membawa suara atau data dari pelanggan melainkan hanya berupa pesan saja. Ukuran frame pada sistem GSM sendiri adalah sebesar 1250 bit (kurang lebih sama dengan 160 byte). Karena hanya menggunakan satu frame inilah pengiriman pesan SMS menjadi sangat murah dan terjangkau, karena beban biaya hanya dihitung dari penggunaan satu frame melalui kanal frekuensi. Pengiriman SMS menggunakan frame pada kanal frekuensi adalah berarti SMS dikirim oleh pengirim ke nomor telepon tertentu yang bertindak sebagai SMSC (SMSCenter) dan kemudian SMSC bertugas untuk meneruskannya ke penerima. Pengiriman SMS berlangsung cepat karena, SMSC selain terhubung ke LAN aplikasi juga terhubung ke MSC (Mobile Switching Network) melalui SS7 (Signaling System 7) yang merupakan jaringan khusus untuk menangkap frame kontrol dan sinyal. Mekanisme pengiriman pesan singkat SMS yang serupa juga ditemukan dalam sistem jaringan lain seperti TDMA, PDC, dan cdmaOne. Beda antara sistem jaringan satu dengan yang lainnya adalah ukuran dari pesan SMS itu sendiri yang bergantung pada ukuran paket yang

Universitas Sumatera Utara

22

digunakan pada masing-masing sistem. Pada sistem TDMA dan PDC ukuran pesan SMS sama dengan sistem GSM, yaitu 160 byte, dan pada cdma-One ukuran pesan SMS sebesar 256 byte.

Gambar 2.11 Struktur Time slot dan Frame pada GSM Pada akhirnya SMS menjadi layanan messaging yang populer dan digemari oleh pelanggan hanphone. Layanan SMS dapat diintegrasikan dengan layanan GSM yang lain seperti suara, data, dan fax, dan karena itu pesan SMS selain digunakan untuk pengiriman pesan person to person juga digunakan untuk notifikasi suara dan pesan fax yang datang kepada pelanggan. Selain itu, SMS juga berharga murah, bersifat pribadi, serta dalam pengoperasiannya tidak terlalu mengganggu kesibukan pemakainya, karena mereka dapat mengirim atau menerima pesan pada waktu yang mereka kehendak. 2.2.2 Koneksi ke SMSC Seperti yang diketahui untuk dapat mengirim dan menerima pesan, kita harus melakukan koneksi ke SMSC. Ada beberapa cara untuk melakukan koneksi ke SMSC antara lain: Menggunakan terminal baik berupa GSM modem atau handphone Cara ini adalah yang paling mudah tetapi memiliki kekurangan antara lain jumlah pesan yang dikirim per menit sangat terbatas (sekitar 6-10 per menit). Koneksi langsung ke SMSC Dengan melakukan koneksi langsung ke SMSC kita dapat mengirim pesan dalam jumlah banyak, dapat mencapai sekitar 600 sms per menit bergantung pada kapasitas dari SMSC itu sendiri. Untuk melakukan koneksi ke SMSC diperlukan protokol penghubung. Beberapa protokol yang umum digunakan adalah UCP,

Universitas Sumatera Utara

23

SMPP, CIMD2, OIS dan TAP. Masing-masing operator GSM menyediakan tipe protokol yang berbeda-beda. Menggunakan software bantu Saat ini banyak vendor telekomunikasi yang menawarkan software bantu untuk melakukan koneksi ke SMSC, dari yang bersifat freeware, open source sampai dengan komersial.

2.2.3 Mengirim dan Menerima SMS Dalam pengiriman/penerimaan SMS ada dua mode yakni modus teks dan modus PDU (Protocol Data Unit). a. Mode Teks Mode ini adalah cara paling mudah untuk mengirim pesan, karena pada mode ini pesan yang dikirimkan tidak perlu dilakukan koversi lagi melainkan isi pesannya langsung dapat dikirimkan. Teks yang dikirim tetap dalam bentuk aslinya dengan panjang mencapai 160 (7 bit default alfabet) atau 140 (8 bit) karakter. Sesungguhnya mode teks adalah hasil encode yang direpresentasikan dalam format PDU. Kelemahannya, kita tidak dapat menyisipkan gambar dan nada dering ke dalam pesan yang akan dikirim serta terbatasnya dalam enkoding. Mode teks ini tidak didukung oleh semua operator GSM ataupun terminal.

b. Mode PDU (Protocol Data Unit) Mode PDU merupakan format pesan dalam bentuk oktet heksadesimal dan oktet semidesimal dengan panjang mencapai 160 karakter (7 bit) atau 140 karakter (8 bit). Kelebihan menggunakan mode PDU adalah kita dapat melakukan enkoding sendiri yang tentunya harus pula didukung oleh hardware dan operator GSM, melakukan kompresi data, menambahkan nada dering dan gambar pada pesan yang akan dikirim. Sebagai tambahan dapat juga ditambahkan header ke dalam pesan yang akan dikirim, seperti timestamp, nomor SMSC dan lainnya.

Universitas Sumatera Utara

24

2.2.4 Mode PDU (Protocol Data Unit) Format PDU dibagi menjadi dua bagian yaitu SMS Deliver PDU (Mobile Terminated) untuk pengiriman dan SMS penerimaan. 2.2.4.1 SMS Deliver PDU SMS Deliver PDU ialah terminal menerima pesan yang datang/masuk dari SMSC dalam format PDU.PDU -type

Submit PDU (Mobile Originated) untuk

SC ASCA

DC SCT UD SCA SCA S S L SCA SCA Gambar 2.12 Skema Format SMS PDUSCA

OA

PID

UDSCA

Contoh format SMS Deliver PDU adalah: 07912658050000F011000D91261863512088F50000AA05C8329BFD06

Berikut penjelasannya adalah sebagai berikut: 1. Service Centre Address (SCA) SCA memiliki tiga komponen utama, yaitu length, type of number dan BCD digits. Tabel 2.2 Format SCA pada SMS Deliver PDU Octet Len Keterangan Panjang informasi SMSC dalam octet Jenis alamat dari SMSC type of number 81h=lokal format 91h=internasional format BCD Digits Nomor SMSC. Jika panjangnya ganjil, pada akhir karakter ditambahkan 0F hexa 2658050000F0 91 Nilai 06

Universitas Sumatera Utara

25

Berikut ini adalah contoh penulisan nomor SMSC untuk beberapa operator Indonesia: Tabel 2.3 Contoh Penulisan SMSC untuk Operator di Indonesia Operator Satelindo Excelcomindo (XL) Telkomsel IM3 Nomor SMSC 62816124 6281445009 6281100000 62855000000 Format dalam PDU 05 91 26 18 16 42 07 91 26 18 48 54 00 F9 06 91 26 18 01 00 00 05 91 26 58 05 00 00 F0

2. Protocol Data Unit (PDU) Type Nilai default dari PDU untuk SMS-Deliver adalah 11h. Pada contoh diatas, PDU Type adalah 11 yang memiliki arti: Tabel 2.4 Skema Format PDU untuk SMS-Deliver Bit no Nama Nilai 7 RP 0 6 UDHI 0 5 SRR 0 4 VPF 1 3 VPF 0 2 RD 0 1 MTI 0 0 MTI 1

3. Originator Address (OA) Tabel 2.5 Format OA untuk SMS Deliver PDU Octet Len type of number Keterangan Panjang nomor Originator Address type dari Originator Address 81h=lokal format 91h=internasional format Nomor Originator Adress. Jika panjangnya ganjil, pada akhir karakter ditambahkan 0F hexa Nilai 0D 91

BCD Digits

261863512088F5

Universitas Sumatera Utara

26

Berikut ini contoh format penulisan OA: Tabel 2.6 Format Penulisan OA Nomor OA ABCDEFGHIJKLMNOPQRST +ABCDEFGHIJKL Format dalam PDU 14 81 BA BC FE HG JI LK NM PQ RQ ST 0C 91 BA DC FE HG JI LK

3. Protocol Indentifier (PID) Nilai default dari PID adalah 0 = Standard-Text SMS. Nilai PID di atas adalah 00. 4. Data Coding Scheme (DCS) DCS di atas bernilai 00 juga menentukan kelas pesan seperti pada tabel di bawah ini. Hal yang perlu diperhatikan di sini, pada beberapa pesan handphone dengan kelas 0 dengan enkoding 7 bit berupa flash SMS. Sedangkan dengan enkoding 1 bit Unicode (ucs2), pesan yang didahului 0001 dengan class 0 berupa blinking flash SMS. Tabel 2.7 Format Penulisan DCS Nilai (hexa) 0 F0 F1 F2 F3 F4 F5 F6 F7 Character Coding default (7bit) default (7bit) default (7bit) default (7bit) default (7bit) 8 bit 8 bit 8 bit 8 bit Kelas pesan no class class 0 (immediate display) class 1 (Mobile Equipment specific) class 2 ( SIM specific message) class 3 (Terminate Equipment specific) class 0 (immediate display) class 1 (Mobile Equipment specific) class 2 ( SIM specific message) class 3 (Terminate Equipment specific)

Universitas Sumatera Utara

27

5. Validity Period (VP) Pada contoh di atas, VP adalah AA, atau 170d, 170-166 = 4hari. Tabel 2.8 Perhitungan Nilai VP Nilai VP 0 - 143 144 - 167 168 - 196 197 - 255 Nilai vailiditas periode (VP +1 ) * 5 menit (interval 5 menit hingga 12 jam) 12 jam + ((TP - VP - 143) * 30 menit) (VP - 166) * 1 hari (VP - 192) *1 minggu

6. User Data Length (UDL) Pada contoh di atas, UDL adalah 09. 7. User Data Pesan Hello yang konversinya mengacu pada tabel alfabet 7 bit default alphabet pada Tabel 2.13 menghasilkan bit yang masih bernilai septet sehingga harus di-enkode menjadi 8 bit (oktet), yaitu C8329BFD06 dalam nilai heksadesimal untuk SMS-Deliver. Pada tiap oktet jika jumlah bit kurang dari 8, maka diambil bit paling kanan pada septet selanjutnya dan ditambahkan pada bagian kiri septet sebelummya. Tabel di bawah ini mengikuti cara pendekodean dengan menggunakan bantuan Tabel 2.9 Tabel 2.9 Pendekodean 8 bit (Octet) menjadi 7 bit (Septet) Nilai (hexa) C8 32 9B FD 06 Oktet (8bit) 1 1001000 00 110010 100 11011 1111 1101 00000 110 Septet (7 bit) 1001000 110010 1 11011 00 1101 100 110 1111 Karakter H e l l o

Universitas Sumatera Utara

28

b1b7 menunjukkan posisi bit pada septet seperti yang digambarkan pada tabel di bawah ini. b7 xa b6 xb b5 xc b4 xd b3 xe b2 xf b1 xg

Tabel 2.10 Posisi b1 . b 7 pada septet

Susunan bit dari 1 karakter pada 1 oktet adalah sebagai berikut: Tabel 2.11 Susunan 1 Bit Oktet Bit Octet 1 7 0 6 1a 5 1b 4 1c 3 1d 2 1e 1 1f 0 1g

Sedangkan susunan bit dari 2 karakter pada 2 oktet adalah sebagai berikut: Tabel 2.12 Susunan 2 Bit Oktet Bit Octet 1 2 7 2g 0 6 1a 0 5 1b 2a 4 1c 2b 3 1d 2c 2 1e 2d 1 1f 2e 0 1g 2f

Proses di atas terus berlangsung sehingga pada 140 oktet dapat menampung (140x8)/7 = 160 karakter.

Universitas Sumatera Utara

29

Tabel 2.13 Tabel default alphabet 7 bit (septet).

2.2.4.2 SMS Submit PDU SMS Submit PDU adalah pesan yang dikirim dari terminal ke SMSC dalam format PDU. Gambar 2.13 Skema format SMS PDU SCA PDUtype MR DA PID DCS VP UDL UD

Universitas Sumatera Utara

30

Contoh format SMS Submit PDU adalah: 0011000D91261863512088F50000AA05C8329BFD06 Penjelasannya sebagai berikut: 1. Service Center Address (SCA) SCA memiliki tiga komponen, yaitu length, type of number dan BCD Digits. Tabel 2.14 Format SCA pada SMS Deliver PDU Octet Length Keterangan Panjang informasi SMSC dalam octet Jenis alamat dari SMSC type of number 81h=lokal format 91h=internasional format BCD Digits Nomor SMSC. Jika panjangnya ganjil, pada akhir karakter ditambahkan 0F hexa Nilai 00

2. Protocol Data Unit (PDU) Type Nilai default dari PDU untuk SMS-Submit adalah 11h yang memiliki arti: Tabel 2.15 Skema Format PDU untuk SMS-Submit Bit no Nama Nilai 7 RP 0 6 UDHI 0 5 SRR 0 4 VPF 1 3 VPF 0 2 RD 0 1 MTI 0 0 MTI 1

3. Message reference (MR) Pada contoh di atas, MR adalah 00. 4. Destination Address (DA) Penulisan format Destination Address sama dengan Originator Address

Universitas Sumatera Utara

31

Tabel 2.16 Format DA untuk SMS Submit PDU Octet Len type of number Keterangan Panjang nomor Originator Address Nilai 0D

BCD Digits

type dari Originator Address 91 81h=lokal format 91h=internasional format Nomor Originator Adress. Jika panjangnya ganjil, pada akhir karakter ditambahkan 0F 261863512088F5 hexa

5. Protocol Identifier (PID) Pada contoh di atas, PID adalah 00.

6. Data Coding Scheme (DCS) Pada contoh di atas, DCS adalah 00.

7. Validity Period (VP) Pada contoh di atas, VP adalah AA, atau 170d, 170-166 = 4 hari yang menggunakan perhitungan seperti pada Tabel 3.7

8. User Data Length (UDL) Pada contoh di atas, UDl adalah 09.

9. User Data (UD) Pesan Hello dikodekan 7 bit default alphabet (septet) sehingga harus di-enkode menjadi 8 bit (octet), yaitu C8329BFD06 untuk SMS-Submit. Pada tiap oktet jika jumlah bit kurang dari 8, maka diambil bit paling kanan pada septet selanjutnya dan ditambahkan pada bagian kiri septet sebelumnya mengikuti kaidah pada Tabel 2.11 dan Tabel 2.12. Cara pengkodean nya sama seperti yang telah diuraikan pada Tabel 2.9.

Universitas Sumatera Utara

32

2.2.5 AT Command Perintah AT (AT Command) digunakan untuk berkomunikasi dengan terminal melalui serial port pada computer. Dengan menggunakan perintah AT, kita dapat mengetahui kekuatan sinyal dari terminal, mengirim pesan, menambahkan item pada buku alamat, mematikan terminal dan banyak fungsi lainnya. Setiap vendor biasanya memberikan referensi tentang daftar perintah AT yang tersedia. Ada beberapa untuk aturan memasukkan/menggunakan perintah AT sebagai berikut: Semua perintah (kecuali A / dan + + +) AT dimulai dengan atau at. Perintah dalam command string (keculai A / dan + + +) enter dieksekusi hanya setelah tombol ditekan. Gunakan semua karakter dengan huruf kecil atau besar, tidak gabung keduanya. Jumlah karakter maksimum yang terdapat di command string 128. Beberapa perintah dapat digabungkan yang dalam satu baris perintah oleh dipisahkan titik koma. Jika tidak terdapat pada sebuah basic parameter command, maka pada sebuah ditambahkan nol perintah (ATH menjadi contoh ATH0). Perintah yang diawali dengan huruf bukan AT diabaikan Ctrl-X dapat digunakan untuk membatalkan suatu perintah.

Beberapa jenis perintah perintah AT yang umum digunakan adalah sebagai berikut: 1. Mengecek apakah handphone sudah terkoneksi dengan komputer Sintaks : AT Respon : OK ERROR : menunjukkan sudah terhubung : menunjukkan ada kesalahan dalam koneksi

Universitas Sumatera Utara

33

2. Mengetahui nama vendor terminal Sintaks : AT+CGMI Respon : Merk Handphone OK 3. Menentukan mode format Sintaks : AT+CMGF= Format Mode: Mode 0 Mode 1 Respon : OK 4. Menyimpan pesan ke kartu SIM Sintaks ; AT+CMGW= >*pesan Respon : OK 5. Mengirim pesan Sintaks : AT+CMGS= >*pesan Respon : OK : Mode PDU : Mode Teks

Universitas Sumatera Utara

34

6. Membaca pesan Sintaks : AT+CMGR= Respon : +CMGR:, OK 7. Menghapus pesan Sintaks : AT+CMGD= Respon : OK 8. Membaca pesan untuk beberapa kategori pesan secara langsung Sintaks: AT+CMGL= Respon : +CMGL: Indeks pada AT+CMGL= 0 = Membaca pesan yang belum pernah dibaca 1 = Membaca pesan yang sudah dibaca 2 = Membaca pesan yang tidak dikirim 3 = Membaca pesan yang sudah dikirim. 4 = Membaca semua pesan

Universitas Sumatera Utara