电路图
首页 > 控制电路 >报警电路 > 制作一个基于Raspberry Pi和PIR传感器的运动探测器警报
制作一个基于Raspberry Pi和PIR传感器的运动探测器警报

探测器 PIR传感器 2024/05/28

安全系统在我们的日常生活中发挥着重要作用,在那里我们可以找到许多不同类型的安全系统,这些系统具有不同的技术和不同的价格范围。作为一个电子爱好者,您可以通过花费几美元和一些业余时间来制作一个简单的安全系统。在本文中,我将分享一个DIY指南,以制作一个简单的基于Raspberry Pi和PIR传感器的运动探测器警报,当PIR传感器检测到该区域的任何人为运动时,它将打开蜂鸣器。

所需组件

  • 树莓派 3(任何型号)
  • 红外传感器
  • 蜂鸣器
  • 面包板
  • 连接线

红外传感器的工作原理

被动红外(PIR)传感器被称为被动,因为它接收红外线,而不是发射。基本上,它检测到热量的任何变化,每当它检测到任何变化时,其输出引脚就会变为高电平。它们也被称为热释电或红外运动传感器。

在这里我们应该注意,每个物体在加热时都会发出一定量的红外线。人类也会因为体温而发出红外线。PIR 传感器可以检测到红外线的少量变化。每当物体通过传感器范围时,由于空气和物体之间的摩擦,它会产生红外线,并被PIR捕获。

PIR传感器的主要部件是如图所示的 热释电传感器 (塑料盖后面的矩形晶体)。除此之外,BISS0001(“微功率PIR运动检测器IC”),一些电阻器,电容器和其他用于构建PIR传感器的组件。BISS0001 IC从传感器获取输入并进行处理,使输出引脚相应地高或低。

红外传感器

热释电传感器分成两半,当没有运动时,两半保持相同的状态,意味着两半感应到相同水平的红外线。一旦有人进入前半部分,一半红外电平就会变得大于另一半,这会导致 PIR 做出反应并使输出引脚变高。

热释电传感器由塑料盖覆盖,塑料盖内部有许多菲涅尔透镜阵列。这些透镜以这样的方式弯曲,因此传感器可以覆盖很宽的范围。

基于树莓派和PIR传感器的运动检测器的电路图

基于树莓派和PIR传感器的运动检测器的电路图

如上图所示,基于树莓派和 PIR 传感器的运动检测器,PIR 传感器的正极引脚与针脚 4 (5v) 连接,PIR 传感器的接地引脚与树莓派的引脚 6(接地)连接(您可以在这里找到树莓派的引脚图)。PIR 传感器的输出引脚与树莓派的 GPIO 23 连接,用于向树莓派提供输入。此处声明用于输出的GPIO引脚24与蜂鸣器的正极连接,蜂鸣器的接地与树莓派的接地(引脚6)连接。

Raspberry Pi的Python Code :

这个基于树莓派和PIR传感器的运动检测器的Python代码非常简单,可以通过下面代码部分中的内联注释轻松理解。我将 GPIO 引脚 23 和 24 声明为输入和输出引脚。

while True:
 if GPIO.input(23): #If there is a movement, PIR sensor gives input to GPIO23
    GPIO.output(24, True) #Output given to Buzzer through GPIO24
    time.sleep(1) #Buzzer turns on for 1 second
    GPIO.output(24, False)

while” 循环用作“True”,因此循环中的内容将始终执行。如果 GPIO.input(23): 语句检测 GPIO 引脚 23 是否为高电平,如果相同,则使输出引脚 24 为高电平。函数time.sleep(secs)用于在python中暂停程序的特定时间,其中“secs”是以秒为单位的时间。所以在这里我们曾经暂停它 1 秒钟。在下一行中,我们将 24 上的输出设为 false,因此蜂鸣器停止,直到循环开始下一次迭代,因为 While 循环始终设置为 true,没有任何前提条件。

#Raspberry Pi Motion Detector Code
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN)
GPIO.setup(24, GPIO.OUT)
while True:
 if GPIO.input(23): #If there is a movement, PIR sensor gives input to GPIO 23
    GPIO.output(24, True) #Output given to Buzzer through GPIO 24  
    time.sleep(1) #Buzzer turns on for 1 second
    GPIO.output(24, False)
    time.sleep(5)
 time.sleep(0.1)

提问/讨论

这里还没有内容,您有什么问题吗?

我要提问/讨论

可能感兴趣的电路图
可能感兴趣的器件
推荐帖子