Dengan menggunakan perangkat modem GSM Wavecom kita bisa membuat sebuah sistem SMS gateway. SMS gateway dapat digunakan untuk berbagai keperluan, misalnya sistem informasi akademik, sistem informasi pooling, dan sistem informasi lainnya. Selain sistem informasi, SMS gateway juga dapat digunakan untuk media telemetri, atau pengukuran jarak jauh dimana media SMS sebagai penghubung komunikasi datanya.
Salah satu alternatif yang dapat digunakan adalah modem GSM serial yang saat ini dapat dibeli dengan harga yang terjangkau. Selain itu, kita cukup menyediakan sebuah PC untuk membuat sistem. Pada tulisan ini akan dijelaskan salah satu cara interfacing antara modem serial GSM dengan Visual Basic 2008.
Membuat Interface
1. Membuat desain form interface dengan Visual Basic 2008 seperti berikut
Kita masukkan beberapa item dari toolbox, diantaranya:
– PictureBox1 dan PictureBox2
– Label
– ComboBox
– Button1 dan Button2
– TextBox1, TextBox2, dan TextBox3
2. Masukkan komponen SerialPort1, seperti gambar berikut
Setelah selesai, hasil akhir dari desain Form Interface Modem adalah seperti berikut:
Penjelasan:
Dim WithEvents serialPort As New IO.Ports.SerialPort
perintah diatas berfungsi untuk mendeklarasikan variabel serialPort sebagai sebuah komponen SerialPort.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim a As Integer
‘cek available serial port pada komputer
‘termasuk serial modem
For i As Integer = 0 To _
My.Computer.Ports.SerialPortNames.Count – 1
‘tambahkan ke dalam list combo serial port
cbbCOMPorts.Items.Add( _
My.Computer.Ports.SerialPortNames(i))
a = i
Next
cbbCOMPorts.Text = cbbCOMPorts.Items(a)
End Sub
Coding di atas berfungsi untuk mendapatkan list serial port yang ada pada komputer. Sehingga secara otomatis akan diketahui port serial dan nomernya pada daftar ComboBox.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
SerialPort1.PortName = cbbCOMPorts.Text
If SerialPort1.IsOpen = True Then
SerialPort1.Close()
End If
If SerialPort1.IsOpen = False Then
With SerialPort1
.Open()
.Handshake = IO.Ports.Handshake.RequestToSend
‘.RtsEnable = True
‘.DtrEnable = True
End With
End If
Fungsi coding di atas untuk mengatur properti serial port yang dipilih dan membuka koneksi untuk siap digunakan.
Dim Enter1, Enter2, Enter3 As Integer
Dim Echo, Echo1, Echo2, Echo3 As String
Dua baris berfungsi untuk deklarasi variabel yang akan digunakan berikutnya.
‘mengambil kode produk
SerialPort1.WriteLine(“AT+CGMI” & vbCrLf)
Threading.Thread.Sleep(500)
Echo = SerialPort1.ReadExisting
Enter1 = Strings.InStr(Echo, vbCrLf)
Echo1 = Strings.Right(Echo, Len(Echo) – Enter1)
Enter2 = Strings.InStr(Echo1, vbCrLf)
Echo2 = Strings.Right(Echo1, Len(Echo1) – Enter2 – 1)
Enter3 = Strings.InStr(Echo2, vbCrLf)
Echo3 = Strings.Left(Echo2, Enter3 – 1)
txtKodeProduksi.Text = Echo3
Karena setiap device/produk modem GSM memiliki tipe dan kode yang berbeda, maka kita bisa mengetahui kode produk dari device dengan menggunakan AT Command “AT+CGMI”. Setelah mendapatkan command di atas, modem akan memberikan kode yang menunjukkan kode produk yang selanjutnya ditampilkan pada TextBox txtKodeProduksi.
‘mengambil model produk
SerialPort1.WriteLine(“AT+CGMM” & vbCrLf)
Threading.Thread.Sleep(500)
Echo = SerialPort1.ReadExisting
Enter1 = Strings.InStr(Echo, vbCrLf)
Echo1 = Strings.Right(Echo, Len(Echo) – Enter1)
Enter2 = Strings.InStr(Echo1, vbCrLf)
Echo2 = Strings.Right(Echo1, Len(Echo1) – Enter2 – 1)
Enter3 = Strings.InStr(Echo2, vbCrLf)
Echo3 = Strings.Left(Echo2, Enter3 – 1)
txtModel.Text = Echo3
Kita juga bisa mengetahui model produk dari device yang digunakan dengan perintah “AT+CGMM”. Pada coding di atas, hasilnya akan ditampilkan pada TextBox txtModel.
‘mengambil nomer IMEI
SerialPort1.WriteLine(“AT+CGSN” & vbCrLf)
Threading.Thread.Sleep(500)
Echo = SerialPort1.ReadExisting
Enter1 = Strings.InStr(Echo, vbCrLf)
Echo1 = Strings.Right(Echo, Len(Echo) – Enter1)
Enter2 = Strings.InStr(Echo1, vbCrLf)
Echo2 = Strings.Right(Echo1, Len(Echo1) – Enter2 – 1)
Enter3 = Strings.InStr(Echo2, vbCrLf)
Echo3 = Strings.Left(Echo2, Enter3 – 1)
txtIMEI.Text = Echo3
Setiap modem/perangkat komunikasi memiliki nomer unik yang berbeda dari yang lain, yang disebut IMEI. Kita bisa mengetahui nomer IMEI dengan command “AT+CGSN”. Hasilnya ditampilkan pada TextBox txtIMEI.
‘menutup koneksi port
SerialPort1.Close()
Fungsi di atas untuk menutup koneksi port serial sehingga dapat digunakan kembali untuk proses yang lain.
Catch
MsgBox(“Gagal terhubung ke ‘ ” + cbbCOMPorts.Text + ” ‘. Mungkin port sedang digunakan.”, MsgBoxStyle.Exclamation, “Koneksi”)
End Try
End Sub
Demikian semoga bermanfaat.
Master,
setelah saya jalankan pake vb.net 2010 kok ga jalan ya master
“Conversion from string “” to type ‘Double’ is not valid.”
please…..
Project tersebut diatas dibuat dengan VB 2008. Untuk VB 2010 belum dicoba.
Coba tambahkan “Strings” didepan error yang ditunjukkan.
mas, bisa minta tolong di kirim email saya, nidjiholic18@gmail.com
untuk tugas akhir soalnya. terima kasih
mantap nih, uda dipraktekkin, dan sukses!!
maju terus mas 😀
Terima kasih.