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.
|
||||
|
||||
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).
|
||||
|
||||
### 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
|
||||
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.
|
||||
@@ -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
|
||||
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
|
||||
### Libraries
|
||||
@@ -42,22 +42,22 @@ Zur Implementierung einiger zentraler Features werden folgende nicht-standard Li
|
||||
- RPi (raspbian: python3-rpi.gpio)
|
||||
- neopixel (pypi: adafruit-circuitpython-neopixel)
|
||||
|
||||
Da die Buttons nicht etwa über einzelne LEDs, sondern über einen einzelnen LED-Strip verläuft, angesteuert
|
||||
werden müssen, wird die ```neopixel``` Library dazu genutzt, den aus 36 (3 * 12) Leds bestehenden Strip anzsuteuern
|
||||
und auf Basis dessen zu einem Button-orientierten Interfcae zu abstrahieren.
|
||||
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 zu bedienen
|
||||
und auf Basis dessen zu einem Button-orientierten Interface zu abstrahieren.
|
||||
Die LEDs sind folgendermaßen über die Buttons verteilt:
|
||||
```
|
||||
(25-36) (13-24) (1-12)
|
||||
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.
|
||||
|
||||
### API
|
||||
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
|
||||
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:
|
||||
```json
|
||||
{
|
||||
@@ -85,13 +85,13 @@ Zum Öffnen und Schließen der beiden Türen werden die jeweiligen SSH-Endpunkte
|
||||
|
||||
## Benutzung
|
||||
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
|
||||
erfolgte das Öffnen oder Schließen einer Tür durch einen einfachen Click auf den mit dieser assoziierten Knopf.
|
||||
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 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
|
||||
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
|
||||
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).
|
||||
|
||||
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