我的电脑主机放在桌子底下,电源键也在桌子底下。每次开机都要弯腰,手上拿着东西的时候特别烦。这个第一世界问题,我忍了很久。
后来看到桌上那块 Pimoroni Pico Inky Pack,突然想到:既然 Wake-on-LAN 可以用 MAC address 把电脑叫醒,那为什么不把它做成一个放在桌面的实体开关?于是就有了这个 project:Pico 2 W + Inky 屏 + 3 个 buttons 的电脑电源开关。
现在的用法很简单:轻点一下 = 开机,长按三秒 = 关机。e-ink 屏会显示当前动作和 PC 状态,平时不刷新时几乎不耗电。

它到底能做什么?
- Tap Button A:发送 Wake-on-LAN magic packet,把 PC 叫醒。
- Hold Button A 3 秒:通过 Wi-Fi 呼叫 PC 上的 shutdown agent,让电脑关机。
- Button B:检查 PC 是 ON 还是 OFF。
- Button C:显示 Pico 的 IP address,方便 troubleshooting。
Pico Inky Pack 是 2.9 寸 mono e-paper,分辨率 296×128,板载 3 个 tactile buttons(A/B/C)。它插在 Pico 2 W 后面,不需要额外 wiring;按钮 GPIO 分别是 12 / 13 / 14。
材料清单
- Raspberry Pi Pico 2 W(RP2350,Wi-Fi)
- Pimoroni Pico Inky Pack(2.9″ 296×128 mono e-paper + 3 buttons)
- USB cable / 5V power(放在桌面长期供电)
- Optional:3D printed stand 或简单外壳
- PC 必须接 Ethernet,因为 Wake-on-LAN 通常不支援 Wi-Fi
Note:Pimoroni 已经停售 Pico Inky Pack。如果你买不到,可以用 Badger 2040,或任何 2.9″ 296×128 SPI e-paper + 3 个 buttons 替代;代码里的 display driver 需要按你的硬件调整。
先说清楚:Wake-on-LAN 只能开机,不能关机
这是整个 project 最重要的技术点,也是很多 tutorial 没有讲清楚的地方:WoL 只能把电脑叫醒,不能把电脑关掉。
所以“长按三秒关机”并不是 WoL 做到的,而是 Pico 通过 Wi-Fi 呼叫 PC 上一个很小的 local shutdown agent,再由 agent 执行 OS 的 shutdown command。整个架构是这样的:

How it works
- Wake:Pico 用 UDP broadcast 把 magic packet 发到 port 9。Magic packet = 6 bytes
0xFF+ 16 次重复的 MAC address。 - Shutdown:Pico 对 PC 的
TCP 8765发一个带 token 的POST /shutdown。 - Status:Pico 尝试 connect PC 的 shutdown port;能 connect 就当作 PC is ON。
- Display:e-ink 只在有动作时刷新,所以不会一直闪,也不会一直耗电。
实际效果与限制
轻点后大概 20–40 秒开机;长按三秒后,PC 会在 5 秒内收到 shutdown command。e-ink 会显示 WoL packet sent、Shutdown sent 或错误提示。
限制也要讲清楚:PC 必须接 Ethernet;Pico 2 W 只支援 2.4GHz Wi-Fi;PC 上的 agent 必须常驻;Pico Inky Pack 已经停产。它不是“按一下立刻断电”的开关,而是“叫醒 / 正常关机”的 smart button。

照片里是我实际使用的版本:屏幕显示 HomeStation、Pico 的 IP,以及 DAF Kiosk / DAF PC 两台机器的选单。文章里的 code 为了简洁,只保留单台 PC 的 wake / shutdown 逻辑;multi-PC 只是把同一组 function 包一个选单。
下面是 paid section:完整的 main.py、Windows / Linux shutdown agent、WoL BIOS / NIC 设置、systemd / Task Scheduler、测试清单和排错表。Supporter 会员可以直接抄作业。
结语:少弯一次腰
这个 project 的技术不复杂,但它解决的是一个每天都会遇到的小麻烦。以前每次开机都要低身去桌子底下按电源键,现在只要在桌上轻点一下;关机也不用再弯腰。
科技有时候不需要很厉害。它只需要在某个很小的瞬间,让你少弯一次腰,少烦一次。
如果你也做了类似的 Pico / WoL / e-ink project,欢迎留言分享。你也可以在会员区拿到完整的 main.py 和 Windows / Linux shutdown agent。


Leave a Reply