Ok, it's pretty much an exact copy. I have no creativity, or serious coding chops, so I copied those two projects pretty heavily.
This was supposed to be a surprise mother's day present for my wife, which means I couldn't work on it when she was around. Which means it was a very very LATE mother's day present. As in, I gave it to her a week ago.
For a lot more detail on the coding and whatnot, you can check out the previous projects, as I pretty much copied those. Although I did add a couple nice touches. But basically, I'm just running a web server on the pi, and the index page is the page you see. I have it set so it loads a browser with that page on boot, in kiosk mode, so there are no scroll bars or url bars. Found a script that makes the mouse disappear too.
A python script (stolen from the previous projects) maps the buttons to different keys, as well as mapping them to the GPIO pins on the Pi, giving different functions for each one.
Here's what I used:
Dell 1707FPT 17" display (had this already, didn't have to buy it)A second Dell 1707FPT 17" display as a backup for when this one dies – $30
Raspberry Pi 3 – $40
HDMI to DVI cable – $10
16GB Micro SD card – had it laying around
Micro SD card extension cable – $8 (www.amazon.com/gp/product/B011GPZYQM/ref=oh_aui_search_detailpage?ie=UTF8&psc=1)
Wood was free from a friend
Stain, polyurethane, forstner bits, sand paper, recessed outlet, and other crap – $whoknows
Like the projects I ripped off, the calendar is an embed of my wife's google calendar.
The left button is mapped to the "p" key, which makes the calendar go back a month. The next button is the "n" button, so it goes forward a month. The third button switches the calendar to agenda view, and the last button is mapped to the ESC key, which cancels the screensaver slideshow. Each button has a secondary function, if held down longer than 2 seconds. Reboot, Shutdown, refresh, and turning the screen off.
It was the count down timer for the kids bus that I really liked about the previous project, so i implemented one as well, which kicks off via a cron job in the morning. It displays a big countdown timer at the top of the page, telling the kids they have 10 minutes before it's time to leave for school. The kids seem to like it. After the countdown is done, and the kids are off to school, I have a cron job that starts the screensaver, so the calendar won't burn into the screen all day long, as well as creating a nice digital picture frame for most of the day. The far right button kills that instantly if you need to use the calendar, (ESC key) and will come back on in 10 minutes if left idle. I did have to set up a cron job to kill the screensaver entirely in the middle of the night, otherwise the calendar and countdown timers would not display the next morning.
I also have a cron job that turns off the power to the HDMI port at 10pm, which then causes the monitor to go to sleep. Which is good because that sucker needs some hours to cool down at night. It kicks the screen back on at 6:30 am, ready for another day.
One of the coolest things on my interface is a script a friend wrote for me. It's a web scraper that reaches out to the school district's website and scrapes the day's lunch, and displays it on my screen. So the screen will display today's lunch choice, as well as the next days choice, so they can get their lunches ready the night before. (The kids don't always like what the school is serving, so this way they can easily see what they're having, so they can choose between home lunch or school lunch.)
Then during most of the day it's a pretty dang good looking digital picture frame. Once the kids are off to school it starts a slideshow with pictures I've cropped specifically to fit the frame. It's a slow slideshow, I have each picture up for like 5 minutes. But it just so happens that my "p" and "n" buttons also cycle through the pictures on the slideshow! That was an added bonus.
I didn't get enough pictures or info here to make this a real how-to. That would have taken much more time than 10 minutes in front of the laptop. However, if you want to make one yourself, the two previous projects I linked to have much better write-ups, including all the code you need to get it up and running.
It's not as good as some out there, but I wanted to share it. I think I'd like to do another one, but with a touch screen. What is the difference between that and just hanging a table on the wall you say? Not much. Not much at all.