更新 README 文档

- 完善功能特性说明
- 添加安装和使用指南
- 添加配置字段详细说明
- 添加无线 ADB 连接说明
- 添加 TUI 快捷键表格
- 添加文件结构说明
This commit is contained in:
2026-07-10 10:52:06 +08:00
parent 1cde7a5d81
commit 3dc30db3d6
+152 -13
View File
@@ -1,27 +1,166 @@
# padsleep_adb # padsleep_adb
基于树莓派,通过adb控制安卓平板亮屏和息屏 基于树莓派,通过 ADB 控制安卓平板自动亮屏和息屏的守护程序。
## 项目原理 ## 功能特性
当触发设定的条件时,通过adb命令,模拟锁屏按键,控制pad自动亮屏息屏。实现ha终端的省电和延长屏幕寿命。 - **定时控制**:根据配置的时间段自动亮屏/息屏
- **超时保护**:屏幕亮起超过设定时长且不在亮屏时间段内 → 自动息屏
- **无线 ADB**:支持通过 TCP/IP 连接安卓设备(无线调试)
- **TUI 管理**:提供终端界面工具,方便查看状态和修改配置
- **IPC 通信**:通过 Unix Socket 与 TUI 工具通信
- **自动重连**:无线连接断开后自动尝试重新连接
## 开发阶段 ## 系统要求
第一阶段: - 树莓派(或其他 Linux 设备)
- Python 3.10+
- ADB (Android Debug Bridge)
- 安卓平板(已开启 USB 调试或无线调试)
根据时间,定制自动亮屏和自动息屏的时间;当检测到亮屏时间大于5分钟且不在设定的亮屏时间段内,则自动息屏。 ## 安装
第二阶段: ### 1. 安装系统依赖
通过GPIO安装人体传感器,做到人来屏亮,人走屏灭。 ```bash
# Debian/Ubuntu
sudo apt update
sudo apt install adb python3-curses
## 开发细节 # 树莓派 OS
sudo apt install adb
```
- 在windows上开发,在树莓派上执行 ### 2. 安装 Python 依赖
- 需要安装adb命令行 ```bash
cd padsleep_adb
pip install -r requirements.txt
```
- 启动后,能自动以服务方式守护运行 依赖列表:
- `adbutils>=2.12.0` — Python ADB 库
- 首次启动时,需要处理adb授权有关问题 ## 使用方法
### 启动守护程序
```bash
python padsleep.py
```
守护程序会自动:
1. 加载配置文件 `config.json`
2. 检测 ADB 设备
3. 启动 IPC 服务(`/tmp/padsleep.sock`
4. 进入主循环,定期检查屏幕状态
### 启动 TUI 管理工具
```bash
# 新终端窗口
python padsleep_tui.py
```
TUI 快捷键:
| 按键 | 功能 |
|------|------|
| `↑/k` `↓/j` | 选择亮屏时间段 |
| `A` | 新增亮屏时间段 |
| `E` | 编辑选中时间段 |
| `D` | 删除选中时间段 |
| `S` | 选择 ADB 设备 |
| `W` | 无线连接设备 |
| `R` | 刷新状态 |
| `L` | 重载守护进程配置 |
| `F` | 强制息屏 |
| `N` | 强制亮屏 |
| `T` | 重新连接守护进程 |
| `H` | 显示帮助 |
| `Q` | 退出 |
## 配置说明
配置文件 `config.json` 示例:
```json
{
"screen_on_periods": [
{"start": "08:00", "end": "22:00"}
],
"check_interval_seconds": 30,
"auto_sleep_delay_minutes": 5,
"adb_device_serial": "",
"adb_wireless_host": "",
"adb_wireless_port": 5555,
"adb_wireless_auto_connect": false
}
```
### 字段说明
| 字段 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `screen_on_periods` | array | `[{"start":"08:00","end":"22:00"}]` | 亮屏时间段列表,支持跨天(如 22:00~08:00 |
| `check_interval_seconds` | int | `30` | 检查间隔(秒) |
| `auto_sleep_delay_minutes` | int | `5` | 非亮屏时段屏幕亮起多久后自动息屏(分钟) |
| `adb_device_serial` | string | `""` | 指定 USB 设备 serial,空表示自动选择第一个 |
| `adb_wireless_host` | string | `""` | 无线设备 IP 地址,空表示不使用无线连接 |
| `adb_wireless_port` | int | `5555` | 无线设备端口 |
| `adb_wireless_auto_connect` | bool | `false` | 启动时是否自动连接无线设备 |
## 无线 ADB 连接
### 方式一:配置文件预设
`config.json` 中设置:
```json
{
"adb_wireless_host": "192.168.1.100",
"adb_wireless_port": 5555,
"adb_wireless_auto_connect": true
}
```
### 方式二:TUI 手动连接
1. 启动 TUI 工具
2.`W`
3. 输入 IP 地址和端口
4. 确认连接
### 开启安卓设备无线调试
1. 连接 USB,执行 `adb tcpip 5555`
2. 或在设备上:设置 → 开发者选项 → 无线调试 → 开启
### 连接优先级
程序采用 **USB 优先** 策略:
1. 首先尝试 USB 连接
2. 如果 USB 不可用且配置了无线,尝试无线连接
3. 无线连接断开后自动重连(最多 3 次)
## 文件结构
```
padsleep_adb/
├── padsleep.py # 守护程序主程序
├── padsleep_tui.py # TUI 管理工具
├── config.json # 配置文件(首次运行自动生成)
├── requirements.txt # Python 依赖
└── README.md # 本文档
```
## 开发说明
- 在 Windows 上开发,在树莓派上运行
- 使用 `adbutils` 库与 ADB Server 通信
- IPC 使用 Unix Socket + JSON 行协议
- TUI 使用 Python `curses`
## 许可证
MIT License