PHP auf dem Raspberry Pi

© Olivier Le Moal, 123RF

Sprachtalent

Es muss nicht immer Python sein: Auch per PHP lassen sich auf dem RasPi die GPIO-Pins ansteuern, was das Ganze für Webapps interessant macht.

README

Der Einstieg in PHP fällt auf dem Raspberry Pi nicht schwer. Dieser Artikel zeigt, wie Sie mit einer simplen PHP-App über eine Webapplikation die GPIO-Schnittstelle ansteuern.

Python und Scratch haben sich als die beliebtesten Programmiersprachen für den Raspberry Pi etabliert. Der Mini-Rechner versteht sich aber auch auf andere Sprachen wie etwa PHP. Letzteres macht den RasPi auch für Webprogrammierer interessant, die mit der Sprache vertrauter sind als mit Python und bereits erstellte PHP-basierte Apps mit dem Rechenzwerg zusammen einsetzen wollen.

Vor dem Einstieg in PHP müssen Sie es erst einmal auf dem RasPi installieren. Nachdem die Sprache typischerweise zusammen mit einem Webserver zum Einsatz kommt, geschieht das meist mit folgendem Kommando:

$ sudo apt-get install apache2 php5

Für die typischen Einsatznischen des Raspberry Pi erweist sich Apache allerdings oft als überdimensioniert. Um einen leichtgewichtigeren Webserver wie Lighttpd einzurichten, ersetzen Sie in dem Kommando einfach apache durch lighttpd.

Brücken bauen

Den einfachsten Weg, auf dem RasPi PHP zu verwenden, stellt das Verwenden der PHP-Funktion shell_exec() dar: Sie führt, wie der Name schon vermuten lässt, Befehle in der Shell aus und schafft auf diese Weise eine Art Brücke zwischen PHP und dem RasPi.

Im simpelsten Fall rufen Sie via shell_exec() Bash- oder Python-Skripte auf, die GPIO-Pins ansteuern oder andere gewünschte Aufgaben übernehmen. Eine etwas ausgefeiltere Variante zum Ansteuern der GPIO-Schnittstelle bietet die Bibliothek WiringPi [1], die es vorab aber erst einmal zu installieren gilt. Da sie nicht als Raspbian-Paket zur Verfügung steht, müssen Sie sie aus den Quellen übersetzen. Falls die dazu benötigte Versionsverwaltung Git noch nicht auf dem RasPi läuft, richten Sie diese als Erstes ein (Listing 1, Zeile 1) und laden damit die WiringPi-Quelldateien herunter (Zeile 2). Dann wechseln Sie in das dabei neu entstandene Verzeichnis (Zeile 3) und installieren die Bibliothek (Zeile 4).

Listing 1

 

$ sudo apt-get install git-core
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi
$ ./build

Mithilfe des Kommandos gpio -v prüfen Sie anschließend, ob dabei auch alles geklappt hat. Als Rückgabe liefert der Befehl im Erfolgsfall die Versionsnummer des installierten WiringPi sowie einige allgemeine Informationen zum verwendeten Raspberry Pi. Als Nächstes rufen Sie den Befehl gpio readall auf, der ein detailliertes GPIO-Layout-Diagramm ausgibt.

Erste Schritte

Im Folgenden soll eine ganz schlichte PHP-App demonstrieren, wie sich eine LED ansteuern lässt. Verbinden Sie die Diode dazu über einen Widerstand mit GND und dem GPIO-Pin 17 (Abbildung 1). Öffnen Sie dann auf dem RasPi ein Terminal und wechseln Sie ins Verzeichnis /var/www. Dort legen Sie die Datei gpio.php an und öffnen sie mit einem Texteditor. Tippen Sie den Code aus Listing 2 ein – er stammt von der Raspberry-Pi-Tutorials-Webseite [2] – und speichern Sie die Datei dann ab.

Abbildung 1: Das Verkabelungsdiagramm für den LED-Versuchsaufbau.

Listing 2

 

<html>
<head>
  <meta name="viewport" content="width=device-width" />
  <title>LED Control</title>
</head>
<body>
  LED Control:
  <form method="get" action="gpio.php">
    <input type="submit" value="ON" name="on">
    <input type="submit" value="OFF" name="off">
  </form>
  <?php
  $setmode17 = shell_exec("/usr/local/bin/gpio -g mode 17 out");
  if(isset($_GET['on'])){
    $gpio_on = shell_exec("/usr/local/bin/gpio -g write 17 1");
    echo "LED is on";
  }
  else if(isset($_GET['off'])){
    $gpio_off = shell_exec("/usr/local/bin/gpio -g write 17 0");
    echo "LED is off";
  }
  ?>
</body>
</html>

Das Herzstück der App ist ein HTML-Formular mit den Schaltern ON und OFF (Zeilen 8 bis 11). Klicken Sie einen der beiden an, übergibt das Formular dessen Wert als Teil der URL (gpio.php?on=ON oder gpio.php?off=OFF). Der PHP-Code kontrolliert über die Funktion shell_exec() den GPIO-Pin 17. Die Anweisung in Zeile 13 setzt den Pin zunächst auf OUT; der Code-Block in den Zeilen 14 bis 20 liest den aktuellen Wert aus der URL und schaltet dann den Pin mittels shell_exec() an beziehungsweise aus.

Nun können Sie in einem Webbrowser die URL http://RasPi-IP/gpio.php aufrufen (Abbildung 2) und mittels der Buttons die LED zum Leuchten bringen und wieder ausschalten.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

08/2019
Smarte Hacks

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Immer der Reihe nach

    Mit einer einfachen Schaltung testen Sie Bausteine, die über den SPI-Bus miteinander kommunizieren.

  • Einzigartig

    Eine MAC-Adresse ermöglicht die Kommunikation im Netzwerk. Der 24AA02E48 liefert sie für Setups, die aus grundlegenden Komponenten bestehen.

  • Steinkuchen

    Der Raspberry Pi hat viele Fans, doch nicht ohne Grund sehnen sich viele Anwender nach einem RasPi 4. Der Rock Pi 4 übertrumpft den RasPi 3 in Sachen Leistung um Längen und schlägt sich auch in der Praxis gut.

  • Kerngeschäft

    Der Einstieg in die Welt der Mikrocontroller fällt nicht ganz leicht. Mit dem Nucleo F401RE haben Sie jedoch ein Entwicklerboard samt abgestimmter Entwicklungsumgebung an der Hand.

  • Himbeer-Geräte

    Mit Maus und Tastatur im weiß-roten Raspberry-Look macht die Raspberry Pi Foundation das eigene Angebot an Peripheriegeräten für den Mini-Rechner komplett.

  • Unter Kontrolle

    PiCockpit ist eine speziell auf den RasPi zugeschnittene Online-Monitoring-Lösung. Wir werfen einen ersten Blick auf den brandneuen und in Ausbau befindlichen kostenlosen Dienst.

  • Ins rechte Licht gesetzt

    Selbst ohne eigenen Garten holen Sie sich Pflanzen mithilfe von LEDs in jeden Raum und sehen ihnen mit dem RasPi beim Wachsen zu.

  • Helligkeit nach Maß

    Wer bei wechselnden Lichtverhältnissen nicht ständig die Beleuchtung manuell nachregeln möchte, der spannt dafür einen PiXtend ein.

  • Geschrumpft

    Kleine Bildschirme gibt es zwar viele, aber der Support von Raspbian ist überraschend schlecht. Mit ein paar Tricks erzielen Sie trotzdem ein optimales Ergebnis.

  • Brüllwürfel

    Kompakt-Stereoanlagen mit CD-Spieler und Kassettendeck sind inzwischen oft ein Fall für den Recyclinghof – oder für die digitale Wiederbelebung mit einem RasPi und etwas Geschick.