Nachdem vor drei Wochen beschlossen wurde, dass die Honey-Pi-Projektgruppe nun Debootstrap statt Buildroot zur Erstellung der Firmware verwendet, steht diese kurz vor der Fertigstellung. In diesem Blogbeitrag werden zun├Ąchst die verschiedenen Anforderungen der Firmware skizziert und anschlie├čend die Umsetzung beschrieben. Dabei werden ebenfalls aufgetretene Probleme und deren Bew├Ąltigung angesprochen.

Die Firmware soll innerhalb des Projekts folgende Funktionen erf├╝llen:

  • Bereitstellung eines Access-Points
  • Bereitstellung eines Webservers, der f├╝r das Hosting des Konfigurationswebinterfaces zust├Ąndig ist.
  • Ausf├╝hren von Python-Skripten zur Erfassung der Messdaten
  • Senden von Messdaten an Thingspeak mit Hilfe eines Surfsticks

Bereitstellung eines Access-Points

Die Einrichtung des Access-Points lie├č mich eine Zeit lang etwas verzweifeln. Nachdem ich s├Ąmtliche Packages f├╝r den Access-Point integriert hatte, mussten noch die Konfigurationsdateien angepasst werden. Die Anleitung daf├╝r habe ich von der folgenden Seite:┬áhttps://www.raspberrypi.org/documentation/configuration/wireless/access-point.md

Nach zahlreichen Versuchen und verschiedenen Konfigurationen wollte der Access-Point aber einfach nicht starten. Ein Blick auf die vorhandenen Adapter zur Verbindung mit einem Netzwerk gab aber schlie├člich Aufschluss ├╝ber den Sachverhalt.

 

Innerhalb des Firmware war kein standardm├Ą├čiger Treiber f├╝r das integrierte WLAN-Modul des Raspberry Pi’s vorhanden. Gl├╝cklicherweise hatte ich aber noch einen USB-Wlan-Stick ├╝brig. Obwohl der Stick im Internet angepriesen wurde, weil er unter den meisten Betriebssystemen keinen zus├Ątzlichen Treiber ben├Âtigt, musste ich dennoch einen Treiber f├╝r den Stick in die Firmware integrieren. Nach der Integration des Treibers wurde ein „wlan0“-Adapter in der Firmware angezeigt und der Access-Point mit der SSID „HoneyPi“ war nun sichtbar.

Bereitstellung eines Webservers

Nachdem der Access-Point gestartet wurde, musste nur noch die Herstellung der Verbindung gew├Ąhrleistet werden. Dies sollte mit dem Tool „Dnsmasq“ erfolgen, welches f├╝r die Verteilung von IP-Adressen zust├Ąndig ist. Die Konfiguration von „Dnsmasq“ erwies sich ebenfalls als etwas schwieriger als zun├Ąchst angenommen. Nicht alle Anleitungen, die im Netz kursieren, f├╝hren zu einen positiven Ergebnis. Die Anleitung auf der Seite „https://www.randombrick.de/raspberry-pi-als-wlan-access-point-nutzen/“ f├╝hrte letztendlich aber zu dem gew├╝nschten Ergebnis. Von nun war es m├Âglich sich mit dem „HoneyPi“-WLAN zu verbinden und das Webinterface im Browser aufzurufen, indem man „http://192.168.0.1/“ in die Adresszeile eingab.

Ausf├╝hren von Python-Skripten zur Erfassung von Messdaten

Um Messdaten zu erfassen, wurden mehrere Python-Skripte geschrieben. Die Basis bildet hierbei das „main.py“-Skript, welches alle anderen Skripte aufruft. Wird versucht, dieses Skript auszuf├╝hren, kann das GPIO-Modul allerdings nicht eingebunden werden. Installierte man das GPIO-Modul zun├Ąchst in der und kopierte den entsprechende Ordner in das Overlay-Verzeichnis, kam eine Fehlermeldung auf, die besagte, dass das GPIO-Modul in einer 64-bit-Variante installiert ist und deshalb nicht auf einem Raspberry-Pi ausgef├╝hrt werden kann (siehe Bild).

 

Deshalb wurde eine neue Debian-VM auf 32-bit Basis aufgesetzt und das GPIO-Package nachinstalliert. Der entsprechende Ordner wurde anschlie├čend aus der 32-bit-VM in das Overlay-Verzeichnis der Buildroot-VM kopiert. Startete man nun das „main.py“ Skript kam dennoch eine Fehlermeldung auf. Diese besagte, dass der Ordner des GPIO-Packages nicht vorhanden ist. Nach Durchsuchen der Firmware konnte allerdings festgestellt werden, dass der Ordner des GPIO-Packages entgegen der Ausgabe der Fehlermeldung durchaus vorhanden ist (siehe Bild).

Senden von Messdaten an Thingspeak mit Hilfe eines Surfsticks

Das Package „usb-modeswitch“, welches zur Erkennung eines USB-Sticks als Modem verwendet wird, konnte erfolgreich in die Firmware integriert werden. Ein Test bez├╝glich der Funktionsf├Ąhigkeit des Surfsticks erfolgt in der n├Ąchsten Woche.

 

 

HoneyPi (8) Firmware fast fertig… lediglich Probleme mit RPi.GPIO

2 Gedanken zu „HoneyPi (8) Firmware fast fertig… lediglich Probleme mit RPi.GPIO

  • Juli 2, 2018 um 12:10 am
    Permalink

    Warum kann das GPIO-Python-Modul nicht mit debootstrap installiert werden? Gibt es kein Debian-Paket daf├╝r? Falls nein, k├Ânnen Sie in der modify-rootfs.sh einen Befehl wie „pip install rpi-gpio“ (oder so ├Ąhnlich) einbauen, um das Modul mit Python-Mitteln zu installieren.

  • Juli 2, 2018 um 11:30 am
    Permalink

    Wie vorhin besprochen, wenn es in Raspbian wirklich kein Package f├╝r das GPIO-Python-Modul gibt, k├Ânnen Sie das Modul mit dem Befehl „pip install wie-das-ding-auch-immer-hei├čt“ in der modify-rootfs.sh installieren. Vermutlich beinhaltet das Package aber auch eine C-Library, die w├Ąhrend der Installation kompiliert werden muss. Hierf├╝r m├╝ssen Sie in der image.config noch das Paket „build-essential“ installieren, das eine C-Compiler und die dazugeh├Ârigen Werkzeuge beinhaltet. In der modify-rootfs.sh k├Ânnen Sie das Paket ggf. wieder deinstallieren, z.B. mit „apt purge build-eseential“ und „apt autoremove“.

Schreibe einen Kommentar

Zur Werkzeugleiste springen