Alles beginnt mit der Himbeere

Zu zwecken des Projekts habe ich vorab schonmal einen Raspberry Pi 5 mit 4GB RAM erworben. Hintergrund dieser Aktion ist, dass das Projekt theoretisch vollständig über diese kompakte Intelligenz laufen kann. Da es im Grundkonzept um eine Steuerung mit diversen Sensoren geht, kann der Raspberry Pi 5 hier durchaus gut aufwarten. Zusätzlich hat dieser neben der ausreichenden Leistung für das Programm, gleichzeitig auch die Möglichkeit bei einer Einbindung im Heimnetzwerk auch einen Webserver laufen zu lassen. Über den Webserver können dann beispielsweise zum einen die Datenbank mittels phpmyadmin abgebildet werden, aber auch die Visualisierung und Bedienebene für den Nutzer der Anlage. Vorteil hierbei ist, dass eine Webseite als Bedienebene vollständig frei bezüglich der Endgeräte ist. Alle Endgeräte, die sich innerhalb des Netzwerks befinden und über einen webfähigen Browser verfügen, können auf den Raspberry Pi 5 bzw. dessen Webseite zugreifen.

Zusätzlich habe ich mich hier mit der Einrichtung des Raspberry Pi 5 befasst, gerade in Bezug auf die Verwendung von Skripten und Programmen via Python. Etwas anders als die Vorgängermodelle agiert dieser von Hause aus mit einer virtuellen Umgebung, um die Programme zu starten. Dies hat natürlich den ungemeinen Vorteil, dass bei fehlerhafter Verwendung oder sogar schadhaftem Code das Host-System nicht beeinträchtigt wird – die virtuelle Umgebung muss explizit gestartet werden und erst dann können die dort abgelegten Programme auch ausgeführt werden.

Hinweis zur Verwendung eines Raspberry Pi: Vieles was innerhalb des OS stattfindet, wird über die Konsole des Raspberry Pi genutzt. Entsprechend sollte man hier zumindest ein paar Grundkenntnisse im Bereich der Konsolenbefehle für unixbasierte Systeme / Debian haben, um nicht mit vielen ratlosen Momenten zu kämpfen.

Um nun auf dem Raspberry Pi eine virtuelle Umgebung anzulegen, muss folgender Befehl über die Konsole eingegeben werden (bereits vorinstallierte Module vorausgesetzt):

… wobei hier „virtual_env“ und auch „laboratory“ durch einen gewünschten Namen ersetzt werden kann und diese Konstellation nur einer organisierten Ordnerstruktur dient. Im Fall des Projektes ist die Wahl nun zunächst auf „laboratory“ gefallen. Wichtig ist jedoch an dieser Stelle zu erwähnen, dass die virtuelle Umgebung im Home-Verzeichnis des aktuellen Benutzers liegen muss, damit die Rechte um Ordner gegeben sind. Für Fortgeschrittene kann dies auch anders ablaufen und manuell angepasst werden im Zuge einer Vergabe von Zugriffsrechten auf das entsprechende Verzeichnis, allerdings soll dies hier nicht Gegenstand der Erläuterung sein. Um die virtuelle Umgebung nun zu starten, wird ein anderer Befehl benötigt, der allerdings heruntergebrochen auf ein Skript innerhalb der Ordnerstruktur zugreift, um eine Instanz der virtuellen Umgebung unter dem entsprechenden Namen zu starten.

Mittels Befehl „source“ wird die Umgebung in Zusammenhang mit dem Skript „activate“ nun gestartet.

Innerhalb der nun erstellten virtuellen Umgebung lassen sich nun eine Vielzahl an Bibliotheken und Erweiterungen installieren, die allerdings nur innerhalb dieser Umgebung Verwendung finden. Im normalen Host-System kann in der Regel nicht auf die Pakete zugegriffen werden – auch hier können Ausnahmen konfiguriert werden, allerdings sollte man an dieser Stelle genau wissen, was man tut, da es sonst zu irreparablen Schäden am Betriebssystem kommen kann und man schlussendlich das komplette System neu aufsetzen muss.

Eine Erweiterung ist sogar schon vorinstalliert: PIP – Package Installer for Python. Mit Hilfe dieser Erweiterung können nun weitere Pakete relativ leicht installiert werden. Dieses Erweiterung sucht automatisch auf den offiziellen Plattformen nach der gewünschten Bibliothek, lädt diese herunter und installiert diese. Es sind damit keine weiteren manuellen Schritte notwendig. Mittels Befehle kann die Erweiterung innerhalb der Konsole gesteuert werden: