Infomonitor (Raspberry Pi)

Aus Schulwiki
(Weitergeleitet von Infomonitore (Raspberry Pi))
Zur Navigation springen Zur Suche springen

Dies ist ein DIY-Projekt zur digitalen Darstellung der Vertretungspläne mithilfe eines Raspberry Pi. Zentrales Anliegen ist eine kostengünstige Alternative zu planen.

Der Schülermonitor dient der Umsetzung eines Monitors für die Schülerschaft, auf dem die Vertretungspläne für den aktuellen bzw. folgenden Tag angezeigt werden.

Unter Lehrer-Terminal ist hier ein Touchscreen im Lehrerzimmer gemeint, der viele Informationen bereitstellen kann, ohne diese auf schwarzen Brettern suchen zu müssen.

Die Hardware

Schülermonitor

Bei der Anschaffung eines Monitors für die Pausenhalle spielen verschiedene Aspekte ein Rolle, die vor der Anschaffung gut durchdacht werden wollen. Nur so lassen sich nachher ärgerliche Fehlkäufe vermeiden. Für unsere Anschaffung haben wir uns im Vorfeld auf die folgenden Punkte geeint, die ein Gerät erfüllen muss:

  • Blickwinkelstabilität – der Monitor sollte auch bei kleinen SchülerInnen-trauben von allen lesbar sein
  • Stromverbrauch – da der Monitor fast 9 Stunden am Tag läuft
  • HDMI-Eingang – einziger Videoausgang des Pi’s
  • USB-Port – für die Stromversorgung des Rasperry Pi (sollte beim Start auch verfügbar sein)
  • Autostart – Monitor soll nach Stromaktivierung automatisch hochfahren
  • Ausfallsicherheit – der Monitor sollte eine gewisse Wertigkeit aufweisen
  • VESA-Konform – Für die Wandbefestigung
  • mindestens 50 zoll

Nach längerer Suche haben wir uns für einen Dell E5515H entschieden. Neben der Größe, die deutlich über den Zwangsmodellen der DSB-Gruppe liegen, hat uns vor allem die technischen Ausstattung begeistert:

  • Anschlüsse: HDMI, USB-Stromversorgung
  • Mit dem Breitbild (16:9) lasen sich wunderbar zwei Tageslisten nebeneinander anzeigen
  • Die Auflösung von 1.920 x 1.080 (Full HD) bei 60 Hz ist für den Pi noch gut bearbeitbar und bietet ein sehr scharfes Bild!
  • Der Betrachtungswinkel ist sehr groß und ermöglicht jedem ein Blick auf den Plan: 178° (vertikal)/178° (horizontal)
  • Der Bildschirm hat eine blendfreie Beschichtung (3H, 2 % Haze) die kaum spiegelt
  • bei einer Tiefe von nicht mal 6,5 cm steht er kaum im Raum und kann an fast jeder Wand befestigt werden. Die Befestigungspunkte sind VESA-kompatibel.

Er erfüllt damit alle oben genannten Kriterien und besticht außerdem durch Größe und Darstellung. Zudem lag er in unserem preislichen Rahmen – etwa 900 €. An anderen Schulen werden die Monitore gegen Vandalismus mit Plexiglasscheiben gesichert. Wir haben uns bewusst dagegen entschieden, da wir den Monitor als Service für die Schüler halten und die Orte sehr gut öffentlich einsehbar sind, sodass sie der sozialen Kontrolle unterliegen.

Touch-Lerherzimmer-monitor

Seit etwa einem halben Jahr haben wir in jedem der beiden Lehrerzimmer je einen 27″-Touchscreen stehen, der tagesaktuelle Informationen bereitstellt.

Wir haben uns für das Modell  HANNS-G HT273HPB  der Firma Hannspree entschieden. Die technischen Aspekten haben uns überzeugt: kapazitive 10-Point Touch Steuerung, Full HD (1920 x 1080 Pixel) und zwei kleine Lautsprecher. Außerdem ist der Monitor mit VESA-Wandhalterungen kompatibel, kann aber auch mit einem eingebauten Metallbügel an der Rückseite flexibel aufgestellt werden (stufenlos von 10° bis zu 60°).

Der Raspberry Pi unterstützt den Monitor in Auflösung und Touchbedienung perfekt für unsere Anforderungen. Zudem könnten kleine Audionachrichten abgespielt werden, wenn dies gewünscht ist (im Kontext Schule eher unüblich).

Im Lehrerzimmer sollte sich wohl eine freie LAN-Buchse des Verwaltungsnetzes finden, an die der Pi angeschlossen wird. Auf der einen Seite wäre auch ein gut verschlüsseltes WLAN des Verwaltungsnetzwerkes denkbar, davon ist aber wegen des Datenschutzes abzuraten. Statt dessen kann mit einem LAN-Kabel meist ein Ort in der Nähe des alten schwarzen Brettes erreicht werden. Nun wird lediglich noch eine Steckdose in der Nähe sowie ein Verlängerungskabel mit Mehrfachstecker benötigt (einziges Manko des Bildschirms: kein USB-Ausgang, daher benötigen wir ein externes Netzteil für den Pi).

Die Kosten des Monitors belaufen sich zur Zeit auf etwa 405 €. Dazu kämen etwa 60€ für den Raspberry Pi, 4 € für den Mehrfachstecker, 5€ für einen einfaches HDMI-Kabel und 10 € für die Zeitschaltuhr. Strom- und Netzwerkkabel finden sich üblicherweise noch beim IT-Experten der Schule ;-).

Insgesamt kommt man damit auf etwa 495 € für die gesamte Ausstattung des Lehrerzimmers!

Anpassungen

Netzlaufwerke automatisch einbinden

Zu den jeweiligen Netzwerken an eurer Schule kann ich nicht viel sagen, daher solltet ihr frühzeitig mit den IT-Zuständigen der Schule sprechen!

Bei uns wird die Vertretungsplan-HTML auf ein SAMBA-Netzlaufwerk exportiert, dass ich über das CIFS-Protokoll aufrufen kann (CIFS ist eine offene Variante des von Microsoft entwickelten SMB-Protokolls).

Die erste Hürde trat bei uns auf, die Netzlaufwerke automatisch nach jedem Neustart einzubinden, da sowohl Monitor als auch der Pi Nachmittags herunterfahren sollen und morgens selbstständig hochfahren (siehe Stromkosten).

Einbinden der CIFS-Netzlaufwerke

Um Laufwerke unserer Art einzubinden benötigen wir cifs-utils:

sudo apt-get install cifs-utils

Anschließend müssen wir einen Mountpunkt erstellen, an dem das Netzlaufwerk auf unserem Pi eingehängt wird:

sudo mkdir /media/UNTIS

Um das Netzlaufwerk dauerhaft einzubinden, muss die fstab angepasst werden:

sudo nano etc/fstab

Dort wird am Ende das neue Netzlaufwerk als ‚read-only‘ (keine Schreibberechtigung) hinzugefügt, indem wir folgende Zeilen ergänzen:

# Vertretungs-Server wird ‚read only‘ geladen:
//192.168.XXX.XX/VERZEICHNIS/ZU/DEN/PLÄNEN /media/UNTIS cifs ro,users,credentials=/home/pi/.smbcredentials 0 0

Passwort-Datei anlegen

Da der Server, auf dem die Datei liegt eine Anmeldung erwartet, müssen wir Benutzername, Passwort und die Domäne angeben – diese wurden von eurem Schuladmin erstellt. Die Zugangsdaten legen wir in einen versteckte Datei und rufen sie über credentials in der fstab auf.

Als erstes erstellt ihr eine Textdatei im eigenen Homeverzeichnis, indem ihr mit der rechten Maustaste dorthin klickt. Als Name wählen wir .smbcredentials  (der Punkt zu Beginn sagt, dass die als versteckt angezeigt wird). Darin speichern wir nun die Zugangsdaten für das Netzlaufwerk. Ersetzt die xxx, yyy und zzz mit euren Daten und speichert die Datei anschließend ab:

Datenschutz-Einstellungen
username=xxx
password=yyy
domain=zzz

Fazit

Nun sollte nach dem Neustart das Netzlaufwerk über den Dateimanager erreichbar sein. Ihr könnt schon mal die exportierte HTML-Datei öffnen im Browser anzeigen zu lassen.

Untis-Werbelink deaktivieren

Ein Vorteil bei der Darstellung der Vertretungen für die Lehrer auf einem Touchmonitor ist, dass lange Pläne nicht auf wechselnden Seiten dargestellt werden müssen. Statt dessen kann der entsprechende Kollege einfach nach unten scrollen und so seine Vertretungen einsehen.

Ein Problem bei der Darstellung der UNTIS-Seite ist jedoch ein Werbelink der Firma Grupet, der am Ende jedes Plans eingeblendet wird und auf die Homepage führt. Einige sehr interessierte Kollegen finden nun diesen Link regelmäßig so spannend, dass sie es nicht vermeiden können dort regelmäßig ihren Finger zu platzieren. Es öffnet sich sofort ein neuer Tab – wahrscheinlich ein Link mit dem (supernervigen) Attribut target=“_blank“.

Wäre es ein einfacher Link würde er sich in dem iFrame öffnen und bei einem Wechsel zu der Raumübersicht und zurück zu den Vertretungsplänen würde die Darstellung nur kurzfristig beeinträchtigt. So allerdings wird der neue Tab geöffnet und da der Browser bildschirmfüllend angezeigt wird verschwindet die komplette Ansicht mit der Steuerleiste. Auch ein Wechsel zum alten Tab ist nicht mehr möglich!

Nach  langer Suche und einem Thread im Hilfe-Forum der Firma Grupet ohne Lösung (poweredby=0 in der untis.ini funktioniert leider in der aktuellen Version nicht mehr) habe ich mich auf die Suche nach einer eigenen Lösung gemacht:

In der start.htm wird ein iFrame eingerichtet, in dem verschiedene Inhalten eingeblendet werden können (Vertretungen/Raumplan/Klausuren usw.), der Vertretungsplan aber zu Beginn:

<iframe frameborder="0" name="anzeige" id="anzeige" src="Vertretungsplan.htm?innerframe=true" width="90%" height="100%" > </iframe>

Die Ergänzung ?innerframe=true ist notwendig, um mit dem folgenden Anpassungen in der Datei Vertretungsplan.htm arbeiten zu können. Die originale Vertretungsplan-Datei der Untis-Software (meist subst_001.htm) wird nicht sofort geöffnet, da wir in einer Zwischendatei (Vertretungsplan.htm) das Sandbox-Attribut noch ergänzen müssen. Würde das Sandbox-Attribut bereits in der Datei start.htm im iFrame anzeige eingeführt werden, könnten dort später auch keine sinnvollen Links mehr angeklickt werden (z.B. zum zur Auswahl der Lehrer oder Räume bei der Darstellung der Pläne).

In der Datei Vertretungsplan.htm erstellen wir nun einen geschützten iFrame mit Sandbox-Attribut und laden die subst_001.htm hinein:

<iframe sandbox="allow-same-origin" frameborder="0" name="vertretungsplan" id="vertretungsplan" src="file:///PFAD/ZU/DER/subst_001.htm" width="100%"> </iframe>

Fazit: Mit dieser etwas umständlichen Lösung lässt sich der nervige UNTIS-Link am Ende der Vertretungspläne zwar nicht ausblenden, wohl aber deaktivieren! Alle Links auf anderen Seiten bleiben weiterhin aktiv.

Browser installieren

Für die Darstellung der Vertretungsplan-HMTL-Datei benötigen einen Browser. Der von Raspbian mitgebrachte Browser midori lädt einfache Seiten recht passabel, bekommt aber bei modernen HTML5-Seiten gehörigen Schluckauf. Außerdem können wir ihn nicht im Vollbild darstellen.

Daher installieren wir uns ein aktuellen Firefox mit deutschen Sprachpakten, der unter Raspbian aus Lizenzgeplänkel (noch) Iceweasel heißt (eine Rückbenennung ist in Planung):

sudo apt-get install  iceweasel iceweasel-l10n-de

Nun könnt ihr den Browser über das Startmenü oben links unter der Kategorie Internet finden und starten.

Firefox anpassen

Um Firefox/Iceweasel im Vollbildmodus zu starten wechselt ihr im laufenden Browser mit F11 in den Fullscreenmodus. Anschließend schließen wir mit Alt + F4 die Sitzung. Wird Firefox/Iceweasel anschließend gestartet, wechselt er automatisch in den Vollbildmodus.

Crash-Fehlermeldung ausblenden

Der Pi hat keine Probleme damit nicht heruntergefahren zu werden, allerdings kann es durch die Stromunterbrechungen zu Schluckauf beim Browser führen, der die Sitzung wiederherstellen möchte. Dies ist jedoch nicht nötig, sondern sollte unterdrückt werden, um nicht jeden morgen auf okay klicken zu müssen. Um zukünftig keine Meldung mehr über abgebrochene Sitzung zu bekommen, müsst ihr in der Adresszeile „about:config“ eingeben und filtert anschließend nach Einstellungen mit dem Stichwort crash und sucht die Zeile:

browser.sessionstore.resume_from_crash

Ändert den boolean-Wert durch einen Doppelklick auf „false“ (anschließend sollte sie durch die Änderung fett dargestellt werden!)

mögliches Problem mit zwei Firefox-Instanzen

Startet der Browser nicht, weil angeblich schon eine Instanz im Hintergrund läuft müsst ihr euch im Dateimanager mit STRG + H versteckte Dateien anzeigen lassen und unter /.mozilla/firefox/[Profilname] die zwei Dateien “lock” und “.parentlock”  entfernen

Ausblick: Nun müssen wir uns darum kümmern, die Netzlaufwerke einzubinden, auf der die HTML-Dateien liegen…

Autostart der benötigten Programme

Um Programme eines Raspberry Pi mit Raspbian automatisch zu starten, bieten sich verschiedene Wege an. Ich habe mich nach vielen Versuchen für den folgenden Weg entscheiden, da er es ermöglicht vor dem Programmstart ein Einhängen der Netzlaufwerke zu prüfen und anschließend verschiedene Programme unabhängig voneinander zu starten.

Autostart

In der autostart-Datei legen wir einen Aufruf der Datei start.sh an. Diese rufen wir mit folgendem Befehl auf:

sudo nano ~/.config/lxsession/LXDE-pi/autostart

(Alter Befehl inzwischen falsch: sudo nano /etc/xdg/lxsession/LXDE-pi/autostart)

und ergänzen am Ende der Datei die folgende Zeile:

@lxterminal -e /home/pi/start.sh

Die Datei start.sh

Die Funktion der start.sh ist es selbstständig zu prüfen, ob das Laufwerk eingehängt wurde. Ist dies der Fall wird die Datei iceweasel.sh aufgerufen. Wurde das Laufwerk auch nach mehrmaligen Versuchen (10 Sekunden -> 1 Minute -> 5 Minuten) des Ladebefehls „sudo mount -a“ nicht eingebunden, startet sich der Raspberry Pi komplett neu!

Die Datei start.sh wird in den Benutzerordner verschoben, muss aber noch ausführbar gemacht werden! Dies geschieht unter Linux mit folgendem Befehl:

sudo chmod +x /home/pi/start.sh

iceweasel.sh

Die Datei liegt ebenfalls im Benutzerordner und ist sehr kurz:

Die Datei iceweasel.sh muss ebenfalls noch ausführbar gemacht werden:

Werbung

Datenschutz-Einstellungen

sudo chmod +x /home/pi/iceweasel.sh

Fernwartung

Um kleinere Arbeiten an den Raspberrys zu erledigen, ohne jedes Mal mit der Tastatur und Maus für den Monitoren zu stehen, können diese auch über einen Rechner im selben Netzwerk ferngesteuert werden.

Leider habe ich nur eine simple Lösung für Linux-Rechner im Angebot, da ich nur damit arbeite. Für Windows ist es etwas schwieriger, lässt sich aber bestimmt auch lösen.

Raspberry Pi

Auf dem Raspberry müssen wir für die Möglichkeit aus der Ferne etwas zu steuern (remote control) zunächst zwei kleine Programme installieren:

sudo apt-get install xrdp x11vnc

und anschließend etwas vorbereiten:

x11vnc -storepasswd
sudo nano /etc/xrdp/xrdp.ini

Xrdp.ini bekommt dann ein abgepasstes Profil:

[xrdp1]
name=Aktiver Nutzer
lib=libvnc.so
username=pi
password=ask
ip=ask
port=5900

Steuernder PC

Zunächst müssen wir die IP des Raspberry herausfinden. Das geht mit Linux oder Mac sehr einfach. Der folgender Befehl auf der Konsole gibt nur Rasperrys wieder:

sudo nmap -sP 192.168.203.0/24 | awk ‚/^Nmap/{ip=$NF}/B8:27:EB/{print ip}‘

Remote control starten

Zuächst müssen wir uns auf der Konsole über die IP Adresse anmelden:

ssh pi@192.168.203.XXX

Anschließendstarten wir einen Prozess der uns die graphische (Fern-)Steuerung ermöglicht und bis zu einem Neustart im Hintergrund läuft:

x11vnc

Zuletzt muss die IP-Adresse lediglich noch in ein Programm eingetragen werden, um auf den Pi zuzugreifen (unter Ubuntu hat sich das vorinstallierte „Zugriff auf entfernte Arbeitsflächen“ sehr bewährt)

Grundlagen Raspberry Pi

Auf die Installation eines Raspbian auf einem Raspberry Pi werde ich hier nicht mehr eingehen, sondern verweise auf gute Anleitungen auf Raspberrypi.org (original aber in englisch) oder bei Jan Karres (etwas älter, aber immer noch gut).

Raspberry Pi -Anschaffung

Der Raspberry Pi ist ein sehr junges Projekt aus Großbritannien, um sehr preisgünstig einen Ein-Chip-Rechner herzustellen. Die Kosten für den Rechner samt Gehäuse und SD-karte liegen bei ca. 50 €!

  1. Raspberry Pi 3 (46,90 €)
  2. Micro SD Karte (8 gb) (6,99 €)
  3. Gehäuse (4,85 €) Gesamt (58,74 €)

Ebenfalls notwendig sind folgende Kleinteile, die aber meist von der Schule bekommen werden können:

  • ein HDMI-Kabel (37 €)
  • eine Zeitschaltuhr (9 €)
  • eine LAN-Dose und eine Steckdose n der Nähe
  • ein USB-Kabel (USB auf Mikro-USB) für die Stromversorg (5,49 €)

Hinweis: ein Ladekabel benötigen wir hier gar nicht, da der Pi an der USB-Buchse des Bildschirms hängt und versorgt wird. Netter Nebeneffekt: Wird der Monitor über die Zeitschaltuhr abgeschaltet, geht auch der Pi aus.

Hinweis: Der Pi 2 ist noch deutlich billiger und erfüllt seine Dienste bei uns ganz wunderbar!.

Hinweis: Mittlerweile gibt es den Rasperry Pi in der 3. Version auch als Komplettpaket (Preis etwa 90 €). Geld spart man nicht und bekommt aber einen bunten Mix an Zubehör…

Anpassen der Darstellung

über den Befehl sudo raspi-config können erneut Grundeinstellungen vorgenommen werden (Anpassen der Sprache, übertakten, ..)

Die besten Bildschirmauflösung für unseren Schülermonitor zeigt der Pi bei 1920×1080 bei 60Hz. Das lässt sich in der config.txt einstellen:

sudo nano /boot/config.txt

Einfach die letzten NOOBS-Einstellungen auskommentieren und folgende Änderungen im mittleren Teil durchführen:

disable_overscan=1
hdmi_group=1
hdmi_mode=16

Hinweis: Alle weiteren Einstellungen für andere Auflösungen unter http://elinux.org/RPiconfig#Video_mode_options

Bildschirmschoner deaktivieren und Maus ausblenden

Anschließend müssen wir 2 Programme installieren, um den Bildschirmschoner zu deaktiveren (xscreensaver) und den Mauszeiger auszublenden (unclutter):

sudo apt-get install xscreensaver unclutter

Der Bildschirmschoner lässt sich anschließend auf der graphischen Oberfläche über das Programm xscreensaver (zu finden unter Zubehör) deaktivieren.

Papier vs. Strom

Neue Projekte in Schule sind immer mit Widerständen verbunden! Auch wenn das Projekt an unserer Schule seit einem halben Jahr sehr robust läuft, waren doch viele Vorbehalte zu berücksichtigen. Auf einige Dazu möchte im folgenden Eingehen:

Wer soll denn die Stromkosten bezahlen?

Die Stromzufuhr für Raspberry und Bildschirm werden über eine digitale Zeitschaltuhr geregelt, die automatisch zwischen Sommer- und Winterzeit wechselt (Laufzeiten: 7:00 – 17:00 und nur unter der Woche).

Der Stromverbrauch eines Raspberry Pi erfolgt über ein handelsübliches Ladegerät für Smartphones (5 V, Micro-USB-Anschluss). Dabei bezieht der Raspberry Pi etwa 400 mA. Dies bedeutet (5 x 0,4) etwa 2 W.  Das bedeutet für den Pi 20 Wh, also 0,02 kWh am Tag. Auf das Jahr gesehen sind das (bei 200 Schultagen) 4,0 kWh. Es ergeben sich also etwa Stromosten im Jahr von 1,00 € für einen Raspberry Pi (25 cent/kWh). Unser Monitor (mit der Energieeffizienzklasse A+) benötigt in etwa 65 W also 650Wh, also 0,65kWh am Tag. Bei 200 Schultagen entspricht das 130 kWh, die mit 32,50€ pro Jahr zu Buche schlagen. Bei 4 Monitoren mit jeweils 4 Raspberry Pis entpricht das jährlichen Stromkosten von 134,00 €.

Bei durchschnittlich 4 Seiten (2 für den aktuellen und 2 für den Folgetag) an 4 Orten, bei durchschnittlich 3 Aktualisierungen pro Tag sind das bei 200 Schultagen bis zu 9600 Blätter in einem Schuljahr (200*3*4*4). Ein Ausdruck mit dem S/W-Laserdrucker kostet durchschnittlich 2,5 cent/Blatt. (ohne Anschaffungskosten des Druckers, aber mit Verbrauchsmaterial). Die Kosten für Papier liegen in der Schule bei etwa 1,5 cent/Blatt. (entsprechend hohe Kaufzahlen vorausgesetzt). Bei einem Gesamtpreis pro Blatt von etwa 4 cent und 9600 Blatt Papier kommen insgesamt jährliche Druckkosten von etwa 384,00 € hinzu (9600*0,04).

Das würde an unserer Schule einer jährlichen Einsparung von 250€ entsprechen (134-384)! Das überzeugt jeden Schulleiter…

Was wenn das System sich ständig aufhängt oder ausfällt? Was ist mir Viren?

Bei unserem Projekt stehen sowohl die Software (Linux) als auch die Hardware unter einer Open-Source-Lizenez. Das zugrunde liegende Linux als Betriebssystem hat sich auf fast 80% aller Server als sehr sicher und kaum Fehleranfällig erweisen. Beide Komponenten sind durch jahrelangen Einsatz und eine breite Community extrem robust und sollten im Schulalltag keine Probleme bereiten.

Der Erfolg gibt dem Projekt bisher Recht. Bis Oktober 2015 wurden mehr als 7 Millionen Geräte verkauft. Die Entwickler des Raspberry Pi wurden mit mehreren Innovationspreisen ausgezeichnet.

Und wenn uns die Darstellung nicht gefällt?

Tatsächlich finde ich die Darstellung der digitalen schwarzen Bretter sehr überladen und wenig übersichtlich! Viele Gadgets und Fotorahmen tragen wenig dazu bei, wesentliche Informationen schnell zu finden!

Aufgrund der Möglichkeit bei einem eigenen System die Darstellung beliebig anzupassen würden wir als Schule uns nicht in die Hände eines Anbieters mit begrenzten Möglichkeiten begeben, sondern könnten unsere Software selbst frei modifizieren. Der Raspberry bietet zudem bei vielfältige Möglichkeiten auf zukünftige Anforderungen zu reagieren und könnte bei Bedarf auch kurzfristig andere Informationen anzeigen.

Wie hoch liegen denn die Anschaffungskosten?

Der Raspberry Pi ist ein sehr junges Projekt aus Großbritannien, um sehr preisgünstig einen Ein-Chip-Rechner herzustellen. Dabei stand neben der kompakten Bauform vor allem die sparsame Energieversorgung im Zentrum der Entwicklung. Der Raspberry hat nur die wichtigsten Anschlüsse (LAN, 4x USB, HDMI, Audio, Strom) sowie mehrere PINS um offene Hardware ansteuern zu können. Die Kosten für einen Rechner liegen bei ca. 60 € (Stand: März 2016)!

  • Raspberry Pi 2 (38,03 €)
  • Ladegerät (6,99 €)
  • Micro SD Karte (6,99 €)
  • Gehäuse (4,70€) Gesamt (56,71 €)