Temperatur und Luftfeuchtigkeit für die eigene Website – Teil 1

Zum Einstieg und als Initial-Post gibts heute den ersten Teil eines kleines How-Tos …

Temperatur und Luftfeuchtigkeit inkl. History für die eigene Website – umgesetzt mit Papouch’s TH2E – ein Thermometer und Hygrometer mit automatischer Berechnung des Taupunktes und embedded Webserver.

TH2E with-cable-diagonally

Ein bestehendes Live-System der mizziTANTE.at Muttergesellschaft findet ihr hier: http://weather.murlosoft.at/weather-dw/

Wir verwenden den TH2E, es können aber auch folgende Thermometer dazu verwendet werden:

Das Thermometer/Hygrometer sendet per HTTP GET die gemessenen Werte an einen Server. Dieser Server muss folgende Komponenten installiert haben:

  • Webserver (z. B. Apache)
  • Datenbank (z. B. MySQL – für die History)
  • PHP

Der Server kann sein:

  • ein eigener Server im Netzwerk
  • Value-Hosting bei mizziTANTE.at
  • ein Raspberry Pi oder vergleichbares

Hier eine Skizze wie das Ganze abläuft:

web-thermometer-http-get

Bildquelle: http://www.papouch.com

Los gehts – Teil 1 – ohne History

Beim TH2E ist der Prozess des Sendens der gemessenen Werte sehr einfach. Der Sende-Intervall und die IP-Adresse des Zielservers wird direkt am TH2E konfiguriert (Webinterface).

Am Zielserver muss lediglich ein kleines Script in der Website eingebunden werden – dieses speichert die erhaltenen Werte und zeigt sie an der gewünschten Stelle der Website an.

Hier der Source-Code des Skripts am Server (Papouch und wir danke Milan Kozák für die Finalisierung des Skripts):


<?php
// Load variables from the temp sensor and protected against XSS attacks.
$TEMP = htmlspecialchars($_GET[‘temp’], ENT_QUOTES, “UTF-8”);

// If the temperature comes as a parameter, write it in a file and displays the results.
// If the file has the appropriate rights, displays an error message.
if ($TEMP)
    {
        if ($file=@fopen(“temperature.dat”, “w”))
        {
            $text=fwrite($file,$TEMP);
            fclose($file);
            echo $TEMP;
        }
        else
        {
            echo “Error – file temperature.dat does not have permission to write!”;
        }
}

// If the temperature does not come as a parameter, loads and displays the temperature of teploty.dat file.
// If the file has the appropriate rights, displays an error message.
if (!$TEMP)
    {
        if ($file=@fopen(“temperature.dat”, “r”))
        {
            $text=fread($file,10);
            fclose($file);
            echo $text;
        }
        else
        {
            echo “Error – file temperature.dat has no permission to read!”;
        }
}
?>


Das Skript ermöglicht den Empfang der gemessenen Temperatur und die Darstellung. Der Code kann in einer Datei mit dem Namen temperature.php im WebRoot des Servers abgelegt werden. Wenn die Internetadresse ihres Servers bspw. http://www.expample.com lautet, so ist das Skript unter http://www.example.com/temperature.php abrufbar. Die gemessene Temperatur kann über den vom Skript übergebenen Parameter am Server gespeichert werden.

Die Temperatur von 31,5 Grad kann zu Testzwecken folgendermaßen übergeben werden: www.example.com/temperature.php?temp=31,5.

Das Skript zur Speicherung der aktuellen Temperatur verwendet die Datei temperature.dat – zu finden im selben Verzeichnis wie das Skript selbst. (Read/Write-Rechte im Verzeichnis)

Das Skript kann nun noch hinsichtlich Security und erweiterter Datenspeicherung (z. B. Timestamp) überarbeitet werden.

Mit Teil 1 wird lediglich die aktuelle Temperatur auf der Website angezeigt – im 2. Teil erfahren Sie wie Sie die gemessenen Werte der IP Thermometer weiterverarbeiten können.

Advertisements

One thought on “Temperatur und Luftfeuchtigkeit für die eigene Website – Teil 1

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s