如何手动制作运动传感器监视室内任何人的出入

  • 动手游戏,做自己的物联网

开箱即用,树莓派是一款功能强大、用途广泛的单片机电脑,您可以用它来完成无数物联网项目。还可以通过传感器、模块、电机、显示器和其他组件来扩展您的树莓派,使其更加强大。本文将向您展示如何构建一个树莓派运动传感器。

您将了解到如何将PIR传感器连接到您的树莓派上,并编写一个简单的程序来处理来自这个PIR传感器的输入。您的树莓派将能够检测到有人进入或离开房间。

什么是PIR传感器?

每个有温度的物体都会发出少量的红外光(IR),PIR传感器通过监视这些IR电平来检测运动。

当PIR传感器处于闲置状态时,它检测该区域的环境IR电平。当有东西在传感器前移动时,PIR会检测到IR电平的正差变化。您就会知道有人、动物或有生命的物体进入了感应区域。当人或动物离开感应区域时,PIR传感器将检测到负差变化。

您可以通过创建一个程序或安装软件来监测这些红外水平的波动,从而检测到移动。

您需要什么

要完成本教程,您需要准备以下这些东西:

  • 运行 Raspbian 的树莓派。如果您还没有 Raspbian,可以在这里获取最新版本并使用 Etcher 对其进行刷新。
  • 与树莓派兼容的电源线
  • 外接键盘以及将其连接到树莓派的方法
  • HDMI或微型HDMI电缆,具体取决于您的树莓派型号
  • 外接显示器
  • 无焊面包板,用于组织电路中的所有组件
  • 六个公母跳线:两根红色,两根黑色,一根棕色和一根橙色
  • 与树莓派兼容的PIR传感器

准备好这些后现在就可以组装电路了。

步骤

1、将跳线连接到PIR传感器

首先,您需要以下三种颜色的公母跳线:红色,棕色和黑色。

您需要将每根跳线连接到PIR传感器的不同引脚上:

  • 红线接PIR-VCC
  • 棕色线接PIR-OUT
  • 黑色线接PIR-GND

2、将跳线连接到面包板上

面包板两侧的➕和➖指示正负极。

您需要把线连接到正确的位置:

  • 红色 (PIR-VCC) 连接到正极导轨
  • 黑色 (PIR-GND) 连接到负极导轨
  • 棕色 (PIR-OUT) 连接到其他空白导轨

3、将您的树莓派连接到面包板上

拿到套件中剩余的三根跳线:红色、黑色和橙色。这些线将用于将树莓派连接到面包板。具体来说,您将在树莓派上使用以下GPIO引脚:

  • GPIO GND [Pin 6]
  • GPIO 5V [Pin 2]
  • GPIO 7 [Pin 26]

在下图中看到这些引脚标记。

使用公对母跳线将以下每个引脚连接到面包板上:

  • 黑色 —— 连接到 GPIO GND [Pin 6],然后将此线连接到面包板的负极
  • 红色 —— 连接到GPIO 5V [Pin 2],然后将该线连接到面包板的正极
  • 橙色 —— 连接到 GPIO 7 [Pin 26]。您将使用此线来监视PIR何时检测到运动,因此请确保将该线连接到与PIR-OUT(棕色跳线)相同的导轨上

就是这样!您已经组装好电路,PIR传感器现在将向树莓派报告IR的波动。下一步是编写一个能够处理这些数据的程序。

设置您的树莓派

1、连接

确保所有的外围设备都连接到您的树莓派上,比如键盘、显示器和以太网线,如果您不是通过Wi-Fi连接的话。最后,连接电源线,并启动您的树莓派。

如果这是您第一次启动 Raspbian,请按照安装说明进行操作,并确保您已连接到互联网。

在创建 Python 脚本之前,您需要安装 RPi.GPIO 模块,这将允许您控制树莓派的GPIO引脚。

要安装 RPi.GPIO,请通过单击 Raspbian 工具栏中的 “终端” 图标打开 “终端” 窗口,然后运行以下命令:

sudo apt-get install python-rpi.gpio

树莓派现在将下载并安装 RPi.GPIO 软件包。

2、在 Thonny Python 中创建程序

接下来,编写 Python 脚本,该脚本将处理从PIR传感器接收到的所有信息。

由于该IDE(集成开发环境)与 Raspbian 捆绑在一起,因此在 Thonny Python 中创建此脚本。

在工具栏中选择 Raspberry Pi 图标。

然后导航到 “Programming -> Thonny Python IDE.”

选择 “New”。

注:本教程逐行讲解脚本,这样您就可以准确地看到每段代码中发生了什么。如果您只是想复制/粘贴,可以在本教程的最后找到完整的脚本。

第一步是导入 Python GPIO 库:

import RPi.GPIO as GPIO

在整个代码中使用了一些延迟,因此导入“时间” 库:

import time

当您使用 RPi.GPIO 时,您可以使用它的引脚编号(BOARD)或 Broadcom GPIO编号(BCM) 来引用每个引脚。虽然这两种方法都是正确的,但您必须确保在整个程序中使用相同的编号系统。本教程使用 BCM,所以将GPIO编号模式设置为 BCM。

GPIO.setmode(GPIO.BCM)

在整个脚本中都会引用输入引脚,因此该引脚需要一个名称。本教程使用的是PIR_PIN:

PIR_PIN = 7

接下来,说明 PIR_PIN 是一个输入引脚:

GPIO.setup(PIR_PIN, GPIO.IN)

然后您将创建一条消息,该消息将打印到 Thonny Python 的控制台(也称为Shell)上,以便您可以看到电路在线并且可以检测运动。

在以下代码段中,在消息的第一部分和第二部分之间添加了两秒钟的延迟:

try:
    print ("PIR Module Test")
    time.sleep(2)
    print ("Ready")

要让程序持续检查来自 PIR 传感器的输入,使用 “True” 来创建一个无限循环。每次检测到移动时,脚本会打印一条消息到 Thonny Python 控制台。为了确保在检测到移动时只收到一个输出,可以添加一秒钟的延迟。

while True:
        if GPIO.input(PIR_PIN):
            print ("Movement detected")
    time.sleep(1)

最后退出。

except KeyboardInterrupt:
    print ("Quit")
GPIO.cleanup()

通过单击 “保存” 按钮来保存更改。

就是这样!您刚刚创建了一个脚本来监视PIR传感器,并在每次检测到运动时执行任务。

是否想直接将代码复制/粘贴到 Thonny Python 中?下面是完成的脚本:

import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)
PIR_PIN = 7
GPIO.setup(PIR_PIN, GPIO.IN)
 
try:
    print ("PIR Module Test")
    time.sleep(2)
    print ("Ready")
    while True:
        if GPIO.input(PIR_PIN):
            print ("Movement detected")
    time.sleep(1)
except KeyboardInterrupt:
     print ("Quit")
GPIO.cleanup()

不要忘记点击“保存”。

测试一下

现在您已经保存了脚本,可以单击 “运行” 按钮来对其进行测试了。

片刻之后,您的程序应打印出 “PIR Module Test / Ready” 消息。

知道传感器在线后,请故意触发PIR传感器以检查其对运动的响应。在传感器前面挥挥手,“Thonny Python” 控制台中应显示 “Movement detection”。

有了无限的 “True” 循环该程序可以无限期运行,因此您需要通过单击 “停止” 按钮来手动将其停止。

恭喜完成!

最后

您的树莓派现在可以检测运动,并在每次检测到运动时执行任务。这是广泛的物联网和智能家居项目的完美基础。以此为基础,您还可以用其他简单的组件替换您的PIR传感器,如摄像头、蜂鸣器和开关。您还可以将其用于另一个物联网项目。⚪️

How to Build a Raspberry Pi Motion Sensor

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据