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

 

 

Raspberry PI für Openhab 2 mit HabPanel

Wer Openhab 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

Please publish modules in offcanvas position.