手搓一台能接Home Assistant的机柜温控风扇
19寸2U机架、温控闭环跑在板子上、MQTT接入HA和HomeKit
题记
家里的网络机柜一到夏天就成了小烤箱,交换机、路由器、NAS挤在一起,摸上去烫手。想买一台机柜温控风扇,网上一搜发现两个问题:贵,带温控显示的2U风扇动辄两三百,能联网的更贵;接不进Home Assistant,要么根本不联网,要么只能用厂家自己的App,家里其他设备都在HA里,它偏偏是个孤岛。
温控风扇的原理无非是”读温度、调PWM”,那就自己做一台。成品是一块19寸2U的3D打印面板,装了3个80mm PWM风扇、一块0.96寸OLED和一个旋钮,代码和模型都开源在Github上:jackwuwei/smartfan。
演示视频
它是怎么工作的
- 温控闭环跑在板子上:Arduino每秒读一次DS18B20的温度,按曲线算出占空比输出25kHz PWM,低于设定温度低速安静运行,高于设定温度自动加速。WiFi、MQTT、HA全挂了也照常散热,传感器掉线或者温度过高直接强制满速;
- 本地能操作:OLED显示温度、模式、转速和占空比,旋钮调目标温度、切Auto/Silent/Manual/Turbo四种模式,设置存EEPROM断电不丢;
- 接入Home Assistant和HomeKit:固件走MQTT自动发现,HA里自动出现温控器、风扇、温度、转速和报警实体,再用HomeKit Bridge桥接到家庭App,对Siri说一句就能改目标温度;
- 不用焊接:所有模块用杜邦线直插Arduino排针,两根「1分3」杜邦线分电,整机没有一颗外接电阻。首次上电扫OLED上的二维码配网,不用改代码。
成本
电子元件按淘宝实际购买价合计270元左右,面板的PETG耗材和螺丝不到20元。完整的物料清单、购买链接、原理图、接线表和打印参数都在仓库的README里,这里不再重复。
270元里,Arduino UNO R4 WiFi(78元)和3个Arctic P8 PST风扇(159元)就占了237元,其余模块加起来才30块。这两样都是我图省事选的:R4 WiFi一块板子就把WiFi、硬件PWM和IO都凑齐了,Arctic风扇能菊花链串接、0%停转、噪音小。如果愿意多折腾一点,成本能压到100元上下:
| 替换 | 换成 | 估价(元) |
|---|---|---|
| Arduino UNO R4 WiFi | ESP32开发板 | 15~25 |
| Arctic P8 PST ×3 | 普通8025 4pin PWM风扇 ×3 + 一根4pin「1分3」风扇线 | 30~50 |
| 其余模块 | 不变 | 约30 |
换ESP32要把固件里R4专用的PWM和WiFi部分改掉,面板上主控的立柱按ESP32的孔位重新生成,CAD是参数化的,改几个数字就行。便宜风扇要挑0% PWM能停转的型号,不然HA里关掉风扇它还在低速转。
3D打印面板
面板用build123d参数化建模,482.6mm的宽度超出256mm的打印床,所以切成三段用舌槽和M3螺丝拼接。面板贴着风扇装在机柜顶部,PLA会热软化,一定要用PETG。STL和CAD源文件都在仓库的cad/目录。
后续
风扇装上以后,机柜温度稳定在设定值附近,晚上自动降到低速基本听不见声音。接下来打算做一版ESP32的固件把成本压到100元以内。项目地址:jackwuwei/smartfan,欢迎Star,做了ESP32移植或者其他改进也欢迎提PR。




