USB DS18B20 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 Chip.de

 Wenn man sich die Software installiert hat, starten wir eine neue Visual Basic Windows Forms-Anwendung…

VB2013EXPRESS-300x167 USB DS18B20 Temperatur-Sensor - Windows Client

Auf der leeren Form plazieren wir zwei Label, ein Panel, eine ComboBox, einen Button sowie einen SerialPort.

Das Ganze sollte dann so aussehen:

VB2013EXPRESS2-300x167 USB DS18B20 Temperatur-Sensor - Windows Client

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

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 die
  ' Ü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:

 USB-TEMP-SENSOR-WINDOWS-GUI2-300x180 USB DS18B20 Temperatur-Sensor - Windows Client

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.

Nachfolgend kann man sich die Installationsroutine downloaden, so braucht man nicht unbedingt alles erst zu programmieren 😉

 USB Temperatur-Sensor Windows Client

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

 USB-TEMP-SENSOR-WINDOWS-GUI-300x173 USB DS18B20 Temperatur-Sensor - Windows Client

Und jetzt viel Spaß mit dem USB Temperatur-Sensor

Verlinke diesen Beitrag:

<a href="http://blog.thomasheldt.de/usb-temperatur-sensor-windows-client/">USB DS18B20 Temperatur-Sensor – Windows Client</a>

The following two tabs change content below.
c7282393508c6050f22643a7feb8fec6?s=80&r=g USB DS18B20 Temperatur-Sensor - Windows Client

Thomas H.

Als Betreiber dieses Blog versuche ich hier interessante Projekte und Tipps rund um die Elektronik zu bieten.
c7282393508c6050f22643a7feb8fec6?s=80&r=g USB DS18B20 Temperatur-Sensor - Windows Client

Neueste Artikel von Thomas H. (alle ansehen)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.