PiKVM OLED显示进度条:系统负载可视化

PiKVM OLED显示进度条:系统负载可视化

【免费下载链接】pikvm Open and inexpensive DIY IP-KVM based on Raspberry Pi 【免费下载链接】pikvm 项目地址: https://gitcode.com/gh_mirrors/pi/pikvm

你是否曾在管理PiKVM设备时,需要频繁登录查看系统状态?是否希望一眼就能掌握CPU负载、内存占用等关键指标?本文将带你实现OLED屏幕上的系统负载进度条可视化,让PiKVM的运行状态一目了然。

硬件准备与安装

实现OLED显示功能需要准备相应的硬件组件并正确安装。首先确保你拥有兼容的OLED屏幕模块,推荐使用128x64分辨率的SSD1306 OLED显示屏,这类屏幕成本低且兼容性好。

安装过程需要将OLED屏幕正确连接到PiKVM的GPIO接口。在组装设备时,可以参考HAT安装指南中的OLED安装步骤:

安装OLED支架

安装OLED到支架

这些图片展示了如何将OLED屏幕安装到HAT板上的专用支架,确保连接稳固且排线正确插入。

配置文件设置

完成硬件安装后,需要修改系统配置文件以启用OLED显示功能。主要涉及/boot/config.txt文件的编辑,添加必要的参数来启用I2C接口和OLED驱动。

# 编辑配置文件
sudo nano /boot/config.txt

# 添加以下配置
dtparam=i2c_arm=on
dtparam=i2c1=on

保存并退出编辑器后,重启PiKVM使配置生效。这一步启用了I2C总线,为OLED屏幕的通信提供基础。

系统负载监控脚本

接下来需要创建一个Python脚本,用于收集系统负载信息并在OLED屏幕上显示进度条。以下是一个基础的实现示例:

import time
import Adafruit_SSD1306
from PIL import Image, ImageDraw, ImageFont
import psutil

# 初始化OLED显示屏
disp = Adafruit_SSD1306.SSD1306_128_64(rst=None, i2c_address=0x3C)
disp.begin()
disp.clear()
disp.display()

# 创建图像缓冲
width = disp.width
height = disp.height
image = Image.new('1', (width, height))
draw = ImageDraw.Draw(image)
font = ImageFont.load_default()

while True:
    # 清除屏幕
    draw.rectangle((0,0,width,height), outline=0, fill=0)
    
    # 获取系统负载信息
    cpu_load = psutil.cpu_percent(interval=1)
    mem_usage = psutil.virtual_memory().percent
    disk_usage = psutil.disk_usage('/').percent
    
    # 绘制标题
    draw.text((0, 0), 'System Load', font=font, fill=255)
    
    # 绘制CPU负载进度条
    draw.text((0, 12), f'CPU: {cpu_load}%', font=font, fill=255)
    draw.rectangle((0, 24, 128, 32), outline=255, fill=0)
    draw.rectangle((0, 24, int(cpu_load*1.28), 32), outline=255, fill=255)
    
    # 绘制内存使用进度条
    draw.text((0, 36), f'Mem: {mem_usage}%', font=font, fill=255)
    draw.rectangle((0, 48, 128, 56), outline=255, fill=0)
    draw.rectangle((0, 48, int(mem_usage*1.28), 56), outline=255, fill=255)
    
    # 更新显示
    disp.image(image)
    disp.display()
    time.sleep(2)

设置开机自启动

为了让OLED显示功能在PiKVM启动时自动运行,需要将脚本添加到系统服务中。创建一个systemd服务文件:

sudo nano /etc/systemd/system/oled-monitor.service

添加以下内容:

[Unit]
Description=OLED System Monitor
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/python3 /home/pi/oled-monitor.py
Restart=always
User=root

[Install]
WantedBy=multi-user.target

启用并启动服务:

sudo systemctl enable oled-monitor
sudo systemctl start oled-monitor

自定义显示内容

你可以根据需要自定义OLED屏幕上显示的内容。例如,添加网络流量监控、温度显示或特定服务状态。修改Python脚本中的相应部分即可实现个性化显示。

官方文档中提供了更多关于系统配置的信息,可以参考配置指南了解更多高级设置选项。

故障排除

如果OLED屏幕无法正常工作,可以从以下几个方面排查:

  1. 检查I2C连接是否正常:

    i2cdetect -y 1
    
  2. 确认OLED驱动是否正确安装

  3. 检查脚本是否有足够的权限访问系统资源

如果遇到GPIO相关问题,可以参考GPIO配置文档获取帮助。

通过以上步骤,你已经成功在PiKVM上实现了OLED显示系统负载进度条的功能。这个小改动能让你更直观地了解设备运行状态,提升管理效率。你还可以根据自己的需求扩展更多显示内容,打造个性化的PiKVM监控面板。

如果需要进一步定制,可以查看项目的API文档,了解如何获取更多系统信息用于显示。

【免费下载链接】pikvm Open and inexpensive DIY IP-KVM based on Raspberry Pi 【免费下载链接】pikvm 项目地址: https://gitcode.com/gh_mirrors/pi/pikvm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值