SpaceAPI-Karte: Difference between revisions
(Created page with "Category:Projekt Category:Projekt:Abgeschlossen Projekt von s3lph. Eine ca 60x70cm grosse Karte von Mitteleuropa, in Holz graviert, mit farbigen LEDs, die den Öffnungszustand von ganz vielen (83) Hackspaces anzeigen. {{Todo|Hier entsteht demnächste eine schöne Dokumentation. In der Zwischenzeit sei auf https://git.kabelsalat.ch/s3lph/spaceapi-led-map/ verwiesen.}}") |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:Projekt]] |
[[Category:Projekt]] |
||
[[Category:Projekt:Abgeschlossen]] |
[[Category:Projekt:Abgeschlossen]] |
||
[[File:SpaceAPI_Karte_01.jpg|640|thumb|frame|Die SpaceAPI-Karte.]] |
|||
Projekt von [[User:S3lph|s3lph]]. Eine ca 60x70cm grosse Karte von Mitteleuropa, in Holz graviert, mit farbigen LEDs, die den Öffnungszustand von ganz vielen (83) Hackspaces anzeigen. |
Projekt von [[User:S3lph|s3lph]]. Eine ca 60x70cm grosse Karte von Mitteleuropa, in Holz graviert, mit farbigen LEDs, die den Öffnungszustand von ganz vielen (83) Hackspaces anzeigen. |
||
== Idee == |
|||
Die [https://spaceapi.io/ SpaceAPI] ist eine Spezifikation für eine maschinenlesbare Schnittstelle, über die Hackspaces verschiedene Informationen über sich selbst veröffentlichen können. |
|||
Dies kann statische Informationen wie Name, Adresse und Logo umfassen, aber auch dynamische Daten wie die Raumtemperatur, oder ob der Space gerade geöffnet ist. |
|||
Es gibt verschiedene Dienste, die sämtliche SpaceAPI-Endpoints aggregieren und aufbereiten, darunter [https://mapall.space/ mapall.space], welche die Spaces auf einer Karte darstellt. |
|||
Die Idee von diesem Projekt war es, eine solche Karte an die Wand hängen zu können, mit LEDs auf einer mit dem Lasercutter gravierten Karte. |
|||
== Umsetzung == |
|||
Die vollständige technische Dokumentation für dieses Projekt ist im [https://git.kabelsalat.ch/s3lph/spaceapi-led-map/ Git-Repository] zu finden. |
|||
<gallery> |
|||
File:SpaceAPI_Karte_01.jpg|Die Vorderseite der SpaceAPI-Karte. |
|||
File:SpaceAPI_Karte_02.jpg|Die Rückseite der Karte mit der Verkabelung der LEDs und PCBs. |
|||
File:SpaceAPI_Karte_03.jpg|Detailansicht der Vorderseite mit dem Kartenausschnitt rund um Basel. |
|||
File:SpaceAPI_Karte_04.jpg|Ein kleinerer Kartenausschnitt, der zum Testen verwendet wurde. |
|||
File:SpaceAPI_Karte_05.jpg|Eine der WS2812-kompatiblen LEDs, direkt in ein Kabel mit JST ZH-Stecker eingesteckt. |
|||
File:SpaceAPI_Karte_06.jpg|Das erste der 9 PCBs in der LED-Kette, noch ohne eingesteckte LEDs, aber mit aufgelötetem ESP32-C3. |
|||
</gallery> |
|||
=== Bedeutung der Farben === |
|||
; <span style="color: #00ff3f;">⬤</span> Grün |
|||
: Der Hackspace ist geöffnet. |
|||
; <span style="color: #ff0000;">⬤</span> Rot |
|||
: Der Hackspace ist geschlossen. |
|||
; <span style="color: #ff7f00;">⬤</span> Orange |
|||
: Der SpaceAPI-Endpunkt hat dem Aggregator-Dienst eine ungültige Antwort gegeben. Das kann sowohl heissen, dass der Endpunkt nicht erreichbar war, oder dass er nicht allen SpaceAPI-Schema-Versionen entspricht, die der Endpunkt angibt. |
|||
; <span style="color: #0000ff;">⬤</span> Blau |
|||
: Der SpaceAPI-Endpunkt ist seit mehr als 24h nicht mehr erreichbar. |
|||
; <span style="color: #000000;">⬤</span> Aus |
|||
: Die Endpunkt-URL von diesem Hackspace ist nicht mehr in der Antwort des Aggregators enthalten. Wahrscheinlich hat sich die URL des API-Endpoints geändert. |
|||
Abgesehen von den Space-Zuständen werden Fehlerzustände der Karte selbst signalisiert: |
|||
; <span style="color: #000000;">⬤</span> LED 0 blinkt alle 10s |
|||
: Der letzte Versuch, den Aggregator zu erreichen, ist fehlgeschlagen, z.B. weil die WiFi-Verbindung nicht wiederhergestellt werden konnte. |
|||
; <span style="color: #ff00ff;">⬤</span> Lila LED 0 |
|||
: Der ESP32 ist gerade am starten. Die LED bleibt lila bis zum ersten erfolgreichen Kontakt zum Aggregator. Falls dieser Zustand für mehr als ein paar Sekunden besteht, konnte sich der ESP32 vermutlich nicht zum konfigurierten WiFi-AP verbinden, und startet seinen eigenen AP <code>spaceapimap</code>, damit die WiFi-Konfiguration angepasst werden kann. |
|||
=== Kartendaten für den Lasercutter === |
|||
* Die Grenzverläufe kommen als GeoJSON von WikiData |
|||
* Die Koordinaten und Namen der Spaces kommen aus den SpaceAPI-Endpunkten der jeweiligen Spaces |
|||
* Für die Zusammenführung der Daten und Layouting der Beschriftungen kam eine modifizierte Version des [https://git.kabelsalat.ch/s3lph/erfamap Erfakarten-Codes] zum Einsatz. |
|||
** Die Beschriftungen wurden dann trotzdem noch nachträglich in Inkscape verschoben, um eine bessere Zuordnung zwischen Beschriftungen und LEDs zu erreichen. |
|||
* Schlussendlich wurde die Karte mit dem Lasercutter auf 4mm dickes Sperrholz graviert und ausgeschnitten |
|||
** Diesen Teil haben wir im Hackspace Odenwilusenz in Beringen SH gemacht, da deren Lasercutter einen deutlich grösseren Arbeitsbereich hat als unser [[Lasercutter]]. |
|||
=== Hardware === |
|||
* Die LEDs sind WS2812-kompatibel, aber im "klassischen" Formfaktor mit einem Durchmesser von 5mm. |
|||
* Jede LED ist mit einer schwarzen, kragenförmigen Kunststofffassung im einem Loch im Sperrholzbrett befestigt. |
|||
* Die Ansteuerung der LEDs erfolgt über einen ESP32-C3 Microcontroller. |
|||
* Für die Verbindung der LEDs zu einer Kette haben wir PCBs entworfen, an denen jeweils 10 der LEDs über Kabel mit JST ZH4-Steckern angeschlossen werden. |
|||
** Die LEDs sind direkt in die JST-Stecker gesteckt, und halten dort erstaunlich gut. |
|||
** Die PCBs untereinander sind ebenfalls verbunden, um eine lange WS2812-Kette zu bilden. |
|||
=== Software === |
|||
* Die Software auf dem ESP32 bezieht die Daten der SpaceAPI-Endpoints alle 5 Minuten über den Aggregator-Dienst [https://api.spaceapi.io/]. |
|||
== Ähnliche Projekte == |
|||
Das ist nicht die erste physische SpaceAPI-Karte, die gebaut wurde. Mir sind folgende weitere Projekte bekannt: |
|||
{{Todo|Hier entsteht demnächste eine schöne Dokumentation. In der Zwischenzeit sei auf https://git.kabelsalat.ch/s3lph/spaceapi-led-map/ verwiesen.}} |
|||
* vom OpenLab in Augsburg: https://chaos.social/@OpenLabAugsburg/109586822152106368 |
|||
* vom Shackspace in Stuttgart: https://mastodon.social/@shackspace |
Latest revision as of 01:30, 25 October 2024
Projekt von s3lph. Eine ca 60x70cm grosse Karte von Mitteleuropa, in Holz graviert, mit farbigen LEDs, die den Öffnungszustand von ganz vielen (83) Hackspaces anzeigen.
Idee
Die SpaceAPI ist eine Spezifikation für eine maschinenlesbare Schnittstelle, über die Hackspaces verschiedene Informationen über sich selbst veröffentlichen können. Dies kann statische Informationen wie Name, Adresse und Logo umfassen, aber auch dynamische Daten wie die Raumtemperatur, oder ob der Space gerade geöffnet ist. Es gibt verschiedene Dienste, die sämtliche SpaceAPI-Endpoints aggregieren und aufbereiten, darunter mapall.space, welche die Spaces auf einer Karte darstellt. Die Idee von diesem Projekt war es, eine solche Karte an die Wand hängen zu können, mit LEDs auf einer mit dem Lasercutter gravierten Karte.
Umsetzung
Die vollständige technische Dokumentation für dieses Projekt ist im Git-Repository zu finden.
Bedeutung der Farben
- ⬤ Grün
- Der Hackspace ist geöffnet.
- ⬤ Rot
- Der Hackspace ist geschlossen.
- ⬤ Orange
- Der SpaceAPI-Endpunkt hat dem Aggregator-Dienst eine ungültige Antwort gegeben. Das kann sowohl heissen, dass der Endpunkt nicht erreichbar war, oder dass er nicht allen SpaceAPI-Schema-Versionen entspricht, die der Endpunkt angibt.
- ⬤ Blau
- Der SpaceAPI-Endpunkt ist seit mehr als 24h nicht mehr erreichbar.
- ⬤ Aus
- Die Endpunkt-URL von diesem Hackspace ist nicht mehr in der Antwort des Aggregators enthalten. Wahrscheinlich hat sich die URL des API-Endpoints geändert.
Abgesehen von den Space-Zuständen werden Fehlerzustände der Karte selbst signalisiert:
- ⬤ LED 0 blinkt alle 10s
- Der letzte Versuch, den Aggregator zu erreichen, ist fehlgeschlagen, z.B. weil die WiFi-Verbindung nicht wiederhergestellt werden konnte.
- ⬤ Lila LED 0
- Der ESP32 ist gerade am starten. Die LED bleibt lila bis zum ersten erfolgreichen Kontakt zum Aggregator. Falls dieser Zustand für mehr als ein paar Sekunden besteht, konnte sich der ESP32 vermutlich nicht zum konfigurierten WiFi-AP verbinden, und startet seinen eigenen AP
spaceapimap
, damit die WiFi-Konfiguration angepasst werden kann.
Kartendaten für den Lasercutter
- Die Grenzverläufe kommen als GeoJSON von WikiData
- Die Koordinaten und Namen der Spaces kommen aus den SpaceAPI-Endpunkten der jeweiligen Spaces
- Für die Zusammenführung der Daten und Layouting der Beschriftungen kam eine modifizierte Version des Erfakarten-Codes zum Einsatz.
- Die Beschriftungen wurden dann trotzdem noch nachträglich in Inkscape verschoben, um eine bessere Zuordnung zwischen Beschriftungen und LEDs zu erreichen.
- Schlussendlich wurde die Karte mit dem Lasercutter auf 4mm dickes Sperrholz graviert und ausgeschnitten
- Diesen Teil haben wir im Hackspace Odenwilusenz in Beringen SH gemacht, da deren Lasercutter einen deutlich grösseren Arbeitsbereich hat als unser Lasercutter.
Hardware
- Die LEDs sind WS2812-kompatibel, aber im "klassischen" Formfaktor mit einem Durchmesser von 5mm.
- Jede LED ist mit einer schwarzen, kragenförmigen Kunststofffassung im einem Loch im Sperrholzbrett befestigt.
- Die Ansteuerung der LEDs erfolgt über einen ESP32-C3 Microcontroller.
- Für die Verbindung der LEDs zu einer Kette haben wir PCBs entworfen, an denen jeweils 10 der LEDs über Kabel mit JST ZH4-Steckern angeschlossen werden.
- Die LEDs sind direkt in die JST-Stecker gesteckt, und halten dort erstaunlich gut.
- Die PCBs untereinander sind ebenfalls verbunden, um eine lange WS2812-Kette zu bilden.
Software
- Die Software auf dem ESP32 bezieht die Daten der SpaceAPI-Endpoints alle 5 Minuten über den Aggregator-Dienst [1].
Ähnliche Projekte
Das ist nicht die erste physische SpaceAPI-Karte, die gebaut wurde. Mir sind folgende weitere Projekte bekannt:
- vom OpenLab in Augsburg: https://chaos.social/@OpenLabAugsburg/109586822152106368
- vom Shackspace in Stuttgart: https://mastodon.social/@shackspace