Diese Anleitung beschreibt, wie du mit einem Rechner über den seriellen Port Temperaturen messen kannst. Der Aufbau der Schaltung ist kinderleicht und die benötigte Software schnell installiert.
Inhaltsverzeichnis
Warum digitemp?
oder: Warum nicht einfach auf's Thermometer schauen?
- digitale Temperaturmessung ist leicht automatisierbar
- gewonnenen Daten können einfach analysiert werden
- es kann gezielt auf Messwerte reagiert werden, ohne menschliche Eingriffe
- Admins/Systemtechnicker wollen auch ruhig schlafen können
- Eigenbau fetzt
- der Hauptgrund: weil's geht
Was brauchst du dazu?
Zur digitalen Temperaturmessung eignet sich ein kleiner, kostengünstiger Temperatursensor, der über den seriellen Port (RS232)ausgelesen werden kann. In diesem Fall handelt es sich um den D!S18S20:
Bauteile
Bezeichnung |
DS18S20] (früher DS1820) |
Betriebsspannung |
3.0 - 5.5V |
Temperaturbereich |
-55 - 125°C |
Genauigkeit |
0.5°C |
Messinterval |
>300ms |
Mehrere dieser Bauteile können an einem Kabel (sog. one-wire) betrieben werden, da jedes eine eindeutige 64Bit Seriennummer besitzt. Da die Schaltung ihren Strom aus der RS232 Schnittstelle bezieht, dürfen höchstens n? Schaltungen angeschlossen werden.
Schaltung
Alle weiteren benötigten Teile hast du als Bastler zu Hause oder findest du in jedem Elektrofachgeschäft. Die reinen Hardwarekosten liegen unter 6 Euro - bei einem Sensor.
Software
Die notwendige Software] unterliegt einer freien Softwarelizenz (du kannst sie also deinen Bedürfnissen entsprechend anpassen) und ist obendrein gratis. Momentan gibt es Versionen für Linux, DOS und Windows. Wobei ich nur erstere getestet habe.
Der einfachste Weg in Debian:
apt-get install digitemp
Das Programm aus der Kommandozeile starten:
digitemp -a -n0 -d10 -l /var/log/temperatures 2>&1 > /dev/null
Damit werden von allen Sensoren (-a) in einer Endlosschleife (-n0) alle 10 Sekunden (-d10) die gemessenen Temperaturen in die Logdatei "/var/log/temperatures" geschrieben (-l) Der hintere Teil des Kommandos unterdrückt jegliche weitere Ausgabe auf der Konsole. Den Lesevorgang kannst du jederzeit mit Strg+C abbrechen.
Was machst du mit den Messwerten?
live Darstellung mit gnuplot
Das Programm gnuplot] ist hervorragend geeignet für die grafische Auswertung deiner Messdaten. Du kannst gnuplot beim Start eine Scriptdatei übergeben, in der alle Kommandos stehen.
z.B. kannst du eine Datei "tempdarstellung" anlegen in die du folgendes schreibst:
plot "/var/log/temperatures" using 7 smooth unique pause 10 reread
und dann wiefolgt startest:
gnuplot tempdarstellung
Dabei wird die Grafik alle 10 Sekunden aktualisiert, du siehst also immer die aktuellesten Werte aus deiner Logdatei.
Mit dem Programm PGAss kannst du die Scriptdatei auch grafisch zurecht klicken. Das spart dir Zeit beim durchstöbern der gnuplot man-page aber bietet auch nur einen Bruchteil der Gestaltungsmöglichkeiten.
Darstellung mit rrdtool
Reagieren auf bestimmte Messwerte
Dazu bietet sich Nagios an. Lies hier.
Links
digitemp: original Seite (engl.)
Temperaturmessung: dt. Einführung, vereinfachte Schaltung