Technik zum Dank – Server und Datenbank
Zum Schluss der Ausführung des Prototypen bleiben noch 2 Punkte offen: Server und Datenbank. Wieso allerdings wird eines oder sogar beides davon benötigt? Um bspw. die Option der Trend-Schreibung offen zu halten oder als Rückfallebene bei nicht lieferbarem Bedienfeld auf eine webbasierte Anwendung ausweichen zu können, erscheint an dieser Stelle als ein sinnvoller Plan, den man in der Hinterhand haben sollte. Aus diesen Gründen (und einfach um zu schauen, ob das überhaupt alles sauber funktioniert und was man ggf. noch für Schandtaten damit anstellen kann), kam es also zum Download eines Apache2 Servers mit PHP-Erweiterung und einer Datenbank – in diesem Fall MariaDB.
Allerdings handelt es sich hierbei nicht mehr um Python-Bibliotheken. Diese Erweiterungen sind Applikationen, die direkt auf dem Raspberry Pi installiert werden. Von daher verlassen wir nun Python für einen Moment und widmen uns der Arbeit in der Konsole eines unix-basierten Systems.
Oftmals wird vorab geraten, das System nochmal zu updaten, bevor man etwas neues installiert. Das hat durchaus einen zu beachtenden Hintergrund, ist allerdings nicht zwangsläufig nötig, wenn man das System selbst regelmäßig updatet. Dennoch ist es vor einer Installation immer sinnvoll zunächst die Paketlisten auf den aktuellen Stand zu bringen – heißt, dass die vorhanden Listen mit Repositorys aktualisiert werden, damit man auch wirklich die aktuellste Applikation herunterlädt.
Admin@Admin: ~$ apt update
Anschließend wird der Download und die Installation von Apache2 gestartet. Natürlich gibt es auch andere Server, die in Frage kämen, allerdings habe ich schon öfter mit Apache gearbeitet und bisher keine schlechten Erfahrungen mit der Software gemacht.
Admin@Admin: ~$ apt install apache2
Um zu prüfen, ob die Installation korrekt abgeschlossen ist, sollte bei Aufruf der IP-Adresse des Raspberry Pi mit einem Browser die Apache2 Webseite erscheinen – und ja, dort wird Debian als OS genannt. Das liegt allerdings daran, dass Raspberry OS auf Debian basiert und deshalb als solches erkannt wird.

Nach erfolgreicher Installation des Apache2 Servers folgt die Installation des PHP-Moduls, das als Interpreter auf dem Server der Bearbeitung von PHP-Programmen dienen soll.
Admin@Admin: ~$ apt install php libapache2-mod-php
Nach erfolgreicher Installation sollte nun der Raspberry Pi neugestartet werden – alternativ kann über eine Befehlszeile nur der zugehörige Dienst neugestartet werden.
Admin@Admin: ~$ systemctl restart apache2
Und ist der Webserver auf Basis von Apache2 auf dem Raspberry Pi installiert. Wer an dieser Stelle schon voller Tatendrang sein sollte und PHP als Skriptsprache direkt austesten möchte, kann dies natürlich nach Herzenslust tun. Allerdings fehlt uns noch ein grundlegendes Element, um das vollständig auskosten zu können – eine Datenbank.
Wie bereits vorab erwähnt, fiel die Wahl bereits vorab auf MariaDB, da diese mir ebenfalls bereits bekannt ist und als OpenSource Datenbanksystem auch kostenneutral zur Verwendung steht.
Admin@Admin: ~$ apt install mariadb-server
Da ich allerdings weniger gerne in der Konsole auf der Datenbank arbeite, sondern mich eher bei einer entsprechenden Plattform dafür zu hause fühle, kommt an der Stelle dann noch PHPmyAdmin ins Spiel, das sich auf die gleiche Weise installieren lässt, wie alles andere auch.
Bevor diese Plattform jedoch problemlos verwendet werden kann, benötigen wir noch einen Benutzer des Datenbanksystems, der alle nötigen Rechte hat, um Datenbanken zu erstellen, Nutzer anzulegen und so weiter – also einen Admin.
Hierzu ist es allerdings nicht ausreichend sich im Bereich von PHP oder Python zu bewegen und auch die Konsolenbefehle bringen hier keinen Blumentopf. Es müssen andere Geschütze aufgefahren werden… willkommen in der Welt von SQL – der Structured Query Language. Doch zunächst müssen wir die Applikation „MariaDB“ starten.
Admin@Admin: ~$ sudo mariadb
Anschließend ändert sich die Konsole ein wenig und wir haben nicht mehr das übliche Admin@Admin: ~$ vor den Befehlen stehen. SQL ist an der Stelle etwas einfach gestrickt – allerdings mit eigenen Befehlen und Funktionen, die auch gelernt werden wollen.

Mit diversen Befehlen ist es nun möglich, eine Datenbank zu erstellen, und zu verwalten. Neben der Erstellung eines neuen Users mit allen Rechten ist es auch möglich, eine Tabelle mit Überschriften und Datentypen zu erstellen.
CREATE DATABASE plantpilot;
CREATE USER 'plantuser'@'localhost' IDENTIFIED BY 'deinpasswort';
GRANT ALL PRIVILEGES ON plantpilot.* TO 'plantuser'@'localhost';
FLUSH PRIVILEGES;
USE plantpilot;
CREATE TABLE sensor_data (
id INT AUTO_INCREMENT PRIMARY KEY,
timestamp DATETIME,
temperature FLOAT,
humidity FLOAT,
soil_moisture INT
);
Da mir persönlich allerdings die Variante der Verwaltung über SQL etwas zu umständlich ist, weiche ich hier eher auf das bereits erwähnte PHPmyAdmin aus, welches auf PHP basiert und mit grafischer Oberfläche die Verwaltung etwas angenehmer gestaltet – wenn auch trotzdem im Hintergrund weiterhin SQL verwendet wird und man stets auch hier die Möglichkeit hat, über SQL Befehle direkt einzugreifen.
Und so setzt man einen Apache2 Server mit PHP Erweiterung und eine Datenbank mit MariaDB auf.