返回首页

RP2040 DIY风扇控制器:集成FanControl实现完全停转

本文介绍如何基于RP2040微控制器制作DIY PWM风扇控制器,并通过JSON协议与FanControl软件集成。该方案解决了传统控制器无法完全关闭风扇的问题,实现了动态电源管理和极致静音效果,适用于高端PC、矿机及服务器等多种场景。

告别噪音!DIY RP2040风扇控制器完美集成FanControl
Advertisement 728x90

DIY RP2040 PWM 风扇控制器:完美集成 FanControl 实现静音

在一台搭载高端 Intel i9 处理器和 RTX 3080 Ti 显卡、采用自定义水冷回路(配备两个三联风扇冷排)的 PC 主机中,总共有 9 个风扇。即使降低转速,在安静的公寓环境中,噪音依然明显。解决方案?动态关闭不需要的光扇:空闲时仅保留 2 个进风风扇和 1 个出风风扇,其余风扇完全断电。

市面上的现成控制器(如联力的 4 端口 PWM 集线器)无法让风扇完全停转,而纯软件方案又不够稳定。最终方案:基于 RP2040(Raspberry Pi Pico)定制控制器,实现对 PWM 信号和电源的全面控制。

平台选择与初版原型

ESP32 与 RP2040 之争:ESP32 更便宜,但配置较麻烦;RP2040 更易上手,且拥有更多 PWM 引脚。首个最小可行产品(MVP)基于开源电路图在面包板上搭建——风扇转速以百分比形式硬编码在程序中,每次调整都需重新烧录固件。

Google AdInline article slot

![原型电路图](./images/image-0.png)

扩展到 4 个通道意味着需要增加对 CPU、GPU 和硬盘温度的监控。整合各厂商的驱动程序令人头疼。

通过插件集成 FanControl

最终选择了 FanControl:虽然是闭源软件,但对插件支持友好。通过 USB(RP2040 的 COM 端口)使用 JSON 进行通信。

Google AdInline article slot
  • 握手协议:{"action":"hellow"} —— 双向响应确认连接建立。
  • 查询指令:{"action":"fans"}{"action":"temperature"} —— 返回包含 RPM 数据的端口列表。

FanControl 根据这些数据生成转速曲线。自动扫描所有 COM 端口的功能运行稳定,即使存在其他设备的潜在冲突也能正常工作。

![FanControl 界面](./images/image-3.png)

硬件构建与风扇完全停转

要实现风扇完全停转,必须切断电源——仅靠 PWM 信号无法做到。在一位本地专家的帮助下,设计了使用晶体管进行电源开关的原型。PCB 板(20 块)在海外制造,元件从速卖通(AliExpress)采购。

Google AdInline article slot
  • 焊接:第一块花了好几个小时,后来每天能焊 5 块。
  • 测试:曾在机箱上发生短路惊险一幕后,改为在独立工作台上进行测试。
  • 外壳:3D 打印制成,由于 USB 连接的复杂性,放弃了 Wi-Fi 模块化设计。

![成品控制器](./images/image-4.jpg)

自 2023 年以来的元件短缺问题,意味着需要不断寻找替代品。

应用场景与改进

在 Avito(俄罗斯二手交易平台)上的销售经历揭示了真实的应用场景:

  • 矿机: standalone 模式,利用水流传感器,转速曲线存储在控制器本地。
  • 模组改装:白色机箱搭配 RGB 灯效。
  • 服务器:独立供电,通过 COM 端口运行 UNIX 脚本控制。
  • 多控制器支持:FanControl 支持同时连接多个控制器。
  • 笔记本电脑:当与基站失去连接(ping 不通)时自动关闭。

曾有一个单元到货即损(DOA),在首次启动时变砖卡在引导加载程序中——随后无缝更换。

关键总结

  • 通过晶体管电源开关实现风扇完全停转。
  • 通过 COM 端口使用 JSON 协议集成 FanControl。
  • 在 PWM 简易性和调试方面,RP2040 优于 ESP32。
  • 具备无需宿主 PC 的矿机独立运行模式。
  • 可扩展支持多个控制器。

— Editorial Team

Advertisement 728x90

继续阅读