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
    +关注

    关注

    51

    文章

    4677

    浏览量

    83468
  • 运动传感器
    +关注

    关注

    9

    文章

    161

    浏览量

    30600
  • PIR
    PIR
    +关注

    关注

    0

    文章

    70

    浏览量

    17787
  • Raspberry Pi
    +关注

    关注

    1

    文章

    552

    浏览量

    22054
收藏 人收藏

    评论

    相关推荐

    构建一个PIR运动传感器

     在这个项目中,我们将学习如何在不需要微控制器的情况下制作运动传感器灯。当运动传感器感应到附近的运动时,它会亮起。当有人走过时,它可以方便地
    的头像 发表于 02-11 12:11 677次阅读
    构建一个<b class='flag-5'>PIR</b><b class='flag-5'>运动</b><b class='flag-5'>传感器</b>灯

    【树莓派Pi5】树莓派 Raspberry Pi 5 正式发布!

    这款 Pi 5从英国树莓派总部跨洋而来,作为树莓派的官方代理商,上海晶珩EDATEC荣幸地在首发时刻,率先揭开了 Pi 5 的神秘面纱: Raspberry Pi 5:瞩目新生!超越
    的头像 发表于 09-28 17:30 1025次阅读
    【树莓派<b class='flag-5'>Pi</b>5】树莓派 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 5 正式发布!

    PIR 激活运动传感器报警系统物联网项目

    PIR 传感器感应视线范围内个人的热量。这款传感器可以感应到最远 7 米外的热量变化,视角接近 180 度。当传感器读取附近的热量变化时(如某些热源的
    发表于 07-07 16:29 0次下载
    <b class='flag-5'>PIR</b> 激活<b class='flag-5'>运动</b><b class='flag-5'>传感器</b>报警系统物联网项目

    使用Raspberry Pi的Motioneyeos网络摄像头运动检测

    电子发烧友网站提供《使用Raspberry Pi的Motioneyeos网络摄像头运动检测.zip》资料免费下载
    发表于 07-05 10:40 1次下载
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>的Motioneyeos网络摄像头<b class='flag-5'>运动</b>检测

    Raspberry Pi上HA中的运动传感器、警报、视频录制

    电子发烧友网站提供《Raspberry Pi上HA中的运动传感器、警报、视频录制.zip》资料免费下载
    发表于 07-05 09:14 0次下载
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>上HA中的<b class='flag-5'>运动</b><b class='flag-5'>传感器</b>、警报、视频录制

    PIR传感器-使用IFTTT的电子邮件发送运动检测器

    电子发烧友网站提供《PIR传感器-使用IFTTT的电子邮件发送运动检测器 .zip》资料免费下载
    发表于 07-04 14:27 1次下载
    <b class='flag-5'>PIR</b><b class='flag-5'>传感器</b>-使用IFTTT的电子邮件发送<b class='flag-5'>运动</b>检测器

    通过USB对Raspberry Pi进行编程

    电子发烧友网站提供《通过USB对Raspberry Pi进行编程.zip》资料免费下载
    发表于 06-30 10:24 0次下载
    <b class='flag-5'>通过</b>USB对<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>进行编程

    如何使用PIR传感器和蜂鸣器模块

    电子发烧友网站提供《如何使用PIR传感器和蜂鸣器模块.zip》资料免费下载
    发表于 06-28 10:10 0次下载
    如何使用<b class='flag-5'>PIR</b><b class='flag-5'>传感器</b>和蜂鸣器模块

    如何使用Raspberry Pi4摄像头和PIR传感器发送电子邮件

    电子发烧友网站提供《如何使用Raspberry Pi4摄像头和PIR传感器发送电子邮件.zip》资料免费下载
    发表于 06-19 15:48 4次下载
    如何使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>4摄像头和<b class='flag-5'>PIR</b><b class='flag-5'>传感器</b>发送电子邮件

    WIFI PIR传感器开源分享

    电子发烧友网站提供《WIFI PIR传感器开源分享.zip》资料免费下载
    发表于 06-15 11:28 1次下载
    WIFI <b class='flag-5'>PIR</b><b class='flag-5'>传感器</b>开源分享

    如何通过SPI使用Raspberry PI零与FPGA通信

    电子发烧友网站提供《如何通过SPI使用Raspberry PI零与FPGA通信.zip》资料免费下载
    发表于 06-13 15:52 0次下载
    如何<b class='flag-5'>通过</b>SPI使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>PI</b>零与FPGA通信

    使用PythonRaspberry Pi的实时图表

    电子发烧友网站提供《使用PythonRaspberry Pi的实时图表.zip》资料免费下载
    发表于 06-13 10:47 0次下载
    使用<b class='flag-5'>Python</b>和<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>的实时图表

    基于Arduino和PIR运动传感器的自动多灯控制系统

    电子发烧友网站提供《基于Arduino和PIR运动传感器的自动多灯控制系统.zip》资料免费下载
    发表于 06-12 09:56 0次下载
    基于Arduino和<b class='flag-5'>PIR</b><b class='flag-5'>运动</b><b class='flag-5'>传感器</b>的自动多灯控制系统

    ESP8266如何使用带PIR运动传感器的深度睡眠来唤醒它?

    这是我的项目,它在 Adafruit HUZZAH ESP8266 上使用深度睡眠模式并由 PIR 运动传感器唤醒。然后它会重新连接到 WiFi 并通过 IFTTT 发送电子邮件。 电
    发表于 05-23 08:16

    采用ATtiny1627 MCU系列的PIR运动感应

    在科技领域,运动传感设备变得越来越流行。这就是被动红外(PIR运动传感发挥作用的地方。PIR
    的头像 发表于 05-05 11:19 1020次阅读
    采用ATtiny1627 MCU系列的<b class='flag-5'>PIR</b><b class='flag-5'>运动</b>感应