Listing 1
$ sudo apt-get update && sudo apt-get dist-upgrade $ sudo apt-get install apache2 mysql-server php5-mysql build-essential git-core
Nach der Installation der Server-Komponenten spielen wir nun die Wiring-Pi-Bibliothek [2] ein (Listing 2). Sie erlaubt das Auslesen der GPIO-Schnittstelle mit einem einfachen Kommando. Das Kompilieren der Programme nimmt auf dem nicht gerade blitzschnellen RasPi eine Weile in Anspruch. Nach Abschluss des Builds rufen Sie mit gpio readall in einem ersten Test die Daten des GPIO-Ports ab (Listing 3).
Listing 2
$ git clone git://git.drogon.net/wiringPi $ cd wiringPi $ ./build
Listing 3
$ gpio readall +----------+-Rev2-+------+--------+------+-------+ | wiringPi | GPIO | Phys | Name | Mode | Value | +----------+------+------+--------+------+-------+ | 0 | 17 | 11 | GPIO 0 | IN | Low | | 1 | 18 | 12 | GPIO 1 | IN | Low | | [...] | | 19 | 30 | 5 | GPIO10 | ALT2 | Low | | 20 | 31 | 6 | GPIO11 | ALT2 | Low | +----------+------+------+--------+------+-------+
Als Nächstes benötigen wir für den Temperatur- und Feuchtigkeitssensor DHT22 einen Treiber. Diesen ziehen wir uns aus dem Github des Entwicklers [3] und bauen ihn entsprechend Listing 4. Auch dieser Build-Prozess nimmt wieder eine längere Zeit in Anspruch. Nach dessen Ende lesen Sie die zwei verbauten DHT22-Sensoren mit loldht aus (Listing 5), wozu Sie Root-Rechte benötigen.
Listing 4
$ git clone https://github.com/technion/lol_dht22 $ cd lol_dht22 $ ./configure $ sudo make install
Listing 5
$ sudo loldht 8 $ sudo loldht 9
An dieser Stelle definieren wir Sensor 8 schon einmal für den Innenraum des Gewächshauses und Sensor 9 als Sensor für die äußere Umgebung. Zum Steuern der Lüfter verwenden wir den PWM-Ausgang des RasPi. Dieser lässt sich zwar nicht ganz so einfach konfigurieren, das soll uns aber nicht daran hindern, es trotzdem zu probieren (Listing 6). Der Pin 12 ist für PWM-Betrieb vorgesehen.
Listing 6
$ gpio mode 1 pwm $ gpio pwm-bal $ gpio pwmr 100000 $ gpio pwm 1 14000
Bei den von uns genutzten Lüftern ergeben sich Werte im Bereich von 14*000 bis 17*000. Diese Werte unterscheiden sich jedoch von Lüfter zu Lüfter. Probieren Sie daher am besten jetzt schon aus, wo bei den von Ihnen eingesetzten Lüftern die untere und obere Grenze liegt. Die Werte müssen Sie später in den von uns vorgestellten Skripten eintragen.
MySQL-Datenbank
Die durch die Sensoren erhobenen Daten sichern wir in einer MySQL-Datenbank, sodass sich diese später auch wieder einfach auswerten und grafisch aufbereiten lassen. Die Datenbank richten Sie am besten über die von uns auf der Heft-DVD mitgelieferten oder im Internet vorgehaltenen SQL-Datei datalogger.sql ein: So ersparen Sie sich viel Tipparbeit.
Listing 7
$ wget http://linux-user.de/###FIXME###/datalogger.sql $ mysql -u root -p < datalogger.sql
Mit wget aus dem Netz geladen und per mysql ausgeführt (Listing 7), legt das SQL-Skript automatisch einen Benutzer namens datalogger mitsamt gleichnamiger Datenbank und gleichlautendem Passwort an. Parallel erzeugt es in dieser Datenbank die Tabellen datalogger und history. Beachten Sie bitte, dass mysql nicht das Root-Passwort des Betriebssystems abruft, sondern das bei der Installation des MySQL-Servers vergebene Passwort des Root-Datenbankbenutzers. In den Tabellen protokollieren wir dann über unsere Skripte die fünf Werte zeitpunkt, sensor, temperatur, luftfeuchte und pwm.
Die beiden Tabellen datalogger und history unterscheiden sich lediglich in der letzten Spalte pwm. Diese benötigen wir nur in datalogger für den Regelalgorithmus der Lüfter. Aus der Tabelle history generieren wir Graphen mit dem Verlauf der Temperatur und Luftfeuchtigkeit – für diese benötigen wir die PWM-Daten nicht.
Apache mit PHP aufsetzen
Als Webserver unseres Gewächshauses dient Apache. Bevorzugen Sie leichtgewichtigere Server, dann greifen Sie ruhig zu Lighttpd oder Cherokee. Der Webserver muss lediglich in der Lage sein, PHP-Skripte auszuführen. Haben Sie sich an unserer Vorgabe orientiert, dann erfolgte die Installation von Apache schon zusammen mit MySQL.





