Raspberry Pi Zero mit LCD Display als Kiosk System

Aus Laub-Home Wiki
Raspberry Pi Zero mit LCD Display

Möchte man ein kleines Display im Raum stehen haben, auf dem eine Webseite mit Informationen angezeigt wird, kann man sich dies sehr einfach selbst bauen. Alles was man dafür benötigt ist ein Raspberry Pi Zero und ein DPI LCD Display, welches man einfach auf den GPIO Header anschließt. Dann kann man auf dem Raspberry Pi Zero einen Browser im Kioskmode starten und schon hat man eine kleine Anzeigetafel. Ich verwende diese Display um Informationen über openHAB's HABPanel anzuzeigen und kann so im Raum die Uhrzeit, Temperatur und andere Interessante Dinge sehen.

Hardware

Ihr benötigt die folgende Hardware für das Setup:

Vorbereitung

Als erstes installieren wir die SD Karte mit Raspberry Pi OS. Folgt einfach der Raspberry Pi OS Installation Anleitung. Aktiviert WLAN und SSH und nutzt die Script gesteuerte Konfiguration im Anschluss.


Nachdem der Raspberry Pi grund installiert ist, fahrt ihn herunter

halt

zieht den Micro USB Strom Adapter ab und schließt das LCD Display an.

Der Pi zero wird dann einfach auf das RGB LCD HAT gesteckt.

Zum Schluss kann das Ganze noch in etwa so aufgebaut werden:


Dann könnt ihr das Micro USB Power Kabel wieder anschließen und den Pi starten. Das Display sollte nun schon hell leuchten, aber noch keinen Inhalt anzeigen.

Installation und Konfiguration

Als erstes konfigurieren wir das Display in der /boot/config.txt dafür kopiert einfach die folgenden Zeilen startet diese in eurer Shell.

tee -a /boot/config.txt <<EOF

# Enable LCD Display
dtoverlay=dpi24
enable_dpi_lcd=1
display_default_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=0x6f005
hdmi_timings=800 0 40 48 88 480 0 13 3 32 0 0 0 60 0 32000000 6
disable_overscan=1
EOF

sed -e '/dtoverlay=vc4-kms-v3d/s/^/#/g' -i /boot/config.txt

Nun installieren wir die Desktop Umgebung openbox und Chromium als Browser:

apt install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox chromium-browser rpi-chromium-mods libgles2-mesa libdbus-glib-1-2 libevent-2.1-7 libvpx6 libgtk-3-common

Und konfigurieren zum Schluss den Browser Kiosk Mode. Ändert einfach hinter WEBURL die von euch gewünschte URL. Einfach alles in der Shell abfeuern.

## Webseite, die im Kiosk browser geöffnet werden soll.
WEBURL=http://yourwebapp/

## Dann ab hier einfach copy and paste
tee -a /etc/xdg/openbox/autostart <<EOF
# Disable any form of screen saver / screen blanking / power management
xset s off
xset s noblank
xset -dpms

# Allow quitting the X server with CTRL-ATL-Backspace
setxkbmap -option terminate:ctrl_alt_bksp

# Start Chromium in kiosk mode
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/'Local State'
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/; s/"exit_type":"[^"]\+"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences
chromium-browser '$WEBURL' --incognito --kiosk --disable-component-update --check-for-update-interval=31536000 --ignore-gpu-blacklist --enable-gpu-rasterization --enable-native-gpu-memory-buffers --disable-gpu-compositing
EOF

echo -e "[[ -z \$DISPLAY && \$XDG_VTNR -eq 1 ]] && startx -- -nocursor" | tee -a /home/pi/.bash_profile
chown pi.pi /home/pi/.bash_profile

Nun müssen wir noch den Autologin aktivieren:

raspi-config

Hier unter System Options --> Boot / Auto Login --> Console Autologin aktivieren Nun können wir das System einfach Neustarten und sollten dann nach dem reboot direkt den Browser im Kiosk Mode mit der eingerichteten Webseite sehen. Solltet ihr die Webseite ändern wollen, macht dies einfach in der /etc/xdg/openbox/autostart Datei.

reboot

Wenn ihr alles richtig gemacht habt, sollte dann der Pi hochfahren und auf dem Display die von euch gewünschte Webseite angezeigt werden:

Optional: Browser DarkMode

Verwendet ihr zum Beispiel bei openHAB den DarkMode lieber als den normalen, dann müsst ihr eurem Browser sagen, das er DarkMode präferieren soll:

Optional: Tuning

Display GPIO Pin Belegung

die Gelben Felder sind vom Display belegt und können nicht durch zum Beispiel das anschließen eines Sensors benutzt werden:

Quellen