User Tools

Site Tools


rpi_kiosk

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rpi_kiosk [2016/06/02 14:41]
wbeckett
rpi_kiosk [2021/06/04 02:16]
Line 1: Line 1:
-====== RPI Kiosk ====== 
  
- 
-<​code>​ 
- 
-Upgrade: 
-sudo apt-get update 
- 
-sudo apt-get dist-upgrade 
- 
-</​code>​ 
- 
- 
-[[http://​michaelteeuw.nl/​tagged/​magicmirror | Magic Mirror]] 
- 
-[[http://​www.nytlabs.com/​projects/​mirror.html | Times Mirror]] 
- 
- 
-[[https://​jasperproject.github.io/​ | Jasper Voice Control]] 
- 
-[[http://​www.raspberrypi.org/​downloads/​ | RPI OS Download]] 
- 
- 
-[[http://​stevenhickson.blogspot.com/​2013/​04/​voice-control-on-raspberry-pi.html | RPI voice control]] 
- 
- 
-[[http://​stevenhickson.blogspot.com/​2014/​05/​rpi-video-looper-20.html | Video Looper]] 
- 
- 
-[[https://​thinkrpi.wordpress.com/​2013/​04/​05/​step-3-install-softwares-for-webcam-and-computer-vision/​ | CV]] 
- 
-[[http://​elinux.org/​RPi_USB_Webcams | USB Web Cams]] 
- 
- 
-[[http://​jacobsalmela.com/​raspberry-pi-webcam-using-mjpg-streamer-over-internet/​ | RPI Streamer ]] 
- 
-[[http://​sirlagz.net/​2012/​08/​04/​how-to-stream-a-webcam-from-the-raspberry-pi/​ | Streamming]] 
- 
-[[https://​thinkrpi.wordpress.com/​ | Facial Recog]] 
- 
- 
-[[http://​www.theweather.com/​widget/​ | Weather Widget]] 
- 
-[[http://​openweathermap.org/​city/​5101393 | Morganville,​ NJ]] 
- 
-[[http://​elinux.org/​RPi_Advanced_Setup| Advanced avahi]] 
- 
-[[http://​elinux.org/​RPiconfig | RPI Config ]] 
- 
-[[http://​www.instructables.com/​id/​View-RTMP-Stream-on-Raspberry-Pi/​ | RTMP Stream]] 
- 
-[[http://​raspi.tv/​2012/​get_iplayer-installation-on-raspberry-pi-with-raspbian | Recording a Stream ]] 
- 
-[[http://​stackoverflow.com/​questions/​14087135/​how-would-i-use-rtmpdump-to-download-this-stream | Downloading the stream]] 
- 
-[[http://​www.raspberrypi-spy.co.uk/​2013/​05/​capturing-hd-video-with-the-pi-camera-module/​ | RPI Camera]] 
- 
-[[http://​wiki.elphel.com/​index.php?​title=Using_FFmpeg_with_Video_API | ffmpeg ​ usage]] 
- 
-<​code>​ 
-Webserver 
- 
-To host the interface (which is simply a webpage), i needed an Apache webserver to be running on the Raspberry. Since this is one of the most common uses of the Rasberry, the installation of Apache is very streamlined. 
- 
-First I made sure i was running the latest system software by running the following command: 
- 
-sudo apt-get update && apt-get upgrade -y 
- 
- 
- 
-    sudo apt-get update 
- 
-    sudo apt-get upgrade -y 
- 
-    sudo apt-get dist-upgrade -y 
- 
-    sudo rpi-update 
- 
- 
-No it’s time to actually install apache: 
- 
-sudo apt-get install apache2 apache2-doc apache2-utils 
-Done! That’s all there is. But to make sure I was able to use some PHP scripts on the webserver (more about that later), I also added PHP support: 
- 
-sudo apt-get install libapache2-mod-php5 php5 php-pear php5-xcache 
-Done … again! Reboot, and the webserver is up and running! I dropped a index.php file in the /var/www folder, and pointed my browser to the Raspberry’s ip adress and yes, it worked. 
- 
-Kioskmode 
- 
-Now, to make sure the Raspberry actually shows the webpage I will be using Chromium in kioskmode. Chromium is an open source browser which is able to run on the Raspberry’s OS. 
- 
-Once again, installing was easy: 
- 
-sudo apt-get install chromium x11-xserver-utils unclutter 
- 
-But this time, it needed some extra configuration to disable the  
-screensaver and autoboot in kioskmode. To do this i  
-edited /​etc/​xdg/​lxsession/​LXDE/​autostart and added a # before: 
- 
-/​etc/​xdg/​lxsession/​LXDE-pi 
- 
- ​@xscreensaver -no-splash 
-Additionally,​ I added the following lines: 
- 
-@xset s off 
-@xset -dpms 
-@xset s noblank 
-@chromium --kiosk --incognito http://​localhost 
-This completely disables all screensaving features, and makes sure chromium will start after boot an points to the localhost webserver in full screen mode. 
- 
-Time to save the file and reboot once more to check if it works. Since the Raspberry isn’t worlds fastest computer, it took a while, but eventually the testsite appeared on the 90 degrees rotated screen … Yeah! 
- 
-On to the last part of the project. The development of the interface. 
- 
-</​code>​ 
- 
- 
-<​code>​ 
-# enable raspicam 
-start_x=1 
-gpu_mem=256 
- 
-# magic mirror 
-display_rotate=1 
- 
-display_rotate=0 ​       Normal 
-display_rotate=1 ​        90 degrees 
-display_rotate=2 ​       180 degrees 
-display_rotate=3 ​       270 degrees 
-display_rotate=0x10000 ​ horizontal flip 
-display_rotate=0x20000 ​ vertical flip 
- 
- 
-</​code>​ 
- 
-<​code>​ 
-sudo apt-get install sqlite3 
- 
-sudo apt-get install php5-sqlite 
- 
-</​code>​ 
- 
- 
-<​code>​ 
-Install avahi with the following commands on the Pi: 
- 
-sudo apt-get install avahi-daemon 
- 
-and then on older Debian installs: 
- 
-sudo update-rc.d avahi-daemon defaults 
- 
-or on newer Raspbian installs: 
- 
-sudo insserv avahi-daemon 
- 
-(if in doubt, you're probably on the newer one). 
-Create a configfile for Avahi at /​etc/​avahi/​services/​multiple.service. I did this with the following command: 
- 
-sudo pico /​etc/​avahi/​services/​multiple.service 
- 
-The contents of this file should be something like the following, courtesy of aXon on the Rasperry Pi forums: 
- 
-<?xml version="​1.0"​ standalone='​no'?>​ 
-<​!DOCTYPE service-group SYSTEM "​avahi-service.dtd">​ 
-<​service-group>​ 
-        <name replace-wildcards="​yes">​%h</​name>​ 
-        <​service>​ 
-                <​type>​_device-info._tcp</​type>​ 
-                <​port>​0</​port>​ 
-                <​txt-record>​model=RackMac</​txt-record>​ 
-        </​service>​ 
-        <​service>​ 
-                <​type>​_ssh._tcp</​type>​ 
-                <​port>​22</​port>​ 
-        </​service>​ 
-</​service-group>​ 
- 
-Apply the new configuration with: 
- 
-sudo /​etc/​init.d/​avahi-daemon restart 
- 
-The Pi should now be addressable from other machines as raspberrypi.local,​ for example: 
- 
-ssh pi@raspberrypi.local 
-</​code>​ 
- 
-<​code>​ 
- I managed to stream from my PI to a Web server with the compiled in module nginx-rtmp. To save hassles with ffmpeg I recommend a rolling distribution like Archlinux Arm. raspivid -vf -t 0 -fps 25 -b 2000000 -o - | ffmpeg -i - -vcodec copy -an -r 25 -f flv rtmp://​x220/​myapp/​mystream Some notes: The hardware encoded h264 video stream takes about ... 
-webcam streaming-video camera 
-answered Aug 3 '13 at 4:36 
-hendry 
-1694 
- 
- 
-4 
- 
-What streaming solution for the Picam has the smallest lag? 
-With Ubuntu 14.10 and Gstreamer I reach 100 to 116 ms latency with 1280 x 720 @ 60Hz. Tanks to @Antonvh who puts me on the right way. I reproduce here the solution for latter reference. To stream from the Pi : raspivid -t 0 -b 2000000 -fps 60 -w 1280 -h 720 -o - \ | gst-launch-1.0 -e -vvv fdsrc ! h264parse ! rtph264pay pt=96 config-interval=5 \ ! ...  
- 
-http://​raspberrypi.stackexchange.com/​tags/​streaming-video/​hot 
-</​code>​ 
- 
-<​code>​ 
-flash tests 
- 
-apt-get install xmms2-plugin-flv 
- 
-apt-get install xul-ext-flashblock 
- 
-</​code>​ 
- 
-<​code>​ 
- ​Installing Flash Player 
-The usual flashplugin-nonfree for Linux is not available for ARM devices. The solution is to use PepperFlash plugin. It's not available for the public from the Google team, but thanks to Lee Harris we can download it from his site. It's a link for the plugin for ARMv7 ripped from original Google OS from Chromebook. If you don't trust the link above you may try to rip it out yourself. After you download the archive you should extract the Pepperflash dir to /usr/lib. After that you need to do the following changes to the Chromium config file /​etc/​chromium-browser/​default. You should modify it, so it has a line: 
-CHROMIUM_FLAGS="​--ppapi-flash-path=/​usr/​lib/​PepperFlash/​libpepflashplayer.so --ppapi-flash-version=12.0.0.77"​ 
-Running Chromium with root rights 
-The Chromium browser doesn'​t launch as a root. You can change that behavior by editing it's config file /​etc/​chromium-browser/​default. You should modify it, so it has a line: 
-CHROMIUM_FLAGS="​-password-store=detect -user-data-dir"​ 
-If you need flash support, the line should look like this: 
-CHROMIUM_FLAGS="​--ppapi-flash-path=/​usr/​lib/​PepperFlash/​libpepflashplayer.so --ppapi-flash-version=12.0.0.77 -password-store=detect -user-data-dir"​ 
- 
- 
-    wget http://​odroidxu.leeharris.me.uk/​PepperFlash-12.0.0.77-armv7h.tar.gz 
-    tar -xzf PepperFlash-12.0.0.77-armv7h.tar.gz 
-    cd PepperFlash 
-    chmod +x * 
-    sudo cp * /​usr/​lib/​chromium/​plugins 
-    sudo nano  /​etc/​chromium/​default 
-    ​ 
-    Open Chromium 
-enter 
-chrome://​plugins 
- 
-The pepperflash-plugin should be visible. Enable it. 
-Done. 
- 
-http://​www.raspberrypi.org/​forums/​viewtopic.php?​f=66&​t=99202 
- 
-</​code>​ 
- 
-<​code>​ 
-http://​www.thisismyrobot.com/​2012/​08/​getting-logitech-c270-webcam-working-on.html 
- 
-1. Add UVC support to the image 
-Download and run rpi-update as described here. This will update your image to include the initially-missing UVC support. Reboot as suggested. 
- 
-2. Update your packages 
-sudo apt-get update 
-sudo apt-get upgrade ​ 
- 
-3. Install the guvcview webcam viewer 
-sudo apt-get install guvcview 
- 
-4. Set up your permissions and enable the driver 
-sudo usermod -a -G video pi 
-sudo modprobe uvcvideo 
- 
-Reboot the Pi. 
- 
-5. Open up the cam (these are the settings that worked for me) 
-guvcview --size=544x288 --format=yuyv 
-</​code>​ 
- 
-<​code>​ 
-# apt-get install php5-curl 
- 
-</​code>​ 
- 
-<​code>​ 
-compile sqlite3 ​ 
-sqlite3-build $ ./sqlite3 -version 
-3.8.10.1 2015-05-09 12:14:55 05b4b1f2a937c06c90db70c09890038f6c98ec40 
- 
-sqlite-autoconf-3081001.tar ​ 
- 
-apt-get remove sqlite3 
-</​code>​ 
-{{::​sqlite-autoconf-3081001.tar.gz|}} 
- 
-[[https://​console.aws.amazon.com/​ec2/​v2/​home?​region=us-east-1#​Instances:​sort=instanceId | EC2 east]] 
- 
-<​code>​ 
-apt-get install ntp 
- 
-insserv ntp 
- 
-/​etc/​timezone 
- 
-/​usr/​bin/​tzselect 
- 
-</​code>​ 
- 
-<​code>​ 
-/​etc/​apache2/​envvars 
- 
-change RUN_USER/​RUN_GROUP 
- 
-</​code>​ 
rpi_kiosk.txt · Last modified: 2021/06/04 02:16 (external edit)