带触摸的树莓派OLED监控器

yangfei 13aecc7f48 上传文件至 '' 5 months ago
.gitignore db055c2e99 Initial commit 5 months ago
LICENSE db055c2e99 Initial commit 5 months ago
README.md 13aecc7f48 上传文件至 '' 5 months ago
USAGE.md 13aecc7f48 上传文件至 '' 5 months ago
install.sh 13aecc7f48 上传文件至 '' 5 months ago
oled_system_monitor_final.py 13aecc7f48 上传文件至 '' 5 months ago

README.md

树莓派OLED系统监控完整解决方案

项目概述

这是一个专为树莓派4B设计的OLED系统监控器,具有触摸唤醒和自动熄屏功能。该解决方案可以实时显示系统状态信息,包括CPU使用率、内存使用情况、磁盘空间、系统运行时间等,并支持通过触摸传感器唤醒屏幕显示。

功能特性

  1. 系统监控

    • CPU使用率和温度监控
    • 内存使用情况监控
    • 磁盘空间使用情况监控
    • 系统运行时间显示
    • IP地址显示
    • 实时时间显示
  2. 触摸唤醒功能

    • 基于RC电路充放电时间检测的触摸传感器
    • GPIO18输出低电平放电,然后输出高电平检测充电时间
    • 通过放电时间长短判断是否发生触摸
  3. 自动熄屏

    • 30秒无操作后自动关闭屏幕以节省电量
    • 触摸唤醒后重新点亮屏幕
  4. 中文字体支持

    • 支持中文显示
    • 自动检测和安装中文字体
  5. 系统服务集成

    • 通过systemd服务自动启动
    • 支持服务管理命令

硬件连接

OLED显示屏连接

  • VCC -> 3.3V (Pin 1)
  • GND -> GND (Pin 6)
  • SDA -> SDA (Pin 3)
  • SCL -> SCL (Pin 5)

触摸传感器连接

  • GPIO18 (物理引脚12) -> 1MΩ电阻 -> 金属触摸片
  • 金属触摸片 -> GPIO24 (物理引脚18)

文件说明

oled_system_monitor_final.py

这是主程序文件,包含了所有系统监控和显示功能的实现:

  1. SSD1306Final类

    • SSD1306 OLED驱动程序
    • 支持I2C通信
    • 提供文本绘制、矩形绘制等基本图形功能
  2. ChineseSystemMonitorFinal类

    • 系统监控主类
    • 实现触摸检测功能
    • 管理屏幕显示和自动熄屏功能
    • 获取并显示系统信息
  3. 主要功能函数

    • get_cpu_temperature():获取CPU温度
    • get_ip_address():获取IP地址
    • format_time_long():格式化时间显示
    • format_bytes_short():格式化字节单位显示

install.sh

这是自动化安装脚本,用于在树莓派上部署和配置系统监控器:

  1. 系统检查

    • 检查root权限
    • 检查主程序文件
    • 显示系统信息
  2. 依赖安装

    • 更新系统包列表
    • 安装必要的系统依赖(Python库、字体等)
    • 安装Python包(Pillow、smbus2等)
  3. I2C配置

    • 启用I2C接口
    • 配置相关内核模块
    • 检测OLED设备
  4. 服务配置

    • 创建systemd服务
    • 设置文件权限
    • 启动服务并验证
  5. 安装验证

    • 检查服务状态
    • 验证程序运行情况

安装步骤

  1. 准备工作

    sudo -i
    
  2. 运行安装脚本

    chmod +x install.sh
    ./install.sh
    
  3. 按照提示完成安装

    • 确认安装
    • 检查I2C设备检测结果
    • 等待安装完成

管理命令

服务管理

# 查看服务状态
systemctl status oled-monitor-final.service

# 启动服务
systemctl start oled-monitor-final.service

# 停止服务
systemctl stop oled-monitor-final.service

# 重启服务
systemctl restart oled-monitor-final.service

# 设置开机自启
systemctl enable oled-monitor-final.service

日志查看

# 查看系统日志
journalctl -u oled-monitor-final.service -f

# 查看程序日志
tail -f /opt/oled_monitor_final/logs/monitor.log

手动测试运行

cd /opt/oled_monitor_final
python3 oled_system_monitor_final.py

故障排除

  1. I2C设备未检测到

    • 检查OLED屏幕接线是否正确
    • 确认I2C接口已启用
    • 使用i2cdetect -y 1命令检查设备
  2. 中文字体显示异常

    • 确认已安装中文字体
    • 检查字体文件是否存在
  3. 触摸功能不工作

    • 检查GPIO连接是否正确
    • 确认电阻值是否为1MΩ
    • 查看调试日志了解触摸检测状态
  4. 服务启动失败

    • 查看详细错误日志
    • 检查依赖是否安装完整
    • 确认文件权限设置正确

定制化修改

如需修改监控信息显示内容或样式,可以编辑oled_system_monitor_final.py文件中的以下部分:

  1. draw_main_screen()函数:修改主显示界面布局
  2. get_system_info()函数:添加或修改系统信息获取逻辑
  3. 触摸检测参数:调整check_touch()函数中的阈值参数

版权信息

本项目为开源软件,可根据需要进行修改和分发。