Minggu, 30 Maret 2014

GPS Tracker Via SMS

GPS tracker via sms ini merupakan penggabungan teknologi GPS (global positioning system) dan GSM. Tujuan dari project ini adalah untuk memantau posisi kendaraan secara realtime yaitu dengan memanfaatkan peta digital yaitu googleMaps. Pemanfaatan googlemap dalam mencari posisi kendaraan yaitu dengan mengetahui posisi kendaraan atau secara umum disebut dengan posisi coordinat objek dalam hal ini adalah mobil. Koordinat terdiri dari dua variabel yaitu latitude ( lintang) dan longitude (bujur), kedua data tersebut didapatkan dari GPS yang memanfaatkan signal dari satelit yang mengorbit di atas bumi, setiap detik GPS akan memberikan data coordinat posisi dipermukaan bumi. Berikut ini adalah gambaran secara umum system GPS Tracker Via SMS.
 
Konfigurasi sistem GPS tracker via sms
Modul GPS akan menerima data dari satelit kemudian data tersebut akan dikalkulasi dan hasilnya akan dikirimkan melalui jaringan GSM ke hp pengguna, pengiriman ini dilakukan jika user meminta data melalui sms comman, kemuadian data sms permintaan posisi dari user tersebut akan diterima oleh modul GPS, setelah itu modul akan membaca isi sms, setelah format isi sms benar maka modul akan mengirimkan data koordinat beserta link googleMaps, dan hasilnya adalah gambar letak posisi pada peta digital googlemaps. Dalam project ini juga ditambahkan fasilitas untuk mematikan dan mengaktifkan kontak mobil via sms.
Untuk membuat sistem ini hal yang pertama saya lakukan adalah :
  1. Menentukan perangkat yang akan digunakan dan biaya yang diperlukan.
  2. Perancangan perangkat keras (hardware).
  3. Perancangan perangkat lunak (software).
  I. Menentukan perangkat yang akan digunakan dan biaya yang diperlukan. 
Setelah bertanya kepada Prof.Dr.Ir Google.com, akhirnya saya menemukan modul GSM yang sudah builtin GPS yaitu modul modem sim548c buatan simcom,setelah lihat harga dan mempelajari dari datasheet-nya akhirnya saya memutuskan untuk memakai modul ini, dan inilah penampakan dari Sim548C.
    Modul modem sim548c
 
    Modul Sim548c adalah modem GSM yang sudah terdapat chips GPS (builtin GPS) yang memiliki spesifikasi dan fitur sebagai berikut :
  • Quad-Band 850/900/18001900MHz
  • GPRS multi-slot class 10
  • GPRS mobile station class B
  • Compliant to GSM phase 2/2+ 
    – Class 4 (2 W @ 850/900 MHz) 
    – Class 1 (1 W @ 1800/1900MHz)
  • Control via AT commands (GSM 07.07 ,07.05 and SIMCOM enhanced AT Commands)
  • Supply voltage range 3.4 ... 4.5 V
  • Dimensions: 55*33*8.2mm
  • 60-pin DIP connector
  • SMS Broadcast
  • Embedded SIM card holder
  • dual serial interface for GPS
  • A serial interface for GSM
  • Two sparate antenna connector for GPS and GSM
Dan berikut ini adalah spesifikasi dari GPS nya.
  • Receiver 20 channels, L1 1575.42 Mhz, C/A code 1,023 MHz chip rate
  • Accuracy Position 10m CEP  
    without SA/Velocity 0.1m/s, without SA/Time 1μs synchronized to GPS time
  • Date WGS-84
  • Acquisition rate (TTFF defined at 95% of first position local station)
  • Hot start<1s, average, open sky
  • Warm start<38s, average, open sky
  • Cold start<42s, average, open sky
  • Support AGPS
  • Operating voltage 3.3V DC ±5%
  • Low power consumption about 200mW at 3.3V
  • Protocols 
    NMEA-0183
    SiRF binary
    RTCM SC-104
Berdasarkan spesifikasi dan fitur yang terdapat pada modul sim548c, kelebihan dari modul ini yaitu, modul ini tergolong perangkat low power yaitu menggunakan suplly tegangan 3.4 – 4.5 volt, jika dilihat dari dimensi fisiknya tidak terlalu besar dan ringkas, terdapat dua komunikasi serial untuk GPS-nya yaitu serialA (9600 bps) dan serialB(4800 bps), serta komunikasi serial untuk GSM dengan operasi didukung oleh AT-command.dimana kecepatan transferdatanya (Baudrate) dapat diatur. Berdasarkan informasi diatas, maka kita membutuhkan sebuah perangkat IC prosessor sebagai pusat sistemnya untuk mengatur task AT-commad dan parsing data gps-nya, Lalu spesifikasi yang seperti apa yang kita butuhkan?? spesifikasi yang kita butuhkan yaitu IC mikrokontroller yang memiliki dua port komunikasi serial yaitu serial untuk komunikasi antara modul gsm dan serial untuk GPS. Setelah mempertimbangkan tentang mikrokontroller yang akan digunakan akhirnya saya memutuskan untuk menggunakan mikrokontroller seri atmega 162. dan berikut ini adalah spesifikasi dan fitur dari atmega162 berdasarkan datasheetnya :
Gambar susunan kaki mikrokontroller Atmega 162
 
Gambar diatas tersebut merupakan bentuk dari IC mikrokontroller atmega 162 yang di package dalam 40-dip. Dan berikut ini adalah fitur dari mikrokontroller atmega 162:
High-performance, Low-power AVR® 8-bit Microcontroller
• Advanced RISC Architecture
– 131 Powerful Instructions – Most Single-clock Cycle Execution
– 32 x 8 General Purpose Working Registers
– Fully Static Operation
– Up to 16 MIPS Throughput at 16 MHz
– On-chip 2-cycle Multiplier
• High Endurance Non-volatile Memory segments
– 16K Bytes of In-System Self-programmable Flash program memory
– 512 Bytes EEPROM
– 1K Bytes Internal SRAM
– Write/Erase cycles: 10,000 Flash/100,000 EEPROM
– Data retention: 20 years at 85°C/100 years at 25°C
– Optional Boot Code Section with Independent Lock Bits
In-System Programming by On-chip Boot Program 
True Read-While-Write Operation
– Up to 64K Bytes Optional External Memory Space
– Programming Lock for Software Security
• JTAG (IEEE std. 1149.1 Compliant) Interface
– Boundary-scan Capabilities According to the JTAG Standard
– Extensive On-chip Debug Support
– Programming of Flash, EEPROM, Fuses, and Lock Bits through the JTAG Interface
• Peripheral Features
– Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
– Two 16-bit Timer/Counters with Separate Prescalers, Compare Modes, and
Capture Modes
– Real Time Counter with Separate Oscillator
– Six PWM Channels
– Dual Programmable Serial USARTs
– Master/Slave SPI Serial Interface
– Programmable Watchdog Timer with Separate On-chip Oscillator
– On-chip Analog Comparator
• Special Microcontroller Features
– Power-on Reset and Programmable Brown-out Detection
– Internal Calibrated RC Oscillator
– External and Internal Interrupt Sources
– Five Sleep Modes: Idle, Power-save, Power-down, Standby, and Extended Standby
• I/O and Packages
– 35 Programmable I/O Lines
– 40-pin PDIP, 44-lead TQFP, and 44-pad MLF
• Operating Voltages
– 1.8 - 5.5V for ATmega162V
– 2.7 - 5.5V for ATmega162
Nah setelah perangkat penting yang akan kita gunakan sudah didapat langkah selanjutnya yaitu menentukan komponen yang akan kita gunakan untuk merancang power-suplly, jenis power supply sangat banyak, tetapi berdasarkan kebutuhan perangkat diatas yang saya butuhkan adalah karakteristik power supply step-down (penurun tegangan), kira-kira apa ya?? yeah apakah kita tetap menggunakan 7805 voltage regulator?? itu mungkin digunakan untuk menyupply mikrokontroller tetapi bagai mana dengan modul sim548c yang membutuhkan supply tegangan 3.4 – 4.5 volt ?? nah dari kasus itu saya menemukan IC regulator adj (ajustable) yaitu LM 2576 yang sudah banyak dijual di pasaran. Jenis ic tersebut merupakan ic power supply switching buck-bus, jenis lm 2576 yang saya gunakan bertipe output perbandingan resistor jadi untuk menentukan output tegangan kita bisa menggunakan nilai resistornya....hehehehe pusing berurusan dengan hitung-menghitung lagi.
Gambar LM2576T adj 
Untuk perhitungan dan tipe rangkaian akan dibahas pada sesi perancangan hardware (perangkat keras). Nah sekarang mari kita memulai mengkalkulasi harga setiap perangkat dan komponen yang kita butuhkan dalam project ini.
Nama Komponen
Harga @ satuan (Rp)
Jumlah yang dibutuhkan x harga persatuan
Modul sim548c
Rp600.000,00
1x Rp600.000,00
Antena GPS
Rp110.000,00
1x Rp110.000,00
Antena GSM
Rp50.000,00
1x Rp50.000,00
Atmega 162
Rp65.000,00
1x Rp65.000,00
Rellay SPDT omron
Rp35.000,00
1x Rp35.000,00
LM2576 adj
Rp10.000,00
1x Rp10.000,00
Regulator 7808
Rp1.000,00
1x Rp1.000,00
Regulator 7805
Rp1.000,00
1x Rp1.000,00
Connector 60 pins female SMD
Rp7.500,00
1x Rp7.500,00
Sim card holder
Rp5.000,00
1x Rp5.000,00
Resistor 1K ohm
Rp100,00
4x =Rp400,00
Resistor 10K ohm
Rp100,00
1 x Rp100,00
Resistor 3K3 ohm
Rp100,00
1 x Rp100,00
Resistor 1k ohm smd
Rp300,00
1x Rp300,00
Resistor 330 ohm smd
Rp300,00
1x Rp300,00
Resistor 330 ohm
Rp300,00
5x =Rp1500,00
Induktor 100 uH
Rp500,00
1x Rp500,00
Dual header (black) 10 pins
Rp1.000,00
1x Rp1.000,00
Transistor 2n3904 NPN
Rp2.000,00
1x Rp2.000,00
Transistor C9013 NPN
Rp500,00
2x =Rp1000,00
Transistor C828 NPN
Rp1.000,00
1x Rp1000,00
Buzzer
Rp500,00
1xRp500,00
Capasitor 1000 uf 25v
Rp1.000,00
1x Rp1000,00
Capasitor 4700 uf 25v
Rp500,00
2x =Rp1000,00
Capasitor 100 uf 16 v
Rp500,00
2x =Rp1000,00
Capasitor ceramic 10 pf
Rp500,00
1xRp500,00
Dioda 1N4008
Rp100,00
1xRp100,00
Dioda 1N5408
Rp100,00
1x Rp100,00
Soket 40 pins
Rp500,00
1xRp500,00
Led
Rp500,00
4x= Rp2000,00
Header balck housing
secukupnya
Rp7.000,00
Biaya etcing PCB

Rp37.000,00
Box untuk tempat rangkaian

Rp9.000,00
TOTAL HARGA
Rp.1.016.000,00

II. PERANCANGAN PERANGKAT KERAS (HARD WARE)
Pada perancangan perangkat keras ini, hal yang paling penting adalah membuat rangkaian power supply yang akan digunakan untuk modul sim548c, karena modul ini membutuhkan board adapter, dan board ini harus membuat sendiri. Aturan atau spesifikasi supaya modul ini dapat bekerja adalah mengikuti aturan dari datasheetnya yaitu :
A. Modul sim548c memputuhkan tegangan kerja sebesar 3.4-4,5 volt.
B. Pada saat modem GSM beroperasi membutuhkan kenaikan arus maksimal sekitar 2A.
C . Pada pin nomer 11 (VRTC) tidak boleh dibiarkan harus terkoneksi dengan sebuah kapasitor atau
     dengan batrai Cmos (batrai berbentuk coin).
D. Menggunakan antena GPS_Vant, yang memiliki spesifikasi Vmax=5volt, Vmin=2,85volt.
    (karena dalam project ini device antena untuk mengaktifkan GPS menggunakan tengan 3-5 volt)
E. Pada mode komunikasi serial yaitu Rxd dan Txd maka pada pin RTS (state line) harus
    dihubungkan ke ground.
F. Menggunakan back-up batray untuk RTC GPS. (supaya GPS bekerja dalam mode hotstart).
Selanjutnya yaitu mendesein rangkaian power supply, kira-kira jenis regulator apa ya yang sesuai dengan poin A?? nah, kita sudah mengenal jenis power suplly step down switcing. Dalam project ini sebelumnya telah ditentukan perangkat voltage regulator yang akan digunakan yaitu LM2576T adj, nah sekarang hal yang harus kita ketahui adalah :
  • Vout = regulated output voltage.
  • Vin = maximal input voltage.
  • I(load max) = maximum load current.
  • F = switcing frequency (fixed at 52 khz)
jenis yang kita gunakan yaitu LM 2576 adj dengan output tegangan perbandingan resistor, maka untuk menentukan nilai output tegangan yang kita butuhkan, maka rumus perhitungannya yaitu :
Selanjutnya yaitu menentukan nilai arus yang akan dihasilkan dan hal ini tergantung dari nilai induktor yang dipakai dengan mengikuti formula rumus sebagai berikut :
  • mcrosecond constan = E.T(V.us), yaitu evisiensi voltage interfal dalam us
hasil dari perhitungan rumus 2 nilainya digunakan untuk mengetahui arus maksimal yang akan dihasilkan, berdasarkan nilai induktor yang digunakan dengan mengikuti tabel sebagai berikut :
 Gambar Tabel current load 
Nah sekarang semua informasi tentang prosedur dalam membuat switcing power supplly telah kita dapatkan selanjutnya kita akan mendesain sesuai dengan output yang kita butuhkan yaitu :
 Gambar skematik switcing power suplly stepdown
Dari gambar skematik diatas, nilai R1 sudah diketahui dan nilai Vout = 3,4 volt sesuai dengan tegangan minimum kerja yang dibutuhkan oleh modem sim548c, sedangkan Vout = 12 volt tegangan accu pada mobil dari sini kita akan menentukan nilai R2 dan I (arus) yang dihasilkan jika kita menggunakan output tegangan minimum, dan harus diingat pada saat modem bekerja(brust) membutuhkan arus sebesar 2 A. Dan berikut ini adalah perhitungannya :
diketahui: R1 = 1 k ohm (lihat keterangan rumus)
Vout = 3,4 volt (nilai minimum voltase kerja modem)
Vin = 12 volt (tegangan dari accu pada mobil)
Vref = 1,23 volt (lihat keterangan rumus)
ditannya R1 dan Imax?
Jawab :
R2 = R1 (Vout /Vref -1 )
R2 = 1 k (3,4/1,23 -1)
R2 = 1,7K
selanjutnya yaitu mencari nilai arus maksimal yang dihasilkan maka :
E.T(V.us) maka :
E.T = (Vin – Vout).Vout/Vin.1000/f(V.us) => dimana f=52 Khz
= (12 - 3,4 ).3,4/12. 1000/52(V.us)
= (8,6). 0,283. 19,230
= 46,80V us
Nah dengan nilai acuan tersebut, untuk mengetahui nilai I(load max) lihat gambar current load, pada rangkaian yang saya desain menggunakan induktor L sebesar 100 uH, maka nilai arus sebesar 2,2 A
Dari perhitungan diatas nilai arus dan tegangan output sudah dapat digunakan untuk modul sim548c tetapi yang menjadi permasalahan adalah nilai R2 = 1,7 K ohm,yang tidak akan kita temui di toko, dan nilai yang umum kita jumpai yaitu 2,2K. Nah mari kita Hitung lagi jika nilai R2 kita ganti dengan nilai 2,2 K.
Diketahui : R1 = 1 K ohm
: R2 = 2,2 K ohm
:Vref = 1,23 volt
Ditanya: Vout dan I(max) ??
Jawab :
Vout = Vref(1+R2/R1)
= 1,23(1+ 2,2/1)
= 3,9 volt
nah ternyata nilai yang kita dapatkan masih dalam prosedur yang aman, hehehehehe, nah mari kita cari I(max) dengan induktor L sebesar 100 uH.
E.T = (V us)
= (Vin – Vout) Vout/Vin . 1000/f (V us)
= (12 – 3,9) 3,9/12.1000/52(V us)
= 50,62 V us
Jadi E.T = 50,62V.us dengan induktor sebesar 100 uH maka arus maksimal yang kita peroleh adalah sekitar 2,4 A.
Dari perhitungan diatas output tegangan sebesar 3,9 volt dengan arus sekitar 2,4 A sudah cukup untuk menyuplly modul sim548c, karena modul ini hanya membutuhkan tegangan kerja antara 3,4 volt – 4,5 volt, dan pada saat modem bekerja (brust) membutuhkan arus sebesar 2 A saja, jadi perhitungan kita sudah sesuai (semoga sesuai Hehehehehehehehe).
Dan berikut ini adalah gambar skematik evaluation board adapter sim548c.
 Gambar skematik board adapter sim548c
Sekarang bagaimana konfigurasi komunikasi antara mikrokontroller dengan sim548c?? ikuti gambar berikut : 
 
 Gambar konfikurasi komunikasi 
nah seperti ini konfigurasi komunikasi serial yang saya gunakan antara Mcu dengan modul sim548c. Saya menggunakan serial GPS_TxA karena saya ingin menggunakan baudrate sebesar 4800 bps, sedangkan GPS_TxB menggunakan baudrate sebesar 9600 bps.
 Oh ya hampir lupa untuk rangkaian driver rellay bisa di cari di mbah google ya hehehehe soalnya dah males nulisnya heheheheh.yang perlu diperhatikan dalam driver rellay adalah nilai resistansi dari coil rellay dan penguatan transistor untuk mensaklar rellay. Oke next step.
III. Perancangan perangkat Lunak
Dalam perancangan perangkat lunak ini, hal yang perlu kita kerjakan yaitu :
  • Operasi modem GSM yaitu menggunakan AT+Commad.
  • Parsing data GPS yaitu pengambilan data GPS, karena ID data gps banyak, apa yang ingin di parsing datanya?? dalam project ini saya mengambil ID data GPS $GPRMC, dan mengikuti protocol Nmea 0183
  • Pengolahan data GPS, yaitu proses konversi format data lat & long kedalam decimal degree dan acuan lat S / N dan long W/E, acuan tersebut menyangkut tentang posisi kita pada belahan bumi. Dan hal tersebut memiliki aturan dan maksud tertentu.
  • Semua task tersebut diatur oleh mikrokontroller sebagai pusat sistem.
Nah sekarang kita akan berkenalan dengan AT+Commad, yaitu protocoler untuk pengoprasian pada telepon celluler, berikut ini adalah AT+Commad yang digunakan pada project ini :
Protocol AT+commad
Keterangan
ATE0
Kill Eco
AT+CMGF
Format text 1 = text format 0=PDU format
AT+CMGL
Untuk memeriksa sms
AT+CMGDA
Menghapus semua sms pada ME
AT+CMGS
Kirim sms ke no tujuan

NB :Pada saat mengoperasikan AT+Commad, setelah pengetikan data tersebut code assci untuk perintah baru adalah enter = 13 & untuk memulai pengiriman yaitu Ctrl_Z = 26. untuk lebih jelasnya bisa bisa baca pada at+commad sim548c.
oke, selanjutnya yaitu bagaimana bentuk data yang dikirimkan oleh GPS, protocol data GPS pada project ini menggunakan centences ID $GPRMC dan berikut ini adalah frame datanya :
Field
Format
Keterangan
1
$GPRMC
ID centences
2
hhmmss.ss
UTC time
3
a
Position validity(A valit, V invalit)
4
ddmm.mmmm
latitude
5
a
Latitude direction (N/S)
6
dddmm.mmmm
longitude
7
a
Longitude direction (E/W)
8
x.x
Speed (knot)
9
x.x
Heading (degrees)
10
ddmmyy
date
11
x.x
Magnetic variation(degrees)
12
a
Magnetic variation direction (W/E)
13
*hh
checsum
14
<CR><LF>
End of message termination
 dalam sistem.
  • Field nomer 3 yaitu positioData diatas tersebut menunjukkan frame dan format data id centences $GPRMC nanti data yang kita ambil yaitu pada field nomer 3,4,5,6,7,8. dan berikut ini adalah implementasiannyan validity, jika mikrokontroller menerima data karakter 'V' maka sistem akan menunggu sampai menerima karakter 'A', jika data sudah valit maka akan subroutin selanjutnya akan dikerjakan.
  • Field nomer 4 yaitu data coordinat lintang (longitude).
  • Field nomer 5 yaitu homeisphare, jika indikator menunjukkan N = Nort maka nilai coordinat lintang positif, jika S = south nilai coordinat lintang negartif.
  • field nomer 5 yaitu data coordinat Bujur (longitude).
  • Fileld nomer 7 yaitu homeisphare, jika indikator menunjukkan E = east maka nilai coordinat bujur positif, jika W = west nilai coordinat Bujur negatif.
  • untuk field 4 dan 5 . karena format data DDMM.MMMM untuk merubah ke decimal degree, ikuti rumus dibawah:
    Jika N / E maka :
 DD.DDDDD = DD + (MM.MMMM/60)
Jika S/W maka :
DD.DDDDD = DD + (MM.MMMM/60) * -1
  • Field nomer 8 indikator speed dalam satuan knot.digunakan untuk melihat objek dalam keadaan berhenti atau berjalan.
Berikut ini adalah gambar flowchart parcing data GPS :
 
Gambar flowchat parcing data GPS
subroutine program parsing data GPS ini terletak pada Serial interrupt vektor, dan semua data GPS yang diterima dan di filter, proses filtering data akan dikerjakan apabila terdapat karakter data $GPRMC. Selanjutnya data yang diambil akan disimpan pada variabel untuk di proses dan dikalkulasi. Berikut ini adalah potongan listing program proses converting data