Shows real-time CPU and RAM statistics of a remote Linux Machine on a LCD display via Arduino or on a web frontend. There is a Server software, running on the machine you want to monitor and some Clients, to see the stats in realtime on varius platforms.
- Arduino UNO
- HD44780 LCD Display
- Ethernet Shield
statRead.ino is the Arduino software. Sets up the display and the ethernet shield. Connects to Network and prints the results and a refresh indicator.
HTML5 and some JS for fancy effects.
-
statPoll.sh The resident bash script. Fetches the stats from
/proc/meminfo
,uptime
,vnstat
and runsstatParse.rb
on them; -
statParse.rb Parses the relevant informations;
-
statWeb.php Reads the final file and prints in a webpage;
Be sure to sync the refresh rates of the server and the client so you don't waste work. Keep in mind that the loadAvg
array in statParse contains the last 1 - 5 - 15 minutes average load.
This project is focused on having a standalone Arduino configuration to monitor a remote Linux computer. Instead, if you have phisical access to the machine you want to monitor, you can just send the data via serial and print them on the display, without connecting it to the Network.
A cool application of this concept could be a real-time monitor of a gaming PC, showing every CPU and GPU core load, RAM and VRAM usage, temperature sensors, fan speeds, memory and processor clocks and so on.
I've a sort of early release of this, showing only RAM and CPU usage using a resident VB script (the stats are from ComputerInfo
.NET Framework property).
Fetching the stats from Windows isn't easy as on Linux, and that solution didn't bring me far. On the other hand, Open Hardware Monitor can provide all the stats I mentioned above and has a data interface. This should provide a good point of start.