树莓派如何连接使用 PIR 无源红外传感器?

在本教程中,我们将构建一个利用 PIR 传感器 (无源红外传感器) 的树莓派运动传感器。

PIR 传感器是用于检测运动何时发生的简单但出色的设备。在老式安全系统中,这些传感器被大量使用。但是,大多数现代系统都使用视频。我将在此页的后面进一步解释有关传感器的更多信息。

为了使这个项目更加有趣,只要检测到运动,我们还将使用压电扬声器。这两个设备都需要连接到 GPIO 引脚才能工作。

如果您不熟悉电子产品,那么本教程是向您介绍不同零件和电路的理想方法。我强烈建议投资面包板,因为这将使构建电路更加容易。

设备

为了执行此项目,您将需要一些设备,包括树莓派 PIR 传感器和压电扬声器。

推荐的

  • 树莓派

  • Micro SD 卡 (如果您使用的是树莓派 2、 3 或 4 (建议使用 8 GB 以上)

  • PIR 传感器

  • 压电扬声器

  • 100 欧姆电阻

可选的

  • 以太网线或 * Wifi 加密狗 (仅当您需要远程控制 Pi 的计划)

  • GPIO Breakout Kit

  • 面包板

  • Breadboard Wire

虽然分线板,面包板和电线是可选的,但我强烈建议您使用它们,因为它们会使您的生活更加轻松。另外,请务必查看您可以获得的一些最佳树莓派外壳。

视频

如果您想观看有关如何执行树莓派运动传感器的视频,请务必查看我下面准备的视频。

如果您喜欢我们的内容,并且希望随时了解所有最新项目,请确保在社交媒体上关注我们或注册到我们的邮件列表。

Adblock 阻止了视频?订阅我们的无广告服务,为我们提供支持。

树莓派 PIR 传感器硬件设置

我们将组装一个利用 PIR 传感器和压电扬声器的简单电路。

PIR 传感器在安全系统中最常见,可以在发出警报之前检测到运动。只要其视场中的红外温度发生变化,它们就会检测运动。

大多数 PIR 传感器上都有一些可调节的螺钉,可让您调节它们的时间和灵敏度。该时间允许您设置延迟时间 (发送高电平信号)。 (大约两到四秒钟)。灵敏度是指运动结束前需要发生多少运动。

压电蜂鸣器是一种简单的扬声器,只要有电流通过,它就会发出声音。在此电路中,每当触发运动检测器电路时,蜂鸣器都会发出一声大声的蜂鸣声。

面包板不一定是该项目的要求,但我强烈建议您使用一个。面包板使原型设计和构建电路容易得多。

您不必像我一样使用面包板,只需将它们直接钩在树莓派上即可。

要构造电路,只需执行以下操作。

1 在面包板上的接地导轨上接地。

2 将 5v 引脚插入面包板上的正轨。

3 将压电蜂鸣器连接至引脚 7 (红色电线) 和负极 (黑色电线)。

4 从引脚 11 到面包板接线。在导线末端放置一个 100 欧姆电阻器。然后将其连接到 PIR 传感器的” 黄线”。

5 现在,对于 PIR 传感器,将红线连接到 5v 线,并将黑线连接到面包板上的接地轨。

树莓派运动传感器软件设置

为了使我们的树莓派 Motion 传感器电路栩栩如生,我们需要做一些编程。这种编程相对容易,并且很像我们在 [树莓派 GPIO 引脚] 的介绍性文章是学习 [Python 基础]

首先,在您的 Pi 上输入以下命令以创建 Python 脚本并将其加载到 vim 文本编辑器中。

sudovimmotion_sensor.py如果您不想输入完整的脚本,则可以直接下载,解压缩并通过输入以下命令进入 Pi 上的脚本文件夹。

另外,您也可以直接从我的 GitHub 页面下载。

sudo wget https://github.com/pimylifeup/motion_sensor/archive/master.zip
解压 master .zip
cd ./motion_sensor-master

我将简要解释代码的每个部分的作用。

首先,我们导入 GPIO 和 time Python 软件包,因为我们需要这些软件包才能与 GPIO 引脚进行交互,并暂停脚本。

我们设置了三个变量,前两个变量是对我们引脚的引用,因此我已经适当地命名了。当前状态变量是我们将存储传感器状态的位置。如果此值为 0 ,则表示已关闭,或者 1 表示已激活。

在本教程中,我们将设置 GPIO 模式以引用引脚的物理编号而不是实际编号。由于所有引脚均按顺序编号,因此该编号稍微容易理解。

我们还将 GPIO 引脚设置为输出或输入。例如,我们要检测运动,以便输入我们的 PIR 传感器。另一方面,我们的压电蜂鸣器将需要充当输出。

将 RPi .GPIO导入为 GPIO 
导入时间

pir_sensor = 11
压电= 7

GPIO.setmode(GPIO.BOARD)

GPIO.setup(压电,GPIO.OUT)

GPIO.setup(pir_sensor,GPIO.IN)

current_state = 0

在下一部分中,我们有一个无限的 while 循环。此循环意味着它将永远不会退出,因为它始终是正确的。 (您仍然可以通过在终端中按 ctrl + c 取消脚本)。

我们首先将脚本休眠 0 .1 秒。此后,我们获得传感器的当前状态,如果它是 1 (例如,检测到的运动),则可以在 if 语句中运行代码。如果不是 1 ,则我们继续循环不断检查传感器。

if 语句中的代码将压电蜂鸣器发送到高电平,这会发出噪音。该脚本将执行一秒钟,然后关闭蜂鸣器。此后,它将再等待 5 秒钟,然后退出 if 语句,然后重新检查树莓派 PIR 传感器。

我们也尝试了嵌套代码,除了”finally” 块。之所以添加它,是因为我们需要使用键盘来停止脚本。同样重要的是,我们运行 GPIO .cleanup () 以确保脚本能够很好地清理。除了最后的尝试代码,我们可以执行此操作。

尝试:
    而 True :
        time.sleep(0.1)
        current_state = GPIO.input(pir_sensor)
        如果 current _state == 1:
            print("GPIO引脚%s为%s"%(pir_sensor,current_state))
            GPIO.output(piezo,True)
            time.sleep(1)
            GPIO.output(压电式,假)
            time.sleep(5)
除了 KeyboardInterrupt :
    通过
最后:
    GPIO.cleanup()

完成脚本的工作后,现在就可以将其打开并进行测试了。为此,请输入以下命令。

sudo python motion_sensor.py

如果您在树莓派 PIR 传感器前面移动,则它应该打开压电蜂鸣器并发出噪音。

如果不是这样,则可能是您将电线连接到了错误的针脚,或者代码中有错误。如果是代码错误,则很可能会在树莓派的终端中看到错误。

本教程非常基础,并且只是可以使用 PIR 传感器的许多应用程序的开始。您可以通过一个简单的计数器 (例如人 / 车 / 事物经过它),一个树莓派相机,激活其他脚本以及更多功能。

我希望您喜欢本树莓派运动传感器教程,并能够构建一个很酷的电路并使它通过代码实现。如果您有任何反馈,想法,麻烦或其他任何东西,请随时在下面给我们留言。

分享到