Raspberry Pi im Kioskmodus mit HD-Camera und Touchscreen
Raspbian mit Minimal Desktop installieren
Pi aktualisieren:
sudo apt-get update
sudo apt-get upgrade
Installation von xdtool und unclutter.
xdotool: Dieses Tool ermöglicht es Bash-Skripten, Tastendrücke auszuführen
unclutter: Ermöglicht es den Mauszeiger zu verstecken.
sudo apt-get install xdotool unclutter sed chromium-browser
Raspberry Pi Autologin konfigurieren
sudo raspi-config
Im Tool folgende Schritte ausführen:
3 Boot Options -> B1 Desktop / CLI -> B4 Desktop Autologin
Kiosk-Script erstellen
mkdir kiosk cd kiosk nano kiosk.sh
#!/bin/bash xset s noblank xset s off xset -dpms unclutter -idle 1.5 -root & sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/pi/.config/chromium/Default/Preferences sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/pi/.config/chromium/Default/Preferences /usr/bin/chromium-browser --noerrdialogs --disable-infobars --kiosk http://localhost & while true; do xdotool keydown ctrl+Tab; xdotool keyup ctrl+Tab; sleep 10 done
Jetzt noch nen kleinen Dienst schreiben, der automatisch startet:
sudo nano /lib/systemd/system/kiosk.service
geht auch mit der crontab
@reboot /bin/bash /home/pi/kiosk/kiosk.sh
Aber ’n Service is schon sauberer also:
Display herausfinden:
Zuerst kurz auslesen, wo das Display hängt
echo $DISPLAY
neuen Service schreiben:
sudo nano /lib/systemd/system/kiosk.service
[Unit] Description=Chromium Kiosk Wants=graphical.target After=graphical.target [Service] Environment=DISPLAY=:11.0 #hier echo $DISPLAY eintragen Environment=XAUTHORITY=/home/pi/.Xauthority Type=simple ExecStart=/bin/bash /home/pi/kiosk/kiosk.sh Restart=on-abort User=pi Group=pi [Install] WantedBy=graphical.target
Den Service einschalten
sudo systemctl enable kiosk.service
sudo reboot
Jetzt brauchen wir noch das Display:
cd ~
mkdir display
cd display
wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/$
chmod +x adafruit-pitft.sh
sudo ./adafruit-pitft.sh
Die Ausgabe und die nötigen Eingaben.
This script downloads and installs PiTFT Support using userspace touch controls and a DTO for display drawing. one of several configuration files. Run time of up to 5 minutes. Reboot required! Select configuration: PiTFT 2.4", 2.8" or 3.2" resistive (240x320) PiTFT 2.0" no touch (240x320) PiTFT 2.2" no touch (240x320) PiTFT 2.8" capacitive touch (240x320) PiTFT 3.5" resistive touch (320x480) PiTFT Mini 1.3" or 1.54" display (240x240) MiniPiTFT 1.14" display (240x135) - WARNING! CUTTING EDGE! WILL UPGRADE YOUR KERNEL TO LATEST Uninstall PiTFT Quit without installing SELECT 1-9: 4 Select rotation: 90 degrees (landscape) 180 degrees (portait) 270 degrees (landscape) 0 degrees (portait) SELECT 1-4: 1 [PITFT] Checking init system… Found systemd /boot is mounted [PITFT] System update Updating apt indexes… … WARNING: apt does not have a stable CLI interface. Use with caution in scripts. …… Reading package lists… ……… [PITFT] Installing Python libraries & Software… Installing Pre-requisite Software…This may take a few minutes! [PITFT] Updating /boot/config.txt… Already have an adafruit-pitft-helper section in /boot/config.txt. Removing old section… [PITFT] Updating SysFS rules for Touchscreen… [PITFT] Updating TSLib default calibration… Would you like the console to appear on the PiTFT display? [y/n] n [PITFT] Making sure console doesn't use PiTFT Removing console fbcon map from /boot/cmdline.txt Screen blanking time reset to 10 minutes Would you like the HDMI display to mirror to the PiTFT display? [y/n] y [PITFT] Adding FBCP support… Installing cmake… W: --force-yes ist veraltet, verwenden Sie stattdessen eine der Optionen, die mit --allow beginnen. Downloading rpi-fbcp… Uncompressing rpi-fbcp… Building rpi-fbcp… Installing rpi-fbcp… Remove fbcp from /etc/rc.local, if it's there… We have systemd, so install fbcp systemd unit… Created symlink /etc/systemd/system/multi-user.target.wants/fbcp.service → /etc/systemd/system/fbcp.service. Setting raspi-config to boot to desktop w/o login… Removed /etc/systemd/system/default.target. Created symlink /etc/systemd/system/default.target → /lib/systemd/system/graphical.target. Configuring boot/config.txt for forced HDMI Using x2 resolution [PITFT] Updating X11 default calibration… [PITFT] Success! Settings take effect on next boot. REBOOT NOW? [y/N] y
Soweit so gut. Jetzt hoch kurz ne Webseite für die Kamera bauen.
Mit dem Layout Builder von https://www.layoutit.com/ geht das sehr fix und angenehm. Immer daran denken große Knöpfe zu bauen für den kleinen Touchscreen.
So, jetzt brauchen wir noch das Bild um die Kamera scharf stellen zu können. Zum Glück gibt es unter https://picamera.readthedocs.io/en/latest/recipes2.html#web-streaming einen Referenzcode den wir anpassen können.
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!