Endlich wird das Geheimnis um das neue Mitglied der 8bn gelüftet. „Magic Mirror“ ist das diesjährige große Projekt des Informatik WPG der 8.Klasse, ein Smart Mirror. Für die einen galt es, sich an die Programmierung zu wagen (Team Software), während die anderen sich um die Hardware und die handwerklichen Dinge kümmerten (Team Hardware).

Was ist ein Smart Mirror?

Ein Smart Mirror ist ein „kluger Spiegel“. Dabei wird ein Spionspiegel (Polizeispiegel) aus Acryl-Material für die Spiegeloberfläche verwendet. Mittels eines Bildschirms, der darunter liegt, werden je nach Programmierung bestimmte Daten, die immer aktualisiert werden, angezeigt. Diese Daten werden vom Raspberry Pi aus dem Internet abgerufen. Bei unserem „Magic Mirror“ haben wir Datum, Uhrzeit, Wetter, Nachrichten und den Stundenplan mit Hilfe von Pyhton3 programmiert und so auf dem Spiegel zur Anzeige gebracht. Außerdem installierten wir eine abgespeckte Version von Alexa.

Team Hardware

Bevor mit dem Rahmenbau gestartet werden konnte mussten die Materialien besorgt werden. Dabei haben wir Holzleisten, eine Spionspiegelplatte, zwei kleine Lautsprecher und ein Mikrofon gekauft. Für den Bildschirm wurde ein alter Schulmonitor zerlegt, den Raspberry Pi, sowie die benötigten Sensoren hatten wir bereits aus dem normalen WPG- Unterricht.
Fünf Laufmeter Holzleisten - mit 60 mm Tiefe (wenn der Spiegel aufgehängt ist) und einer Holzstärke von 13 mm – wurden zu je zwei Leisten mit 94 cm und 64 cm zugeschnitten (mit Gehrungsschnitten). Als nächstes wurden die Leisten zusammengeleimt und außen eine zusätzliche Leiste mit 15 mm Breite angebracht, damit der Spionspiegel Halt hat. Bevor Bildschirm, Raspberry und Rahmen zusammengesetzt wurden, haben wir noch Löcher für die Sensoren und Stromkabel angebracht. Schließlich wurde als Letztes alles zusammen gebaut: Der Raspberry Pi, die Sensoren, der Spionspiegel, das Mikrofon, die Lautsprecher und die Stromkabel im Rahmen versteckt und eingebaut.

Team Software

Bevor man mit der Programmierung an sich starten konnte, musste das Team sich Gedanken über die grundlegende Gestaltung und den Inhalt der grafischen Oberfläche machen. Wir kamen zu dem Ergebnis Datum, Uhrzeit, Stundenplan, das Wetter sowie die Zimmertemperatur und den Luftdruck darzustellen.
Des Weiteren wollten wir Alexa und einen Bewegunsgsensor, mit dem der Spiegel eingeschaltet wird, umsetzen. Die gesamte Programmierung erfolgte mit Python 3.
Als erstes wurde die Darstellung des Bildschirms mit Tkinter umgesetzt. Bei Tkinter handelt es sich um eine Python Library, die für das GUI (Grafical User Interface) verantwortlich ist. Durch Tkinter wird ein schwarzes Feld erstellt, das der Größe unseres gesamten Bildschirms entspricht. Dieses Feld dient als Grundlage auf dem später unsere Informationen in weiß dargestellt werden.
Als nächstes kümmerten wir uns um Datum und Uhrzeit. Diese beiden Dinge sollten schlussendlich in der rechten oberen Ecke dargestellt werden. Beide Informationen werden vom Raspi abgerufen und mit dem Befehl der Python Library ‚time‘ und ‚datetime‘ angezeigt.
Im nächsten Schritt wurde die Anzeige des Wetters programmiert. Das Ziel war, die Anzeige des Wetters für heute, morgen und übermorgen in der linken oberen Ecke darzustellen. Hierfür mussten wir uns bei einem kostenlosen Webservice (http://openweathermap.org/) registrieren. Diese Seite bietet uns je nach Wetter eine ID. Auf Python wurde dann ein Dictionary für die Zuteilung eines Wettersymbols, je nach ID, erstellt.
Des Weiteren wurde ein Newsfeed, welches sich auf der linken Seite befindet, erstellt. Die Python Library „Feedparser“ liest die aktuellsten News aus und holt sich die Neuigkeiten von der Orf-Seite „https://rss.orf.at/vorarlberg.xml“. Ein „For-Loop“ sorgt dafür, dass die aktuellsten 3 Einträge ausgewählt werden.
Zu guter Letzt programmierten wir die Darstellung unseres Stundenplans, der sich auf der rechten Seite befindet. Mit der Python Library „webuntis“ wurde dies ermöglicht: Unser Code sorgt für das automatische Einloggen unseres Benutzers, wodurch aktuelle Neuigkeiten des Stundenplans ausgelesen werden können.
Schlussendlich wurden noch die Sensoren für die Zimmertemperatur und die Luftfeuchtigkeit, sowie ein Bewegunsgsensor, der den Bildschirm bei Erkennung einer Bewegung einschaltet, programmiert.

Der allerletzte Schritt des gesamten WPG’s war nun das Zusammenbauen und Starten des gesamten Kunstwerkes.




Anleitung

Material:

  • Holzleisten 5m , Holzstärke von 13mm, mit 60mm tiefe
  • Spionspiegel
  • Raspberry Pi
  • alter Computerbildschirm
  • Sensoren (Temperatur und Luftdruck dht22)
  • Lautsprecher
  • Mikrofon

Rahmen

5 Laufmeter Holzleisten werden zu je zwei Leisten mit 94cm und 64 cm zugeschnitten (mit Gehrungsschnitten). Als nächstes werden die Leisten zusammengeleimt und Außen eine zusätzliche Leiste mit 15mm Breite angebracht, damit der Spionspiegel halt hat. Bevor Bildschirm, Raspberry und Rahmen zusammengesetzt werden müssen noch Löcher für die Sensoren und Stromkabel angebracht werden, diese in der passenden Größe für den Sensor zuschneiden.

Bildschirm und Mikrofon

Bei einem alten Computerbildschirm wird das Gehäuse entfernt und schon ist er bereit zur Verwendung.

Programmierung

Es wird von uns ein Ordner zum Download zur Verfügung gestellt mit dem gesamten Programmierten Code, zur besseren Übersicht ist der Code mit Kommentaren versetzt.
Der Hauptordner mit den Programmierungen trägt den Namen „Smart Mirror“. Die Datei mit dem Namen gui.py ist die Hauptdatei für das Grafische, constants.py enthält die Rahmeninformationen zu den Konstanten, image.py enthält die Informationen zu den Bildern, newsfeed.py ist für die Tagesnachrichten, pyowm.py fragt den Wetterstatus ab, timetable.py ist um den Stundenplan anzuzeigen und weather.py ist um das Wetter darzustellen.
In „Weather-rss“ ist die Datei um die Daten zu den Aktuellen Tagesnachrichten zu bekommen.

Download Code