USB Temperatur-Sensor - Windows Client
Jetzt werden wir uns ein kleines Windows Programm erstellen damit wir uns die Temperatur anzeigen lassen können. Wir nutzen dafür die kostenlose Version von Visual Basic 2013 Express.
Download von der Microsoft Webseite
Wenn man sich die Software installiert hat, starten wir eine neue Visual Basic Windows Forms-Anwendung...


Auf der leeren Form plazieren wir zwei Label, ein Panel, eine ComboBox, einen Button sowie einen SerialPort.
Eigenschaften der Form (Form1):
Text = "USB Temperatur-Sensor Client"
FormBorderStyle = FixedSingle
MaximizeBox = False
AutoScaleMode = Font
Size = 320; 185
StartPosition = CenterScreen
Eigenschaften von Label1:
Font = Arial; 8,25pt; style=Bold
Text = COM-Port:
AutoSize = True
Location = 12; 15
Size = 63; 14
Eigenschaften der ComboBox1:
Font = Arial; 8,25pt; style=Bold
Location = 81; 12
Size = 61; 22
FormattingEnabled = True
TabIndex = 1
Eigenschaften des Buttons (Button1):
Font = Arial; 8,25pt; style=Bold
Text = &Start
UseVisualStyleBackColor = True
Location = 193; 12
Size = 75; 23
TabIndex = 2
Eigenschaften des Panel1:
BorderStyle = Fixed3D
Location = 12; 41
Size = 280; 100
Eigenschaften des 2. Labels (Label2):
Text = ------
Font = Arial Black; 36pt; style=Bold
TextAlign = MiddleCenter
Location = 17; 43
Size = 270; 95
Das Ganze sollte dann so aussehen:
Nun können wir den Programmcode erstellen...
Public Class Form1
' Eine Programmweit gültige Variable dimensionieren
Dim daten As String
Private Sub GetSerialPortNames()
' Alle im PC vorhandenen COM-Ports suchen und in die ComboBox eintragen
For Each sp As String In My.Computer.Ports.SerialPortNames
ComboBox1.Items.Add(sp)
Next
End Sub
Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
' Wenn beim Beenden noch der COM-Port geöffnet ist diesen schließen
If SerialPort1.IsOpen Then
SerialPort1.Close()
End If
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' In die ComboBox einen Dummy-Wert eintragen um später feststellen zu können ob ein Port ausgewählt ist
ComboBox1.Items.Add("-----")
' Sub aufrufen die alle COM-Ports ermittelt und in die ComboBox einträgt
GetSerialPortNames()
' Wenn min. ein COM-Port gefunden wurde die Anzeige in der ComboBox auf den ersten gefundenen COM-Port stellen
If ComboBox1.Items.Count > 1 Then
ComboBox1.SelectedIndex = 1
Else
ComboBox1.SelectedIndex = 0
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' Wenn noch nicht gestartet und ein COM-Port ausgewählt ist Übertragung versuchen zu starten
If Button1.Text = "&Start" And ComboBox1.Text <> "-----" Then
SerialPort1.PortName = ComboBox1.text
Try
SerialPort1.Open()
Catch ex As Exception
MessageBox.Show(ex.Message)
Exit Sub
End Try
Button1.Text = "&Stop"
' Wenn Übertragung läuft Übertragung beenden (COM-Port schließen)
Else
If SerialPort1.IsOpen = True Then
SerialPort1.Close()
End If
Button1.Text = "&Start"
End If
End Sub
Private Sub SerialPort1_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles
SerialPort1.DataReceived Me.Invoke(Sub() ReceivedText(SerialPort1.ReadExisting))
End Sub
Private Sub ReceivedText(ByVal [wert] As String)
Dim startpos As Integer
Dim endpos As Integer
Dim wertin As Double
Dim ausgabe As String
daten &= wert.Replace(vbCrLf, "")
startpos = daten.IndexOf("*")
endpos = daten.IndexOf("#")
If startpos >= 0 And endpos >= 0 And endpos > startpos Then
ausgabe = Replace(daten.Substring(startpos + 1, endpos - 1), "#", "")
wertin = CDbl(ausgabe.Substring(0, ausgabe.Length - 1).Replace(".", ","))
Label2.Text = FormatNumber(wertin, 1) & " °C"
daten = ""
End If
End Sub
End Class
Nun speichern wir das Projekt und klicken danach auf Starten.
Wenn keine Fehler oder Warnungen angezeigt werden sollte folgendes erscheinen:

Nachfolgend kann man sich die Installationsroutine downloaden, so braucht man nicht unbedingt alles erst zu programmieren ;)
Der angezeigte COM-Port kann abweichen, Hauptsache ist das der COM-Port auswählbar ist der im Gerätemanager für den Temperatur-Sensor angezeigt wird.
Bitte jetzt den COM-Port auswählen an dem der Sensor angeschlossen ist und auf den Button (Start) klicken, im Fenster wird dann die Temperatur angezeigt.......

Und jetzt viel Spaß mit dem USB Temperatur-Sensor
.