基于树莓派实现任意终端控制楼宇门

一、背景
寒冷冬天的早晨,你躺在被窝里,门铃响了,你需要立刻起床穿衣服,然后去开门。现在,树莓派能帮你获得一个从容穿衣的时间。
二、摘要
1、简介:
使用树莓派、无线继电器、433发射模块完成对立林楼宇门的任意终端控制。
2、结构图:

三、环境
1、硬件:

树莓派Raspberry Pi Model B+型 或者 树莓派2
12V无线继电器
433发射模块

2、软件:

433Utils
python
php

四、原理
1、开锁原理:
四线非可视楼宇门主机在每个住户都引出4根线,对应的门铃/对讲机上的功能为:

红色---地线
绿色---振铃线
白色---主机到分机的通话+开锁线
黑色---分机到主机的通话线

只要将开锁线与地线短路,就可以控制楼宇门开启。
电路图:

文中使用的楼宇门主机型号为JB2200,其他楼宇门主机也可以,请自行对应各个引线关系。
2、继电器原理:
继电器是一种电子控制器件,是用较小的电流去控制较大电流的一种“自动开关”。更详细的内容请强行脑补,此处不展开介绍。
下面简单介绍一下一路无线继电器的各引线作用:

输入端---VCCGND两根线,用于接入合适的电源,区分正负极
常开端---NO 继电器处于关闭状态时,NOCON断路,反之联通
常闭端---CO 继电器处于管理状态时,COCON联通,反之断路
公共端---CON

关于继电器工作模式的选择,点动,互锁都可以,编程时区分即可,文中使用的时互锁模式。
五、开工
明白了上面的原理,那我们可以开工了。
1、连线:
1)树莓派与433发射模块连接

433->VCC---Raspberry Pi->任意5V电压
433->GND---Raspberry Pi->任意地线 
433->DATA--Raspberry Pi->任意GPIO口,需要与433Utils send.cppGPIO定义对应,默认int PIN = 0;(WiringPi Pin定义)

如下图所示:

2)无线继电器与楼宇门主机入户线连接:

继电器->VCC---楼宇门主机->受话线 
继电器->GND---楼宇门主机->地线 
继电器->NO----楼宇门主机->通话+开锁线 
继电器->CON---空

2、软件:
1)433Utils安装:
请强行脑补,传送门https://github.com/ninjablocks/433Utils
编译前请确保send.cpp中,引脚定义int PIN = 0;与连线一致
2)控制客户端与服务端
php服务器
提供读取开关状态和设置开关状态两个接口
读取开关状态
http://your_server_ip/RaspBerry_Relay.php?action=GET
设置开关状态
http://your_server_ip/RaspBerry_Relay.php?action=SET&relay=off/on
python端
运行在树莓派上读取服务器开光状态发送响应的无线指令
代码为自行编写,传送门:http://pan.baidu.com/s/1hqIxRDi
3、最后的调试:
无线继电器学习功能,不同继电器不一样,本文中的无线继电器操作方法为:

只开不关 按住触摸线不放,蜂鸣器第二次响两下松开,树莓派终端输入sudo ./send 11111 4 1,模块蜂鸣器再次响一下,学习成功。 
只关不开 按住触摸线不放,蜂鸣器第三次响三下松开,树莓派终端输入sudo ./send 11111 4 0,模块蜂鸣器再次响一下,学习成功。 
其他类型无线继电器学习功能请强行脑补,学知识上X宝,包教包会,报销往返路费,本期学不会下期免费再学

现在,你已经可以在任意终端上通过访问设置开关状态的URL来控制你家的楼宇门了!

版权声明:
作者:admin
链接:http://www.bttme.com/archives/1098.html
来源:bttme
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>