树莓派守护者!
文章目录
老虎机与行窃少年
那年我大概十岁。
家门口小店入驻了一台老虎机,每天放学回家路过小店,机器周围,围观者众。
晚饭后喜欢跑到小店,看人们下注、击键、大笑、咒骂、跺脚,我喜欢老虎机侧边的位置,从这里透过机器的缝隙,看得到里边的电路板,上边数字闪烁,毫无规律
此后许久,我对老虎机的兴趣一直很浓厚,多年之后,在大学图书馆的一角,饶有兴致地读到老虎机算法作者的书籍,他谈到你不可能赢过机器,唯一的获胜机会就是赢取你的同伴:你将机器视为中介,根据前边参与者的胜负,决定你的策略,这是你唯一获胜的可能
某天一早,小店门口停着警车,热闹非凡,凑热闹这种事十岁小孩再感兴趣不过了。挤入小店,看到4个少年垂首丧气,双手被扣,十五六岁年纪. 是店里老虎机坐上常客。
好事者纷纷问缘由,老板春风满面, 说起这群少年,如何三番五次,入室盗窃,手法精巧,行事谨慎.
人们又问,你既说他们机智,你又如何逮到他们。
老板等的便是这句,登时状如登上领奖台做获奖感言. 老板说自己早便发现他们入室盗窃,为了证据确凿,设计了一套精巧的陷阱:在柜台入口,近地面处系一根绳子,绳子一直连到老板睡觉的卧室,在卧室里系上易拉罐。少年们再次登门,触发开关,弄倒老板卧室的易拉罐,老板醒后,有备而来,少年们毫无知觉,来个瓮中捉鳖
末了老板感叹一句这等聪明,用到学习上得多出色
人们纷纷赞叹
基于树莓派的报警器
故事里,有一处不够优美:报警器竟是绳子做的!如果少年们更警觉些,看到绳子,或是踩到之后便逃离,老板恐怕要竹篮打水一场空。
我们可以基于树莓派来重构报警器
思路
将超声波传感器(或者红外线)放在柜台下边,当有人路过时,树莓派给老板手机发送一条短信(或邮件),这个隐形的卫士几乎没有破绽
实现(硬件)
硬件部分,我们使用移动电源为树莓派供电,便于藏匿(移动电源可用大约一周)
接线图如下(只需要关注超声波传感器):
实现(软件)
软件部分,我已经把源码放到这里了:raspberrypi_lab
这个项目的核心是,利用超声波传感器测距,当传感器前边有物体时,距离将发生变化,于是触发其他函数(发邮件)即可,核心源码为:echo_main
如果你想发送邮件,使用python的smtp库即可,如果你想发送短信,可以使用Twilio的api:
|
|
代码跑起来后,把它放柜台下,有人路过时,即可悄无声息地发送短信报警!
守护你的私密空间
我们来继续发挥守护者
这个概念,这次的目的是为了保护在房间里不好好学习,爱瞎折腾的你
想想你在自己房间里看哆啦A梦
班主任正在你家客厅家访。搞得你看动画片都不踏实,深怕有人破门而入
让我们发挥geek精神,把树莓派打造为私密空间守护者。这个守护者的职责是:当有人进入房间时,在led矩阵上亮起笑脸以示欢迎,同时用蜂鸣器演奏一首歌吸引注意(我用了葫芦娃)
led矩阵的源码如下:smile.py
蜂鸣器部分的源码为:beep.py
当门被打开时,超声波传感器将感觉到障碍物的出现,这是触发笑脸和音乐,最有意思的是下一步
切换电脑屏幕
你要知道你这个时候正看哆啦A梦看得兴起,你可能沉迷其中,听到音乐也来不及切换电脑屏幕,上班这段动作是典型的触发
模式,适合让机器来做,把它自动化!
我们在电脑上跑起来一个进程,这个进程是个web服务,可以被调用,当被调用时(来自树莓派的http请求),我们的电脑屏幕将自动切换到iBook阅读界面,切换速度在毫秒级别,老师/家长一进门,便看到你在津津有味地看书,因为你还没从动画片里缓过神,肯定盯住屏幕的书。老师欣然离去
这是打开之前你的屏幕:
这是房门打开之后你的屏幕:
这个web服务的源码在这里:pc_server, 这个功能涉及代码很短,只有几行:
|
|
有了树莓派守护者,你就可以不必反锁房门,在你的电脑上做任何事儿, 不用担心被察觉啦
文章作者 种瓜
上次更新 2016-10-07