当前位置:  开发笔记 > 编程语言 > 正文

PIR传感器+ Arduino + Python +电子邮件警报

如何解决《PIR传感器+Arduino+Python+电子邮件警报》经验,为你挑选了0个好方法。

我们正在为学校开展一个项目,我们有2个PIR运动传感器在Arduino微控制器上运行.我们可以在Ardunio IDE和Python IDLE中查看串口的输出.

我们接下来要做的是,在检测到大约30秒的运动后,发出电子邮件警报,看到我们此时没有以太网功能,我们认为最简单的方法是通过Python获取电子邮件.

怎么做到这一点?

更新:

此时我们可以发送来自Python的电子邮件,我们可以在Python中阅读Arduino串口,但是我们只是把它放在一起就有问题了.

这就是我们的Python代码看起来的样子,而1:是混乱发生的地方:

import smtplib,serial

ser = serial.Serial(port=2, baudrate=9200)

from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders
import os

gmail_user = "usr@gmail.com"
gmail_pwd = "pw"

def mail(to, subject, text, attach):
   msg = MIMEMultipart()

   msg['From'] = gmail_user
   msg['To'] = to
   msg['Subject'] = subject

   msg.attach(MIMEText(text))

   part = MIMEBase('application', 'octet-stream')
   part.set_payload(open(attach, 'rb').read())
   Encoders.encode_base64(part)
   part.add_header('Content-Disposition',
           'attachment; filename="%s"' % os.path.basename(attach))
   msg.attach(part)

   mailServer = smtplib.SMTP("smtp.gmail.com", 587)
   mailServer.ehlo()
   mailServer.starttls()
   mailServer.ehlo()
   mailServer.login(gmail_user, gmail_pwd)
   mailServer.sendmail(gmail_user, to, msg.as_string())
   # Should be mailServer.quit(), but that crashes...
   mailServer.close()

while 1: **// CONFUSION HAPPENS HERE //** <----------------------

   ser.readline()

   if ser.readline() = "motion" 

   do this mail sequence?

   mail("usr2@gmail.com",
   "Alarm Alert!",
   "Both Motion Sensor A & B have been active for over # seconds",
   "stor_fight.jpg")

任何提示将非常感激.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有