# pcat-cooler **Repository Path**: dhcp/pcat-cooler ## Basic Information - **Project Name**: pcat-cooler - **Description**: photonicat2 通过USB口控制外置水冷设备供电实现自动启停水冷降温设备 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-31 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # **Photonicat2 水冷自动化控制系统 (Go 版)** 本项目是一个专为 Photonicat2 开发的轻量级散热管理工具。它通过实时监控系统 CPU 温度,自动控制 **GPIO 18**(对应物理 USB 接口的 VBUS 5V 供电),从而实现外置水冷排的智能启停。 ## **🚀 快速开始** ### **1\. 交叉编译 (在开发机执行)** 由于 Photonicat2 基于 Rockchip RK3568 (ARM64 架构),你需要在你的开发电脑(PC/Mac)上编译目标二进制文件: \# 开启静态编译,减小体积并去除调试符号 CGO\_ENABLED=0 GOOS=linux GOARCH=arm64 go build \-ldflags="-s \-w" \-o pcat-cooler main.go *编译完成后会生成一个约 6MB 的 pcat-cooler 可执行文件。* ### **2\. 部署到设备** 使用 SCP 将编译好的文件上传到 Photonicat2: \# 请将 IP 替换为你的设备实际 IP scp pcat-cooler root@192.168.1.1:/usr/bin/ ssh root@192.168.1.1 "chmod \+x /usr/bin/pcat-cooler" ### **3\. 运行与访问** 在设备终端手动启动程序进行测试: /usr/bin/pcat-cooler 启动后,在局域网浏览器访问: 即可进入 Web 可视化控制台。 ## **🔍 调试与手动排障 (Debug Manual)** 如果 Web 界面显示异常或 USB 无法切换状态,请按以下步骤手动排查硬件控制节点: ### **A. 确认 GPIO 18 节点** 在终端执行以下命令确认内核是否识别到 USB 电源开关标签: cat /sys/kernel/debug/gpio | grep vcc5v0-usb-switch * **正常输出**:gpio-18 (...|vcc5v0-usb-switch) out hi * **状态说明**:显示 hi 表示 USB 接口目前有电,lo 表示已断电。 ### **B. 终端手动控制测试** 在关闭 Go 程序的前提下,你可以通过 sysfs 接口直接操作 USB 电源进行压力测试: \# 1\. 导出引脚 (如果报错 "Device or resource busy" 说明已被导出,可忽略) echo 18 \> /sys/class/gpio/export \# 2\. 设置为输出模式 echo out \> /sys/class/gpio/gpio18/direction \# 3\. 测试开关逻辑 echo 0 \> /sys/class/gpio/gpio18/value \# 强制关闭 USB 供电 echo 1 \> /sys/class/gpio/gpio18/value \# 强制开启 USB 供电 \# 4\. 释放引脚 (非常重要:恢复系统内核接管默认供电) echo 18 \> /sys/class/gpio/unexport ### **C. 温度传感器路径校验** 确认系统温度路径是否与代码一致(RK3568 通用路径): \# 查看实时温度 (数值除以 1000 即为摄氏度) cat /sys/class/thermal/thermal\_zone0/temp ## **⚙️ 配置为系统服务 (开机自启)** 为了让散热系统随设备自动启动并后台运行,建议在 Photonicat2 中创建 procd 服务脚本。 创建文件 /etc/init.d/pcat\_cooler: \#\!/bin/sh /etc/rc.common START=99 USE\_PROCD=1 start\_service() { procd\_open\_instance procd\_set\_param command /usr/bin/pcat-cooler procd\_set\_param stdout 1 \# 将日志输出到系统 logread procd\_set\_param stderr 1 procd\_set\_param respawn \# 进程崩溃后自动重启 procd\_close\_instance } **启用并启动服务:** chmod \+x /etc/init.d/pcat\_cooler /etc/init.d/pcat\_cooler enable /etc/init.d/pcat\_cooler start ## **⚠️ 关键注意事项** 1. **USB 功率限制**:Photonicat2 的原生 USB 端口额定电流为 **500mA**。如果你的水冷泵功率较大,**强烈建议**使用 USB 接口驱动继电器或 MOS 管,由外部电源独立为水冷排供电。 2. **数据互斥**:当程序处于 Auto、Manual ON 或 Manual OFF 模式时,GPIO 18 被锁定在用户态。此时该 USB 口**无法**识别 U 盘或移动硬盘。若需恢复 USB 数据功能,请在 Web 页面切换至 **“恢复系统默认 (System Default)”**。 3. **配置持久化**:当前的配置(阈值、模式)保存在内存中。如果设备断电重启,程序将恢复到代码中的初始默认值(开启: 65°C, 停止: 50°C)。