Pada pembahasan kali ini saya coba sempatkan berbagi teknik mendeteksi COM PORT pada komputer/Laptop menggunakan Visual Basic. Kelebihan pada teknik yang saya bagikan ini adalah kita dapat mendeteksi keberadaan fasilitas port COM yang ada dikomputer baik berupa port RS-232 maupun konverter USB-R232 atau pun untuk mendeteksi keberadaan Arduino serta otomatis menutup jika device terputus dari PC/Laptop. Pada contoh kali ini saya gunakan Arduino sebagai bahan uji coba.
Hasil dari projek kali ini dapat dilihat pada gambar berikut ini:
Hasil dari projek kali ini dapat dilihat pada gambar berikut ini:
Untuk desain perhatikan gambar form dibawah ini
Script visual Basic
Private Function COMCheckPort(Port As Long) As Boolean
On Error GoTo OpenCom_Error
MSComm1.CommPort = Port
If MSComm1.PortOpen = True Then
COMCheckPort = False
Exit Function
Else
MSComm1.PortOpen = True
MSComm1.PortOpen = False
COMCheckPort = True
Exit Function
End If
OpenCom_Error:
COMCheckPort = False
End Function
Private Function GetFirstAvailableCOMPort() As Long
Dim Port As Long
For Port = 1 To 16
If COMCheckPort(Port) = True Then
GetFirstAvailableCOMPort = Port
Exit Function
End If
Next Port
GetFirstAvailableCOMPort = 0
End Function
Private Sub Check1_Click()
Timer1.Enabled = Check1.Value
End Sub
Private Sub Command1_Click()
If MSComm1.PortOpen = False Then
Dim nPort As Long
nPort = GetFirstAvailableCOMPort()
If nPort > 0 Then
MSComm1.CommPort = nPort
MSComm1.PortOpen = True
End If
Text1.Text = "COM" & nPort
End If
End Sub
Private Sub Command2_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
Form1.Caption = "Status: Terputus"
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
End Sub
Private Sub MSComm1_OnComm()
Dim temp As String
Select Case MSComm1.CommEvent
Case comEvReceive
temp = MSComm1.Input
Text2.Text = Text2.Text & temp
'deteksi enter
'If InStr(Text2.Text, vbLf) Then
'Text2.Text = Replace(Text2.Text, vbLf, "i")
'End If
If temp = "!" Then
RTO.Enabled = False
Form1.Caption = "Status: Terhubung"
End If
End Select
End Sub
Private Sub RTO_Timer()
Command2_Click
Text1.Text = ""
RTO.Enabled = False
End Sub
Private Sub Timer1_Timer()
If MSComm1.PortOpen = False Then Command1_Click
If MSComm1.PortOpen = True Then MSComm1.Output = "?"
RTO.Enabled = True
End Sub
script di arduino
void setup() {
Serial.begin(9600);
while (!Serial) {
}
Serial.println("!");
}
void loop() {
while (Serial.available() > 0) {
int inChar = Serial.read();
if (inChar=='?'){
Serial.println("!");
}
}
}
Serial.begin(9600);
while (!Serial) {
}
Serial.println("!");
}
void loop() {
while (Serial.available() > 0) {
int inChar = Serial.read();
if (inChar=='?'){
Serial.println("!");
}
}
}
Demikian semoga ilmu yang sederhana ini bermanfaat bagi kita semua. :)