最近笔者正在研究微控制器和基于物联网的设备安全。因此,我开始考虑建立一个小型家庭系统化系统,虽然目前还没完成,但我想先在文章中分享一下我如何使用树莓派2及一些其他电子元件来控制房间的灯光。当然,我在这里不会介绍树莓派的初始设置,因为你可以在网上发现各种各样的教程。
在我们继续实验之前,我想有必要提醒一下关于实验中“电流”的危险性。一旦出现任何状况,最糟糕的情况就是死掉或者烧了你的房子。所以,请不要试图完成任何文中提到但是你不理解事情,或者你可以在制作的时候寻求一些有经验的电工的帮助。
好啦,让我们开始DIY吧!
1、树莓派2(或者任何5V输出功率的型号,均可)
2、USB无线软件狗
3、8路继电器
4、一些Female-Female跳线(40 PCS FEMALE TO FEMALE JUMPER WIRES)
5、灯头电线
(以上硬件,某宝均有销售)
1、了解基本Python语言或者其他任何语言(我会用到Python)
2、对Linux系统有基本了解
3、专心致志
现在,在我们继续制作之前,你需要了解一下我们将使用到的电子元件。
继电器是一种使用非常低的电压输入控制高压电的电气设备。由一个线圈缠绕的金属杆和两个小型金属节点构成的闭合电路。其中一个节点是固定的,其他的都是可移动的。无论何时,当电流通过线圈的时候,它会产生一个磁场,吸引可移动节点向静态节点运动,形成电路。通过给线圈供应小额电压,我们就能完成高压电路的轮回。同时,静态节点并非在物理上与线圈有联系,因此一旦有地方出错,微控制器驱动的线圈也很少出现故障。
试验中,我使用一个8路继电器,可以同时控制8个设备。你可以选择自己的继电器或者继电板,但是请确保你在继电器的额定电压之内处理,以避免任何事故的发生。
跳线就是我们链接树莓派GPIO插脚与继电器的简单连接电线。
我们使用树莓派2作为一个微控制器来操纵继电器。它有40个GPIO(通用输入/输出)插脚。你可以看到下面这些插脚的布局,我们将使用这些接口为继电器加电和控制开关。
电路非常简单。我们将连接GPIO插脚到继电板上。首先连接继电器板上的“GND”与树莓派上的任意“GND”。然后链接继电器的“IND1”到GPIO PIN 17,我们会把GPIO PIN 17作为一个控制第一继电器的输出。最后,将继电器的“VCC”连接到树莓派的“5V”GPIO插脚。让我们简单直接设置一下:
现在我们到了最为棘手的部分,我们要将继电器连接到接通主电路供电的灯头上。但是,我想先给你介绍一个如何通过直流屏电源开启及关闭灯光的简单操作。
我们通常连接两根电线到灯泡上,来提供电流供给。其中一根电线是“中性”电线,另一根则是实际带着电流的“负极”电线,同样的这里也有一个控制整个电路的开关。因此,当开关(闭合)连接到流经灯泡的电流和负极电线时,电路便完整了。灯泡从而亮了起来。当开关(断开),破坏了电路和灯泡的电流,因此灯泡不亮。这里有一个小的电路图来解释具体情况:
当我们在试验中,我们需要“负极电线”通过我们的继电器来打破电路,从而使用继电器开关的控制流经的电流。因此,当继电器打开,在闭合电路中灯泡也应该亮起来,反之亦然。请参考一下完整的电路:
现在,终于到了软件的部分。我编写了一个简单的python脚本来控制继电器开关,使用了GPIO PIN 17和一个PHP代码可以在任何移动终端上面来运行python脚本。你可以从我的Github(和CSS)上找到这段代码。
注意:你将会需要添加“www-data”用户到sudoers文件。
注意+:PHP代码只是为了测试,我们不建议在公共环境中运行。
不久我将完成这个设置,希望回来更新一个新的帖子。请在那时之前,自己动手试一下这个控制灯,但是一定要注意安全。
P.S:本人对于电路经验不是很丰富,因此如果有什么错误或者错过的地方,我会很高兴知道。请各位在评论中不吝赐教,分享你的宝贵意见:) (小编会挑选优秀评论翻译给原文作者)
· GPIO Diagram: http://data.designspark.info/uploads/images/53bc258dc6c0425cb44870b50ab30621
· https://www.youtube.com/watch?v=Z2B67hybdAA
· https://elementztechblog.wordpress.com/2014/09/09/controlling-relay-boards-using-raspberrypi/
· https://www.raspberrypi.org/forums/viewtopic.php?t=36225
· https://github.com/TheGreenToaster/web-pins/
*参考来源: blog ,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)