0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过Raspberry Pi和Python使用PIR运动传感器

而无返还 ? 来源:而无返还 ? 作者:而无返还 ? 2023-02-25 17:44 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这篇文章来源于DevicePlus.com英语网站的翻译稿。红外线是一种没有特殊设备的辅助就无法看到的光线,但是我们可以通过热量感受到它的存在。这种光线被称为“红外线”,是因为它的波长超出了可见光谱中的红色光线边界。

这引起了设备制造商的兴趣,有一部分原因是人类、动物和物体会一直辐射红外线。

pYYBAGPzHW-AEcDOAAAkrG2hKas681.png

虽然这听起来很奇怪,但是其实您应该已经对某些类似的东西很熟悉了:火,温度非常高,会发出热量和可见光。

虽然火可以达到足够高的温度来发出可见光,但是我们的身体不会,而且我们所辐射的光—红外线—人眼是无法看到的。

如果Raspberry Pi可以利用红外线来查看是否有人出现,会不会有人觉得很便利呢?

通过使用非常便宜、可用、耐用、可靠和经济的组件,我们可以做到这一点!
这种设备叫“被动红外运动传感器”,通常称为“被动红外传感器”或者简称“PIR传感器”。

PIR运动传感器是如何工作的

PIR运动传感器由一对热释电传感器上的透镜组成:一种晶体材料,当它接收到红外光时会产生电压。
但是任何含有一定热量的物体都会辐射出一些红外线。这意味着单个热释电传感器会一直产生电压,即使视野中的所有物体都是完全静止的。
那么如何将它变成一个运动传感器呢?这很简单,但是很有技巧性。将两个热释电传感器进行连接,这种连接使得来自环境红外线的信号可以相互抵消。
当足够大且具有一定温度的物体在镜头前移动时,两个信号将会停止相互抵消,传感器会报告有物体在移动。

PIR运动传感器可能会产生误报

当您将PIR运动传感器连接到电源时,它需要30秒到60秒才能稳定下来。在还没有稳定的时候就运行可能会引发误报,这在某些电路中会很让人头疼。在Raspberry Pi项目中,很容易编写出软件来让它在启动后等待片刻再运行。
更大的问题是由动物、昆虫甚至阵风所触发的传感器响应。
您通常可以将组件校准到更低的敏感度,这样可以阻止您的小猫或者小狗触发警报。而对于在传感器前飞行的昆虫来说,这种调整的作用不大。
但是,不要把这些误报看作是一个破坏者,而是想想如何聪明地处理它们。

Python中处理PIR运动传感器

从可视化编程工具(如Scratch down)到“close-to-the-metal(能够以编程方式管理操作系统内存)”的编程语言(例如C),有很多方法可以将PIR运动传感器和Raspberry Pi进行连接。
在这里,我们将使用Python 和GPIO Zero库,这些库已经帮我们整理好了大部分的细节内容。
如果您从来没有写过Python代码,可以尝试学习来自“Automate the Boring Stuff With Python(用Python将枯燥的工作自动化)”的一些教程。如果您不打算了解这些内容,也可以直接使用下面的代码,如果您能理解下文代码中的内容,将会学到更多的知识。
本文假设您对GPIO 引脚有了基本的了解。如果它对您来说是全新的知识,请查看过去的指南。下面的图表会提醒您有哪些相关基础知识。

poYBAGPzHXGAPlPDAACLfuvo1LY065.png

将PIR运动传感器连接到Raspberry Pi

为了开始构建您的Raspberry Pi 运动传感器,您将需要:

一个带电源的Raspberry Pi以及一个安装了Raspbian的SD
一个面包板
一个GPIO 扩展板(可选,但是推荐使用)
一个PIR 运动传感器
(我使用的是XC-4444)

您还需要一些可以让您输入代码的设备,例如USB键盘或者SSH连接。

将组件连接到面包板

从背面看这台XC-4444,可以看到引脚在底部,这些引脚为:
? 左边用于5伏电源
? 中间用于数字输出
? 右边用于接地
虽然PIR运动传感器往往大同小异,但是不同型号上的引脚可能顺序会有所不同。如果您不确定的话,请查看组件规格。
将Raspberry Pi上的5伏引脚连接到正电源轨,然后将接地引脚连接到负电源轨。
然后,让镜头背对您,将运动传感器的电源引脚连接到正电源轨,将接地引脚连接到负电源轨,并将数字输出引脚连接到面包板中间的某处。
最后,将该面包板行连接到GPIO引脚,我使用的是引脚13。

pYYBAGPzHXuAHSwYAAAwjK_vk6E904.jpg

将其与GPIO Zero接合

现在是时候编写一个快速脚本了。启用命令提示符,并通过输入以下内容打开文本编辑器:
nano intruderAlarm.py
GPIO Zero已经为我们的运动传感器创建了一个类,所以我们直接导入这个类,并导入来自time模块的sleep函数。
from time import sleep
from gpiozero import MotionSensor
现在我们编写一个函数,功能为当传感器检测到运动物体时将消息打印到屏幕上。
def detectIntruders():
pir.wait_for_motion()
print(‘Intruder Alert!’)
sleep(5)
sleep指令表示打印完消息后将等待5秒钟。如果没有该指令,我们的脚本将在脉冲持续时间内用消息填满整个屏幕,这样的话就很难了解运行状况了。
如果我们不对MotionSensor对象进行初始化,那么detectIntruders()函数将无法工作,所以让我们将其设置为引脚13:
pir = MotionSensor(13)
您能相信到此我们已经快要完成了吗?现在我们只需要一个循环程序来运行我们的函数就可以完成了。
while True:
detectIntruders()
按下Ctrl+O来保存脚本,然后按下Ctrl+X退出文本编辑器。想要运行程序,请输入:
python3 intruderAlarm.py
现在起身并走过传感器,您看到打印的信息了么?
如果不起作用,请检查所有引脚是否正确连接。PIR运动传感器的接地和电源引脚很容易混淆。
如果想要停止脚本的运行,请按下Ctrl+C。

校准PIR运动传感器

这款XC-4444有两个关键指标:一个是脉冲长度,标记为Tx,另一个是灵敏度,标记为Sx。
在某些项目中,调整脉冲长度可能会很有用,但是我倾向于保持它的大小,通过编写代码来处理Raspberry Pi对信号的响应工作。
调整灵敏度会更有趣。您可以通过调整灵敏度来决定传感器需要检测出什么程度的运动才能发出信号。
一些PIR运动传感器具有更多的控件。对于一些响应特征,比如只要检测到运动,脉冲就一直维持,或者模块是否发处重复的脉冲,这些传感器会有所不同。

PIR运动传感器有多种用途

我们刚刚探讨的工作原理不仅仅只适用于警报。
它们还适用于各种家庭中的自动化项目:照明、温度控制、开门,甚至还可以在您下班回家时为您播放一些专业的摔跤风格的入口音乐。
如果您想要在某人出现的时候获悉消息,这将会是您的得力助手。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    56

    文章

    4831

    浏览量

    87455
  • 运动传感器
    +关注

    关注

    9

    文章

    168

    浏览量

    31329
  • PIR
    PIR
    +关注

    关注

    0

    文章

    76

    浏览量

    18288
  • Raspberry Pi
    +关注

    关注

    2

    文章

    620

    浏览量

    23206
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    用树莓派实现自动感应照明:PIR传感器教程!

    一个快速项目,将PIR传感器与树莓派进行接口连接。本项目所用组件硬件组件树莓派2x1被动红外(PIR运动传感器x1蜂鸣器(可选)x1面包板
    的头像 发表于 06-21 20:32 ?380次阅读
    用树莓派实现自动感应照明:<b class='flag-5'>PIR</b><b class='flag-5'>传感器</b>教程!

    如何在Raspberry Pi OS上安装SDK?

    Raspberry Pi OS 上安装 SDK
    发表于 04-30 06:45

    运动测量传感器概述与原理

    关键技术——运动测量传感器。本文将带你从工作原理到实际应用,全面解析这项“运动感知”技术。 第一部分:运动测量传感器概述
    的头像 发表于 03-13 14:21 ?369次阅读

    Raspberry Pi上使用IR v11及OpenVINO? 2021.3后不兼容怎么办?

    PYTHONPATH=\"$PWD\" && python export.py --weights--img 512 --include openvino 转换后的 IR v11 模型与 Raspberry Pi
    发表于 03-06 07:14

    OpenVINO?是否与TensorFlow集成支持Raspberry Pi

    无法确定OpenVINO?是否与 TensorFlow* 集成支持 Raspberry Pi
    发表于 03-05 08:26

    无法在Raspberry Pi 4中通过PyPI OpenVINO?安装2022年运行时软件包,为什么?

    无法在 Raspberry* Pi 4 中通过 PyPI* 安装OpenVINO? 2022 运行时软件包。
    发表于 03-05 07:31

    XYC-PIR233C-S0热释电人体传感器

    XYC-PIR233C-S0热释电人体传感器
    发表于 02-26 14:58 ?0次下载

    基于Raspberry Pi 5的情感机器人设计

    Raspberry Pi 5相较于上一代搭载了更强的处理和硬件性能,为情感机器人的开发提供了前所未有的可能性。其支持多任务处理和实时计算,为语音交互和情感判断提供了坚实的基础。此外配合高性能的摄像头模块和
    的头像 发表于 02-26 14:28 ?1194次阅读
    基于<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 5的情感机器人设计

    Raspberry Pi树莓派新手指南

    电子发烧友网站提供《Raspberry Pi树莓派新手指南.pdf》资料免费下载
    发表于 12-23 17:05 ?3次下载

    树莓派传感器使用方法 树莓派 Raspberry Pi 4优缺点

    树莓派传感器使用方法 树莓派(Raspberry Pi)是一款由英国树莓派基金会开发的小型单板计算机,它因其低成本、易于编程和广泛的社区支持而广受欢迎。树莓派可以与各种传感器配合使用,
    的头像 发表于 12-06 10:35 ?2237次阅读

    Raspberry Pi Pico 2 W 发布

    树莓派官方今日宣布推出支持无线连接的新款 MCU(微控制)主板 Raspberry Pi Pico 2 W,售价 7 美元, 较此前的有线版本高出 2 美元 。 ? ? Raspberry
    的头像 发表于 11-25 18:25 ?1186次阅读
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico 2 W 发布

    Raspberry Pi Pico 2

    、可选的RISC?V内核、增强的安全特性,以及升级的接口功能。该器件由RP235x微控制平台提供支持,此平台也由Raspberry Pi设计。Pico 2将RP2350与4MB板载QSPI闪存配对
    的头像 发表于 11-25 15:10 ?1394次阅读
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico 2

    Banana Pi M5 与 Raspberry Pi 4 – 基准测试

    Banana Pi M5 基准测试已成为我的网站上最受欢迎的作品之一,而且似乎人们真正想看到的是它与其 Raspberry 口味的表亲之间的直接比较,所以这里就是 Banana Pi M5 与
    的头像 发表于 10-28 10:28 ?1418次阅读
    Banana <b class='flag-5'>Pi</b> M5 与 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 4 – 基准测试

    e络盟开售Raspberry Pi AI 摄像头

    安富利旗下全球电子元器件产品与解决方案分销商e络盟开售全新 Raspberry Pi AI摄像头,这是 Raspberry Pi 的最新产品,扩大了 e络盟的人工智能设备范围。
    的头像 发表于 10-10 10:09 ?613次阅读
    e络盟开售<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> AI 摄像头

    使用串行连接通过 Raspberry Pi 增强您的 XRP 项目

    指南更为高级。通过本指南,您将能够将 Raspberry Pi 连接到您的 XRP,从而使您的 XRP 项目更上一层楼。 传输数据: 在 Raspberry
    的头像 发表于 10-02 15:28 ?596次阅读
    使用串行连接<b class='flag-5'>通过</b> <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 增强您的 XRP 项目