In diesem Projekt geht es darum Bilder die sich auf einem Webserver befinden auf einem Monitor oder Fernseher über HDMI als Slideshow anzuzeigen. Die verwendeten Komponenten findet ihr in der Beschreibung. Später soll noch ein Ambilight zu diesem Projekt hinzu kommen.
Schritte:
- Webserver starten und Script anlegen
- Raspberry Software installieren und konfigurieren
- Vollbild aktiviren
- Monitor oder Fernseher anstecken
Benötigte Hardware:
Steuereinheit: Raspberry Pi 3
Monitor: LG Flatron IPS 235 Auflösung 1920 x 1080 oder SONY Fernseher
NAS: QNAP 470, kann auch jedes andere NAS oder freigegebene Ordner sein.
HDMI Kabel voll belegt
Benötigte Software:
Rasbian Scretch mit Chromium Browser das hier bereits vorinstalliert ist
Aufbau:
Server -> Netzwerk -> Raspberry Photoframe -> HDMI Kabel -> Monitor oder Fernseher
Installation:
Rasbian Scretch Betriebssystem auf SD Karte kopieren (Hierzu gibt es diverse Anleitungen). Nicht vergessen, eine Datei mit Namen ssh auf dem Image zu erzeugen um mit Putty via SSH Zugriff zu erhalten.
sudo apt-get update
sudo apt-get upgrade
Root Passwort setzen
Ein Passwort für root setzen. Ist gut für den Zugriff mit WinSCP
Dafür folgendes in sudo nano /etc/ssh/sshd_config ändern
# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
ändern in
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
Neues Passwort setzten mit sudo passwd root
Remote Desktop installieren
sudo apt-get install xrdp (Zugriff via Remote Desktop erhalten)
Energiesparmodus, Bildschirmschoner und Mauszeiger ausgeschaltet
sudo apt-get install x11–xserver–utils
sudo apt-get install uncuttler
Folgendes in sudo nano /etc/X11/xinit/xinitrc ändern
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>Photoframe</title> <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fjquery%2F1.4.4%2Fjquery.min.js%22%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<script>" title="<script>" /> <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%20type%3D%22text%2Fcss%22%3E%20%0A%09%09%23frame1%20%7B%0A%09%09%20%20position%3A%20absolute%3B%0A%09%09%20%20width%3A%201920px%3B%0A%09%09%20%20height%3A%20px%3B%0A%09%09%20%20top%3A%200px%3B%0A%09%09%20%20left%3A%200px%0A%09%09%7D%09%0A%09%09%23frame2%20%7B%0A%09%09%20%20position%3A%20absolute%3B%0A%09%09%20%20width%3A%20250px%3B%0A%09%09%20%20height%3A%20175px%3B%0A%09%09%20%20top%3A%2050px%3B%0A%09%09%20%20left%3A%2050px%0A%09%09%7D%0A%09%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<style>" title="<style>" /> <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20type%3D%22text%2Fjavascript%22%3E%0A%20%20%20%20%2F*%20%3C!%5BCDATA%5B%20*%2F%0A%09%20%20%20%20var%20foo%3Dtrue%3B%0A%0A%20%20%20%20%20%20%20%20function%20refreshContent()%20%7B%0A%09%09%09%0A%09%09%09if%20(foo%3D%3Dtrue)%20%0A%09%09%09%7B%20%20%20%2F*%20Hintergrund%20tauschen%20*%2F%0A%09%09%09%09foo%3Dfalse%3B%0A%09%09%09%09var%20%24image1%20%3D%20%24('img%23pic1')%3B%0A%09%09%09%09var%20%24downloadingImage1%20%3D%20%24(%22%3Cimg%3E%22)%3B%0A%09%09%09%09%24downloadingImage1.load(function()%7B%0A%09%09%09%09%20%20%24image1.attr(%22src%22%2C%20%24(this).attr(%22src%22))%3B%09%0A%09%09%09%09%7D)%3B%0A%09%09%09%09%24downloadingImage1.attr(%22src%22%2C%20%22pframe.php%3Ftime%3D%22%20%2B%20new%20Date()%20)%3B%0A%09%09%09%09%0A%09%09%09%09%24(%22%23pic2%22).fadeOut(2000)%3B%20%20%2F*%20Jetzt%20Vordergrund%20fade%20out%20*%2F%0A%09%09%09%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20else%0A%09%09%09%7B%20%20%20%2F*%20Vordergrund%20tauschen%20*%2F%0A%09%09%09%09foo%3Dtrue%3B%0A%09%09%09%09var%20%24image2%20%3D%20%24('img%23pic2')%3B%0A%09%09%09%09var%20%24downloadingImage2%20%3D%20%24(%22%3Cimg%3E%22)%3B%0A%09%09%09%09%24downloadingImage2.load(function()%7B%0A%09%09%09%09%20%20%24image2.attr(%22src%22%2C%20%24(this).attr(%22src%22))%3B%09%0A%09%09%09%09%7D)%3B%0A%09%09%09%09%24downloadingImage2.attr(%22src%22%2C%20%22pframe.php%3Ftime%3D%22%20%2B%20new%20Date()%20)%3B%0A%09%09%09%0A%09%09%09%09%24(%22%23pic2%22).fadeIn(2000)%3B%20%2F*%20Jetzt%20Vordergrund%20fade%20in%20*%2F%0A%09%09%09%7D%0A%20%20%20%20%20%20%20%20%7D%0A%09%09%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%24(document).ready(function()%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20window.setInterval(%22refreshContent()%22%2C%2030000)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20refreshContent()%3B%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%2F*%20%5D%5D%3E%20*%2F%0A%20%20%20%20%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<script>" title="<script>" /> </head> <body> <div id="frame1" > <img id="pic1" src="" width="1920" height="1080"> </div> <div id="frame1" > <img id="pic2" src="" width="1920" height="1080"> </div> </body> </html>