Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jackra1n/rustberry-poe-monitor
A controller for the display and fan of the Raspberry Pi Waveshare PoE HAT written in Rust 🦀
https://github.com/jackra1n/rustberry-poe-monitor
monitoring oled-display power-over-ethernet raspberry-pi rust waveshare
Last synced: about 2 months ago
JSON representation
A controller for the display and fan of the Raspberry Pi Waveshare PoE HAT written in Rust 🦀
- Host: GitHub
- URL: https://github.com/jackra1n/rustberry-poe-monitor
- Owner: jackra1n
- License: gpl-3.0
- Created: 2023-11-15T11:16:34.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-22T01:02:33.000Z (3 months ago)
- Last Synced: 2024-12-20T03:10:32.622Z (about 2 months ago)
- Topics: monitoring, oled-display, power-over-ethernet, raspberry-pi, rust, waveshare
- Language: Rust
- Homepage:
- Size: 16.3 MB
- Stars: 22
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🦀🍇 RustBerry-PoE-Monitor
[![Build](https://github.com/jackra1n/RustBerry-PoE-Monitor/actions/workflows/build.yaml/badge.svg)](https://github.com/jackra1n/RustBerry-PoE-Monitor/actions/workflows/build.yaml)
![Rust](https://img.shields.io/badge/Rust-%23000000.svg?logo=rust&logoColor=white)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
![Raspi](https://img.shields.io/badge/Raspberry%20Pi-A22846?logo=Raspberry%20Pi&logoColor=white)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)](https://www.waveshare.com/wiki/PoE_HAT_(B)).
![Example image](/docs/IMG_3890.webp)
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
- [🦀🍇 RustBerry-PoE-Monitor](#-rustberry-poe-monitor)
- [📖 Table of Contents](#-table-of-contents)
- [🌟 Features](#-features)
- [📦 Installation](#-installation)
- [Easy Installation](#easy-installation)
- [Manual Installation](#manual-installation)
- [📝 Configuration](#-configuration)
- [🛠️ Building](#️-building)
- [Prerequisites](#prerequisites)
- [Building for Raspberry Pi](#building-for-raspberry-pi)
- [🏃♂️ Running](#️-running)## 🌟 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
### Easy Installation
Run the following command to install:
```bash
curl -sSL https://rustberry.jackra1n.com/install | sudo bash
```And that's it!
### Manual Installation
Check out the [wiki page](https://github.com/jackra1n/RustBerry-PoE-Monitor/wiki/Manual-Installation) to learn how to install manually.
## 📝 Configuration
To change the fan on/off temperature, you can add `temp-on` and `temp-off` arguments to the application.
If you installed the application using the install script, you can edit the systemd service file to change the arguments.```bash
sudo nano /etc/systemd/system/rustberry-poe-monitor.service
```Change the `ExecStart` line to the following:
```bash
ExecStart=/usr/local/bin/rustberry-poe-monitor --temp-on 60 --temp-off 50
```## 🛠️ Building
### Prerequisites
For building for Rasberry Pi I'm using [cross](https://github.com/cross-rs/cross)### Building for Raspberry Pi
```bash
cross build --target=aarch64-unknown-linux-gnu --release
```## 🏃♂️ Running
Just run the binary file
```bash
./rustberry-poe-monitor
```## Links
- [Waveshare PoE HAT (B)](https://www.waveshare.com/wiki/PoE_HAT_(B))
- [raspi-poe-mon](https://github.com/klamann/raspi-poe-mon) - python implementation and original idea for the display layout
- [PCSenior](https://www.1001fonts.com/pc-senior-font.html) - Font used for the display
- [cross](https://github.com/cross-rs/cross) - Rust tool for building cross-platform binaries