www.Gerhard-Raabe.de
  Perl: SrvScanDigiTemp
 
Copyright: Dies Programm beruht auf dem Open Source Programm digitemp. Dessen lizenzrechtlichen Bestimmungen finden sich unter www.digitemp.com.

Ansonsten ist der hier vorgestellte Code ist frei verfügbar, solange er nicht kommerziell verwendet wird! Falls er so wie veröffentlicht, in Teilen oder abgewandelt zum Einsatz kommt, würde ich mich sehr über eine kurze E-Mail freuen.
 
Beschreibung: Es gibt eine ganze Reihe von Anwendungen, bei denen es sinnvoll erscheint kontinuierlich die Temperatur zu überwachen. Hierzu zählen u.A.:
  • Rechner
  • Serverräume
  • Terrarien
  • Gewächshäuser
  • Außen- / Innentemperaturen
Befindet sich wie z.B. in einem Serverraum ein Rechner der sowieso dauerhaft läuft, dann bietet es sich an diesen auch zur Temperaturmessung einzusetzen. Das hier beschriebene Projekt beruht auf dem Temperatursensor DS1820 der Fa. DALLAS. Er ist preisgünstig (bei Conrad Electronic unter 5 EUR das Stück) und läßt sich mit wenigen zusätzlichen Teilen leicht an die ohnehin meist freie RS232-Schnittstelle anschließen. Mit etwas Zeit, Freude am Basteln und handwerklichem Geschick läßt sich so recht preiswert eine zuverlässige Temperaturmeßstelle mit einem oder mehreren Temperatursensoren aufbauen.

Auf den DS1820 abgestimmt ist das Open Source Programm digitemp (www.digitemp.com). Es stellt eine Executable zur Verfügung, die auf Komandozeilenebene den oder die DS1820 abfragt und die gemessene Temperatur auf der Standardausgabe zurückgibt.

SrvScanDigiTemp stellt ein Wrapper-Programm für digitemp dar, der in frei definierbaren Intervallen digitemp zur Intervallmessung aufruft und die von digitemp gelieferten Meßwerte in ein MySQL-Datenbank schreibt. Da der DS1820 die Temperatur nur mit einer Genauigkeit von 0,5C mißt, ließt das Wrapper-Programm SrvScanDigiTemp die Temperatur mehrfach hintereinander. Aus dieser Meßfolge wird der Mittelwert und die Varrianz ermittelt. Diese Werte werden dann zusammen mit der Anzahl der durchgeführten Messungen auf der MySQL-Datenbank gespeichert.

Zur Auswertung und Darstellung der Meßergebnisse läßt sich dann das PHP-Programm Sensor verwenden, dass die Meßergebnisse u.a. in grafischer Form darstellt.
 
Documentation:
Next   Aufbau der Hardware
Next   digitemp
Next   Datenmodel
Next   Perl-Packages
Next   SrvScanDigiTemp
 
Download:
Next   Download SrvScanDigiTemp
 
Installationsanweisung: Die Beschreibung bezieht sich hier auf Linux der SUSE-Disbrutition!

Installation des Programms:
1.   Archiv-File SrvScanDigiTemp_1_0_0.tar herunterladen
2.   Entpacken mit des Archive-Files:

  # tar -xf SrvScanDigiTemp_1_0_0.tar  

3.   Den entpackten Ordner: SrvScanDigiTemp nach /usr/local/sbin kopieren
4.   Anpassen des INI-Files: SrvScanDigiTemp.ini
5.   Das Programm kann nun auf der Konsole gestartet werden:

  # export PERL5LIB=/usr/local/sbin/SrvScanDigiTemp
# perl /usr/local/sbin/SrvScanDigiTemp/SrvScanDigiTemp.pl
 

Installation des Programms als Linux-Service:
1.   Das Batch-File: ScanDigiTemp aus dem TAR-Archiv nach /etc/init.d kopieren
2.   Für die manuelle Steuerung die Verknüpfung (Symbolic Link) rcScanDigiTemp in /usr/sbin einrichten:

  # ln -s /etc/ini.d/ScanDigiTemp /usr/sbin/rcScanDigiTemp  

3.   Den Service auf der Konsole mit:

  # insserv ScanDigiTemp  

(oder über den Runlevel-Editor) einrichten.
4.   Mittels

  # rcScanDigiTemp start  

(oder über den Runlevel-Editor) kann der Service nun gestartet werden.
 
Programm-Name: SrvScanDigiTemp
 
Version: 1.0.0
 
Benötigte Dateien:
 \usr\local\sbin\ 
 SrvScanDigiTemp\ 
 CDB.pm   Modulklassen zur 
 Datenbankverbindung 
 und Verarbeitung 
 CDBLog.pm 
 CDBScanDigiTemp.pm 
 CIniFile.pm   Perl-Modulklassen zum 
 Auslesen des 
 Konfigurationsfiles 
 Utils.pm   Perl-Modul für 
 Standardfunktionen 
 SrvScanDigiTemp.pl   Perl-Programm 
 SrvScanDigiTemp 
 SrvScanDigiTemp.ini   Konfigurationsfile für 
 SrvScanDigiTemp 
 SrvScanDigiTemp.log   Von SrvScanDigiTemp 
 geschriebenes Logfile 
 digitemp   digitemp Version 1.4 
 des Open Source Projekts 
 .digitemprc   von digitemp angelegte 
 Konfigurationsdatei 
 \etc\init.d\   SrvScanDigiTemp   Batch zur Integration 
 als Linux-Service 
 
Parameter-File: SrvScanDigiTemp.ini
      (Enthält die im Programm benötigten Konfigurationsparameter)

 Sector   Parameter   Beschreibung 
 DB-Connect   DBServer   Name des MySQL Servers 
 DBDatabase   Name der Datenbank auf dem MySQL Servers 
 DBLogin   Login auf den MySQL Server 
 DBPassword   Password für den MySQL Login 
 DigiTemp   DigiTempExe   Absoluter Pfad zur Executable digitemp 
 DigiTempCfg   Absoluter Pfad zum digitemp CFG-File (.digitemprc) 
 (Wird von digitemp unabhängig vom Installationsort 
 im aktuellen Arbeitsverzeichnis angelegt) 
 CreateCfg   Yes = Weist digitemp an beim Starten ein neues CFG-File 
 (.digitemprc) zu erzeugen. 
 Host   Bezeichnung des Rechners/Quellsystems 
 (Für die Zuordnung auf der Datenbank) 
 COM   Nummer der seriellen Schnittstelle 
 Delay   Meßverzögerung, mit der digitemp aufgerufen wird 
 (wird mit dem Parameter -r übergeben) 
 Logging   LogFile   Absoluter Pfad zum Logfile von SrvScanDigiTemp 
 (bei PrintMessage = Yes) 
 EchoMessage   Yes = Meldungen von SrvScanDigiTemp werden auf der 
 Standardausgabe ausgegeben 
 PrintMessage   Yes = Meldungen von SrvScanDigiTemp werden in das unter 
 LogFile definierte File geschrieben 
 SaveMessage   Yes = Meldungen von SrvScanDigiTemp werden auf der 
 Datenbank in die Tabelle tlog_log_entries geschrieben 
 Messure   NoOfMessures   Anzahl der ausgeführten Messungen, aus denen dann 
 Mittelwert berechnet wird 
 MessureDelay   Wartezeit in sec zwischen den Messungen zur 
 Mittelwertbildung 
 Repeat   Zeit in sec nach denen der Meßzyklus wiederholt wird 
 Sensors   0   Klarbezeichnung des Sensors "0" 
 (korrespondiert mit dem CFG-File .digitmprc) 
 1   Klarbezeichnung des Sensors "1" 
 (korrespondiert mit dem CFG-File .digitmprc) 
 ...   (Beliebig viele weitere Sensoren) 
389066 Besucher - seit dem 01.02.2005 - 2 Besucher online © 2004-2015 by Gerhard Raabe ##, ## ### #### - ##:##:##