Temperatuur uitlezen op Raspberry Pi/Raspbian

Installeren van Gambas3 op Raspbian is gemakkelijk (zie vh/elders).

Een temperatuurvoeler aansluiten op een Raspberry Pi is ook gemakkelijk (zie bv hier)

Dan is een beetje code al genoeg, met een nieuw project dat alleen maar CLI hoeft te zijn (geen grafische interface nodig).

In MMain:

' Gambas module file
'
Private Const SENSORID As String = "10-0008032a0f9d"
Private Const DEVICELOCATION As String = "/sys/bus/w1/devices"
Private sFileContent As String
'
Public Sub Main()
'
  Dim hTempFile As File
  Dim sFilename As String = DEVICELOCATION &/ SENSORID &/ "w1_slave"
  Dim iFoundTemp As Integer
  Dim iCounter As Integer = 0
'  
  Debug "Filename is : " & sFilename
'  
  Repeat
    hTempFile = Open sFilename For Read
'  
    sFileContent = hTempFile.Load(sFilename)
    iFoundTemp = InStr(sFileContent, "t=")
 ' 
    hTempFile.Close
 ' 
    Print sFileContent
    Print iFoundTemp
    Print Val(Right(sFileContent, 6)) / 1000
    Inc iCounter
      Wait 10
  Until iCounter > 10
'
End

Dit programma zal 10 keer na elkaar de temperatuur uitlezen en tonen.

Gambas CLI

Veel te weinig aandacht voor de Command Line Interface!

Je kan Gambas ook gebruiken om een terminal/console/konsole/commandolijn programma te maken, dat je zonder grafische interface kan starten (bv op een server zonder X/KDE/Gnome). Je start het als een commando, eventueel over een ssh sessie.

Of je kan een programma maken dat je start vanuit de cron jobs, m.a.w. je stelt je computer in om dat op bepaalde momenten uit te voeren, bv dagelijks om 01:00 u.

Start nieuw project, kies CLI, “testCLI”.

In Main kan je iets zetten als:

' Gambas module file
'
Private bQuit As Boolean = False
'
Public Sub Main()
'
  Dim sCommand As String
  '
  While Not bQuit
    showShortMenu()
    Line Input sCommand
    Print " - - -"
    Debug "terminal got: " & sCommand
    If Len(Trim(sCommand)) = 1
    ' short commands
      Select sCommand
        Case "Q", "q"
          Print "Closing down " & Application.Name & " now"
          bQuit = True
        Case "H", "h"
          showHelp()
      End Select
    Else
      Print Len(Trim(sCommand))
    Endif
  Wend
  '
End
'
Public Sub showShortMenu()
  '
  Print "H = help, Q = quit"
  '  
End
'
Public Sub showHelp()
  '
  Print " HELP!"
  '
End

Je kan het effect uitproberen vanuit de Gambas programmeeromgeving; die heeft onderaan een commandolijn die bij “Run” het programma uitvoert.

Bewaar het project en maak een “uitvoerbaar bestand” (testCLI.gambas) om het te kunnen starten buiten gambas om.

~/Gambas3/Gb3Run> ./testCLI.gambas
H = help , Q = quit
h
- - -
Main.Main.13: terminal got: h
HELP!
H = help , Q = quit
q
- - -
Main.Main.13: terminal got: q
Closing down empttrack now