1-wire Wetterstation (Teil 2: Datenbank)

Nachdem man sich eine 1-wire Wetterstation nach dem Artikel 1-wire Wetterstation (Teil 1: Installation) gebaut hat, ist es sinnvoll die gesammelten Daten in einer Datenbank zu speichern. Dazu habe ich mir eine MySQL-Datenbank angelegt.

mysql -u root -p
CREATE DATABASE wetterstation;
quit

In der Datenbank wird danach noch eine Tabelle für die Werte der 1-wire Sensoren benötigt. Da ich pro Minute einen Wert festhalten will habe ich diese daten_min genannt.

mysql -u root -p
connect wetterstation; 
CREATE TABLE daten_min ( 
zeitstempel int UNSIGNED, 
temp_clara FLOAT(7,4) NOT NULL, 
humidity_clara FLOAT(7,4) NOT NULL, 
temp_simon FLOAT(7,4) NOT NULL, 
humidity_simon FLOAT(7,4) NOT NULL, 
PRIMARY KEY (`zeitstempel`));
quit

Zum Schluss habe ich mir dann noch ein PHP-Programm geschrieben, dass die Werte der Sensoren abfragt und in die Tabelle schreibt. Dieses habe ich in der Datei /usr/local/sbin/datensammeln.php gespeichert.

<?php
$DatabaseHost = "localhost";
$DatabaseUser = "root";
$DatabasePassword = "geheim";
$Database = "wetterstation";
$Table = "daten_min";
 
// Aktuelle UNIX-Zeit abfagen
date_default_timezone_set("Europe/Berlin");
$zeitstempel = date("U");
 
// ##### Werte der Sensoren abfragen #####
// Claras Zimmer
$temp_clara = file_get_contents("/var/1wire/26.7ECCCF000000/temperature");
$humidity_clara = file_get_contents("/var/1wire/26.7ECCCF000000/humidity");
 
// Simons Zimmer
$temp_simon = file_get_contents("/var/1wire/26.A0AECF000000/temperature");
$humidity_simon = file_get_contents("/var/1wire/26.A0AECF000000/humidity");
 
// ##### Daten in die Datenbank schreiben #####
$DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword) or die ("Keine Verbindung moeglich");
mysql_select_db($Database, $DatabasePointer) or die ("Die Datenbank existiert nicht");
$ResultPointer = mysql_query("INSERT INTO $Table (
     zeitstempel, temp_clara, humidity_clara, temp_simon, humidity_simon
   ) VALUES (
     '$zeitstempel', '$temp_clara', '$humidity_clara', '$temp_simon', '$humidity_simon'
   )");
?>

Damit man php in der Shell laufen lassen kann wird übrigens das Paket php5-cli benötigt. Dieses kann man mit dem folgenden Befehl installieren

apt-get install php-cli

Zum Schluss habe ich einen Cronjob angelegt, der alle 60 Sekunden das PHP-Script ausführt.

Ubuntu: WLAN beim booten automatisch starten

Bei Ubuntu wird das WLAN-Interface normaler Weise über den Networkmanager gestartet. Dies bedeutet, dass man sich mit einem Benutzer an der grafischen Oberfläche anmelden muss, damit sich das WLAN aktiviert. Bei Servern und anderen Gräten ohne grafische Oberfläche möchte man aber oft sofort nach dem Booten ein funktionierendes WLAN. In diesem Fall sollte man wpa_supplicant installieren und konfigurieren. Eine Anleitung dazu findet man auf der Webseite wiki.ubuntuusers.de.