If you’re in need of a simple computer to drive an infoscreen, which usually just consists of showing a website in fullscreen, Raspberry Pi computers are a great choice. They’re cheap, newer versions have WiFi and HDMI output, and they’re small – so they’re easy to mount on the back of a TV.
Even better, most never TVs have a USB port nowadays, so for a power source, just plug your Pi in to the TV.
One problem, however, is that it gets increasingly hard to control the infoscreens the more you add. For example, if you have 6, you don’t want to have to manage them independently, and you want to be able to change the setup quickly.
At the office, we’ve set up 6 Samsung TVs, each with their own Pi. On each is a different dashboard:
- Zabbix (server monitoring),
- Kibana (log monitoring),
- Jenkins (build status, with plugins like Build Monitor View and Delivery Pipeline Plugin),
- JIRA (showing tickets remaining in a sprint, and so forth.)
What I ended up with is a simple provisioning script that configures the Pi:
Quite a bit is happening here – in order:
- WiFi power management is disabled. I’ve found that it makes WiFi very unstable on the Pis.
- We need to set the hostname; every pi needs a unique one. We’ll see why later.
- The desktop wallpaper is changed. You can remove this part if you like raspberries!
- Chromium is installed. I tried Midori, and others. Chromium just works.
- We setup a script that starts when the desktop session loads, startup.sh. This will run Chromium.
- Then we reboot to apply the hostname change.
In the script, there’s two things you must modify: URLs to the desktop wallpaper and the directory to the dashboard files.
So what’s the dashboard files?
The way it works is this: if the hostname of the Pi is raspberry-pi-1 and you set dashboard_files_url to https://mycorp.com/files/dashboard/, the Pi will go to https://mycorp.com/files/dashboard/raspberry-pi-1.html – that way, if you want to change the URL of one of your screens, you just have to change a file on your Web server.
While you could do more about it and make a script on your server, I just went with simple html files with a meta-refresh redirect.
I feel that it’s easier to manage this stuff from a central place rather than SSHing into several different machines.
Do you have a better way of managing your dashboards? Do you have a cool dashboard you’ve designed? Tell us in the comments!