快捷指令打开老小区楼下门禁 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lloydsheng
V2EX    智能家电

快捷指令打开老小区楼下门禁

  •  1
     
  •   lloydsheng 2020-06-15 11:36:30 +08:00 6574 次点击
    这是一个创建于 1944 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于作者是程序员,对编程方便比较了解,对硬件方便不太了解,可能有更好对方案,写这篇教程只是给大家一些灵感,大家在可以在评论区一起讨论。

    现在带钱包就是为了放小区楼下门禁的钥匙,家里的门锁早就换成指纹锁了,能不能彻底摆脱钥匙的束缚呢。今天拿出好久没开机的树莓派,加上之前买的一堆元器件开始折腾。

    一般老小区的门禁都非常简单,我们小区门禁连接到每个家庭是一根五芯的电缆。当拿起听筒(其实不拿也可以),点击开锁按钮的时候有 2 根线瞬间被联通,从而形成通路导致门锁被打开。

    到底是需要哪连根线被联通呢?由于找不到说明书,只能自己测试。我把听筒放在耳边,找一根电线挨个测试,最终找的这 2 根线。

    接下来的工作就是如何通过手机来控制这 2 根线的联通,我选择的是树莓派 + 继电器,继电器的作用本质是用一个回路(一般是小电流)去控制另外一个回路,树莓派就是让继电器形成这个小电流的回路。

    我用是这款 1 路继电器,淘宝上很容易找到。

    找 3 根杜邦线把树莓派这头接上,分别是红线 5V,灰线 0 V,蓝线 GPIO. 3 。

    杜邦线另一头接到继电器的针脚上,接线正常到话红灯会亮。

    把上面找出来的 2 根开锁线间断,剥掉一段塑料包皮然后缠绕在一起,2 根线分别接在公共端和常开端。

    到这里硬件就连接好了,下面登录树莓派测试一下。树莓派系统自带 gpio 命令,测试非常方便,我发现这个继电器只要将 mode 设置为 out 常开端就能联通,联通后绿灯会亮。

    确定硬件连接正常后,就是考虑如何用 API 来控制继电器的闭合。这里我选择的是 Python 的 RPi.GPIO 库,好像是树莓派自带的,我写的代码如下。

    import RPi.GPIO as GPIO import time import sys def open(): GPIO.setmode(GPIO.BCM) GPIO.setup(22, GPIO.OUT) GPIO.output(22, GPIO.HIGH) time.sleep(1) GPIO.cleanup() 

    我们还需要搞一个在线的 HTTP 服务,以便我们在手机或电脑上调用这段代码。可以用 Python 的 Flask 搭一个简单的 HTTP 服务。

    from flask import Flask from flask import jsonify import door import sys app = Flask(__name__) @app.route('/open') def hello_world(): door.open() return jsonify(error=False) if __name__ == '__main__': app.run(host='0.0.0.0') 

    最后通过快捷指令请求这个 HTTP 的 API 就能打开小区门禁了,安卓端可以选择其他类似 APP 。

    还可以把这个快捷指令放到负一屏更加方便操作。

    第 1 条附言    2020-06-15 12:41:46 +08:00
    看了大家的评论,感觉可以用的模块很多,但是供电的电源是个问题,话机的空间就那么大,大家有什么好的建议吗。我这个好解决是因为我装修的时候门禁的先走弱电箱弯了一道。
    37 条回复    2020-06-17 13:41:01 +08:00
    l0wkey
        1
    l0wkey  
       2020-06-15 11:43:24 +08:00   1
    树莓派成本太高,NodeMCU ( ESP8266 )了解一下?
    或者这种集成继电器的 8266 模块~



    多多大法好...
    Smash
        2
    Smash  
       2020-06-15 11:43:30 +08:00
    可惜我们家小区门禁是加密门卡,miui12 模拟上了也用不起。
    lloydsheng
        3
    lloydsheng  
    OP
       2020-06-15 11:44:48 +08:00
    @l0wkey 方案很多啊,大家可以多多讨论,我是刚好有哥闲置 2 代树莓派,放了好几年没用
    l0wkey
        4
    l0wkey  
       2020-06-15 11:47:29 +08:00
    补充:平时玩的不多没有串口线烧录夹之类的话,NodeMCU (带 u 转串口的 8266 ) + 单独继电器更方便
    l0wkey
        5
    l0wkey  
       2020-06-15 11:49:17 +08:00
    @lloydsheng #3 嗯是的~ 不过树莓派的话理论上可以上 nodemcu 做到 lowcode 开发
    顺便还能集成点其他功能 https://v2ex.com/t/642563#reply8

    就是体积可能略大放不进去那个话机
    Smash
        6
    Smash  
       2020-06-15 11:49:43 +08:00
    @l0wkey nodeMCU 不错,支持 Arduino,还有封装好的 http client 用。
    l0wkey
        7
    l0wkey  
       2020-06-15 11:56:26 +08:00
    @Smash #6 嗯。不过上 HTTP 在这里并不是一个好选项,得同一个 WiFi 或把端口映射出来(风险略高)。所以比较合适的方式是连接云物联网平台上 MQTT 这类长连接作为控制通道,设备侧订阅,然后手机侧用 MQTT 或者 HTTP 方式发送。
    一方面可以传输控制指令,另一方面还可以复用 MQTT 通道来监测设备运行状态。
    lmmortal
        8
    lmmortal  
       2020-06-15 12:07:53 +08:00 via iPhone
    思路挺不错的 我都想做个自动通断的开关了,每隔一分钟自动开楼下的门,这样就不用输密码不用带钥匙了,站在门口等一分钟就自动开
    hooon
        9
    hooon  
       2020-06-15 12:15:13 +08:00
    @lmmortal 你这个,还能有门禁的作用吗?
    zlkent
        10
    zlkent  
    PRO
       2020-06-15 12:17:58 +08:00
    我也想过用 NodeMCU 通过话机来控制门禁,不过断了念想的原因是供电问题,用电池又不方便,话机附近又没有留插座。
    lloydsheng
        11
    lloydsheng  
    OP
       2020-06-15 12:19:19 +08:00
    @zlkent 搞一个小的充电宝放进去?
    lloydsheng
        12
    lloydsheng  
    OP
       2020-06-15 12:20:27 +08:00
    @lmmortal 要是这样这门禁不就直接废掉了吗,无论是谁等一分就能开门
    lmmortal
        13
    lmmortal  
       2020-06-15 12:24:38 +08:00 via iPhone   2
    @hooon
    @lloydsheng
    就是要废掉门禁,楼下门禁没啥意义,反正就算是小偷坏人在楼下等一会也会有人开门上楼的,而且也不会有人管上楼的人是去哪个房间,不会管是不是坏人,根本防不住任何人,所以最后就是只是给住户增加麻烦
    imdong
        14
    imdong  
       2020-06-15 12:26:20 +08:00 via iPhone
    esp01 甚至可以塞进电话里面去
    lvyuedong
        15
    lvyuedong  
       2020-06-15 12:29:27 +08:00
    @Smash 加密的有方法写入的,一般都是 m1 或者 ic 模拟 m1,但是不管怎样,最后都是继电器电磁铁,想想办法一切皆有可能。
    lloydsheng
        16
    lloydsheng  
    OP
       2020-06-15 12:37:35 +08:00
    @imdong 可以用的模块很多,供电的电源是个问题,我这个好解决是因为我装修的时候门禁的先走弱电箱弯了一道。
    cjpjxjx
        17
    cjpjxjx  
       2020-06-15 12:42:01 +08:00 via iPhone
    两根线连通就能开门?那其实只要一个智能插座+继电器就行了,原理和电脑的开机按钮一样
    https://www.cencs.com/53.html
    l0wkey
        18
    l0wkey  
       2020-06-15 13:05:00 +08:00
    @zlkent #10 使用话机同样的供电方式?比如 poe 供电?
    weyou
        19
    weyou  
       2020-06-15 13:19:54 +08:00 via Android
    很有想法,就是因为楼下门禁需要钥匙才打消了安装智能锁的念头。一个问题,这样的话开门之前是不是还是要揿一下自家门牌号按钮?
    lloydsheng
        20
    lloydsheng  
    OP
       2020-06-15 14:19:20 +08:00
    @weyou 我们小区这款设备非常简单,什么额外操作都不需要,只需要在手机上点一下快捷指令。
    zhouquanbest
        21
    zhouquanbest  
       2020-06-15 14:26:55 +08:00
    不如用小米那种 wifi 开关来做连接 成本比较低
    zlkent
        22
    zlkent  
    PRO
       2020-06-15 14:37:17 +08:00
    @lloydsheng #11 电池不方便,还得经常拿出来充电
    @l0wkey #18 就是不清楚话机的供电是否能满足,没去测过。
    mrcn
        23
    mrcn  
       2020-06-15 14:53:03 +08:00
    @lmmortal 陌生人在楼下呆久了开不开门本身就会引起警觉,不论怎么说都比裸着的强
    你私自废了门禁别人丢了东西,如果没抓到贼肯定就会怪你
    icegaze
        24
    icegaze  
       2020-06-15 15:05:36 +08:00 via Android
    我在楼道门禁机控制器里加了个蓝牙遥控开关,20 元,体积很小,看不出来。有手机 app,选择点动功能,点一下,直接吸合再释放继电器,,,继电器并联在接出门按钮接头上。
    icegaze
        25
    icegaze  
       2020-06-15 15:09:50 +08:00 via Android
    蓝牙比较靠谱,1 功耗小直接加在门禁机控制器里没问题,不会影响原来的电路板 2 距离短,在门口才能连接 3app 带指令密码,一般手机即使连接上也不能操作它。
    wangxiaoaer
        26
    wangxiaoaer  
       2020-06-15 15:15:47 +08:00 via Android
    @lmmortal 别这么极端,起码小偷半夜无人进不来。
    NotFoundEgg
        27
    NotFoundEgg  
       2020-06-15 15:22:17 +08:00
    弄个诺基亚 打开电话白名单 把震动马达的线拆下来接到门铃上(逃
    mlhorizon
        28
    mlhorizon  
       2020-06-15 15:31:47 +08:00
    为楼主点个赞!
    从知道用什么方案,到做出想要的效果来,期间是需要投入很多精力的,不过成功后收获的乐趣也要多很多。
    很多人都停在了知道 xxx 可以做 yyy 上,从来没动手实现过,把能获得最强烈的成就感的步骤给丢弃了,太可惜了。
    lmmortal
        29
    lmmortal  
       2020-06-15 16:13:43 +08:00 via iPhone   1
    @wangxiaoaer
    @mrcn
    小偷并不需要在楼下等吧,这又不是纯 ic 门锁,老式的十字门锁,网上开锁教程都很多,小偷如果不会开锁那还是小偷吗
    lmmortal
        30
    lmmortal  
       2020-06-15 16:16:41 +08:00 via iPhone
    并且小偷如果不会开锁,楼下的门就算别人帮他开了,他怎么入室盗窃呢。
    systemcall
        31
    systemcall  
       2020-06-15 16:30:04 +08:00 via Android
    @zlkent 可以不考虑充电,一次电池也可以供电,反正 esp8266 也需要 3.3V 的电压,电池组做到 6V 或者 9V 就行了,esp8266 有内建的 ADC,拿电阻分压就可以满足了,电池电压过低定期发个警告。
    systemcall
        32
    systemcall  
       2020-06-15 16:32:02 +08:00 via Android
    如果没记错的话,电话线是 12V 的交流电,接通的时候是 24V
    先量一下电压,确定有没有供电。一般来说,电话线是有供电的
    可以考虑拿二极管堆个全桥整流出来,再通过 ldo 给 esp8266 供电
    weyou
        33
    weyou  
       2020-06-15 17:41:33 +08:00 via Android
    @lloydsheng 我这里是楼下必须要按下按钮,家里门禁电话必须接起来才可以按开门按钮。否则直接按开门按钮没有用。估计要复杂一点了,但楼主提供了很好的思路,有空试试。
    B1ankCat
        34
    B1ankCat  
       2020-06-15 17:46:47 +08:00
    想法很好,但是用树莓派是不是大材小用了
    ajaxfunction
        35
    ajaxfunction  
       2020-06-15 17:55:34 +08:00
    @lmmortal 楼宇门门禁是电磁锁,没有钥匙插口吧,
    再说小偷也是随机作案,这个楼进不去就去下一个楼了,难道非盯着这个不放嘛
    而且门禁还有其他作用,防止贴小广告 这些
    ihciah
        36
    ihciah  
       2020-06-15 18:25:42 +08:00
    (这个多年前我们宿舍楼有人搞过,还接入了学生账号认证
    zlkent
        37
    zlkent  
    PRO
       2020-06-17 13:41:01 +08:00
    @systemcall #31 多谢,有机会试试看
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2698 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 12:58 PVG 20:58 LAX 05:58 JFK 08:58
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86