#raspberry-pi #poe #monitoring #hat #statistics #monitor #real-time

app rustberry-poe-monitor

A simple PoE Monitor for Raspberry Pi Waveshare PoE HAT (B)

2 stable releases

1.0.1 Nov 21, 2023

#354 in Hardware support

GPL-3.0 license

460KB
237 lines

🦀🍇 RustBerry-PoE-Monitor

Build Rust License: GPL v3 Raspi

RustBerry-PoE-Monitor is a Rust-based monitoring and control tool for the Raspberry Pi, specifically designed for use with the Waveshare PoE HAT (B).

Example image

This tool provides real-time monitoring of your Raspberry Pi's system statistics, including IP address, memory usage, CPU load, and more, displayed on the PoE HAT's OLED display. Additionally, it offers fan control to maintain optimal operating temperatures.

📖 Table of Contents

  1. Features
  2. Installation
    1. Download
      1. Pre-built binaries
      2. Cargo
    2. Configuration
  3. Building

🌟 Features

  • Minimal resource usage
  • Developed in Rust for memory safety 🦀
  • Display real-time system statistics (IP address, memory, CPU usage, etc.) on the PoE HAT's OLED screen 📊
  • Automatic fan control based on the CPU temperature 🌡️

📦 Installation

📥 Download

First, you will need the binary file. You can either download the pre-built binaries or download it using cargo.

Pre-built binaries

Pre-built binaries are available for download on the releases page

To be able to run the binary anywhere on your system, you can move it to /usr/local/bin:

sudo mv rustberry-poe-monitor /usr/local/bin

Cargo

Install with cargo:

cargo install rustberry-poe-monitor

📝 Configuration

You should be able to run the binary file now:

rustberry-poe-monitor

There are 2 CLI arguments available:

  • --temp-on - The temperature at which the fan should turn on (default: 60)
  • --temp-off - The temperature at which the fan should turn off (default: 50)

Example:

rustberry-poe-monitor --temp-on 65 --temp-off 55

To run the program on startup, you can create a systemd service:

sudo nano /etc/systemd/system/rustberry-poe-monitor.service

Paste the following into the file:

[Unit]
Description=RustBerry PoE Monitor
After=network.target

[Service]
ExecStart=/home/yourUser/.cargo/bin/rustberry-poe-monitor
User=yourUser
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target

Then enable the service:

sudo systemctl daemon-reload
sudo systemctl enable rustberry-poe-monitor.service
sudo systemctl start rustberry-poe-monitor.service

🛠️ Building

Prerequisites

For building for Rasberry Pi I'm using cross

Building for Raspberry Pi

 cross build --target=aarch64-unknown-linux-gnu --release

🏃‍♂️ Running

Just run the binary file

./rustberry-poe-monitor

Dependencies

~13MB
~206K SLoC