动机
最近老婆经常带小小出去各地旅游,留下我和家里的嘟嘟狗,这是深圳最热的季节,湿热的亚热带夏季!
??为了避开高峰期和大太阳或者大雨,同时为了下班能早点回家,我一直都是六点多就去上班了,然而问题来了,我那么早到公司,就意味着公司的空调必须由我来打开,在我第一个进入公司,打开灯和空调前,这种玻璃幕墙的写字楼是超级闷热的,夏天里的温室,有谁每天体验吗好吧,这个我已经忍了将近5年!从上海忍到深圳!每当我早上进入公司的时候,我是愤怒的,我当时第一个想法就是,请假回家!
??问题更加严重了,现在我连请假回家都不可以了。因为家里也成了一样的情况,家里没人会帮我提前把空调打开,这意味着如果我由于不堪忍受公司的环境而选择了回家,在进入家门的那一刻,我将面临同样的问题!好吧,于是我默默坐在自己工位上,喝一口冰水,苦苦等待那破空调的制冷效果显灵。
…
??公司的空调超级不给力,天天坏不说,根本就不制冷,我头顶还挡了一个灯,完全挡住了那本来就很微弱的冷风,严重影响工作效率!好不容易熬到了下班,我终于可以离开了,坐在班车或者地铁上是幸福的,因为空调很给力!然而进入家门的那一刻,我彻底崩溃了!我住的房子朝西,如果是晴天多云天气,西晒热别严重,本来就闷热的房间又被加热了一个下午,在我回到家时温度几乎达到了最不可饶恕的地步…天啊!
??跟早上到公司的情况一样,可能还会更糟!
??不能再忍耐了!我要动手做点什么试图改变这个令人悲伤的局面。当然,我无权触动公司的空调,那是公共财产,但我可以偷偷地Touch一下房东的空调(这要在上海我自己的家,我肯定早就动手了,然而我自己的家没有西晒…)。我要DIY一个远程空调遥控器,在我下班离开公司的那一刻,就把家里的空调打开(当然,前提是我早上上班时要把门窗关好,毕竟我没有那么多预算去DIY远程关门关窗的装置)!
风格
当我讲述我的故事给其他人听时,他们的态度是冷漠的,这显示了人们事不关己时秉性。以下是别人提的“简单”方案:
1.雇一个保姆或者钟点工每天到点去家里开空调…
2.家里装一套智能家居系统,或者简单的买一个智能插座…
3.买一个树莓派,再买套红外发射和接收模块,然后远程控制树莓派…
…
说实话,相对而言,我是比较喜欢方案3的,至少它很geek,方案1和方案2都是给土豪用的,我要有那钱,我至少也是个经理了吧,老婆外出旅游我难道不休假一起去而,即便是方案3,成本也太高了,我说的成本不光指钱,更包括学习的曲线,时间,精力,我的设想是,我需要一个朴素的方案!
??请注意,我不是为了学习树莓派或者学习嵌入式硬件开发,我只是为了开空调而已。所以我没有时间和精力去看那些手册,研究那些寄存器,或者听别人扯那些DIY出来的东西多么美妙…
??这些我没有兴趣,我对开发智能硬件也没有兴趣,我只是用它一下,希望能打开我家的空调,仅此而已。有人说,这个很简单,然后给我一大堆代码,画出一大堆原理图,这个我看不懂,我也不想看,隔行如隔山,我需要用我这个门外汉能理解的方式来做一个朴素的方案。
??记得几年前我在搞OpenVPN多处理的时候,我说“我不会编程,但也不是一点也不会,我稍微懂一点”,这句话的含义依然可以促使我完成远程空调遥控器的设计。对于程序员而言,正确地处理OpenVPN多处理的方法应该是修改OpenVPN的源码,把它多线程化,然而我的做法却是,原封不动地保持OpenVPN程序不变,仅仅是多运行几个实例,然后在外部通过脚本将这些实例粘合起来,我的意思是,所谓的朴素方案,就是组装现有的组件,而不是造出一个新的组件。因为造出一个新组件需要专业的技术,我没有,所以我只能组装。
…
隐喻
打开空调,需要做的动作很简单,就是按一下空调上遥控器上的那个开关按键,最显而易见的方案就是设计一套机械装置,触发器是一个夹子或者锤子,控制器接入到家用路由器或者一台常开的低功耗电脑,当需要触发时,锤子锤一下按键…但这需要机械方面的专业知识。But it’s beyond my ablity.
??回到最本源,按下那个按钮,发生了什么/strong>一定是接通了一个回路。把空调遥控器拆开来确认一下:
于是焊上去两根导线(家里没有导线,我劈开了一条已经很少用的双绞线中的一个线对来使用,粗细正合适!),然后短接一下,遥控屏幕点亮了,再短接一下,屏幕熄灭了。对着空调短接一下,空调打开了,再短接一下,关闭了…简单,就是接通一个回路,仅此而已,现在可以抛开空调遥控器本身了,现在需要看一下如何控制一个回路的闭合。
??继电器是万能的开关。整个世界就是开关的组合!
??继电器可以将控制权从人手导出给一台电脑,进而通过程序来控制开关的闭合。原理非常简单:
树莓派其实就是一个带有gpio的普通电脑,没有外设配件,它几乎什么也做不了,十分无聊,但它和普通电脑的区别就在于它的gpio,普通电脑只有普通的大众常用接口,比如USB,以太口,串口,VGA等等,要想接入一个传感器,继电器之类的小玩意儿,你得首先在这些小物件上适配一个这些标准接口,而这显得场面有点太宏大,不是很朴素。树莓派的gpio可以很朴素地接入这些小器件,然后针对这些端口的读写实际上就是控制这些小器件了。于是,我只需要买一个几块钱的普通的继电器就好了,继电器是个伟大的东西,它将一个硬开关转换成了一个软开关,它是硬件和软件之间的一座桥梁!
??我买的继电器是这种:
这种是已经做好的板子,不需要自己手工接线,直接插入即可使用,很方便,当然价格比较贵了,这是一个朋友送的,周五就给我寄来了,所以我才会用它,不然的话,有买这个的钱,我都可以买一个智能插座了。
实测
材料备齐了,开始DIY。
??按照下面的示意图接好线后,就开始编程了:
好吧,现在开始从外面接入树莓派…
??断开手机的WiFi,接入4G 络,在ConnectBot中添加一个条目,即ssh pi@$addr:600,然后连接…
??等待,等待…
??…
??没有成功!But why/strong>
??于是我试着用4G 络去ping这个addr,竟然不通!我怀疑是电信的光猫在捣鬼,是不是有可能电信的天翼宽带光猫上做了二级路由呢紧登录光猫看看。
??听说这个电信光猫是可以索得超级管理员权限的,我也搞到了一个,用户名是telecomadmin,密码是nE7jA%5m(也许你家的就是这个,我这个也是从朋友那里拿到的),登录进去后并没有发现有做路由,而是Bridge配置:
值得注意的是,配置Route模式拨 的时候,一定记得勾选使能NAT,这个我不用再解释了,不然数据包会有去无回的,使能NAT的意思是,出去的数据包在经过光猫时,源地址都会转换为电信分配的公 公共IP,而不是继续保留自己的私有IP地址。
??能通过打客服电话解决的事情就不去炫技搞隧道,代理,VPN这些玩意儿,再次重复,我的目标只是打开空调。
使用
既然不用极路由了,我也就只能在电信光猫上折腾了,虽然我知道最终还是要切换回极路由,但就现在,我不用折腾超级端口转发插件了,因为我在电信光猫上发现了一个好东西,即DMZ自动转发:
出门买只遥鸡去,临走先确认空调是关闭的,然后把这套装置摆在一个对准空调的地方,锁门走人:
登录以及执行yk脚本均成功!直接去买遥鸡,然后去买了一瓶真露烧酒。
??等回到家时已经半小时以后了,依然汗流浃背,打开门的那一瞬间,一股清凉扑来:

空调遥控器已经点亮,空调已经打开,坐下来,吃鸡,喝酒!留下了一些没吃完的鸡肉,给嘟嘟改善下伙食!
评价
不管是程序员还是硬件工程师,都会觉得我这个DIY超级没有技术含量,算是比较Low的,然而那些非行业内的或者说不懂技术的人不这么想。其实我也知道有很多种方案可以更加“漂亮”地完成这个任务,如果我能在文中贴一些datasheet的截图,那更帅了,然后再配备各种库的安装,编译,源码分析…但那样并不朴素,那不是我想要的。
??我一再重复的是,我的目标不是要学习嵌入式开发,我也无意去玩转树莓派,更不是什么编程高手,我不喜欢用“技巧”而不是“常识”来解决问题,我的目标仅仅就是打开空调。正如我上一篇文章写Geogebra的用法一样,在那篇文章中,我只是用它来画一个泰勒展开的逼近图像,我并不想去深入学习Geogebra的复杂用法,只是为了解决一个特定的小问题,碰到了这个东西,觉得可以适配我的需求,那么拿来用一下,在这些行为的背后并没有什么宏伟的计划。
??在日常生活中,这就是我处理一些问题的风格。我记得老婆说我的一个优点就是能用一切手边的东西解决眼前的问题。曾经用牙签修雨伞,用牛仔裤做手袋,用椅子做桌子,用双绞线输电,用铁钉做分频…总之太多这样的例子了,都不是什么有技术含量的东西,在专业的角度,都是很Low的东西,但是撸起袖子就干,能用,又有什么不好呢
??人们不喜欢朴素的东西,朴素的东西无法显示自己的与众不同,无法显得很牛逼,但却可以快速直接地解决问题,人们更多的是喜欢在“殊途”竞速,而忽略最终的那个“同归”,人们都想当独门英雄,却很难想象英雄最终都所见略同。
??在职场中,这种现象更加表现的淋漓尽致。能达到同样效果的两个方案,两个人一个人负责一个方案的实现,最终实现越复杂,花的时间越多,场面越宏大的那个人将会得到更多的奖赏,在西装老板和皮鞋经理们看来,复杂意味着工作量,意味着更努力,而简单朴素意味着小聪明,意味着trick。朴素注定是孤独的。
??我跟主音吉他手争辩,我说除了情感,所有的思想都是朴素的,主音吉他手告诉我,那是因为人们只能理解简单的东西。我思考良久,我认同他的观点,虽然人的大脑有逻辑上的缺陷(比如会出现短路,栈溢出等),但人的身体,特别是双手却可以做非常复杂的流程化规程化的事,如果自己做不到,就命令别人去做,如果所有人都做不到,就制造机器去做,所以说,现在的世界上,能用的东西都是复杂的,并且越来越复杂,所有这些都是靠众力完成的,工程学上的成果,天生就不是朴素的,它注定必然是宏大的,复杂的,即便上帝的阻挠,人们依然要造出巴别塔!
??朴素的东西只存在于思想中,欣赏朴素,请看那些孤独的思想者创造出来的一个朴素的原则,一套朴素的道德说教,一个朴素的公式,甚至一个朴素的化学式,一段朴素音乐…
升华
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!