Update README.md
This commit is contained in:
22
README.md
22
README.md
@@ -12,11 +12,11 @@ zu aktualieren. Nun nutzen sie `sudo apt install python3-rpi-gpio` zur Installat
|
|||||||
`sudo pip3 install adafruit-circuitpython-neopixel` zur Installation der ebenfalls notwendigen Neopixel-Library.
|
`sudo pip3 install adafruit-circuitpython-neopixel` zur Installation der ebenfalls notwendigen Neopixel-Library.
|
||||||
|
|
||||||
Des Weiteren wird ein SSH-Client mit einem auf dem Türsystem registrierten Schlüssel benötigt. Den SSH-Client
|
Des Weiteren wird ein SSH-Client mit einem auf dem Türsystem registrierten Schlüssel benötigt. Den SSH-Client
|
||||||
installieren sie auf einem Raspbian System mit `sudo apt install openssh`. Für weiterer Informationen über den
|
installieren sie auf einem Raspbian System mit `sudo apt install openssh`. Für weitere Informationen über den
|
||||||
benötigten Schlüssel sehen sie [hier](https://dokuwiki.chaospott.de/infrastruktur:zugang:start).
|
benötigten Schlüssel sehen sie [hier](https://dokuwiki.chaospott.de/infrastruktur:zugang:start).
|
||||||
|
|
||||||
### Hardware
|
### Hardware
|
||||||
Zum Ausführen von ButtonCtl ist die korrekte Verkabelung aller Komponenten notwendig. Um
|
Zum Ausführen von ButtonCtl ist der korrekte Anschluss aller Komponenten notwendig. Um
|
||||||
die Verkabelung in der aktuellen Installation des Systems im Club zu verändern, öffnen sie
|
die Verkabelung in der aktuellen Installation des Systems im Club zu verändern, öffnen sie
|
||||||
den unteren, in der rechts neben der Tür im Bällebad befindlichen Wand verbauten Kasten.
|
den unteren, in der rechts neben der Tür im Bällebad befindlichen Wand verbauten Kasten.
|
||||||
Um den Raspberry Pi zu erreichen, müssen sie nun die dort verbauten Schrauben lösen, und die Abdeckung abnehmen.
|
Um den Raspberry Pi zu erreichen, müssen sie nun die dort verbauten Schrauben lösen, und die Abdeckung abnehmen.
|
||||||
@@ -34,7 +34,7 @@ cd buttonctl
|
|||||||
```
|
```
|
||||||
Nun können sie entweder `button.py` direkt mit `python3 button.py` ausführen oder einen Systemd-Service erstellen, der
|
Nun können sie entweder `button.py` direkt mit `python3 button.py` ausführen oder einen Systemd-Service erstellen, der
|
||||||
daraufhin automatisch beim Bootvorgang gestartet werden kann. Zum Erstellen des Services nutzen sie `bash service.sh`,
|
daraufhin automatisch beim Bootvorgang gestartet werden kann. Zum Erstellen des Services nutzen sie `bash service.sh`,
|
||||||
und zur Aktivierung des automatischen Starts `systemctl enable buttond`.
|
und zur Aktivierung des automatischen Starts daraufhin `systemctl enable buttond`.
|
||||||
|
|
||||||
## Abhängigkeiten
|
## Abhängigkeiten
|
||||||
### Libraries
|
### Libraries
|
||||||
@@ -42,22 +42,22 @@ Zur Implementierung einiger zentraler Features werden folgende nicht-standard Li
|
|||||||
- RPi (raspbian: python3-rpi.gpio)
|
- RPi (raspbian: python3-rpi.gpio)
|
||||||
- neopixel (pypi: adafruit-circuitpython-neopixel)
|
- neopixel (pypi: adafruit-circuitpython-neopixel)
|
||||||
|
|
||||||
Da die Buttons nicht etwa über einzelne LEDs, sondern über einen einzelnen LED-Strip verläuft, angesteuert
|
Da die Buttons nicht etwa über einzelne LEDs, sondern über einen einzelnen LED-Strip angesteuert
|
||||||
werden müssen, wird die ```neopixel``` Library dazu genutzt, den aus 36 (3 * 12) Leds bestehenden Strip anzsuteuern
|
werden müssen, wird die ```neopixel``` Library dazu genutzt, den aus 36 (3 * 12) Leds bestehenden Strip zu bedienen
|
||||||
und auf Basis dessen zu einem Button-orientierten Interfcae zu abstrahieren.
|
und auf Basis dessen zu einem Button-orientierten Interface zu abstrahieren.
|
||||||
Die LEDs sind folgendermaßen über die Buttons verteilt:
|
Die LEDs sind folgendermaßen über die Buttons verteilt:
|
||||||
```
|
```
|
||||||
(25-36) (13-24) (1-12)
|
(25-36) (13-24) (1-12)
|
||||||
AERIE KELLER
|
AERIE KELLER
|
||||||
```
|
```
|
||||||
|
|
||||||
Um das dazu - und zur Button-Press Erkennung - benötigte GPIO-Board zu kontrollieren nutzt ButtonCtl die ```RPi.gpio```
|
Um das dazu - und zur Button-Press Erkennung - benötigte GPIO-Board zu kontrollieren, nutzt ButtonCtl die ```RPi.gpio```
|
||||||
Library.
|
Library.
|
||||||
|
|
||||||
### API
|
### API
|
||||||
ButtonCtl greift auf die vom Chaospott bereitgestellte [SpaceAPI](http://spaceapi.net/)-Instanz, die - wie es die
|
ButtonCtl greift auf die vom Chaospott bereitgestellte [SpaceAPI](http://spaceapi.net/)-Instanz, die - wie es die
|
||||||
Spezifikation vorsieht - neben den benötigten Sensor-Daten ebenfalls allgemeine Information
|
Spezifikation vorsieht - neben den benötigten Sensor-Daten ebenfalls allgemeine Information
|
||||||
sowie Metadaten über den Hackerspace überträgt.
|
sowie Metadaten über den Hackerspace überträgt, zurück.
|
||||||
Die Statusinformationen befinden sich im `sensor` Bereich der JSON-Daten:
|
Die Statusinformationen befinden sich im `sensor` Bereich der JSON-Daten:
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@@ -85,13 +85,13 @@ Zum Öffnen und Schließen der beiden Türen werden die jeweiligen SSH-Endpunkte
|
|||||||
|
|
||||||
## Benutzung
|
## Benutzung
|
||||||
Wie durch wiederholte Ausfälle indiziert, sind die durch die API bereitgestellten Daten nicht immer zuverlässig,
|
Wie durch wiederholte Ausfälle indiziert, sind die durch die API bereitgestellten Daten nicht immer zuverlässig,
|
||||||
und sollen somit Grund keinen Einfluss auf die Funktionalität der Buttons haben. In der Vergangenheit
|
und sollen somit keinen Einfluss auf die Funktionalität der Buttons haben. In der Vergangenheit
|
||||||
erfolgte das Öffnen oder Schließen einer Tür durch einen einfachen Click auf den mit dieser assoziierten Knopf.
|
erfolgte das Öffnen oder Schließen einer Tür durch einfaches Drücken auf den mit dieser assoziierten Knopf.
|
||||||
Unter der Voraussetzung, dass der gespeicherte Türstatus korrekt ist, wurde dieser dann geändert, das heißt die
|
Unter der Voraussetzung, dass der gespeicherte Türstatus korrekt ist, wurde dieser dann geändert, das heißt die
|
||||||
Tür wurde geöffnet oder geschlossen.
|
Tür wurde geöffnet oder geschlossen.
|
||||||
|
|
||||||
Um jenes Vorgehen trotz der Unwissenheit über den aktuellen Zustand der Türen zu ermöglichen, leuchtet in der neuen
|
Um jenes Vorgehen trotz der Unwissenheit über den aktuellen Zustand der Türen zu ermöglichen, leuchtet in der neuen
|
||||||
Version, nach dem Drücken eines Türknopfes (1. / 3. Knopf für Aerie / Keller), ein Button grün und ein anderer rot auf.
|
Version nach dem Drücken eines Türknopfes (1. / 3. Knopf für Aerie / Keller) ein Button grün und ein anderer rot auf.
|
||||||
Nach erneutem Drücken auf den grünen (roten) Button wird die Tür daraufhin geöffnet (geschlossen).
|
Nach erneutem Drücken auf den grünen (roten) Button wird die Tür daraufhin geöffnet (geschlossen).
|
||||||
|
|
||||||
Im Normalzustand leuchtet der mittlere Button nicht und die Tür-Buttons tragen die mit ihrem API-Status
|
Im Normalzustand leuchtet der mittlere Button nicht und die Tür-Buttons tragen die mit ihrem API-Status
|
||||||
|
Reference in New Issue
Block a user