top of page

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...

Neue Windows Forms-Anwendung anlegen
Neue Windows Forms-Anwendung anlegen

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:

 

Start des Clients im Visual Studio

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.......

 

Start des Clients im Visual Studio 2

 

Und jetzt viel Spaß mit dem USB Temperatur-Sensor

 

 

 

.

 

© 2014 by Thomas Heldt. Erstellt mit Wix.com

 

Besucher seit dem 01.04.2014
 

bottom of page