Small C program which is able to gather a remote JPEG image at regular intervall (via HTTP / curl
library) and display it fullscreen onto a framebuffer device (via fbg library) along with informations gathered from a REST API (via ulfius library)
This was made to monitor my 3D printer (with octoprint webcam stream & API) from my desk using a NanoPI NEO 2 and a small LCD display and thus allow to occasionally stream the framebuffer content to a streaming service like twitch.
Features :
- Octoprint stream status (red / green); if down it mean that either the physical connection to octoprint was lost or that the octoprint device had an issue.
- Printer power / octoprint serial status (ON / OFF)
- Realtime statistics (temperature, host board temperature, current and last job, time, job progression bar)
- Realtime tool/bed temperature graphics
This program can be easily configured.
Altough this was made for octoprint, it has all the basic tools to be adapted for all sort of embedded monitoring needs...
To compile it, you will need my framebuffer graphics library, libcurl and ulfius.
Note : Linux framebuffer streaming example (with twitch service) :
ffmpeg -f fbdev -framerate 25 -i /dev/fb0 -c:v libx264 -preset veryfast -maxrate 2000k -bufsize 4000k -vf "format=yuv420p" -g 50 -f flv rtmp://live.twitch.tv/app/<stream key>
BSD, see LICENSE file