Brandonz | 不烂凳子

  • DIY 智能电脑开关:Pico 2 W + Inky 屏,一键开机、长按三秒关机

    DIY 智能电脑开关:Pico 2 W + Inky 屏,一键开机、长按三秒关机

    我的电脑主机放在桌子底下,电源键也在桌子底下。每次开机都要弯腰,手上拿着东西的时候特别烦。这个第一世界问题,我忍了很久。

    后来看到桌上那块 Pimoroni Pico Inky Pack,突然想到:既然 Wake-on-LAN 可以用 MAC address 把电脑叫醒,那为什么不把它做成一个放在桌面的实体开关?于是就有了这个 project:Pico 2 W + Inky 屏 + 3 个 buttons 的电脑电源开关。

    现在的用法很简单:轻点一下 = 开机,长按三秒 = 关机。e-ink 屏会显示当前动作和 PC 状态,平时不刷新时几乎不耗电。

    DIY Smart PC Power Control infographic with Pico 2 W and Inky display
    Finished build:Pico 2 W + Pimoroni Pico Inky Pack,放在桌面就能开关电脑。

    它到底能做什么?

    • 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。整个架构是这样的:

    System diagram: Pico 2 W sends Wake-on-LAN magic packet to wake PC and HTTP shutdown request to power it off
    Pico 2 W 负责发 WoL magic packet 和 shutdown request;PC 上的 agent 负责真正执行关机。

    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。

    Actual Pico 2 W and Pimoroni Inky Pack PC power button on a desk, showing HomeStation, IP address, DAF Kiosk and DAF PC
    实际装在桌上的 End Product:e-ink 显示 HomeStation、IP 和两台 PC 的选单(DAF Kiosk / DAF PC)。

    照片里是我实际使用的版本:屏幕显示 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。

  • 2020:在多重身份之间,我学会的一堂取舍课

    2020 年,是我职业生涯和个人生活中最艰难的一段时期。

    那一年,新冠疫情打乱了无数企业与人谋生的节奏,而我的肩上,同时压着好几份责任。

    除了原本的科技与创业项目,我还担任 JCI 的地方会长。我需要协助每月的理事会议,推动社区活动,其中包括为受疫情影响的群体提供慈善援助与筹款。

    与此同时,我也有家庭的财务责任。妻子当时失业,我必须确保一家人的生活开销能够继续维持。我一边努力守住多个职业机会,一边履行社区承诺,一边支撑家庭。

    回头再看,我很清楚:那时的我,并没有很好地管理自己的优先级与个人精力。在充满不确定的经济环境里,我拼命想保住每一个机会,却把注意力分散在太多责任上,结果反而是——每一份承诺,都很难得到它应有的专注。

    这段经历给了我一个重要教训:有能力承担多份责任,并不代表我必须同时扛下所有事。

  • 一边练习,一边自学

    AI 的出现,像是把我一直缺的那一块补上了。可是我也开始想:如果我只是终于能够做到以前做不到的事,那又代表什么呢?

    好像一群人在比赛打羽球,大家都在同一件事上竞争。有天赋的人,早就从起点一路领先;而我只能一边练习,一边自学,没有资金,没有背景,靠自己一点一点撑着。

    好不容易赢下第一回合,下一回合又被打下来。创业像这样,打工也像这样。压力一来,疲惫感就会很重,重到会让人很想放弃。

  • 饮水思源:走过的路,都算数

    算起来,我走过的路,或许比一般沿着一条职业轨迹前进的人,多了一些。

    一路走来,从销售、技术、创业、管理,到后来重新回到企业与项目岗位,兜兜转转,经历了不少不同的角色。回头看看,那些与我年龄相仿、一路在同一个专业领域深耕的人,有些早已走到了我曾经梦寐以求的位置。

    有时候难免会想:如果当年的自己,也走一条直线,现在会在哪里?

    但人生大概没有这样的算法。

    上一份工作,后来回想起来,我才意识到,自己其实在不知不觉中,对上司“留了手”。当时未必懂得那意味着什么,直到最后搭上了自己的工作和饭碗,才真正明白:职场上的分寸、责任、判断,以及人与人之间的相处,并不是单靠技术和能力就能够处理好的。

    那一课,代价不小。

    后来辗转来到光明山,我反而变得更加谨慎。

    因为来到这里以后才发现,这里的许多前辈,不只是沿着一条路走了很久,他们每一条走过的路,都可能比我的更长、更深。面对这些经验,我越来越觉得,自己过去经历得多,并不代表懂得多;很多时候,只是让我更清楚自己还有多少东西需要学习。


  • 在异乡,我们重新定义生活

    我就是在KL已经混不下去了才过来SG,怎么了?这句话,听起来像是一句赌气,但实际上,它只是一句坦白。当你坐在吉隆坡某个熟悉的Mamak档,看着来来往往的人潮,心里清楚自己的努力已经用完了所有的可能性。那种感觉,不是简单的挫折,而是一种明白——明白不是每一份付出都会开花,不是每一次留守都能等到春天。

    我曾经站在KLCC的天桥上看过这个城市的繁华,也曾在深夜加班后开车穿过寂静的高速公路。可当银行户口里的数字和梦想的差距越拉越大,情怀真的不能当饭吃。当你说出“我努力过了,没有就是没有”的时候,你其实比任何人都清醒。你不是不爱这片土地,你是太爱自己的生活,才不得不选择离开。

    来到新加坡,很多人会问:“值得吗?” 值不值得,从来不是外人可以定义的。见不见面我说了算,这句话背后,是一种掌控自己人生的霸气。海外打拼的日子,不过是为了那几两碎银,但这碎银,却实实在在撑起了生活的底气。你选择了自己的战场,就不需要向任何人解释你的战略。

    你不会去评价别人的选择,因为你知道,每个人都有自己的时区和步调。既然过去没有携手创造,就别想着未来会一起爬上高处。有些路,注定要一个人走;有些山,必须独自攀登。孤独不是一种惩罚,而是一种馈赠,它让你有时间看清自己,也看清哪些人值得留在生命里。

    友情喝水不会饱,这句话说到了心坎里。成年人的世界,情感需要面包来滋养。我们需要高质量的陪伴,但也需要高质量的生活。如果一段关系只能停留在回忆里取暖,而不能在现实中并肩前行,那么它注定会被时间冲淡。道不同不相为谋,不是绝情,而是清醒。

    从KL到SG,这段路不算远,却足够改变一个人的心境。我们不是在逃离,而是在寻找一个更适合自己生长的土壤。没有谁亏欠谁,也没有谁对不起谁。每一个努力生活的人,都值得被尊重。所以,别再用情怀来绑架我,也别再用道德来评判我。我只是一个在异乡努力打拼的普通人,想要的生活,我自己给。

  • 在代码的世界里,找回生活的温度

    最近跟朋友喝茶,聊到我们这一行,话题总离不开技术栈、框架、还有永远追不完的更新。写代码久了,有时候会觉得自己也像机器,每天处理着逻辑和指令,理性得有点冷冰冰。

    代码与生活

    尤其我们这些在异乡打拼的,新加坡的节奏比吉隆坡快很多,下班后回到住处,面对的往往还是屏幕和代码。生活好像被压缩在了一个个函数和循环里,忘了自己除了是个工程师,也是个有血有肉的人。

    前几天加班到深夜,走出办公楼,看到路边摊的灯光和热气,那一瞬间突然觉得很温暖。我们花那么多时间去优化用户体验,却常常忽略了自己生活的体验。

    城市灯火

    其实,编写程序的逻辑和经营人生很像。我们都需要偶尔停下来,调试一下自己的状态。代码需要注释,人生也需要留白。不是每一个问题都需要用技术去解决,有时候,一顿热饭,一次发呆,或者只是抬头看看KLCC的夜景,都能让紧绷的神经放松下来。

    想想小时候在Kepong长大的日子,那时候没什么高科技,但快乐很简单。现在拥有了很多工具和技能,反而容易迷失在信息的洪流里。

    所以我想说,不论你是在写什么语言,做哪个项目,别忘了你也是自己人生的开发者。把一点温度写进生活,把一点感性留给日子。世界很复杂,但我们可以选择,用代码构建未来,也用温暖滋养自己。

    夕阳下的吉隆坡

    愿你在追求卓越的路上,也能看见沿途的风景。

  • 硅基灵魂:当科技遇见心中的那炷香

    我们这一代,活在最矛盾的时代里。

    左手握着冰冷的电路板,右手燃着一炷温热的心香。

    从前,人们求神拜佛,求的是风调雨顺,求的是心安理得。现在,我们打开手机,对着AI大模型倾诉心事,求的是效率,求的是一个不眠夜里能快速安抚焦虑的“数字经文”。

    human robot hand

    你说这是“超自然”,我倒觉得,这不过是人类寻找出口的本能换了一种形式。当现实的压力让人喘不过气,科技成了我们新的“仪式感”。代码像经文,数据流像香火,我们在屏幕前虔诚地刷新,希望算法能给我们一个关于未来的答案。

    但科技真的能渡人吗?它能算出你的KPI,却算不出你心底那一丝软弱的叹息;它能优化你的行程,却优化不了你错过末班车时的落寞。

    digital code face

    所以才有“Silicon Spirituality”这个词。硅基的冰冷,遇上了灵魂的温度。我们在云端寻找皈依,却又在深夜里觉得这皈依太虚无缥缈。有些人把AI当作新的“神”,把大模型当作无所不能的“先知”,可说到底,那还不是因为我们对同类的信任,以及对未知的恐惧,已经到了一个前所未有的顶点吗?

    身在异乡,这种感觉尤其强烈。Kuala Lumpur的烟火气,Singapore的电子脉搏,都是活生生的、带有体温的存在。科技让天涯变咫尺,却也让人心隔了一层冷冰冰的屏幕。我们比以前更容易联系到任何人,却更难触碰到真实的心跳。

    meditation

    真正的超自然,不是那些玄而又玄的法术,而是我们在被数字洪流包裹时,依然能听见自己心跳的那份笃定。科技可以模仿思考,却模仿不了顿悟时的那一阵暖意。它解不开你眉头紧锁的结,但它能照亮你脚下那条回家的路。

    我们不需要在“虔诚”和“赛博”之间做选择。你大可以在敲完最后一行代码后,闭上眼睛,把那份压力交给更深处的自己。科技帮我们跑赢了时间,但灵魂这件事,终究是跑不赢的,也不需要跑赢。

    真正的超自然,是当你被资讯淹没时,还能找到属于自己的那一片寂静。

  • 马劳

    今天是新加坡的国庆日,大街小巷挂满了红白色的旗帜,庆典的歌声从远处传来。别人放假庆祝,我们两公婆还是一样起身去上班。说不上羡慕,也说不上委屈,就是很平常的一天,只是心里多了一点感触。

    新加坡滨海湾夜景

    有些人喜欢酸我们,说我们是马劳,说我们两公婆跑去新加坡讨生活,语气里带着几分调侃,甚至几分看不起。以前听到还会有点不是滋味,现在反倒真的没什么好介意的。马来西亚华人从小听老人家讲,不要问国家能给你什么,要问你能为国家做什么。这句话从小听到大,我一直记在心里,一刻都没有忘过。

    过去三十年,我把自己学会的东西,几乎免费地回馈给马来西亚,能教就教,能帮就帮,从来没有计较过回报。那些年没有存下多少钱,反而欠了一些债,但心里是踏实的,因为知道自己没有亏欠这片土地。如今我不过是把自己的能力带到新加坡来,赚一点新币,把债还清,把家养好,让家人过得安稳一些。这有什么好丢脸的。

    吉隆坡日出时的天际线

    是马劳又怎样,做獁狫又怎样,我们靠自己的能力赚钱,靠自己的双手过日子,每一分钱都挣得心安理得。别人怎么称呼我们,是别人的自由,我们怎么生活,是我们的选择。在寺庙里工作的这些年,我慢慢学会了平常心这三个字,不去争辩,不去计较,把该做的事做好,把日子过踏实,心里自然就安宁了。

    新加坡鱼尾狮夜景

    新加坡给了我们一个谋生的机会,我们也在认真工作,用心回馈这片土地,这本来就是公平的交换。不管身在吉隆坡还是新加坡,不管别人叫我们什么名字,我们都清楚自己是谁,知道自己为什么在这里,也知道自己在为谁坚持。养家糊口不是丢人的事,堂堂正正活着,就是最好的回答。

  • 科技流转之间,记得给自己留一片静

    在这个什么都讲求快速的年代,我们似乎习惯了把手边的一切都塞进同一种节奏里。手机亮起的一瞬间,心里就跟着跳动一下,科技的声响悄悄填满了白天与黑夜。可当我放慢脚步,站在庙宇那一片安静的屋檐下,忽然觉得,真正让我们觉得踏实的,从来都不是拥有更多,而是愿意拥有更少。

    这些年我们一路搭建系统、学习云端、守护每一段程序背后的安全,也在每一次修复与部署里看见自己的成长。科技教会我们的从来不只是技术本身,它更像一面镜子,照出我们如何面对不断变化的难题,如何在混乱中保持清醒。那股专注,其实和修行时点起的一炷香没有两样,都需要我们轻轻放下杂念,把心放在眼前这一件事上。

    久而久之我才明白,工具再好,也只是带着我们走路的杖。真正决定脚步稳不稳的,还是心里那份安静。当我们被通知和讯息包围,收到越多反而越容易迷失,这时候最简单的办法,反而是把目光从屏幕上移开,去听一段风,去看一朵云,让思绪回到呼吸上。每一次这样的停顿,都是在给疲惫的心重新充电。

    我慢慢体会到一个道理,崇尚科技和拥抱灵性并不冲突。它们其实是同一次旅程里的两个伙伴,一个负责把世界变得更方便,另一个提醒我们别忘了为何出发。你可以在调试一串代码时心静如水,也可以在写下的每一行里藏进坚持和善意。这样的结合,让冷冰冰的数字都有了温度,也让忙碌的日子多了一份可以依靠的力量。

    愿每一个在灯火通明的夜里仍不肯停下的你,都能找到属于自己的那一片静。不必急着赶路,那天色会为你亮起,那道光也一定不会错过你。别怕慢,慢下来的每一刻其实都在悄悄积蓄走向远方的勇气。

  • 异乡路上的灯火

    离开吉隆坡那天,甲洞的早晨还带着熟悉的潮湿。楼下的咖啡店飘着烤面包和拉茶的味道,街角的印度档老板照旧大声喊着早安。我拖着行李箱走过那些走了几十年的街道,心里明白,从这一刻起,故乡会慢慢变成一段记忆,而我将成为另一座城市的异乡人。

    吉隆坡清晨的天际线

    初到新加坡的日子,我常常在夜里望着滨海湾的灯火发呆。那些高楼大厦的灯光比吉隆坡更亮更密,却没有一盏是为我而亮。语言虽然相通,生活却处处需要重新学习,点餐的方式不同,步伐的速度不同,连空气里那种严谨的气氛也不同。起初真的很孤单,一个人在租来的小房间里,听着外面的车声,想念家里热腾腾的汤。

    新加坡滨海湾夜景

    后来我慢慢明白,漂泊并不是失去,而是另一种拥有。在佛寺工作的日子里,我学会在晨钟暮鼓中找到内心的平静,学会把思乡的情绪化作工作的专注。那些曾经让我喘不过气的债务和压力,在日复一日的坚持中一点一点减轻。原来成长的滋味,就是一个人咬着牙,把陌生的城市慢慢走成熟悉的模样。

    现在的我依然会想念吉隆坡的夜景,想念双子塔下那些热闹的夜晚,但我也开始珍惜这座新城市教会我的一切。异乡人的身份不是标签,而是一段勇敢的旅程。每一个离开家乡的人,都是在用自己的脚步丈量世界的宽度。灯火再远,只要心还亮着,走到哪里都不是流浪。