Shell's Home

Jan 17, 2012 - 1 minute read - Comments

计算机自动化的方向

我认为,人类操纵各种设备的权利不言自明,这是软件/电气设备进化的必然结果。

OK,我在吐槽什么?

昨天,老婆用了一次家里的新自动洗衣机。很好用——晚上把衣服全丢进去,然后设定模式,倒进去洗衣粉,今早六点他会自动启动。早上就拿着半干的衣服去阳台晾晒,整个过程没有一点麻烦。外婆家里的那台老洗衣机,每次使用都需要搬进搬出,连接一堆管线,然后发出巨大的响声,再由人工把半湿的衣服拿去晾。

——如果要那样的话我们还得看着洗衣机,或者任由刚刚洗好的湿衣服在洗衣机里面闷六个小时。

我觉得,这才是享受人生的方式。当然,老婆和我也是一样的观点——我们在父母家里可是受够了老式洗衣机的刁难。她在发现这玩意的好处后,脑筋动的可比我快多了。早上还没有睡醒,我就被她吵起来,然后问了一个问题。

怎么远程遥控家里的微波炉和空调?

OK,很得意的说,这是家居设计时我早就发现的一个问题,然后很遗憾,我告诉她——暂时不行。这个是我调查了很久后得出的结论。我不大不小好歹是个程序员,怎么说在控制电器上也是有点经验的,不过这个问题确实超出了我的能力范围。目前我所知道的,控制电器的方式基本有三种。

1.电器本身支持某种协议,例如wifi,或者蓝牙。我的电视机就支持eth网络,我可以通过手机遥控电视,或者直接在电视上观看某些节目,而不用打开电脑。

2.通过电源接口做。例如我看到房屋装修中卖的最多的,号称智能屋的系统。大部分都只能支持电灯的开关,或者电灯开关支持的最好。因为电灯的开关是一个只和电源有关的问题,我们只需要做一个很小的单片机系统,装置在开关面板上。当这个机器收到无线信号的时候,就打开或者关闭电灯开关。

3.通过红外线仿真做。这个适用于IrDA兼容的无线红外遥控设备。通过购买一个红外线装置,接收遥控发出的红外信号,再对着设备重发。

而以上三种方案,都是有缺陷,而且是严重缺陷的。

方案一,需要设备支持。通常来说,这样的设备都是相当昂贵的,而且不是每类别的设备都能买满意了。如果有一个很小的厂子生产一种空调,支持wifi。但是这个厂的空调机以不稳定而出名,你是否愿意为了遥控而冒常常要去修空调的麻烦呢?

方案二,不是每个设备都能灵活控制。空调和微波炉接入电源后处于待机阶段,而不是启动——这是最有遥控价值的两台机器。即使能启动好了,我再如何通过电源告诉他,把里面的东西给我加热10分钟?而且单片机接收信号必须有相当复杂的加密,至少能对抗差分攻击。否则就会陷入汽车解锁遥控器同样的问题——被破解。

方案三,更加糟糕。红外是一种指向性相当强的方案,所以当年的红外数据传输方案很快就被蓝牙替代了。也就是说,我要遥控三台空调,需要买三个红外设备,做固定指向。或者买两个电机来摇动红外设备。即使给我做出来了,不支持遥控的微波炉,自然也无法使用这个方案。

然而你很容易的想到,如果一个完全不明白技术关键的外行,在接触程控的第一天,就把我摇起来问这个问题。那么这个问题,肯定是我们将来的目标。

未来的设备,不但需要一套硬件界面(这个是必须的),而且还需要一套协议界面。为什么?你可以在家里的电脑里,通过符合协议的软件,一次性控制家里的所有设备,这就是所谓的“完全中控”。如果你觉得我是瞎说,鬼才会想要这种东西。请自己问问手里有一台ipad的同学,他们是否想在ipad上装个软件,直接遥控家里所有的电器?

他们想死了。

晚上的时候,把面包放进烤炉,执行一个good morning app。早上到时间了,闹钟会自动叫你起床,同时餐厅空调开始工作。当你确定起床后,面包就会自动开始烤,刷牙完毕正好出炉。出门的时候,所有设备都会自动关闭——整个房间里面没有任何一台中控设备了。晚上回家前,你的移动中控设备会通过3G自动唤醒灯光和空调。出门购物的时候,家里的冰箱会把缺什么东西传到你的手机上。

这才是人生阿。

睡觉前总是习惯要听点音乐,睡着后需要自动关闭么?装个app吧,亲。那个app不能连带关闭空调么?换这个app吧,亲。想要起床前空调就开始工作么?我们的app带定制功能,而且有默认配置模板提供修改哦,亲。Bill Gates在《未来之路》里面所幻想的美好未来,其实和我们只有一步之遥。

这一步问题在哪里?协议。

其实我们是可以做到的,这样美好的生活。问题是,我们缺少一个协议。

有专业公司,提供装修服务。他们可以对你的家里进行改造,部分安装他们的外接设备,部分改为专用电器,并且在iphone上安装专用软件,实际上可以部分做到我刚刚说的。

问题是,贵,而且不开放。

开放的好处在于,如果这个系统不支持晚上睡觉前关闭空调,我可以自己写一个替换掉。而且如果某个电器坏了,我不需要高价问他们买一个新的专用电器,而是直接可以在商场里面买一个。而专用电器支持的问题则是,我必须持续使用他们的设备和服务,他们也不能关门。

所以我才说,我们需要一个协议。