Giter Site home page Giter Site logo

rpi-kiosk-slideshow's Introduction

RPi Kiosk Slideshow a.k.a RPi Digital Signage

WIP... Still working on it :)

[ Google Drive ] + [ Linux Systemd ] + [ Chromium kiosk ] = A raspberry Pi that's always showing fresh slides a.k.a digital signage

The How

After authenticating with Google Drive; rpi-kiosk-slideshow will download images from the specified folder.

For each image added in the google drive folder, an ImageMagick script is run to output multiple widths, by default 1080 & 720. For fitting images comfortably with different screen sizes.

With the images from the google drive folder, rpi-kiosk-slideshow will generate an html/js local website that uses jquery-backstretch for it smartly chooses an appropriate image based on the screen size.

A systemd service runs chromium-kiosk mode that points to the custom built slideshow.

A cronjob regularly (default 4 hours) regenerates the slideshow.html with the new images and refreshes the kiosk as if a user hit F5 on the keyboard.

For stability, the system is slimmed down and monthly updates are performed. If there's any problems the slideshow will stop runnning and the desktop image will change to tell you an error message. Which you can fix via putting in a maintanence file on the google drive folder, or the classic rpi keyboard and mouse or ssh.

Install onto Raspberry Pi 3

  1. Install Raspbian on an SD card: with Raspbian Noob. Plug into Raspberry Pi.

  2. Clone this Repo in the home directory; cd ~/; git clone https://github.com/kg3/rpi-kiosk-slideshow.git

  3. I suggest at least skim reading the script a bit before running it.

    • pushd ~/rpi-kiosk-slideshow && chmod +x install-kiosk-slideshow.sh && ./install-kiosk-slideshow.sh
    • This script was written with the idea that this system will only be used for displaying a slideshow and nothing else so extra folders and bloated software are removed from the fresh raspbian install.

This install script and other files will be placed in the home directory. Keep them there after the install so if in the future there is problems they can be used from a maintanence file placed in the google-drive shared folder.

First connect to the wifi

TODO: auto-connect from a file on google drive with wifi/pass.

Authenticate with Google Drive

Specify the folder to use inside the kiosk.conf file

Using

After the install plugging the pi into hdmi on a t.v should work fine if you reboot and see the slideshow start with your images appearing.

If things aren't setup correctly try manually adding a file in the home directory. touch ~/notify_pi_needs_attention to do manual work on the pi without the kiosk running.

Work In Progress

TODOs

  • kiosk.conf pre-specify google drive share folder

  • maintanence place a file like this in the google drive and it will tell the install script to reset default settings and try a different wifi password

  • wifi-auto place this file with wifi-name and password on separate lines for the rpi to auto connect onto this wifi

  • desktop-notify for issues stop the slideshow and write a message on the desktop with debug info. Restore image after a reboot.

  • add .mp4 capabilities

Copyright and license

Code copyright 2019 Kurt Gibbons III Code released under Mozilla Public License Version 2.0

rpi-kiosk-slideshow's People

Stargazers

Moon Disco avatar Robert Cooper avatar  avatar Luc avatar  avatar

Watchers

Kurt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.