顺便谈一谈原型和产品差别。
很早之前我买了一个给台式机用的程控开关。这个开关是插在主板的 PCI-E x1 插槽上的,额外有两对跳线,一路接机箱按钮,另一路接主板。之前一直没有去安这个东西,主要是当时也是脑子一热买了这个配件,主板上其实并没有多少空间来装这个东西;近来换了主板之后觉得既然买了不妨用一用,于是便顺手装了上去。
这个程控开关支持通过手机远程控制,也可以连接到智能音箱。整体体验还算可以——打开手机 app, 配对新设备,填一下网络信息,然后就等待奇迹发生就可以了。
对于大部分人而言,可能到这里就结束了——配对成功,你叫音箱开电脑它就会帮你打开;你叫音箱关电脑它就会帮你关机。但对于我而言,其实不止如此。因为从事嵌入式设计,我对这些小玩意的工作方式还是有一些估计的。比如我知道这个东西其实是直接从主板上的 PCI-E 取的 5V 供电,用的是 ESP32 控制器去联网以及驱动一个中继器来模拟「按下机箱电源键」这个行为。至于一开始怎么配对我倒是没有想通,因为似乎走的并不是 BLE. 或许是 WiFi AP 模式吧,让手机连接某个特殊的隐藏 SSID, 然后和主机通信下发配置。
如果单纯地设计这么一个东西,可能前前后后(不算打板子)总共三天就能作出一个能用的原型。这个东西实在是太简单了,甚至只能作为大作业……如果需要自行设计板子和焊元件的话,姑且算一个课设。它甚至不需要做固件更新!毕竟,它的职责就是按一个按钮,别的再没什么了。
难的地方在于接入小爱同学之类的东西。
这个难并不是技术上的难——毕竟,协议解析这种东西说白了就是码一个有限状态流自动机;这个难是政治上的难,这个难是你如何去突破或者进入一个 walled garden. 最早的时候,我买了小米的某款智能音箱;当初我十分单纯地认为,应该总归有方法去自行设计一个可以被这个智能音箱控制的设备,但是现实是米家的生态是完全封闭的,作为个人开发者基本上没有任何希望去接入这个东西,除非你下血本去逆向分析整个协议。
有很多时候不得不感叹或许原型与产品之间的差别就仅仅是你有没有和 dalao 搭上话。有太多的优秀设计最终只是一个原型;也有太多的「产品」其实也就是赶毕设的大学生三天之内的成果。
如果只是小爱音响互动,可以去小米申请开发者。会提供一些SDK等开发环境。但是跟亲儿子还是有区别的。简单的互动还是没问题的。
这也太复杂了点
主板一般不是支持远程网络唤醒和来电自启动嘛,可以结合使用。
@萧瑟 Wake-on-LAN 作为选配功能,不一定存在;而且通常设置起来也会比较麻烦。来电自启动的话如果希望实现程控,那就需要一个程控插座了。总体而言或许这个小配件也有它存在的道理,通过 app 还可以配置比较复杂的开关机行为,如果有开放 API 的话(或者我能扒拉出来 API 的话)还可以搞一些 IFTTT 之类的操作,我认为还是比较有趣的。