如标题,最近折腾了这么个有趣且实用的东西,记录下思路和步骤,详细步骤将会以教程的方式后续发布,希望能帮助到有同样想法的同学。

为什么折腾

去过小区的人都知道,小区的大门有个门铃,输入指定的房号,那个房子的门铃电话就会响,然后业主拿起电话, 询问访客,如果是认识的人,就会按下电话上的开门按钮打开楼下的大门,然后访问顺利登门拜访。

然而现在深圳城中村的一些高层农民房也使用了这种方式,而且楼下大门抛弃了钥匙,必须要刷居住证才能开门,这就有个问题了。

在深圳之前办的居住证在今年六月份就要过期了,必须重新办理,但是社保没有连续交满一年的不能办居住证,很不幸,我就是其中一员。

所以,才会萌生使用远程控制接电话开门的想法。 之前听说过arduino,也听说过机械臂,第一个想法就是使用arduino控制机械壁接电话,开门。后来详细了解了一下, 发现不太适合,一则成本过高,二则难度颇高,不一定有充足的时间做完。

最后得知舵机这个东西,然后发现其实用两个舵机就能完美解决。 电话上面无非就两个按钮,调整好舵机的位置,控制舵机转动的顺序和角度,就能轻松实现开门。

用到的东西

  • arduino x 1 - 某宝,正版的板子也就100以下, 我买了个套件,一共200不到,包括一些常用的组件
  • 舵机 x 2 - 价格10块左右
  • 树莓派 x 1 - 正版250左右吧,然后自己装好ubuntu, nginx, php
  • micro sd x 1 - 给树莓派使用,系统就是装在内存卡上的,买class10的16G,就够用了
  • 红外线接收器 x 1 - 套件自带
  • 遥控器 x 1 - 套件自带

开发步骤

主要的步骤如下,为避免篇幅过长,内容较多的步骤会单独作为一篇文章后续发布:

  • arduino 控制舵机

    这部分最重要,首先得准备好舵机的控制程序,根据串口通讯传送的指令作出不同的动作。 arduino使用的是processing语言,和c语言很相似,关键是arduino提供了IDE和很多库文件,应有尽有,很方便。

  • web调用控制舵机

    这部分通过nginx,php通过phpserial实现与arduino的通讯。

  • 获取路由器外部IP

    这部分想办法解决获取路由器外部IP的问题,

  • ip改动发送邮件脚本

    运营商分配的外网IP随时会变,这就需要写一个脚本,检测IP的状态,如发生改变,发送邮件通知即可。

  • 树莓派做服务器

    用笔记本做服务器功耗太大,树莓派是个不错的选择,功耗低,后续可玩性也很高。

  • 安全问题

    web 调用肯定有安全问题,授权登录是必须加上的。

折腾总结

智能家居差不多也是这样的思路,家里一个服务器,连着各种硬件,通过手机端访问家里的服务器控制家里的硬件。 这是一个很热的行业,很多人都认为做这些东西需要扎实的硬件知识,单片机知识,但是树莓派和arduino就是为那些外行设计的, 只需要稍微了解一下电路,电阻,gnd是啥东西,就可以作出自己的想做的东西,这简直就是外行人(设计师,艺术家)的福利,可以作出各种不可思议的作品出来。

Tinkering是arduino的精神,倡议先动手做,有想法就去做吧,第一次没成功,没事,tinkering it again and again, finally, it will work.

该主题其他文章: Remote-control-door

相关链接: