本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者Boyd Wang和本文链接
翻译工作遵照 CC 协议,如果我的工作有侵犯到您的权益,请及时与我联系
英文原文地址:Adafruit's Raspberry Pi Lesson 12. Sensing Movement

概览

在这节课里,你将学习到如何使用热释电传感器连接GPIO来激活门禁。

lesson12_1

这节课,我们将把注意力放到感知运动和激活门禁开关上。我们会在第十三课构建这个安全感知系统,使用小派作为数字输出来在侦测到运动时控制电力设备。

你需要的

要完成这节课讲述的内容,你需要下面的东西。

热释电传感器(Adafruit 189号产品)

lesson12_2

电磁门禁传感器(Adafruit 375号产品)

lesson12_3

树莓派扩展板

lesson12_4

小型面包板

lesson12_5

一把跳线

lesson12_6

最后,当然是小派啦

lesson12_7

硬件部分

我们将会把两个传感器都连接到树莓派上。两个传感器都不需要额外的部件。

lesson12_8

热释电传感器是带插座的引脚。一定要确保引脚插得是正确的,红色的应该插在5V上,黑色接地,黄色的插在扩展板的18引脚上。

lesson12_9

尽管热释电传感器需要5V的电源供电,但它的输出却是对小派友好的3.3V,所以它k可以直接连接到GPIO的上作为输入。

门禁开关使用了一个叫做磁簧开关(reed switch)的东西。在一个玻璃管里装着两个簧片相互连接,然后外面包裹着塑料。当一个磁性物体(另一个白色方块)靠近这个磁簧开关的时候,两个簧片接触,然后开关关闭。因为这是个开关,所以正着接反着接都行。

我们会利用小派自身来在磁簧开关针脚上创建一个内部的上拉电阻,所以我们就不需要额外的上拉电阻了。

软件部分

这个程序只是一个循环,在侦测到运动的时候打印一个消息,或者磁力从门上移除。

程序使用了Rpi.GPIO类库。见第四课

程序里把pir_pin置为一个普通的输入针(a plain old input)。这是因为热释电传感器有一个3.3V或0V的数字输出。与之相比,door_pin是一个开关,不会产生电压作为数字输入。所以,这个输入针使用了一个额外的参数(pull_up_down=io.PUD_UP)。这将激活一个内部的电阻使得输入变高(上拉)除非有更强的电流(比如开关接地)来把它拉低。

然后循环轮流读取输入然后打印一条相应的消息。记住门禁开关报警只会在磁力从传感器附近移除时才会被激活。

配置与测试

有许多方式可以连接到你的树莓派上。也许最简单的方式是使用SSH(见第六课)并使用下面的命令打开一个编辑器:

..然后把代码粘贴进去,按Ctrl+X保存。

lesson12_10

在开始运行程序之前,把磁铁靠近开关并且在热释电传感器上盖上一些东西。

然后使用下面的命令运行程序:

..然后你可以看到终端有输出了,当你移走磁铁,或者把盖在热释电传感器上的东西拿开。

一个好的方式或许是把你的孩子放在热释电传感器前面,看他们能坚持多久!(译者:这主意简直棒(sang)极(xin)了(bing)啊(kuang))



打赏

Boyd Wang

想给自己贴上各种NB的头衔,NB程序员,NB自由职业者,最后发现自己其实是个Newbie,没办法,慢慢来吧

1 Comment

Adafruit的树莓派教程第十三课:电力控制 - Boyd Wang · 03/22/2016 at 10:14

[…] 这节课里,你将学习把在第十二课中接触到的PIR(人体热式传感器)与Adafruit电力开关尾插Module 2型结合,在检测到与运动时自动开关设备。 […]

Leave a Reply

Your email address will not be published. Required fields are marked *

无觅相关文章插件,快速提升流量