Interfacing Visual Basic 2008 Dengan Modem Wavecom

modem GSM Wavecom 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

desain form interface
2. Masukkan komponen SerialPort1, seperti gambar berikut
menambahkan toolbox serial
Setelah selesai, hasil akhir dari desain Form Interface Modem adalah seperti berikut:
Hasil tampilan akhir
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.

You may also like...

5 Responses

  1. joe says:

    Master,
    setelah saya jalankan pake vb.net 2010 kok ga jalan ya master
    “Conversion from string “” to type ‘Double’ is not valid.”
    please…..

  2. Riza Fathur says:

    mas, bisa minta tolong di kirim email saya, nidjiholic18@gmail.com
    untuk tugas akhir soalnya. terima kasih

  3. Riza Fathur says:

    mantap nih, uda dipraktekkin, dan sukses!!
    maju terus mas 😀

Leave a Reply

Your email address will not be published. Required fields are marked *