# 树莓派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. **准备工作**: ```bash sudo -i ``` 2. **运行安装脚本**: ```bash chmod +x install.sh ./install.sh ``` 3. **按照提示完成安装**: - 确认安装 - 检查I2C设备检测结果 - 等待安装完成 ## 管理命令 ### 服务管理 ```bash # 查看服务状态 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 ``` ### 日志查看 ```bash # 查看系统日志 journalctl -u oled-monitor-final.service -f # 查看程序日志 tail -f /opt/oled_monitor_final/logs/monitor.log ``` ### 手动测试运行 ```bash 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()`函数中的阈值参数 ## 版权信息 本项目为开源软件,可根据需要进行修改和分发。