Mit Raspberry Pi 3 den Vertretungsplan anzeigen
Vorbemerkung
Ähnlich zu dieser Anleitung für den Raspberry Pi 3 sollte es auch mit den Vorgängermodellen klappen. Der große Unterschied zwischen diesen ist, dass der Raspberry Pi 3 bereits schon mit WLAN ausgestattet ist, so dass sich dieser dadurch noch besser für den Einsatz in der Schule eignet.
Insgesamt lässt sich hiermit eine Anzeigenlösung für Vertretungspläne in Schulen für unter 100 € (ohne Monitor) herstellen. Dank dem HDMI-Ausgang des Raspberry Pi können aber sowohl Monitore, als auch Fernseher angeschlossen werden. Die Kosten der Anzeige kommen noch hinzu, sind jedoch sehr von der benötigten Größe abhängig.
Die folgende Anleitung erfolgt ohne Gewähr. Einige Grundkenntnisse im Umgang mit einem Raspberry Pi oder auch einem Linux/Unix-Betriebssystem können im Fehlerfall nicht schaden. Es sollte jedoch auch klappen, wenn man strikt dieser Anleitung folgt.
Einkauf
- Raspberry 3 mit NOOB-SD, Gehäuse, Kühlkörper sowie passendem Ladegerät (bspw. bei Amazon (als 3B+ mit besserem LAN und besserem WLAN), wobei man mit einem Gehäuse mit aktivem Kühler die Temperatur zwischen 40-50° C halten kann)
Drei Wege
- Auf dem Raspberry Pi "Windows 10 IoT" installieren, Browser installieren und über das Schulportal dieses Gerät als Anzeigemonitor hinzufügen und den Browser zum Start des Gerätes im Vollbildmodus mit der Startseite https://start.schulportal.hessen.de/vertretungsplan.php?a=view&i=[Schulnummer] einrichten (je nach Browser unterschiedlich)
- Bei einigen Grundkenntnisse in Linux/Unix mit Hilfe der unteren Anleitung.
- Oder mit Hilfe von Raspberry Digital Signage. Die Anzeige muss dann über über das Schulportal dieses Gerät als Anzeigemonitor hinzufügen und die Startseite https://start.schulportal.hessen.de/vertretungsplan.php?a=view&i=[Schulnummer] einrichten.
Vorarbeiten
- Raspberry Pi mit Kühlkörpern bekleben, in das Gehäuse stecken
- mit einem Monitor verkabeln und starten (einfach Netzteil anstecken)
- Bei der Frage nach dem Betriebssystem das OS Raspbian auswählen
- Anschließend nach https://www.elektronik-kompendium.de/sites/raspberry-pi/1906291.htm
- Hostname ändern (falls mehr als ein Raspberry Pi im Netz gewünscht)
- SSH-Schlüssel neu erstellen (nach Anleitung durchführen)
- WLAN-Zugang einrichten (einfach oben rechts auf die gefundenen WLANs klicken) oder ggf. Netzwerk-Konfiguration (nach Anleitung durchführen)
- Software-Aktualisierung durchführen (nach Anleitung durchführen)
Fernwartung (optional)
Um ständige Wechsel zwischen PCs zu vermeiden, bietet es sich an mit Hilfe des Teamviewer Hosts für Raspian zu arbeiten. Dieses findet sich unter https://www.teamviewer.com/de/download/linux/ (sehr weit unten). Einfach über den Browser Chromium herunterladen und starten. Es wird automatisch installiert und legt sich oben rechts in die Leiste. Nach Klick darauf werden die Zugangsdaten angezeigt, die man benötigt, um von anderen PCs aus mit Hilfe von TeamViewer darauf zuzugreifen.
Ändern Sie es so ab, dass Sie bei den Einstellungen ein persönliches Kennwort vergeben.
Chromium automatisch starten
- Der Browser Chromium wird mitgeliefert. Diesen wollen wir im Vollbildmodus starten lassen. Dazu benötigen wir das Kommando (bitte [Schulnummer] durch die im Schulportal genutzte Schulnummer ersetzen):
chromium-browser --no-default-browser-check --no-first-run --disable-infobars --disable-session-crashed-bubble --overscroll-history-navigation=0 --kiosk --app=https://start.schulportal.hessen.de/vertretungsplan.php?a=view&i=[Schulnummer]
(Erklärung der Parameter: Kein Test auf Standard-Browser, kein Test auf ersten Start, ohne Bedienelemente, kein Hinweis nach Absturz des Browser (bspw. nach Stromausfall), verweigern des Blätterns in der History per Touch, starten im Kioskmodus, Startseite) - Damit Chromium automatisch beim Start des Raspberry startet, diesen als Autostart nach https://www.small-blog.de/raspberry-pi-autostart-von-programmen/ einrichten. Dabei das eben angegebene Kommando hinter "Exec=" als die zu startende Application einbinden.
- Chromium lässt sich so gestartet nur mit Alt-F4 beenden.
Anmerkung (Oktober 2023):
Bei allen neu installierten oder geupgradeten Raspis (Pi3 und Pi4) kann es im Kiosk-Modus in Verbindung mit dem Chromium-Browser zu einem Crash kommen.
Hintergrund und Lösung:
Standardmäßig startet ein frisch installierter Raspberry mit Raspi-OS nun mit Wayland, welches sich via raspi-config > Advanced Options > A6 Wayland > w1 X11 wieder auf den X-Server umstellen lässt. Danach gibt es keinen Crash mehr.
Bildschirm dauerhaft an
Bei aktuellen Versionen schaltet sich der Monitor nach 10 Minuten aus. Das möchten wir natürlich nicht. Um den Bildschirm dauerhaft anzeigen zu können, nach https://www.geeks3d.com/hacklab/20160108/how-to-disable-the-blank-screen-on-raspberry-pi-raspbian/ bei Abschnitt "2 – Disabling the blank screen forever" vorgehen.
Bildschirmschoner deaktivieren und Maus ausblenden
Anschließend installieren:
- um den Bildschirmschoner zu deaktiveren (xscreensaver) und
- um 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 (in Kommandozeile eintippen) deaktivieren.
Automatische Ausschalten des Monitors
Damit der Monitor nicht nachts und am Wochenende durchläuft, schalten wir den HDMI-Port zeitgesteuert ab (der Stromverbrauch des Raspberry ist aus unserer Sicht vernachlässigbar).
Mit sudo crontab -e erstellen wir Cronjobs. Bis an das Ende der Datei scrollen und dort hinzufügen:
15 17 * * 1-5 DISPLAY=:0 xset dpms force off
0 7 * * 1-5 DISPLAY=:0 xset dpms force on
Die erste Zeile schaltet den HDMI-Port an den Wochentage Mo-Fr (1-5) um 17 Uhr und 10 Minuten aus. Die zweite Zeile schaltet ihn wieder morgens um 7:00 Uhr an.
Monitor mit Tastendruck wieder einschalten (oder zusätzlich ausschalten)
Verschiedene Situationen bedingen, dass man den Raspberry auch außerhalb des automatischen Ein- und Ausschaltens benötigt (oder eben nicht benötigt). Dazu kann man noch Tastaturkürzel hinterlegen, mit denen man den HDMI-Ausgang wieder aktiviert bzw. deaktiviert.
Vorzugehen ist dabei nach dieser Anleitung mit kleinen Änderungen:
- Die Datei lautet mittlerweile lxde-pi-rc.xml, wodurch das erste Kommando lautet:
sudo nano ~/.config/openbox/lxde-pi-rc.xml - Dann scrollen bis zur <keyboard>...</keyboard>-Sektion und dort (innerhalb der Sektion) einfügen:
<!-- HDMI enable/disable -->
<keybind key="W-F9">
<action name="Execute">
<command>vcgencmd display_power 1</command>
</action>
</keybind>
<keybind key="W-F10">
<action name="Execute">
<command>vcgencmd display_power 0</command>
</action>
</keybind> - Mit STRG+O speichern und mit STRG+X beenden.
- Anschließend per sudo shutdown -r now den Raspberry neu starten.
- Nach dem Neustart sollte per rechter Windows-Taste+F9 bzw. Windows-Taste+F10 der HDMI-Ausgang ein- bzw. ausgeschaltet werden können.
Raspberry auch Ausschalten (optional)
Natürlich kann man auch den Raspberry ausschalten - man muss jedoch mit Hilfe einer Zeitschaltuhr auch später den Strom erst wieder hinzugeben. Dazu kann man ebenso mit crontab -e einen Cronjob erstellen, der den Rechner um 17:15 Uhr ausschaltet.
15 17 * * * /sbin/shutdown –P now
Die Zeitschaltuhr sollte einige Minuten später den Strom kappen, damit der Raspberry auf jeden Fall richtig heruntergefahren ist.
Raspberry Neustarten
Natürlich kann man auch den Raspberry neustarten - man muss jedoch vorher sicherheitshalber den Chromium schließen. Dazu kann man ebenso mit crontab -e einen Cronjob erstellen, der den Rechner um 17:00 Uhr neustartet.
59 16 * * * pkill -o chromium
00 17 * * * /sbin/shutdown -r now
Die Zeitschaltuhr sollte einige Minuten später den Strom kappen, damit der Raspberry auf jeden Fall richtig heruntergefahren ist.
Richtige Uhrzeit
Da der Raspberry ohne interne Batterie läuft, müssen wir die Uhrzeit selbstständig aktualisieren. Das passiert (meist) selbstständig. Wichtig ist es dabei die richtigen Zeitzonen-Einstellungen gesetzt zu haben.
Führen Sie folgenden Befehl aus und wählen erst "Europe" und anschließend "Berlin" aus:
sudo dpkg-reconfigure tzdata
Read-Only-Raspberry
Man kann mit wenig Aufwand den Raspberry noch in einen Read-Only-Zustand bringen, so dass keine Daten auf der SD-Karte verändert werden und diese durch weniger Schreibzugriffe "länger" leben sollte, aber auch um bspw. nach einem unbeabsichtigtem Herunterfahren auf jeden Fall mit einem funktionierenden System wieder starten zu können. Dazu muss der Raspberry vorher komplett eingerichtet und konfiguriert sein.
Es gibt dazu zahlreiche Anleitungen und Varianten, wie der Raspberry in den Read-Only-Zustand versetzt werden kann. Beispielsweise unter https://github.com/jacobalberty/root-ro findet sich in der Datei "root-ro" im Abschnitt "Install" eine entsprechende Anleitung.