更新 README 文档
- 完善功能特性说明 - 添加安装和使用指南 - 添加配置字段详细说明 - 添加无线 ADB 连接说明 - 添加 TUI 快捷键表格 - 添加文件结构说明
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user