Perancangan Sistem Kendali Melalui SMS

32
48 BAB III PERANCANGAN SISTEM Alat yang dirancang pada tugas akhir ini berjudul “kendali peralatan listrik melalui sms berbasis mikrokontroler ATmega”. Pada pengendalian peralatan listrik jarak jauh ini penulis memanfaatkan teknologi handphone untuk menghubungkan dan memutus aliran arus listrik secara otomatis. Alasan penulis menggunakan handphone dalam hal pengaksesannya yang mampu menjangkau tempat dan jarak yang sangat luas, hal ini berlaku selama tersediannya jaringan yang menghubungkan jalur komunikasi terhadap handphone tersebut. Sehingga penggunaan media handphone sebagai pengontrol dianggap lebih efektif dalam hal pengontrolan jarak jauh dibandingkan dengan pengonrol lainnya yang sangat terbatas dengan jarak. Prinsip kerja alat ini dapat dilihat seperti pada Gambar 3.1. dibawah ini : Ponsel Pengontrol Ponsel Penerima Gambar 3.1 Blok Diagram Sistem Komunikasi Serial USART Rangkaian Pengolah Sinyal Mikrokontroler ATmega8 Suplai 5V Catu Daya 5V dan 12 V Suplai 12V Driver (Relay) Peralatan Listrik

description

PERANCANGAN SISTEM KENDALI PERALATAN LISTRIK MELALUI SMS BERBASIS MIKROKONTROLER ATMEGA8

Transcript of Perancangan Sistem Kendali Melalui SMS

Page 1: Perancangan Sistem Kendali Melalui SMS

48

BAB III

PERANCANGAN SISTEM

Alat yang dirancang pada tugas akhir ini berjudul “kendali peralatan listrik

melalui sms berbasis mikrokontroler ATmega”. Pada pengendalian peralatan listrik

jarak jauh ini penulis memanfaatkan teknologi handphone untuk menghubungkan dan

memutus aliran arus listrik secara otomatis. Alasan penulis menggunakan handphone

dalam hal pengaksesannya yang mampu menjangkau tempat dan jarak yang sangat

luas, hal ini berlaku selama tersediannya jaringan yang menghubungkan jalur

komunikasi terhadap handphone tersebut. Sehingga penggunaan media handphone

sebagai pengontrol dianggap lebih efektif dalam hal pengontrolan jarak jauh

dibandingkan dengan pengonrol lainnya yang sangat terbatas dengan jarak.

Prinsip kerja alat ini dapat dilihat seperti pada Gambar 3.1. dibawah ini :

Ponsel Pengontrol Ponsel Penerima

Gambar 3.1 Blok Diagram Sistem

Komunikasi

Serial USART

Rangkaian

Pengolah Sinyal

Mikrokontroler

ATmega8

Suplai 5V

Catu Daya

5V dan 12 V

Suplai

12V Driver (Relay) Peralatan Listrik

Page 2: Perancangan Sistem Kendali Melalui SMS

49

Sistem ini memanfaatkan koneksi port serial pada konektor data ponsel yang

terdapat pada tiap ponsel untuk keperluan pertukaran data ponsel, sedangkan

mikrokontroler berperan sebagai pengolah data serial yang diterima dari ponsel.

Komunikasi antara ponsel (handphone) dengan mikrokontroler yang digunakan

dalam tugas akhir ini adalah Komunikasi UART. UART merupakan sebuah sirkuit

tambahan pada bus paralel di komputer untuk komunikasi serial. UART mengalihkan

sinyal serial menjadi parallel, menyediakan waktu untuk transmisi, dan sebagai data

buffer baik yang menuju atau keluar dari komputer. Komunikasi UART ini nantinya

sebagai interface untuk koneksi ke PC, untuk konfgurasi port data tipe handphone

yang digunakan yaitu Siemens M35.

Dalam mengakses handphone, mikrokontroler mengirimkan perintah AT-

Command yaitu suatu command yang diawali dengan AT+ (seperti perintah >

(prompt) pada DOS) yang akan dikirimkan oleh mikrokontroler melalui port serial

handphone untuk memerintahkan handphone agar menjalankan aplikasinya seperti

membaca dan mengirimkan SMS.

Setelah terjalin komunikasi, alat akan mendeteksi ada atau tidaknya handphone,

setelah itu handphone akan terus dalam keadaan standby dan menunggu SMS yang

masuk, SMS yang masuk ke handphone akan dideteksi, merupakan sebuah perintah

atau bukan, jika bukan maka SMS tadi akan terhapus secara otomatis dari memory

handphone, jika SMS yang masuk merupakan perintah yang dikenal maka SMS tadi

Page 3: Perancangan Sistem Kendali Melalui SMS

50

akan dikodekan oleh pengendali mikrokontroler dan kemudian diteruskan ke keluaran

alat.

Perintah yang dapat dikenali oleh alat ini adalah A1-E1 yang berfungsi

mengaktifkan relay 1 sampai dengan relay 5, perintah A0-E0 yang berfungsi

menonaktifkan relay 1 sampai dengan relay 5. Setelah perintah dieksekusi maka sms

yang telah diterima oleh handphone akan terhapus otomatis di handphone, dan alat

kembali ke keadaan standby untuk menunggu perintah selanjutnya.

Pada perancangan kendali peralatan listrik melalui SMS berbasis

mikrokontroler ATmega8 dan handphone Siemens M35 ini, terbagi atas 2 bagian

yaitu perancangan perangkat keras (hardware) dan perancangan perangkat lunak

(software). Perancangan perangkat keras dilakukan dengan menyusun komponen-

komponen elektronika sesuai dengan fungsinya masing-masing yang kemudian

dirangkai menjadi satu kesatuan sistem pengontrolan otomatis.

Untuk perancangan perangkat keras (hardware), terbagi menjadi 4 bagian,

yaitu perancangan untai pengendali mikrokontroler, perancangan komunikasi serial

dari handphone ke alat, perancangan rangkaian pengendali saklar dan catu daya.

Sedangkan pada perancangan perangkat lunak (software) disusun dengan

menggunakan bahasa Visual Basic dengan kompiler Bascom AVR.

3.1 Perancangan Perangkat Keras

Proses pembuatan alat diawali dengan mengambarkan skema dan juga

Page 4: Perancangan Sistem Kendali Melalui SMS

51

jalur rangkaian dengan software pembuat PCB Eagle 5.4.0. kemudian setelah

selesai, dilakukan pencetakan jalur rangkaian pada papan PCB melalui metode

setrika, metode ini dipilih karena lebih praktis dan efisien. Langkah selanjutnya

adalah dengan mencuci papan PCB tersebut dengan larutan FeCl3 (Feri Chlorida)

untuk melarutkan logam pada papan PCB yang tidak tertutup jalur rangkaian.

Setelah jalur rangkaian pada PCB tercetak, dilakukan pengeboran papan PCB

untuk menempatkan komponen yang akan dipasang dan langkah terakhir adalah

penyolderan komponen pada papan PCB.

3.1.1 Catu Daya

Catu daya atau power supply digunakan sebagai sumber tegangan untuk

mengaktifkan komponen-komponen elektronika yang digunakan pada peralatan

ini dan catu daya yang digunakan adalah catu daya arus searah (DC) 5V dan

12V.

Tegangan input dari catu daya ini diperoleh dari listrik PLN langsung arus

AC sehingga memerlukan sebuah Transformator CT (Center Tap) 1A, trafo ini

berfungsi untuk menurunkan tegangan (Transformator Step Down) AC dari

220V ke tegangan yang dibutuhkan missal 12V,9V dan 6V yang kemudian

menjadi input dari dua buah diode dan sebuah ground yang akan mengubah arus

bolak balik (AC) menjadi arus searah (DC). Tegangan 5V digunakan untuk

menjalankan atau sebagai sumber tegangan dari mikrokontroler sedangkan

Page 5: Perancangan Sistem Kendali Melalui SMS

52

tegangan 12V digunakan untuk menggerakan relay. Susunannya dapat dilihat

pada Gambar 3.2.

Gambar 3.2 Rangkaian Catu Daya

Secara umum rangkaian catu daya terdiri dari empat bagian utama yaitu

transformator, penyearah, penapis (filter) dan regulator.

a. Transformator

Tansformator atau trafo CT berfungsi menurunkan tegangan AC dari

jala-jala listrik pada kumparan primernya menjadi tegangan AC yang

lebih kecil pada kumparan sekundernya, dengan trafo CT berarti

cukup menggunakan 2 buah dioda tanpa harus menggunakan 4 buah

dioda atau diode bridge sebagai penyearahnya.

J1

CON2

12

12V

R1R

VCC

J3

CON3

123

U3LM7805C/TO220

1 3

2

IN OUT

GN

D

D2

LED

R2R

VCC

C3220uF

U1LM7812C/TO220

1 3

2

IN OUT

GN

D

VCC

J2

CON2

12

C12200uF

12V

C2220uF

D41N4004

D1

LED

D3

1N4004

Page 6: Perancangan Sistem Kendali Melalui SMS

53

b. Penyearah (Rectifier)

Penyearah berfungsi sebagai untuk mengubah arus bolak-balik (AC)

menjadi arus searah (DC) komponen yang diperlukan adalah dua

buah diode 1N4004 sebagai penyearah gelombang penuh.

c. Penapis (filter)

Komponen dari penapis ini adalah berupa kapasitor pada rangkaian

ini digunakan kapasitor 2200uF dan 220uF. Tegangan kerja

kapasitor yang digunakan harus lebih besar dari tegangan keluaran

catu daya. Fungsi dari filter adalah untuk menapis riak (ripple)

gelombang keluaran dari penyearah agar lebih halus sehingga

mendekati bentuk gelombang DC murni.

d. Regulator

Regulator voltage berfungsi sebagai filter tegangan agar sesuai

dengan keinginan dan untuk menjaga kestabilan tegangan keluaran

agar tetap konstan meskipun terjadi perubahan tegangan AC pada

masukan. IC regulator yang digunakan adalah LM7805 untuk

keluaran 5V dan LM7812 untuk keluaran 12V.

3.1.2 Untai Pengendali Mikrokontroler

Pengendali mikrokontroler adalah bagian utama dan merupakan “otak

kendali” yang terdiri dari IC pengendali mikrokontroler ATMega8 dan untai

osilator. Untai osilator terdiri dari Kristal dan dua buah kapasitor. Komponen

Page 7: Perancangan Sistem Kendali Melalui SMS

54

perangkat keras dari mikrokontoler ini sangat sederhana,karena hanya

menambahkan beberapa komponen pasif seperti terlihat pada Gambar 3.3.

Gambar 3.3 Rangkaian Sistem Minimum

Page 8: Perancangan Sistem Kendali Melalui SMS

55

Rangkaian ini juga dapat dikatakan sebagai rangkaian pegolah sinyal

karena rangkaian ini mengolah data dari handphone kemudian memproses

data tersebut sehingga dihasilkan output yang diinginkan. Dalam rangkaian

pengolah sinyal (Minimum System ATmega8), seperti Gambar 3.3 tersusun

atas osilator Kristal 4 MHz yang berfungsi untuk memberikan pulsa clock

internal. Osilator kristal ini dihubungkan pada pin 9 (PB6) dan pada pin 10

(PB7). Dua buah kapasitor 22pF yang berfungsi menstabilkan frekuensi.

Resistor 330 Ω dan LED sebagai indikator aktifnya mikrokontroler.

Supalai 5V diberikan pada pin7 kaki mikrokontroler yang bertugas

sebagai Vcc. Vcc ini akan dihubungkan ke AVcc pada pin 20 dan AREF pada

pin 21. AVcc adalah pin tegangan catu untuk A/D converter sedangkan AREF

adalah untuk pin tegangan referensi analog untuk ADC. Pin 2 (RXD) dan pin

3 (TXD) terhubung dengan handphone Siemens M35. Selanjutnya pin 23

hingga pin 27 (PC0-PC4) terhubung ke driver untuk mengendalikan peralatan

listrik sedangkan pin 17 hingga pin 19 serta Vcc dan ground digunakan

sebagai input downloader.

3.1.3 Rangkaian Pengendali Saklar

Rangkaian pengendali saklar ini berfungsi untuk memberikan input

tegangan pada peralatan listrik yang akan dikendalikan. Input dari rangkaian

Page 9: Perancangan Sistem Kendali Melalui SMS

56

ini diperoleh dari pin 23 sampai pin 27 (PC0-PC4) pada mikrokontroler,

dengan hal ini mikrokontroler akan mengendalikan 5 buah relay pada driver.

Driver ini mendapatkan suplai tegangan yang lebih besar dari

mikrokontroler karena untuk bekerjanya transistor dan relay membutuhkan

sumber tegangan yang lebih besar dari pada 5V.

Pada rangkaian ini digunakan 5 buah transistor dan 5 buah relay untuk

mengendalikan 5 buah peralatan listrik. Fungsi transistor yang telah dibahas

sebelumnya yaitu berfungsi sebagai saklar, konfigurasi transistor yang

digunakan adalah common emitter. Selanjutnya fungsi relay pada rangkaian

ini sebagai penghubung dan pemutus arus AC yang pengontrolnya

menggunakan arus DC. Skema rangkaian driver dapat dilihat pada Gambar

3.4.

Diode 1N4004 adalah sebagai diode pelindung untuk mencegah

adanya tegangan lebih pada transistor karena adanya gerak gaya listirk balik

yang berasal dari kumparan pada transistor mati. Tegangan balik ini biasanya

melebihi tegangan maksimum kolektor, sehingga bisa merusak transistor.

Dengan adanya diode maka tegangan balik tersebut akan dihantarkan kearah

Vcc, sehingga tidak akan masuk pada kolektor. Selanjutnya untuk 5 buah Led

digunakan sebagai indikator relay telah bekerja dengan baik.

Page 10: Perancangan Sistem Kendali Melalui SMS

57

Gambar 3.4 Rangkaian Driver

Page 11: Perancangan Sistem Kendali Melalui SMS

58

Berikut gambar transistor yang bekerja sebagai saklar terhadap relay:

Gambar 3.5 Transistor sebagai Saklar

Nilai-nilai resistor pada transistor diatas dapat dihitung dengan cara

sebagai berikut:

Vcc = 12 Volt

; Dengan nilai Rrelay = 395 Ω

; hFE=170 (Data Sheet Transistor)

Page 12: Perancangan Sistem Kendali Melalui SMS

59

Dengan nilai R11 diatas maka digunakan R11=27K yang sesuai

dengan nilai-nilai resistor dipasaran, selanjutnya untuk nilai R12 normalnya

digunakan sebesar 10 kali dari nilai R11, maka nilai R12 akan sebesar sebagai

berikut:

R12 = 10*R11

R12 = 10*27 K

R12 = 270 K

R12 sebenarnya tidak diperlukan untuk rangkaian ini. Tapi umumnya

digunakan untuk menyetabilkan dan untuk memastikan bahwa saklar

transistor dengan sepenuhnya mati.

3.1.4 Untai Komunikasi Serial

Seperti yang sudah dijelaskan pada bab sebelumnya, komunikasi antara

handphone dengan alat dilakukan secara serial, dengan komunikasi UART.

Komunikasi dilakukan secara UART dengan jumlah data 8 bit, nonparity, dan

menggunakan baud rate sebesar ±19200 bps, untuk pengiriman data digunakan

fasilitas yang ada pada pengendali mikro yaitu fasilitas pada port D.1 (TXD)

Page 13: Perancangan Sistem Kendali Melalui SMS

60

dan untuk penerimaan data dari handphone maka digunakan port D.0 (RXD)

yang dihubungkan ke kabel data handphone. Selanjutnya diode zener disini

berfungsi sebagai penyetabil tegangan yang dihubungkan sebelum TXD.

Dengan menggunakan diode ini maka tidak diperlukan IC MAX232 sebagai

interface antara handphone dengan mikrokontroler. Untai komunikasi serial

dapat dilihat pada Gambar 3.6. dibawah ini :

Gambar 3.6 Untai Komunikasi Serial

Berikut langkah penyambungan mikrokontroler dengan kabel data

siemens M35:

1. Kabel Biru=RxTXD(D.1).

2. Kabel Putih=TxRXD(D.0).

3. Kabel Kuning=GNDGND Untai Mikrokontroler.

Page 14: Perancangan Sistem Kendali Melalui SMS

61

3.2 Perancangan Perangkat Lunak

Perancangan perangkat lunak pada tugas akhir ini menggunakan

Visual Basic dengan menggunakan software BASCOM-AVR sebagai

kompailernya. Perancangan perangkat lunak ini sangat penting, karena program

yang dibuat akan menentukan program pengontrolan relay terhadap peralatan

listrik yang akan dikendalikan agar bekerja dengan baik.

Perancangan perangkat lunak pada mikrokontroler atmel ATmega8 terbagi

menjadi 2 bagian yaitu program utama dan subrutin program. Program utama

mengatur keseluruhan jalannya program yang meliputi subrutin-subrutin.

Subrutin program yaitu subrutin untuk pengubahan isi sms format PDU ke format

ASCII. Sub rutin akan menjalankan fungsi-fungsi tertentu yang dibutuhkan untuk

sistem pengontrolan. Adapun diagram alir dari program utama ditunjukkan pada

Gambar 3.7.

Tidak

Ya

Tidak

Ya

Inisialisai Modem (HP)

Ada +?

Ada Koma(,)?

B A

Data Masuk

Mulai

Deklarasi Karakter

Page 15: Perancangan Sistem Kendali Melalui SMS

62

Ya

Tidak Ya

Tidak

Gambar 3.7 Diagram Alir Program Utama

Hapus Isi Pesan ASCII

dan Pesan PDU

B

5 s

ASCII 2 PDU

Kirim Status

STATUS?

Ambil 2 Karakter Pertama Pesan ASCII

Cocokan Dengan Keadaan Yang Telah Ditentukan

Ada ; ?

Ambil Karakter Berikutnya

PDU 2 ASCII Disimpan di Pesan ASCII

Cek Kondisi

Relay

Simpan Panjang Data PDU

Simpan Isi Pesan PDU

Simpan No Index Dig1 dan Dig2

Kirim Perintah Baca AT+CMGR

Kirim Posisi Index Sms

Lompati n Sejumlah Digit Pertama

A

Baca 2 Digit Pertama PDU

Simpan Nomor Pengirim

Lompati 20 data

Page 16: Perancangan Sistem Kendali Melalui SMS

63

Selanjutnya untuk program utama dapat ditunjukan sebgai berikut:

Nomor = ""

X = 0

While X <> "+"

X = Waitkey()

Wend

Program ini akan menunggu sms masuk, ditandai dengan data masuk

(+CMTI:”SM”, <index>), kemudian nomor akan dikosongkan dan selanjutnya

akan mencari tanda positif (+) pada data (+CMTI:”SM”, <index>).

While X <> ","

X = Waitkey()

Wend

Dig1 = Waitkey()

Dig2 = Waitkey()

While X <> &H0A

X = Waitkey()

Wend

Program ini akan mencari tanda koma (,) pada (+CMTI:”SM”, <index>)

untuk membaca nomor index yang berada setelah tanda koma (,). Kemudian

index yang terbaca akan dimasukan ke dalam Dig1 dan Dig2. Dig1 digunakan

untuk index yang berjumlah 1 dan jika berjumlah 2 maka index lainnya akan

dimasukan ke dalam dig2.

Page 17: Perancangan Sistem Kendali Melalui SMS

64

Print "AT+CMGR=";

Print Chr(dig1);

Print Chr(dig2);

If Dig2 = &H0D Then

Print Chr(&H0a);

Else

Print

End If

While X <> "+"

X = Waitkey()

Wend

While X <> &H0A

X = Waitkey()

Wend

Program ini untuk mengirimkan perintah kepada mikrokontroler untuk

mambaca sms (AT+CMGR) dan untuk mengirimkan posisi index sms.

Pdulen = ""

Pdulen = Pdulen + Waitkey()

Pdulen = Pdulen + Waitkey()

I = Hexval(pdulen) * 2

For X = 1 To I

Temp = Waitkey()

Next X

Page 18: Perancangan Sistem Kendali Melalui SMS

65

Temp = Waitkey()

Temp = Waitkey()

Pdulen = ""

Nomor = ""

Pdulen = Pdulen + Waitkey()

Nomor = Nomor + Pdulen

Pdulen = Pdulen + Waitkey()

Nomor = Nomor + Pdulen

I = Hexval(pdulen)

B2 = I Mod 2

If B2 = 0 Then

I = I + 4

Else

I = I + 5

End If

For X = 3 To I

Mid(nomor , X , 1) = Waitkey()

Next X

For X = 1 To 20

Temp = Waitkey()

Next X

Page 19: Perancangan Sistem Kendali Melalui SMS

66

Program ini untuk melompati karakter PDU yang tidak digunakan dan

menyimpan panjang data PDU.

X = Waitkey()

While X <> &H0D

Pesan_pdu = Pesan_pdu + Chr(x)

X = Waitkey()

Wend

Program ini berfungsi untuk mengopi isi sms dan menyimpan di PDU,

selanjutnya mengubah data PDU yang mempunyai tipe string menjadi tipe char.

Pesan_ascii = ""

Call Pdu2ascii(pesan_pdu)

Program ini untuk memastikan bahwa data ASCII telah kosong dan program

untuk memanggil subrutin pengubahan PDU ke ASCII

I = 1

Cek_isi:

Saklar = Mid(pesan_ascii , I , 2

Select Case Saklar

Case "A1" : Relay1 = 1

Case "B1" : Relay2 = 1

Case "C1" : Relay3 = 1

Case "D1" : Relay4 = 1

Page 20: Perancangan Sistem Kendali Melalui SMS

67

Case "E1" : Relay5 = 1

Case "R1" : Relay = &H1F

Case "A0" : Relay1 = 0

Case "B0" : Relay2 = 0

Case "C0" : Relay3 = 0

Case "D0" : Relay4 = 0

Case "E0" : Relay5 = 0

Case "R0" : Relay = &H00

End Select

Program ini untuk memeriksa isi sms dan selanjutnya akan di eksekusi

terhadap isi sms tersebut.

Cek_lagi:

I = I + 2

Saklar = Mid(pesan_ascii , I , 1)

If Saklar = ";" Then

I = I + 1

Goto Cek_isi

End If

Program ini untuk memeriksa kembali isi sms tersebut apakah ada lebih dari 1

perintah yang akan dieksekusi, jika tidak akan melanjutkan ke perintah

selanjutnya.

If Pesan_ascii = "STATUS" Then

Pesan_ascii = ""

Page 21: Perancangan Sistem Kendali Melalui SMS

68

If Relay1 = 1 Then

Pesan_ascii = Pesan_ascii + "RELAY A ON; "

Else

Pesan_ascii = Pesan_ascii + "RELAY A OFF; "

End If

If Relay2 = 1 Then

Pesan_ascii = Pesan_ascii + "RELAY B ON; "

Else

Pesan_ascii = Pesan_ascii + "RELAY B OFF; "

End If

If Relay3 = 1 Then

Pesan_ascii = Pesan_ascii + "RELAY C ON; "

Else

Pesan_ascii = Pesan_ascii + "RELAY C OFF; "

End If

If Relay4 = 1 Then

Pesan_ascii = Pesan_ascii + "RELAY D ON; "

Else

Pesan_ascii = Pesan_ascii + "RELAY D OFF; "

End If

If Relay5 = 1 Then

Page 22: Perancangan Sistem Kendali Melalui SMS

69

Pesan_ascii = Pesan_ascii + "RELAY E ON"

Else

Pesan_ascii = Pesan_ascii + "RELAY E OFF"

End If

Call Ascii2pdu(pesan_ascii)

Call Kirim_status()

End If

Wait 5

Program ini untuk mengecek apakah sms berisi pesan “STATUS?”, jika benar

maka akan melakukan pengecekan kondisi dan akan melakukan pengubahan dari

ASCII ke PDU dan selanjutnya akan mengirmkan data SMS ke ponsel. Tunda 5

detik bertujuan agar semua sistem dalam kondisi stabil sebelum menjalankan

perintah selanjutnya.

Pesan_ascii = ""

Pesan_pdu = ""

Print "AT+CMGD=";

Print Chr(dig1);

Print Chr(dig2);

If Dig2 = &H0D Then

Print Chr(&H0a);

Else

Print

End If

Page 23: Perancangan Sistem Kendali Melalui SMS

70

Goto Mulai

End

Program ini untuk membersihkan memori pada data ASCII, data PDU dan

juga mengirimkan perintah ke handphone untuk menghapus sms.

3.2.1 Deklarasi Karakter

Pada awal program terlebih dahulu deklarasikan variable-variabel yang

digunakan didalam program. Variable adalah suuatu pengenal yang digunakan

untuk mewakili suatu nilai tertentu di dalam proses program yang bisa

diubah-ubah sesuai kebutuhan. Deklarasi sangat perlu jika ingin digunakan

pengenal di dalam program. Deklarasi ini terbagi menjadi beberapa bagian

yaitu deklarasi variable, deklarasi konstanta dan deklarasi fungsi.

Berikut deklarasi-deklarasi program yang digunakan:

a. Deklarasi konstanta:

$crystal = 4000000

$baud = 19200

Config Portd = &B11111110

Portd.1 = 0

Portd.0 = 1

b. Deklarasi Variabel:

Relay1 Alias Portc.0

Page 24: Perancangan Sistem Kendali Melalui SMS

71

Relay2 Alias Portc.1

Relay3 Alias Portc.2

Relay4 Alias Portc.3

Relay5 Alias Portc.4

Relay Alias Portc

Config Portc = Output

Dim I As Integer

Dim X As Byte

Dim Temp As Byte

Dim Digit1 As Byte

Dim Digit2 As Byte

Dim Dig1 As Byte

Dim Dig2 As Byte

Dim Panjang As Byte

Dim Pdulen As String * 2

Dim Nomor As String * 18

Dim Pesan_pdu As String * 160

Dim Pesan_ascii As String * 80

Dim Pesan_kirim As String * 180

Dim Saklar As String * 2

Dim I1 As Integer

Dim I2 As Integer

Dim I3 As Integer

Dim I4 As Integer

Dim Char1 As String * 8

Page 25: Perancangan Sistem Kendali Melalui SMS

72

Dim Char2 As String * 8

Dim Char3 As String * 8

Dim B1 As Byte

Dim B2 As Byte

Dim B3 As Byte

Dim Pduhex As String * 2

c. Deklarasi Fungsi:

Declare Sub Pdu2ascii(pdu As String )

Declare Sub Ascii2pdu(ascii As String )

Declare Sub Kirim_status()

3.2.2 Inisialisasi Modem

Diawal program utama, setelah melakukan deklarasi karakter maka yang

selanjutnya dilakukan adalah inisialisai prangkat keras yaitu inisialisai modem

(handphone). Insialisasi modem ini menggunakan command sebagai berikut:

1. ATE0 digunakan untuk mematikan echo atau feedback karakter saat

mengirimkan data ke modem. Hal ini bertujuan untuk mengurangi

kesibukan pada jalur komunikasi serial.

2. AT+CNMI sebagai pemberi keterangan saat ada sms baru masuk.

Selanjutnya untuk program inisialisai modem sebagai berikut:

Ate0:

Print "ATE0"

Page 26: Perancangan Sistem Kendali Melalui SMS

73

X = 0

While X <> &H0A

X = Waitkey()

If X = “R” then

Goto Ate0

End If

Wend

Cnmi:

Print "AT+CNMI=1,1,0,0,1"

X = 0

While X <> &H0A

X = Waitkey()

If X = “R” Then

Goto Cnmi

End If

Wend

3.2.3 Subrutin PDU ke ASCII

Gambar 3.8. Flowchart Subrutin pengubahan SMS dari PDU ke ASCII

Mulai

Ubah Isi SMS dari PDU

ke ASCII

Selesai

Page 27: Perancangan Sistem Kendali Melalui SMS

74

Subrutin pendekodean ini digunakan untuk menerjemahkan isi SMS dari

bentuk data PDU menjadi format ASCII lalu hasil pendekodean ini akan

disimpan di RAM.

Data yang mengalir dari atau ke SMS- centre harus berupa PDU. PDU

ini berisi bit-bit heksa desimal yang mencerminkan bahasa I/O. PDU ini

terdiri dari beberapa header. Header dari SMS terima berbeda dengan header

dari SMS yang akan dikirimkan. Berikut program pengubahan SMS PDU ke

ASCII:

Sub Pdu2ascii(pdu As String * 100)

I = 1

I1 = 1

I2 = 6

I3 = 8

Char2 = Mid(pdu , I , 2)

B2 = Hexval(char2)

Char2 = Bin(b2)

Char2 = Right(char2 , 7)

B3 = Binval(char2)

Pduhex = Chr(b3)

Pesan_ascii = Pesan_ascii + Pduhex

For I = 1 To Len(pdu) Step 2

I4 = I + 2

Char1 = Mid(pdu , I , 2)

B1 = Hexval(char1)

Char1 = Bin(b1)

Char1 = Left(char1 , I1)

Char2 = Mid(pdu , I4 , 2)

B2 = Hexval(char2)

Char2 = Bin(b2)

Char2 = Right(char2 , I2)

Page 28: Perancangan Sistem Kendali Melalui SMS

75

Char3 = Char2 + Char1

B3 = Binval(char3)

Pduhex = Chr(b3)

Pesan_ascii = Pesan_ascii + Pduhex

I1 = I1 + 1

I2 = I2 - 1

If I1 = I3 Then

I = I + 2

I1 = 1

I2 = 6

I3 = I3 + 8

Char2 = Mid(pdu , I , 2)

B2 = Hexval(char2)

Char2 = Bin(b2)

Char2 = Right(char2 , 7)

B3 = Binval(char2)

Pduhex = Chr(b3)

Pesan_ascii = Pesan_ascii + Pduhex

I = I - 2

End If

Next

End Sub

3.2.4 Subrutin ASCII ke PDU

Gambar 3.9. Flowchart Subrutin Pengubahan Data dari ASCII ke PDU

Mulai

Kosongkan PDU

Ubah Data dari

ASCII ke PDU

Selesai

Page 29: Perancangan Sistem Kendali Melalui SMS

76

Subrutin pendekodean ini untuk mengubah data yang akan dikirimkan ke

handphone dari format ASCII ke format PDU. Hal ini dilakukan karena dalam

pengiriman data, semua produsen MS (Mobile Station) menggunakan format

PDU. Format PDU ini akan mengubah septet kode ASCII (7 bit) menjadi

bentuk byte PDU (8 bit) dan akan diubah kembali menjadi format ASCII pada

saat diterima oleh mobile station. Berikut program pengubahan ASCII ke

PDU:

Sub Ascii2pdu(ascii As String )

Pesan_pdu = ""

I = Len(ascii)

Char1 = Hex(i)

Pesan_pdu = Right(char1 , 2)

I = 1

I1 = 1

I2 = 7

For I = 1 To Len(ascii)

I3 = I + 1

Char1 = Mid(ascii , I , 1)

B1 = Asc(char1)

Char1 = Bin(b1)

Page 30: Perancangan Sistem Kendali Melalui SMS

77

Char1 = Right(char1 , 7)

Char1 = Left(char1 , I2)

Char2 = Mid(ascii , I3 , 1)

B2 = Asc(char2)

Char2 = Bin(b2)

Char2 = Right(char2 , 7)

Char2 = Right(char2 , I1)

Char3 = Char2 + Char1

B3 = Binval(char3)

Pduhex = Hex(b3)

Pesan_pdu = Pesan_pdu + Pduhex

I1 = I1 + 1

I2 = I2 - 1

If I1 = 8 Then

I = I + 1

I1 = 1

I2 = 7

End If

Next

End Sub

3.2.5 Subrutin Kirim Status

Mulai

Kosongkan

Pesan_Kirim

A

Page 31: Perancangan Sistem Kendali Melalui SMS

78

Gambar 3.10. Flowchart Subrutin Kirim Status

Subrutin kirim status digunakan untuk memerintah handphone melakukan

pengiriman data berupa status kondisi relay. Oleh karena itu, utuk

memerintahkan mengirim data maka digunakan command “AT+CMGS=”.

Berikut program subrutin pengiriman status:

Sub Kirim_status()

Pesan_kirim = ""

Pesan_kirim = "001100" + Nomor + "0000A7" + Pesan_pdu

I = Len(pesan_kirim) / 2

I = I - 1

Pduhex = Str(i)

Print "AT+CMGS=";

Print Pduhex

While X <> ">"

Kirim Perintah

Kirim Sms

“AT+CMGS=”

Delay

Selesai

A

Page 32: Perancangan Sistem Kendali Melalui SMS

79

X = Waitkey()

Wend

Waitms 100

For I = 1 To Len(pesan_kirim)

Print Mid(pesan_kirim , I , 1);

Waitms 50

Next

Print Chr(26)

End Sub