Project BuzzBoard – Ein eigenes Produkt aus der ICT-WG (Teil 1)

Nachdem wir uns in den vergangenen Wochen stark auf bestehende Produkte wie openHAB, HomeMatic oder myStrom fokussierten und diese beispielsweise mittels Regeln in unserem Smart-Home intelligent gemacht haben, möchten wir euch heute im ersten Teil unserer neuen Blogserie vorstellen, wie ein eigenes Produkt (das BuzzBoard) in unserer WG entsteht. Wir haben hierfür unseren Projekttag vom Freitag einmalig  um zwei Tage erweitert, damit ein effizienteres Arbeiten ohne sechstägige Unterbrechung möglich ist. Aber seht nun selbst was bereits geschehen ist.

Brainstorming und erste Pläne

Die Idee zum Projekt entstand aus dem schlichten Bedürfnis, immer die aktuellen Abfahrtszeiten der Trams und Busse in der Umgebung unserer Wohnung angezeigt zu bekommen. Thomas stand bisher jeden Morgen vor der Tür und überprüfte mit der SBB App die aktuellen Abfahrtszeiten. Nicht selten verpasste er dabei nur um wenige Minuten den nächsten Bus. Unser erster Gedanke war hierbei, einfach die Abfahrtszeiten mittels eines Monitors in der Nähe des Eingangs darzustellen. Aufgrund des geringen Platzes in unserem Eingangsbereich sowie designtechnischer Einwände wurde diese Idee jedoch schnell verworfen und die Entscheidungen zugunsten eines LED Boards getroffen. Folgendes Bild zeigt den geplanten Aufbau:

BuzzBoard Uebersicht

Beim Display haben wir uns für das „adafruit 32×32 RGB LED Matrix Panel“ entschieden, da es einfach an die GPIO des Raspberry Pi’s angeschlossen werden kann. Aktuell testen wir bereits mit zwei Displays, die durch eine Daisy Chain miteinander verbunden sind.

Bei der Diskussion über die Informationen, die wir auf dem Display darstellen könnten, wurde uns schnell klar, dass ein viel grösseres Potential besteht als nur die aktuellen Bus- / Tramabfahrtszeiten darzustellen. So wurde das Konzept rasch zu einem Info-Panel für jegliche Art von Informationen rund um unser vernetztes Zuhause erweitert. Beim Inhalt, der auf den einzelnen Displays dargestellt werden soll, haben wir bislang folgende Informationen zusammengetragen:

Fahrplan
  • Helvetiaplatz
  • Luisenstrasse
  • Liebeck
Wetter
  • Temperatur aussen
  • Temperatur innen
Vorhersage
  • Tage mit Temperatur
  • Bilder mit Regen / Sonne
Home Info
  • Waschmaschine
  • Fernseher
  • Licht
Pflanzen
  • Trockene Pflanzen
Stromverbrauch
  • Geräte mit höchstem Stromverbrauch

 

Aktuell können wir die meisten Daten, die wir darstellen möchten, aus unserem Heimautomatisierungsserver openHAB auslesen, da hier sämtliche Komponenten der einzelnen Hersteller eingebunden sind. Einzige Ausnahme stellt dabei die Fahrplanauskunft mit den Abfahrtszeiten der einzelnen Haltestellen dar. Diese werden wir direkt aus der „Swiss public transport API“ auslesen, wie die obige Abbildung zeigt.

 

Erstellung eines Prototyps

Im ersten Schritt bei der Umsetzung haben wir auf einen Raspberry Pi die Linux Distribution Raspbian installiert und in unser WLAN eingebunden. Zum Anschliessen des Displays an die GPIO sind wir nach der Anleitung von adafriut vorgegangen. Somit war das Display in unser Netzwerk eingebunden und konnte bereits für erste Tests verwendet werden.

https://learn.adafruit.com/downloads/pdf/connecting-a-16×32-rgb-led-matrix-panel-to-a-raspberry-pi.pdf

 

Nach ersten Versuchen mit der „rpi-rgb-led-matrix“ Library von „hzeller“ hat nur die Hälfte unseres Displays geleuchtet. Bei der Fehlersuche stellten wir fest, dass dies die Verkabelung eines 16×16 Displays war und eine zusätzliche Verbindung zwischen dem 10 MOSI Pin am Raspberry Pi und D Pin am Display fehlte (oben rot eingezeichnet).

 

Nachdem der Raspberry Pi wie in obigem Bild zu sehen korrekt mit dem Display verbunden war, schlossen wir das zweite über die Daisy Chain ebenfalls an, um eine grössere Fläche für die Darstellung von Informationen zu erhalten. Mittels eines Demoprogramms aus der „rpi-rgb-led-matrix“ Bibliothek konnten wir das Ganze auch optisch überprüfen.

 

Um die oben genannte Bibliothek zu verwenden, war es erforderlich, diese aus dem „git“ Repository herunterzuladen und auf dem Raspberry Pi zu kompilieren. Folgende Befehle wurden dazu benötigt:

pi@buzzpi ~/ led32 $ git clone https://github.com/hzeller/rpi-rgb-led-matrix.git
pi@buzzpi ~/ led32 $ cd rpi-rgb-led-matrix
pi@buzzpi ~/led32/rpi-rgb-led-matrix $ make
pi@buzzpi ~/led32/rpi-rgb-led-matrix $ sudo ./led-matrix -c 2 -D 9

Ausblick

In den folgenden Teilen dieser Serie möchten wir euch gerne zeigen, wie die Einbindung der in der Tabelle aufgelisteten Informationen sowie der Zugriff auf die „Swiss public transport API“ und openHAB erfolgt. Zusätzlich werden wir versuchen, mittels eines Laser Cutters ein Gehäuse für unser Board anzufertigen, das eine freie Montage im Raum erlaubt. Solltet ihr noch weitere Ideen für die Umsetzung oder zusätzliche Informationen haben, die aufs „BuzzBoard“ sollten, könnt ihr uns diese gerne in den Kommentaren mitteilen.