hallo zusammen,
ich hab hier ein kleines projekt nachgebaut. es handelt sich um einen kleinen temperatursensor, der seine daten per bluetooth an meinen router schickt.
und zwar jenes: http://mikrocontroller.heldt.eu/index.php?page=attiny25-bt-temperatur-sensor
funktioniert soweit prima. ich hab ein kleines bash-script geschrieben, welches die werte an collectd/rrdtool übergibt und damit eine grafische auswertung im browser.
letzte nacht waren minus-temperaturen. gerade eben hab ich festgestellt, dass das modul zwar weiterhin werte sendet, aber ohne vorzeichen und somit werden -1,5°C als 1,5°C angezeigt.
ich seh aber im code nirgends eine stelle, an der das vorzeichen abgeschnitten wird. irgendwie steh ich grad auf dem schlauch
hier mal der code, vielleicht kann ja einer der BASCOM-Experten mal drüberschauen:
vielen dank schonmal für die mühe.
und jetzt brauch ich erstmal 'n kaffee
daniel
ich hab hier ein kleines projekt nachgebaut. es handelt sich um einen kleinen temperatursensor, der seine daten per bluetooth an meinen router schickt.
und zwar jenes: http://mikrocontroller.heldt.eu/index.php?page=attiny25-bt-temperatur-sensor
funktioniert soweit prima. ich hab ein kleines bash-script geschrieben, welches die werte an collectd/rrdtool übergibt und damit eine grafische auswertung im browser.
letzte nacht waren minus-temperaturen. gerade eben hab ich festgestellt, dass das modul zwar weiterhin werte sendet, aber ohne vorzeichen und somit werden -1,5°C als 1,5°C angezeigt.
ich seh aber im code nirgends eine stelle, an der das vorzeichen abgeschnitten wird. irgendwie steh ich grad auf dem schlauch
hier mal der code, vielleicht kann ja einer der BASCOM-Experten mal drüberschauen:
Code:
$regfile = "ATtiny25.dat" 'Der ATTiny25 wird genutzt
$crystal = 8000000 'Interner Takt wird genutzt
$hwstack = 32
$swstack = 8
$framesize = 24
' Pins für Software UART Schnittstelle festlegen, Schnittstelle wird von BASCOM durch Software realisiert
Open "comb.1:19200,8,n,1" For Output As #1
Open "comb.0:19200,8,n,1" For Input As #2
' Pin für 1wire Schnittstelle festlegen, Schnittstelle wird von BASCOM durch Software realisiert
Config 1wire = Portb.3
'Benötigte Variablen dimensionieren
Dim Ar(9) As Byte
Dim T As Integer
Dim Btm As String * 10
'BTM-222 so einrichten das Verbindungen von jedem PC erlaubt sind
Print #1 , "ATD0"
Wait 2
'BTM-222 soll keine Echos senden
Print #1 , "ATE0"
Wait 2
'BTM-222 soll Slave sein
Print #1 , "ATR1"
Wait 2
'Hauptschleife (wird solange ausgeführt wie eine Verbindung besteht)
Do
'Angeschlossenen DS18B20 zum Messen veranlassen
1wreset
1wwrite &HCC
1wwrite &H44
'Scratchpad einlesen (9 Byte)
1wreset
1wwrite &HCC
1wwrite &HBE
Ar(1) = 1wread(9)
Waitms 800
If Ar(9) = Crc8(ar(1) , 8) Then 'Wenn Checksumme korrekt Wert weiter senden
'In Integer wandeln
T = Makeint(ar(1) , Ar(2))
' Die Nachkommastelle entfernen es reichen ganzahlige Werte
T = T / 2
'Wert per Software UART senden
Print #1 , T
End If
Loop
End
vielen dank schonmal für die mühe.
und jetzt brauch ich erstmal 'n kaffee
daniel