Raspberry mit 7Zoll Display im Kioskmodus Starten
Der Raspberry Pi kann viele Funktionen erfüllen. Er wird mit Mopidy oder Squeezelight/Squeezebox zum Musikplayer. Ich habe mich nach ersten Versuchen Volumio und Mopidy/MPD, für Squeezelight/Squeezebox/LMS entschieden. Diese Lösung ist multiroom fähig. Die Software bzw. der Hersteller dieser Lösung wurde von Logitech aufgekauft und dann später als OpenSource zur Verfügung gestellt. Internet Radio, Spotify, lokale MP3 Files etc. können so bequem abgespielt werden. Die Steuerung kann z.B. per Browser oder auch per App (z.B. iPeng) erfolgen.
Im Smarthome kann über OpenHAB auch eine Steuerung erfolgen. Das ist hier aber nicht das Thema.
Hat man ein Touch Display für den PI, kann die Steuerung direkt über das Touch-Display erfolgen. Wie man das einrichtet, will ich hier in diesem Beitrag beschreiben. Ziel ist es, das nach einschalten des Gerätes, eine Oberfläche automatische startet, welche eine Eingabe bzw. Steuerung über das Display mit den Fingern ermöglicht.
Ich hab da auch mal mit einer Fritz!PowerLine geschaut, was da für ein Verbrauch anliegt. Die ca. 6 Watt bei aktiven Display und die fast 3 Watt wenn das Display aus ist. Ich denke das ist für einen Dauerbetrieb (wenn nötig) auch noch im Rahmen.
Zunächst lade ich das Betriebssystem NOOBS_v3.2.0 light. Da wird dann nur die "lite" Version über das Internet installiert. Also sowenig wie nötig an Software installiert.
Da nach dem ersten Starten wird SSH aktiviert, die Einstellung für die Sprache über raspi-config eingestellt und so etwas wie "set -o vi" ins /etc/profile geschrieben. Also etwas was mir ein wenig die Arbeit erleichtert auf der "UNIX console".
raspi-config
apt-get update
apt-get upgrade
apt-get install dnsutils
Dann gehts los und ich arbeite die folgenden Befehlen und Einstellungen ab.
# Install X11 LXDE .... das dauert dann auch gern mal ne Stunde :-/
# https://www.therryvanneerven.nl/how-to-install-raspbian-jessie-on-an-old-raspberry-pi.html
sudo apt-get install -y xinit lxde-core lxterminal lxappearance lightdm xserver-xorg xserver-xorg-video-fbdev
reboot
# Keyboard
# http://ozzmaker.com/virtual-keyboard-for-the-raspberry-pi/
sudo apt-get install -y xinput xinput-calibrator
# Touchscreen
# https://rataks.com/blog/raspberry-pi-touchscreen-in-moode-with-chromium.html
apt-get install -y xserver-xorg-legacy xorg
# 7" Display howto:
# https://maker-tutorials.com/raspberry-pi-touchscreen-installieren-und-anschliessen-tipps-tricks/
# https://raspberry.tips/raspberrypi-tutorials/raspberry-pi-touch-display-installieren-und-einrichten
sudo apt-get install -y florence at-spi2-core matchbox-keyboard unclutter lsb-release chromium-browser
Jetzt wird die grafische Oberfläche installiert
sudo sed -i "s/allowed_users=console/allowed_users=anybody/" /etc/X11/Xwrapper.config
sudo wget https://goo.gl/NEqFRp -O /opt/start-gui
chmod +x /opt/start-gui
sudo wget https://goo.gl/bTB4Vv -O /lib/systemd/system/start-gui.service
Der Start der Oberfläche zur Steuerung des Squeezebox Client nach dem Booten wird durch folgenden Aufruf erledigt:
root@display:~ # cat /opt/start-gui
#!/bin/bash
/usr/bin/xinit /usr/local/share/triode-jivelite/bin/jivelite
Die Konfigurationsdatei für das Stück Software für den Autostart sieht wo aus:
root@display:~ # cat /lib/systemd/system/start-gui.service
[Unit]
Description=Start Chromium GUI
After=nginx.service php5-fpm.service mpd.service
[Service]
Type=simple
ExecStart=/opt/start-gui
User=pi
[Install]
WantedBy=multi-user.target
Den Service muss man dann noch einrichten:systemctl enable start-gui
Für den Autostart wird u.a. ein Script benötigt, welches nach Login die grafische Oberfläche start. Dabei muss dann wiederum ein "Programm" gestartet werden, welches für die Steuerung genutzt werden kann. Was gibt es besseres als einen Browser (chromium-browser) der auf eine WebSite (mopidy) zugreift. Hierzu das folgende Scipt /opt/start-gui
#!/bin/bash
/usr/bin/xinit /usr/bin/chromium-browser --start-maximized --incognito --single-process --process-per-site --disable-sync-preferences --no-startup-window --kiosk --touch-events --disable-touch-drag-drop --enable-touchview --enable-pinch --window-size=800,480 --windowposition=0,0 --disable-session-crashed-bubble --disable-infobars --no-first-run --app=http://localhost:6680/musicbox_webclient/index.html#home --nocursor
Alternativ hier der Aufruf für JiveLite eine Squeezelite Benutzeroberfläche für Linux
#!/bin/bash
/usr/bin/xinit /opt/jivelite/bin/jivelite.sh
Mit dem Befehl raspi-conf wird die Konfiguration des Systems so eingestellt, das automatisch der Benutzer "pi" sich anmeldet.
Dann muss noch der "Squeeze..." Client unter Linux installiert werden. Ich nehme dazu den Client JiveLite
sudo apt-get install git libsdl1.2-dev libsdl-ttf2.0-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libexpat1-dev
Clone luajit from github and compile:
cd /usr/local/src
git clone http://luajit.org/git/luajit-2.0.git
cd luajit-2.0
make
sudo make install
sudo ldconfig
Clone JiveLite from github and compile:
cd /usr/local/src
git clone https://github.com/ralph-irving/jivelite
cd jivelite
make
cd ..
sudo mv ./jivelite /opt
Zum Schluss noch der Tipp mit dem Screensaver über ein einfaches Script "jivelite.sh", welches dann zum Aufruf kommt im "start-gui.sh" Script.
#!/bin/bash
export SDL_VIDEO_ALLOW_SCREENSAVER=1
/opt/jivelite/bin/jivelite
Raspberry PI für Openhab 2 mit HabPannel
Wer Openhab 2 mit HabPanel kennt, möchte vielleicht in seiner Wohnung ohne PC, Handy oder Tablet die Steuerung über Openhab bedienen. Das funktioniert erstaunlich gut. Wie das aussehen kann, zeigen ein paar Bilder. Das letzte Bild zeigt den Verbrauch. Bei ca 3 Watt wenn der Bildschirm aus ist. Bei ca. 6 Watt wenn der Bildschirm an ist.
Die Kosten (Stand Jan 2018) für das ganze betragen ca. 140,- € (PI Bundle ca. 50,-€ , Gehäuse ca. 20,-€ und Display ca. 70,-€)
Wie man das installiert, wird grundsätzlich hier beschrieben.
GPIO Schnittstelle
Ein wenig habe ich auch mit den GPIO Möglichkeiten auf der Raspberry PI gespielt. U.a. habe ich für eine "Lösung" einen Taster in das Gehäuse eingebaut, der dann ein Reboot durchführt. Reboot ist nicht zu vergleichen mit einem "Aus/Ein" Schalten. Ich hab die Erfahrung gemacht, das hin und wieder eine PI nicht bootet, nach dem ich hart die Kiste "Stromlos" gemacht hatte.
Keine Frage, es gibt noch viele andere Dinge, welche über die GPIO Schnittstelle gemacht werden kann. Hier ein paar Links, die ich dazu gefunden und genutzt habe.
Python Install
https://sourceforge.net/p/raspberry-gpio-python/wiki/install/
Wiring Pi
http://www.raspberrypi-tutorials.de/software/wiringpi-auf-dem-raspberry-pi-installieren.html
Einfacher Taster
https://raspuino.wordpress.com/2014/03/26/raspberry-pi-button-input-taster/
Matrix Tastatur anschließen
https://tutorials-raspberrypi.de/raspberry-pi-keypad-tastatur/
GPIO Test
https://www.raspberrypi.org/forums/viewtopic.php?t=167609
Elektronik Kompendium
https://www.elektronik-kompendium.de/sites/raspberry-pi/2006051.htm
Layout
https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/README.md
C Programmierung
https://learn.sparkfun.com/tutorials/raspberry-gpio/c-wiringpi-api
http://elinux.org/RPi_GPIO_Code_Samples
http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_GPIO_C.html