Programming VB.NET : Mengenai Serial Port VS USB Port, dan Send/Receive di Serial Port.

Pada dasarnya pengiriman/penerimaan data melalui serial port sudah tidak populer lagi dalam penerapan sehari-hari, karena pada umumnya sudah digantikan dengan USB Port.
Namun dalam beberapa hal masih muncul permasalahan tersebut karena terkait dengan peralatan tertentu yang masih menggunakan Serial Port. Agar tidak menjadi rancu, sebenarnya USB Port adalah pengembangan dari Serial Port, hanya saja pola pengiriman datanya yang pada Serial port terdiri dari 9 kaki (pin) dirubah menjadi 4 kaki (pin) pada USB Port. Secara teknis, perubahan dari 9 pin menjadi 4 pin dimungkinkan karena pada setiap peralatan berbasis USB Port akan mempunyai 1 unit IC konversi dari 9 pin ke 4 pin.
Artinya tidak menjadi kendala kalau di komputer kita hanya ada USB Port, tinggal pasang saja USB to Serial Converter, setelah itu proses kirim/terima data bisa menggunakan Mode Serial Port. Dalam kaitan dengan Programming, kita bisa saja memanfaatkan mode Serial Port karena Serial Port dan USB Port sangat kompatibel. Saya sudah coba beberapa merk Converter di beberapa OS (Win XP s/d WIn 10, 32 bit dan 64 bit). Berikut ini saya sampaikan contoh code yang berkaitan dengan Pengiriman dan Penerimaan data mengunakan Serial Port.
Imports System
Imports System.IO
Imports System.Threading
Public Class Form1
Dim COMPorts As Array
Dim RcvMessage As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
COMPorts = IO.Ports.SerialPort.GetPortNames()
For i = 0 To UBound(COMPorts)
ComboBox1.Items.Add(COMPorts(i))
Next
ComboBox1.Text = ComboBox1.Items.Item(0)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Button1.Text = “Open” Then
Button1.Text = “Close”
ComboBox1.Enabled = False
SerialPort1.PortName = ComboBox1.Text
SerialPort1.BaudRate = 19200
SerialPort1.Parity = Ports.Parity.None
SerialPort1.DataBits = 8
SerialPort1.StopBits = 1
SerialPort1.Handshake = Ports.Handshake.None
Try
SerialPort1.Open()
Catch ex As UnauthorizedAccessException
MessageBox.Show(ex.Message & vbCrLf & ” It might be used by another device”)
Button1.Text = “Open”
ComboBox1.Enabled = True
Timer1.Stop()
End Try
If SerialPort1.IsOpen() Then
Timer1.Interval = 200
Timer1.Start()
RichTextBox1.Text = ComboBox1.Text & ” Ready” & vbCrLf
End If
Else
SerialPort1.Close()
Timer1.Stop()
Button1.Text = “Open”
ComboBox1.Enabled = True
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If SerialPort1.IsOpen() Then
SerialPort1.WriteLine(ComboBox1.Text & “> ” & TextBox1.Text)
End If
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
RcvMessage = SerialPort1.ReadExisting()
Dim prv_message As String = TextBox1.Text
If Not (RcvMessage = “”) Then
RichTextBox1.Text = RcvMessage & RichTextBox1.Text
End If
End Sub
End Class

Programming VB.NET : menampilkan Versi OS

Ada 2 cara untuk mengetahui OS version dalam aplikasi VB :

1. menggunakan My.Computer.Info.OSVersion
 LblOS.Text = My.Computer.Info.OSVersion
2. menggunakan IntPtr.Size

Sub Get_OSVer()
Try
'
'Basically if the Integer Pointer size is 4 then its 32 Bit and 8 is 64 Bit
If IntPtr.Size > 4 Then
OS_type = 64
Else OS_type = 32
End If

Catch exc As Exception
MessageBox.Show(exc.Message, " We have a IntPtr problem...", MessageBoxButtons.OK)
Return
End Try
End Sub
setelah mencoba 2 cara di atas, yang paling valid adalah cara kedua. kalau cara pertama masih “terjebak” dalam desain OS “maksa” 64bit.
No automatic alt text available.

Programming VB.NET : melihat Dynamic IP Address dan merekam dalam log

BERAPA IP ADDRESS NYA ? Biasanya proses ini dibutuhkan saat ingin me-“remote admin” atau menggunakan resource yang ada di PC atau Device yang terhubung dengan Dynamic IP Address. Karena koneksi internet “rumahan” atau “modal modem” hanya mendapat Dynamic IP Address, maka perlu dicari cara menemukan IP Address secara otomatis. Ada beberapa situs yang memberikan fasilitas untuk mendapatkan informasi Dynamic IP Address kita, contohnya SPEEDTEST.NET

Tapi untuk mendapatkan IP Address tersebut menggunakan aplikasi VB.NET dan menggunakannya sebagai sarana logging, kita dapat memanfaatkan web server kita sebagai alat bantu, yaitu dengan membuat script dalam PHP seperti di bawah ini : Untuk lebih jelasnya silahkkan download di link ini Bila butuh jawaban segera, bisa kirim email ke purwoko.edi*gmail.com, ganti * dengan @

VB.NET : Mendapatkan Serial Number, Volume dan Size pada Hard Disk/Flash Disk/CD ROM/DVD ROM

Untuk mengetahui Serial Number, Volume dan Size pada Hard Disk/Flash Disk/CD ROM/DVD ROM menggunakan VB.NET caranya sbb :

Imports System.Reflection
Imports System.IO

Public Class Form1
Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, ByRef lpVolumeSerialNumber As Integer, ByRef lpMaximumComponentLength As Integer, ByRef lpFileSystemFlags As Integer, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Integer) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Start()
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
LstDrive.Items.Clear()
LstVolLabel.Items.Clear()
LstSize.Items.Clear()
LstDriveType.Items.Clear()
LstPartitionType.Items.Clear()
LstVolumeID.Items.Clear()

Dim allDrives() As IO.DriveInfo = IO.DriveInfo.GetDrives()

Dim drive As IO.DriveInfo
LblDriveNumber.Text = allDrives.Count & " Drive(s) detected"
For Each drive In allDrives

LstDrive.Items.Add(drive.RootDirectory) '.ToString()

Try
LstVolLabel.Items.Add(drive.VolumeLabel) '.ToString()
LstSize.Items.Add(Format(drive.AvailableFreeSpace / (1024 * 1024), "###,##0 GB") _
& " of " & Format(drive.TotalSize / (1024 * 1024), "###,##0 GB") _
& " (" & Format(drive.AvailableFreeSpace / drive.TotalSize, "###,##0% used)"))

If drive.DriveType = IO.DriveType.Removable Then
LstDriveType.Items.Add("USB")
ElseIf drive.DriveType = IO.DriveType.Network Then
LstDriveType.Items.Add("Network")
ElseIf drive.DriveType = IO.DriveType.Fixed Then
LstDriveType.Items.Add("HD")
ElseIf drive.DriveType = IO.DriveType.CDRom Then
LstDriveType.Items.Add("CD-ROM")
ElseIf drive.DriveType = IO.DriveType.Unknown Then
LstDriveType.Items.Add("???")
End If
LstPartitionType.Items.Add(drive.DriveFormat)
check_ID(drive.RootDirectory)

Catch ex As Exception
LstVolLabel.Items.Add("")
LstSize.Items.Add("")
LstDriveType.Items.Add("")
LstPartitionType.Items.Add("")
LstVolumeID.Items.Add("")
End Try

Next

End Sub
Private Sub check_ID(ByVal cur_drive)

Dim root As String
Dim volume_name As String
Dim serial_number As Integer
Dim max_component_length As Integer
Dim file_system_flags As Integer
Dim file_system_name As String
Dim pos As Integer
Dim Vol_ID As String
root = cur_drive.ToString
'ListBox6.Items.Add(root)
volume_name = Space(1024)
file_system_name = Space(1024)

If GetVolumeInformation(root, volume_name, Len(volume_name), serial_number, max_component_length, file_system_flags, file_system_name, Len(file_system_name)) = 0 Then
MessageBox.Show("Tidak ada drive atau formatnya salah ( harus pakai tanda : )", "Error Getting Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
End If

pos = volume_name.IndexOf(Chr(0))
volume_name = volume_name.Substring(0, pos)
Vol_ID = Hex(serial_number.ToString)
Vol_ID = Microsoft.VisualBasic.Left(Vol_ID, 4) & "-" & Microsoft.VisualBasic.Right(Vol_ID, 4)
LstVolumeID.Items.Add(Vol_ID)

pos = file_system_name.IndexOf(Chr(0))
file_system_name = file_system_name.Substring(0, pos)
End Sub
End Class

Selamat mencoba 🙂

Antenna J-Pole untuk Televisi

Setelah menerima beberapa pertanyaan seputar antenna TV tipe J-Pole dan Bazooka, yang kebanyakan merasa sulit membuatnya, saya coba buatkan petunjuk membuat antenna TV yang “semoga” lebih mudah dilakukan.

Persiapkan alat-alat seperti yang ada di gambar 1. Ada yang lupa 🙂 soldernya belum difoto

Saya menggunakan kawat las kuningan sebagai batang antenna. 
Atau boleh pakai kawat tembaga atau kawat pengikat yang berukuran 2 mm.

Panjang yang dibutuhkan adalah sekitar 48 cm

Buat tanda menggunakan spidol pada ukuran 35 cm dari ujung kawat pertama (anggap saja sebelah kiri)

Buat tanda menggunakan spidol pada ukuran 12 cm dari ujung kawat lainnya (anggap saja sebelah kanan)

Maka di bagian tengah akan ada tanda seperti di bawah ini (jarak antara tanda sekitar 1 cm)

Jepit area tersebut menggunakan tang
Lalu tekuk kawatnya menjadi seperti ini
Lakukan penekukan pada kedua sisi sehingga menjadi seperti ini
Siapkan kabel antenna (coax) kupas bagian luarnya sehingga menjadi seperti ini
Hubungkan kabel tersebut ke kawat antenna
Lilit, lalu solder kabel ke kawat
Lindungi sambungan2 tersebut dengan isolasi, lalu pasang dimana anda suka.
Kareana posisi rumah saya termasuk “enak”, maka antenna tersebut saya letakkan di atas lemari kamar saja.
Harga batang las kuningan hari ini 20-02-2014 sekitar Rp.12ribu s/d Rp.15 ribu, bisa dibeli di toko besi.
Kemampuan antenna ini lebih baik dari antenna Bazooka karena ada faktor panjang antenna yang 5/8 lambda, sehingga penerimaannya lebih baik dari antenna 1/2 lambda.
selamat mencoba 🙂

Antenna Bazooka untuk TV UHF

Kebetulan ada sisa alumunium ukuran 3/8″ yang sayang untuk dibuang, iseng2 diukur ternyata panjangnya sekitar 17cm.
Supaya bermanfaat, dicari artikel yang berkenaan dengan antenna, dan ternyata ada antenna double-bazooka yang menjanjikan lebar band yang memadai bila dioperasikan untuk TV UHV.
Mulailah dicari material pelengkap lainnya, seperti batang bagian tengah antenna, dan pilihan jatuh kepada jari2 sepeda.
Selain dari itu dicari juga bahan isolator agar tabung alumunium tidak bersentuhan dengan jari2 sepeda, pilihan jatuh kepada karet bekas sandal jepit yang sudah tidak terpakai.
Maka mulailah proses merakit antenna double-bazooka untuk TV UHV seperti yang ada pada gambar di atas.
Penjelasan :
tanda biru menunjukkan koneksi antara jari2 sepeda dengan tabung alumunium
tanda kuning menunjukkan isolator antara jari2 sepeda dengan tabung alumunium

ATAU…

Gunakan kabel RG-8 sebagai pengganti material alumunium dan jari2 sepeda.


ps:
terimakasih untuk sdr Antonius Simamora yang telah memberikan ide untuk menulis artikel ini.
semoga percobaannya sukses.
“…tetapi justru dari perbedaan pendapatlah akan timbul peluang untuk memajukan garis depan daerah ketahuan jauh ke dalam daerah ketidaktahuan.”
 
Prof. Dr. Ir. Andi Hakim Nasution – 1982.