{"id":566,"date":"2018-07-01T20:58:57","date_gmt":"2018-07-01T20:58:57","guid":{"rendered":"https:\/\/www.wpvs.de\/iot-2018\/?p=566"},"modified":"2021-05-14T10:07:03","modified_gmt":"2021-05-14T08:07:03","slug":"firmware-fast-fertig-lediglich-probleme-mit-rpi-gpio","status":"publish","type":"post","link":"https:\/\/www.iot-embedded.de\/iot-2018\/projekt-honeypi\/firmware-fast-fertig-lediglich-probleme-mit-rpi-gpio\/","title":{"rendered":"HoneyPi (8) Firmware fast fertig&#8230; lediglich Probleme mit RPi.GPIO"},"content":{"rendered":"<p>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\u00e4chst die verschiedenen Anforderungen der Firmware skizziert und anschlie\u00dfend die Umsetzung beschrieben. Dabei werden ebenfalls aufgetretene Probleme und deren Bew\u00e4ltigung angesprochen.<\/p>\n<p>Die Firmware soll innerhalb des Projekts folgende Funktionen erf\u00fcllen:<\/p>\n<ul>\n<li>Bereitstellung eines Access-Points<\/li>\n<li>Bereitstellung eines Webservers, der f\u00fcr das Hosting des Konfigurationswebinterfaces zust\u00e4ndig ist.<\/li>\n<li>Ausf\u00fchren von Python-Skripten zur Erfassung der Messdaten<\/li>\n<li>Senden von Messdaten an Thingspeak mit Hilfe eines Surfsticks<\/li>\n<\/ul>\n<p><strong>Bereitstellung eines Access-Points<\/strong><\/p>\n<p>Die Einrichtung des Access-Points lie\u00df mich eine Zeit lang etwas verzweifeln. Nachdem ich s\u00e4mtliche Packages f\u00fcr den Access-Point integriert hatte, mussten noch die Konfigurationsdateien angepasst werden. Die Anleitung daf\u00fcr habe ich von der folgenden Seite:\u00a0https:\/\/www.raspberrypi.org\/documentation\/configuration\/wireless\/access-point.md<\/p>\n<p>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\u00dflich Aufschluss \u00fcber den Sachverhalt.<\/p>\n<p><a href=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/Aktive-Adapter.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-567\" src=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/Aktive-Adapter-1024x576.jpg\" alt=\"\" width=\"626\" height=\"352\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/Aktive-Adapter-1024x576.jpg 1024w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/Aktive-Adapter-300x169.jpg 300w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/Aktive-Adapter-768x432.jpg 768w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/Aktive-Adapter-1536x864.jpg 1536w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/Aktive-Adapter-1568x882.jpg 1568w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/Aktive-Adapter.jpg 1600w\" sizes=\"(max-width: 626px) 100vw, 626px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Innerhalb des Firmware war kein standardm\u00e4\u00dfiger Treiber f\u00fcr das integrierte WLAN-Modul des Raspberry Pi&#8217;s vorhanden. Gl\u00fccklicherweise hatte ich aber noch einen USB-Wlan-Stick \u00fcbrig. Obwohl der Stick im Internet angepriesen wurde, weil er unter den meisten Betriebssystemen keinen zus\u00e4tzlichen Treiber ben\u00f6tigt, musste ich dennoch einen Treiber f\u00fcr den Stick in die Firmware integrieren. Nach der Integration des Treibers wurde ein &#8222;wlan0&#8220;-Adapter in der Firmware angezeigt und der Access-Point mit der SSID &#8222;HoneyPi&#8220; war nun sichtbar.<\/p>\n<p><strong>Bereitstellung eines Webservers<\/strong><\/p>\n<p>Nachdem der Access-Point gestartet wurde, musste nur noch die Herstellung der Verbindung gew\u00e4hrleistet werden. Dies sollte mit dem Tool &#8222;Dnsmasq&#8220; erfolgen, welches f\u00fcr die Verteilung von IP-Adressen zust\u00e4ndig ist. Die Konfiguration von &#8222;Dnsmasq&#8220; erwies sich ebenfalls als etwas schwieriger als zun\u00e4chst angenommen. Nicht alle Anleitungen, die im Netz kursieren, f\u00fchren zu einen positiven Ergebnis. Die Anleitung auf der Seite &#8222;https:\/\/www.randombrick.de\/raspberry-pi-als-wlan-access-point-nutzen\/&#8220; f\u00fchrte letztendlich aber zu dem gew\u00fcnschten Ergebnis. Von nun war es m\u00f6glich sich mit dem &#8222;HoneyPi&#8220;-WLAN zu verbinden und das Webinterface im Browser aufzurufen, indem man &#8222;http:\/\/192.168.0.1\/&#8220; in die Adresszeile eingab.<\/p>\n<p><strong>Ausf\u00fchren von Python-Skripten zur Erfassung von Messdaten<\/strong><\/p>\n<p>Um Messdaten zu erfassen, wurden mehrere Python-Skripte geschrieben. Die Basis bildet hierbei das &#8222;main.py&#8220;-Skript, welches alle anderen Skripte aufruft. Wird versucht, dieses Skript auszuf\u00fchren, kann das GPIO-Modul allerdings nicht eingebunden werden. Installierte man das GPIO-Modul zun\u00e4chst 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\u00fchrt werden kann (siehe Bild).<\/p>\n<p><a href=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/wrong-Elf_Class.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-568\" src=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/wrong-Elf_Class-1024x576.jpg\" alt=\"\" width=\"620\" height=\"349\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/wrong-Elf_Class-1024x576.jpg 1024w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/wrong-Elf_Class-300x169.jpg 300w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/wrong-Elf_Class-768x432.jpg 768w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/wrong-Elf_Class-1536x864.jpg 1536w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/wrong-Elf_Class-1568x882.jpg 1568w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/wrong-Elf_Class.jpg 1600w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Deshalb wurde eine neue Debian-VM auf 32-bit Basis aufgesetzt und das GPIO-Package nachinstalliert. Der entsprechende Ordner wurde anschlie\u00dfend aus der 32-bit-VM in das Overlay-Verzeichnis der Buildroot-VM kopiert. Startete man nun das &#8222;main.py&#8220; 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).<\/p>\n<p><a href=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/no-such-file-or-directory.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-569\" src=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/no-such-file-or-directory-1024x576.jpg\" alt=\"\" width=\"619\" height=\"348\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/no-such-file-or-directory-1024x576.jpg 1024w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/no-such-file-or-directory-300x169.jpg 300w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/no-such-file-or-directory-768x432.jpg 768w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/no-such-file-or-directory-1536x864.jpg 1536w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/no-such-file-or-directory-1568x882.jpg 1568w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/07\/no-such-file-or-directory.jpg 1600w\" sizes=\"(max-width: 619px) 100vw, 619px\" \/><\/a><\/p>\n<p><strong>Senden von Messdaten an Thingspeak mit Hilfe eines Surfsticks<\/strong><\/p>\n<p>Das Package &#8222;usb-modeswitch&#8220;, welches zur Erkennung eines USB-Sticks als Modem verwendet wird, konnte erfolgreich in die Firmware integriert werden. Ein Test bez\u00fcglich der Funktionsf\u00e4higkeit des Surfsticks erfolgt in der n\u00e4chsten Woche.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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\u00e4chst die verschiedenen Anforderungen der Firmware skizziert und anschlie\u00dfend die Umsetzung beschrieben.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts\/566"}],"collection":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/comments?post=566"}],"version-history":[{"count":1,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts\/566\/revisions"}],"predecessor-version":[{"id":636,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts\/566\/revisions\/636"}],"wp:attachment":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/media?parent=566"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/categories?post=566"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/tags?post=566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}