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

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

3天内不再提示

如何在Arduino上使用PIR运动检测器

454398 来源:网络整理 作者:网络整理 2019-12-02 16:57 次阅读

概述

在本课程中,您将学习如何在Arduino上使用PIR运动检测器,以及让Arduino与计算机上运行的Python程序进行通信,以便在检测到运动时发送电子邮件thesensor

Arduino是该项目的核心。它“侦听” PIR传感器,并在检测到运动时通过USB端口指示计算机发送电子邮件。

如何在Arduino上使用PIR运动检测器

零件

要构建本课中描述的项目,您将需要以下零件。

您还需要一台具有Internet连接的计算机(因此您可以通过它发送电子邮件)!

Part 数量

PIR传感器 1

Arduino Uno R3

1

半面包板 1

跳线束

电路板布局

您要连接到Arduino的唯一东西是PIR传感器,因此,如果您愿意,只需将连接到PIR传感器的电线直接推入Arduino,就可以了。但是,来自传感器的电线在Arduino插座中有点松动,因此最好使用下面的面包板布局。

Arduino代码

只要检测到运动,Arduino就会通过USB串行连接发送一条消息。但是,这可能会产生大量电子邮件。因此,如果Arduino太早就无法发送另一个电子邮件,则它会发送不同的消息。

下载:文件

复制代码

int pirPin = 7;

int minSecsBetweenEmails = 60; // 1 min

long lastSend = -minSecsBetweenEmails * 1000l;

void setup()

{

pinMode(pirPin, INPUT);

Serial.begin(9600);

}

void loop()

{

long now = millis();

if (digitalRead(pirPin) == HIGH)

{

if (now 》 (lastSend + minSecsBetweenEmails * 1000l))

{

Serial.println(“MOVEMENT”);

lastSend = now;

}

else

{

Serial.println(“Too soon”);

}

}

delay(500);

} int pirPin = 7;

int minSecsBetweenEmails = 60; // 1 min

long lastSend = -minSecsBetweenEmails * 1000l;

void setup()

{

pinMode(pirPin, INPUT);

Serial.begin(9600);

}

void loop()

{

long now = millis();

if (digitalRead(pirPin) == HIGH)

{

if (now 》 (lastSend + minSecsBetweenEmails * 1000l))

{

Serial.println(“MOVEMENT”);

lastSend = now;

}

else

{

Serial.println(“Too soon”);

}

}

delay(500);

}

可以将变量“ minSecsBetweenEmails”更改为您认为合理的值。此处设置为60秒,因此不会以超过一分钟的速度发送电子邮件。

为跟踪上次发送电子邮件发送请求的时间,使用了变量“ lastSend” 。初始化为负数,该负数等于“ minSecsBetweenEmails”变量中指定的毫秒数的负数。这确保了可以在Arduino草图启动后立即触发PIR。

在循环中,函数“ millis()”用于获取自Arduino启动以来的毫秒数,并将其与上次触发警报的时间进行比较,并且仅在自上次启动以来超过指定的秒数时才结束消息“ MOVEMENT”。否则,即使已检测到运动,它也只会发送消息“太早了”。

在将内容链接到Python程序之前,只需在Arduino IDE上打开串行监视器即可测试Arduino设置。

安装Python和PySerial

如果您使用的是Macor Linux计算机,则已经安装了Python。如果您使用的是Windows,则需要安装它。无论哪种情况,您都还需要安装PySerial库以允许与Arduino通信。

在Windows上安装Python

要在Windows上安装Python,请从http://www.python.org/getit/下载安装程序。

此项目是使用Python 2.7.3构建的

在Windows上,使用Python 3的PySerial存在一些已报告的问题,因此请坚持使用Python 2。

一旦安装了Python,您会在“开始”菜单上找到一个新的程序组。但是,我们将对Windows进行更改,以允许您使用命令提示符中的Python。您将需要此文件才能安装PySerial。

我们将向PATH环境变量中添加一些内容。

为此,您需要转到Windows“控制”面板并找到“系统属性”控件。然后单击标记为“环境变量”的按钮,然后在弹出的窗口的底部选择“路径”(系统变量)。单击“编辑”,然后在“变量值”末尾而不删除已有的任何文本,添加文本:; C: Python27

Don不要忘记“;”在新位之前!

要测试其是否正常,请启动新的命令提示符(DOS Prompt)并输入命令“ python”。您应该会看到类似这样的内容:

安装PySerial

无论您使用什么操作系统,请从https://pypi.python.org/pypi/pyserial

下载PySerial 2.6的.tar.gz安装包。这将为您提供一个名为pyserial-2.6.tar.gz

如果使用的是Windows,则需要将其解压缩到文件夹中。不幸的是,这不是正常的zip文件,因此您可能需要下载7-zip(http://www.7-zip.org/)之类的工具。

如果您使用的是Macor Linux计算机,然后在下载pyserial-2.6.tar.gz的任何地方打开终端会话“ cd”,然后发出以下命令来解压缩安装文件夹。

下载:文件

复制代码

$ tar -xzf pyserial-2.6.tar.gz $ tar -xzf pyserial-2.6.tar.gz

无论您使用什么操作系统,其余过程均相同。使用您的ComamndPrompt/Terminal会话并“ cd”进入pyserial-2.6文件夹,然后运行命令:

下载:文件

复制代码

sudo python setup.py install sudo python setup.py install

Python代码

现在,您需要创建Python程序。为此,请将下面的代码复制到一个名为“ movement.py”的文件中。在Mac/Linux上,您可以使用“ nano”编辑器,在Windows上,使用Python编辑器“ IDLE”来创建文件可能是最简单的,该编辑器可从开始菜单的Python程序组中获得。

下载:文件

复制代码

import time

import serial

import smtplib

TO = ‘[email protected]’

GMAIL_USER = ‘[email protected]’

GMAIL_PASS = ‘putyourpasswordhere’

SUBJECT = ‘Intrusion!!’

TEXT = ‘Your PIR sensor detected movement’

ser = serial.Serial(‘COM4’, 9600)

def send_email():

print(“Sending Email”)

smtpserver = smtplib.SMTP(“smtp.gmail.com”,587)

smtpserver.ehlo()

smtpserver.starttls()

smtpserver.ehlo

smtpserver.login(GMAIL_USER, GMAIL_PASS)

header = ‘To:’ + TO + ‘ ’ + ‘From: ’ + GMAIL_USER

header = header + ‘ ’ + ‘Subject:’ + SUBJECT + ‘ ’

print header

msg = header + ‘ ’ + TEXT + ‘ ’

smtpserver.sendmail(GMAIL_USER, TO, msg)

smtpserver.close()

while True:

message = ser.readline()

print(message)

if message[0] == ‘M’ :

send_email()

time.sleep(0.5)

import time

import serial

import smtplib

TO = ‘[email protected]’

GMAIL_USER = ‘[email protected]’

GMAIL_PASS = ‘putyourpasswordhere’

SUBJECT = ‘Intrusion!!’

TEXT = ‘Your PIR sensor detected movement’

ser = serial.Serial(‘COM4’, 9600)

def send_email():

print(“Sending Email”)

smtpserver = smtplib.SMTP(“smtp.gmail.com”,587)

smtpserver.ehlo()

smtpserver.starttls()

smtpserver.ehlo

smtpserver.login(GMAIL_USER, GMAIL_PASS)

header = ‘To:’ + TO + ‘ ’ + ‘From: ’ + GMAIL_USER

header = header + ‘ ’ + ‘Subject:’ + SUBJECT + ‘ ’

print header

msg = header + ‘ ’ + TEXT + ‘ ’

smtpserver.sendmail(GMAIL_USER, TO, msg)

smtpserver.close()

while True:

message = ser.readline()

print(message)

if message[0] == ‘M’ :

send_email()

time.sleep(0.5)

在运行Python程序之前,需要进行一些配置更改。这些都位于文件顶部附近。

程序假定电子邮件是通过gmail帐户设置的。因此,如果您没有一个,则即使您只为这个项目,也可能要自己做一个。

将“ TO”旁边的电子邮件地址更改为要接收通知的电子邮件。

这不必是您的电子邮件地址。

将“ GMAIL_USER”旁边的电子邮件地址更改为您的gmailaddress电子邮件地址,并将下一行的密码更改为该密码

如果需要,还可以在随后的几行上更改要发送的邮件的主题行和文本。

您还需要设置通过编辑以下行来更改Arduino的串行端口:

下载:文件

复制代码

ser = serial.Serial(‘COM4’, 9600) ser = serial.Serial(‘COM4’, 9600)

对于Windows,这将类似于Mac和Linux上的“ COM4”,而类似于“/dev/tty”。 usbmodem621”。您可以通过打开Arduino IDE并在右下角找到它,它会向您显示连接到Arduino的端口。

进行这些更改后,可以使用以下命令从命令提示符/终端运行程序:

下载:文件

复制代码

python movement.py python movement.py

触发运动后,您应该会得到这样的跟踪,并且在anemail到达收件箱后不久。

也请注意“ Toosoon”消息。

其他要做的事情

现在,您可以从Arduino发送电子邮件,这开辟了各种各样的可能性,您可以添加不同类型的传感器,也许每小时发送一次通过电子邮件发送温度报告。

PIR传感器可以直接与Arduino一起使用,以发出警告音或打开LED

责任编辑:wv

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

    关注

    1

    文章

    861

    浏览量

    47672
  • Arduino
    +关注

    关注

    188

    文章

    6468

    浏览量

    186914
收藏 人收藏

    评论

    相关推荐

    开源项目!基于Arduino做的“鱿鱼游戏”BOSS面具,支持动作检测

    一个更稳定的电路和原型。 组件包括: Arduino Nano(主控制) DFPlayer MP3模块(用于声音) PIR传感运动检测
    发表于 10-28 10:18

    使用MSP430扫描接口和光学传感进行旋转和线性运动检测

    电子发烧友网站提供《使用MSP430扫描接口和光学传感进行旋转和线性运动检测.pdf》资料免费下载
    发表于 10-22 10:03 0次下载
    使用MSP430扫描接口和光学传感<b class='flag-5'>器</b>进行旋转和线性<b class='flag-5'>运动检测</b>

    使用MSP430F2013进行超低功耗运动检测

    电子发烧友网站提供《使用MSP430F2013进行超低功耗运动检测.pdf》资料免费下载
    发表于 10-22 09:29 0次下载
    使用MSP430F2013进行超低功耗<b class='flag-5'>运动检测</b>

    MSP430FR2355上集成智能模拟的PIR运动检测器应用说明

    电子发烧友网站提供《MSP430FR2355上集成智能模拟的PIR运动检测器应用说明.pdf》资料免费下载
    发表于 09-14 11:07 0次下载
    MSP430FR2355上集成智能模拟的<b class='flag-5'>PIR</b><b class='flag-5'>运动检测器</b>应用说明

    采用低于1GHz Simplelink™无线MCU的无线运动检测器

    电子发烧友网站提供《采用低于1GHz Simplelink™无线MCU的无线运动检测器.pdf》资料免费下载
    发表于 09-02 11:12 0次下载
    采用低于1GHz Simplelink™无线MCU的无线<b class='flag-5'>运动检测器</b>

    使用MSPM0进行PIR运动检测

    电子发烧友网站提供《使用MSPM0进行PIR运动检测.pdf》资料免费下载
    发表于 08-29 11:38 0次下载
    使用MSPM0进行<b class='flag-5'>PIR</b><b class='flag-5'>运动检测</b>

    使用TLV320ADCx120和PCMx120-Q1中的语音活动检测器(VAD)

    电子发烧友网站提供《使用TLV320ADCx120和PCMx120-Q1中的语音活动检测器(VAD).pdf》资料免费下载
    发表于 08-29 09:56 0次下载
    使用TLV320ADCx120和PCMx120-Q1中的语音活<b class='flag-5'>动检测器</b>(VAD)

    电路检测器和电流检测器的区别

    1. 引言 电路检测器和电流检测器是电子工程中常用的工具,它们帮助工程师和技术人员诊断和监测电子设备的性能。 2. 电路检测器 定义和功能 :电路检测器是一种用于
    的头像 发表于 07-19 16:34 798次阅读

    使用被动式红外传感运动检测方案

    本文首先讨论运动检测的基本原理,然后展示开发者如何使用与 Microchip DM080104 ATtiny 1627 Curiosity Nano 连接的 PIR 进行运动检测。最后,介绍一种可
    的头像 发表于 07-18 10:32 615次阅读
    使用被动式红外传感<b class='flag-5'>器</b>的<b class='flag-5'>运动检测</b>方案

    微功率磁感应检测)技术的库门异动检测器产品优势

    双模地磁检测器 一类用于PIS和PDS应用的一体化NB-IoT无线地磁感应检测器,在地磁算法的基础,结合超低功耗雷达识别技术,进一步提高检测器的识别准确率。双模地磁车位
    发表于 07-10 09:01

    基于PIR传感的电路图 带ArduinoPIR传感设计

    PIR传感,全称“Passive Infrared Sensor”,又称“人体红外线传感”,是一种能够探测人体热量的电子元件。它通过检测周围环境中的红外线辐射来感知人体的存在,因此
    的头像 发表于 07-03 18:02 1615次阅读
    基于<b class='flag-5'>PIR</b>传感<b class='flag-5'>器</b>的电路图 带<b class='flag-5'>Arduino</b>的<b class='flag-5'>PIR</b>传感<b class='flag-5'>器</b>设计

    微波移动检测器对人体有影响吗

    、微波移动检测器的工作原理 微波移动检测器的工作原理是利用微波信号的反射特性来检测物体的运动。当微波信号遇到物体时,部分信号会被反射回来,而另一部分信号则会被物体吸收。通过分析反射回来
    的头像 发表于 05-27 16:11 747次阅读

    微波检测器的原理是什么 微波检测器的工作原理和用途

    微波检测器是一种利用微波技术进行检测的设备,广泛应用于通信、雷达、遥感、医疗等领域。本文将详细介绍微波检测器的原理、工作原理和用途。 一、微波检测器的原理 微波
    的头像 发表于 05-27 16:09 1647次阅读

    微波检测器优缺点 微波检测器的功能和作用

    微波检测器是一种利用微波技术对物体进行检测的设备。它广泛应用于军事、工业、医疗、交通等领域。本文将详细介绍微波检测器的优缺点、功能和作用。 一、微波检测器的优点 高频特性:微波
    的头像 发表于 05-27 15:42 1549次阅读

    微功率磁感应检测技术的库门异动检测器检测原理

    仓门开关检测基于MP-AMR(微功率磁感应检测)技术的库门异动检测器, 5G/NB-IoT网络仓门开关检测是可在粮库监测场景下,在设定ROI区域内,通过
    的头像 发表于 01-08 09:50 473次阅读
    微功率磁感应<b class='flag-5'>检测</b>技术的库门异<b class='flag-5'>动检测器</b><b class='flag-5'>检测</b>原理