12265| 18
|
[项目] 【一个想法】微信门锁 |
【一个想法】微信门锁 基本想法 回到家门口,点击微信公众号的开门按钮,然后收到服务器发回的随机开锁二维码。 材料将二维码放到摄像头前,门锁打开,该二维码报废。 或者60s未使用该二维码,自动报废。 硬件:树莓派+摄像头 技术过程SAE服务器 微信公众号
(遗憾的是树莓派还在学校,先实现1、2步吧) -------------------------------------------------------------------------------------------------- |
过了好几个月,这个微信门锁终于可以亮一下了。虽然看起来还是有点bug,不过基本上实现了最初的想法。 成品演示如图所示,门锁由Arduino做主控,通过Ethernet shield上网。 在门外,拥有权限的使用者通过微信扫描门上的二维码,可以实现开门。 进入家里后,合上门,门上的感应器(其实就是个干簧管)被触发,自动关门。 在家里,不需要通过扫描二维码开门,而是直接按门上的唯一一个开门按钮,就可以开门。 另外,若开锁后,没有推开门,过2秒后,门会自动锁上。防止关门忘记上锁的情况发生。 对于没有权限的人(比如说在家里寄居几天的亲戚朋友),扫描门上的二维码会得到一个警告,同时得到一个二维码,门锁管理者,扫描这个二维码可以将这个客人添加到数据库中。 在这个客人要离开之前,用他自己的手机扫描门内侧的二维码,可以删除他的权限。 这里有个演示的视频: 门锁的结构 大的来说,门锁有三个部分,他们的关系如下: 硬件 <⇐=>> SAE <⇐=>> 微信测试号 关于硬件: Arduino做主控,通过Ethernet Shield与SAE通信,获得开锁命令,或者将门锁状态发送到SAE。(本来打算用机智云的模组或者ESP2866Wi-Fi模块的,最终发现现在使用的方式是最简单的。其他待以后有时间再做) 舵机作为开关门的机械部件 门上有个LED灯用于指示门的状态,开门-亮,关门-灭 干簧管和磁铁配合,用于感知门的状态 ,当门被合上时自动上锁 屋里门上有唯一的一个按钮,用于从内部开门 关于SAE: 这个demo采用SAE的云服务,免费好用 用tornado编写服务程序,用于接受微信测试号发来的事件,作出相应的反应 MySQL做数据库,储存门锁状态,门锁ID,管理者ID,开门二维码ticket等二维码ticket等数据。有数据库就有了为N个门锁和M个用户服务的可能。 这里放两个数据表给大家看看。 具体代码见github: https://github.com/qomo/welock 微信测试号: 测试号产生3类二维码:开锁二维码、添加用户二维码、删除用户二维码
|
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed