Home   Artikel   Archiv   Forum   Impressum  
Artikel vom 20.08.02
Autor: Thomas Ratz
Languages: en
Artikel bewerten:

Printer Druckversion
Helfen Sie mit!
 

Temperaturmessung mit Linux

Thermometer An heißen Tagen ist es immer interessant zu wissen, wie warm es eigentlich im Serverraum ist. Mit der hier vorgestellten Lösung kann man ganz einfach auf einen Apache Web-Server gehen und die aktuellen Temperaturwerte abfragen. So kann z.B. ein Ausfall der Klimaanlage im Serverraum sofort erkannt werden.

Natürlich liegen die Anwendungsfelder wesentlich breiter als nur für Serverräume. So kann ein Hobby-Meteorologe hiermit eine automatisierte Temperaturmessung gestalten oder der Gärtner sein Gewächshaus überwachen.

Es gibt für diese Probleme bereits von Firmen entwickelte Temperaturmessgeräte, die z.T. schon einen integrierten Webserver zur Abfrage besitzen. Diese sind aber erst ab 300 EURO zu haben.
Die von mir realisierte Lösung nimmt zwar einen gewissen Zeitaufwand in Kauf, ist aber weit aus billiger (bis 20 EUR) und kann genau den jeweiligen Bedürfnissen angepasst werden.

Bauteile

Die für die Schaltung benötigten Bauteile sind: 

  • 1 Dallas Semiconductor DS1820 Temperatursensor
    (GENAU diesen Baustein!), ca. 6 Euro  (!Bei Hübner überteuerte 12 Euro!)

  • 2 Schottky Dioden (1N5818), bei Reichelt unter der Bezeichnung 1N5818

  • 1 Zener Diode 6.2V (1N5234), bei Reichelt unter der Bezeichnung ZF6,2.

  • 1 Zener Diode 3.9V (1N5228), bei Reichelt unter der Bezeichnung ZF3,9

  • 1 RS232C weiblicher Stecker zum Löten

  • 1 Widerstand 1,5K Ohm

Die Schaltung

Hier die Belegung für 9- und 25-polige serielle Stecker:

Bezeichnung DB-25 DB-9
DTR 20 4
RXD 3 2
TXD 2 3
GND 1 und 7
(muss man verbinden!)
5

Beim Zusammenlöten ist zu beachten, welche Pins an den DS1820 angeschlossen werden. Hier eine kleine nützliche Zeichnung:

Mehrere Sensoren

Es ist sogar möglich, auch mehrere der DS1820-Sensoren parallel in der Schaltung anzuschließen. Die DS1820-Sensoren haben jeweils eine eigene Bausteinnummer, die bei der Messung mitgegeben wird. Die Software von Brian Lane (Digitemp) kann also auch problemlos mehrere Sensoren verarbeiten.
In der Configdatei, die mit Digitemp selbst erzeugt wird, sieht das so aus:

      TTY /dev/ttyS0
      FAIL_TIME 5
      READ_TIME 500
      LOG_TYPE 1
      LOG_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F"
      SENSORS 2
      ROM 0 16 54 147 66 0 0 0 186
      ROM 1 16 44 180 66 0 0 0 135
  
Am besten, man lötet die ganzen Bauteile direkt an den RS323C Stecker an, so dass man dann auch noch die Hülle darüber bekommt. Bilder von meinem "Kunstwerk" sehen folgendermaßen aus:

 

Software

Die Software zum Abfragen der Temperatur gibt es für Linux und Win95. Sie wurde von Brian Lane (http://www.brianlane.com/digitemp.php) von Nexuscomputing geschrieben und heißt digitemp.
Für die hier benutzte Schaltung benötigt man die Version 1.3. Nachdem man das Programm heruntergeladen hat, braucht man es nur zu entpacken und zu kompilieren. Es ist auch noch eine hilfreiche readme-Datei dabei, in der alles ausführlichst erklärt ist.

Und jetzt kann es auch schon losgehen. Zuerst muss digitemp den Sensor erkennen.
Dies geschieht mit dem Aufruf:

  >> digitemp -s/dev/ttyS0 -i
  
Dieser Aufruf bewirkt, dass digitemp versucht, am COM1 einen Sensor zu erkennen und auszulesen. Wenn man seinen Sensor an COM2 angeschlossen hat, muss natürlich ttyS1 verwendet werden. Wenn dies erfolgreich war, wird die ID des Sensors ausgegeben.
Nun kann man die Temperatur mit dem Befehl:
  >> digitemp -a
  
abrufen.

Verfeinern kann man die Sache, indem die Daten in eine Log Datei geschrieben werden:

  >> digitemp -a -l/var/log/temperatur
  
Mittels eines Perl-Skripts kann diese Log-Datei dann ausgelesen und auf einem Web-Server angezeigt werden.

Sehr schöne Ergebnisse erhält man auch, wenn man den zeitlichen Verlauf der Temperatur aus der Log-Datei ausliest und dann mit Hilfe eines Programms, wie z.B. rrdtools, grafisch darstellen lässt:

Links zu verwandten Informationen




Anmerkungen zu diesem Artikel


[3]  !!! Achtung, Version beachten!!! WePP08-7-2006
[2]  Funktioniert das auch mit DALLAS DS18S20 ? J/Psi17-4-2005


Eigene Anmerkung eintragen