Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:gpio_auslesen

GPIO Status auslesen

Die GPIO-Pins eines Raspberry Pi können mit der Bibliothek wiringpi ausgelesen werden. Sie ist nicht standardmäßig installiert, kann aber mit dem folgenden Aufruf leicht installiert werden.

$ sudo apt-get install wiringpi

Dadurch steht nun das Tool gpio zur Verfügung. Mit dem folgenden Aufruf zeigt es die Bezeichnung aller Pins und deren aktuellen Status an.

$ gpio readall
 +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 |   IN | 1 |  3 || 4  |   |      | 5V      |     |     |
 |   3 |   9 |   SCL.1 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | ALT0 | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+

Damit diese Ausgabe des Programms nicht nur einmal, sondern fortwährend ausgegeben wird, benutzen wir den Befehl watch. Er bewirkt, dass ein Befehl immer wieder ausgeführt wird.

$ watch -n 1 gpio readall

Mit der Option -n 1 wird der Befehl jede Sekunde ausgeführt.

Mit der zusätzlichen Option -d lassen sich Änderungen zwischen den Aktualisierungen anzeigen. Das schafft bei großen Ausgaben eine bessere Übersicht.

WebIOPi

Einen Schritt weiter geht das Projekt WebIOPi1). Es bietet eine schöne Weboberfläche, über die der Status der Pins ausgelesen und verändert werden kann. Die Oberfläche ist als REST-Service konzipiert und lässt sich daher leicht mit HTTP-Requests steuern. Um einen Eindruck von der Software zu bekommen, hilft ein Blick in folgendes Video.

  • Bei github findet ihr den Quelltext, um das an der Schule entwickelte E/A-Modul eapi anzusteuern.
  • Mit pinpin existiert ein weiteres Werkzeug für den Zugriff auf die GPIO-Pins.
  • https://pinout.xyz zeigt die unterschiedlichen Pinbelegungen des Raspberry Pi an.
1) Derzeit läuft die Version 0.7.1 mit dem Raspberry Pi 2 leider nicht ohne Probleme. Daher gibt es einen Patch, den erfahrene Nutzer einspielen können. Der Fehler wird in diesem Bugreport beschrieben. Dort können die geänderten Dateien auch direkt heruntergeladen werden.
schule/gpio_auslesen.txt · Zuletzt geändert: 19.04.2017 14:52 von Marco Bakera