PiKVM OLED显示进度条:系统负载可视化
你是否曾在管理PiKVM设备时,需要频繁登录查看系统状态?是否希望一眼就能掌握CPU负载、内存占用等关键指标?本文将带你实现OLED屏幕上的系统负载进度条可视化,让PiKVM的运行状态一目了然。
硬件准备与安装
实现OLED显示功能需要准备相应的硬件组件并正确安装。首先确保你拥有兼容的OLED屏幕模块,推荐使用128x64分辨率的SSD1306 OLED显示屏,这类屏幕成本低且兼容性好。
安装过程需要将OLED屏幕正确连接到PiKVM的GPIO接口。在组装设备时,可以参考HAT安装指南中的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屏幕无法正常工作,可以从以下几个方面排查:
-
检查I2C连接是否正常:
i2cdetect -y 1 -
确认OLED驱动是否正确安装
-
检查脚本是否有足够的权限访问系统资源
如果遇到GPIO相关问题,可以参考GPIO配置文档获取帮助。
通过以上步骤,你已经成功在PiKVM上实现了OLED显示系统负载进度条的功能。这个小改动能让你更直观地了解设备运行状态,提升管理效率。你还可以根据自己的需求扩展更多显示内容,打造个性化的PiKVM监控面板。
如果需要进一步定制,可以查看项目的API文档,了解如何获取更多系统信息用于显示。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





