制作一个树莓皮gmail通知灯

在这个快速简单的Raspberry Pi项目中,您将学习如何制作Gmail电子邮件通知灯。如果您有任何未读的电子邮件,Python脚本会打开指示灯。...

在这个快速简单的Raspberry Pi项目中,您将学习如何**Gmail电子邮件通知灯。如果您有任何未读的电子邮件,Python脚本会打开指示灯。这个项目需要很少的部分,可以在一个小时内完成!当然,你可以把你的LED打扮成任何你喜欢的样子,比如MineCraft红石块,或者其他用透明塑料打印的3D物体。最终结果如下:

raspi-gmail-light-notification

你需要什么

  • 1 x覆盆子皮
  • 1 x胸板
  • 1 x 220欧姆电阻器
  • 1 x 5mm LED
  • 1个Gmail帐户
  • 公至母连接线

任何树莓圆周率将为这个项目工作-甚至圆周率零!只需要一个GPIO引脚,而且它不是特别占用CPU。如果你有一个Pi初学者工具包,你有足够的部分来完成这一点。

建造计划

Gmail-Notification-LED

这是一个非常简单的项目。发光二极管(LED)连接到Pi上的GPIO(通用输入输出)引脚。一个非常简单的Python脚本将定期运行以检查未读的电子邮件,并相应地打开或关闭LED。

硬件

Gmail-Notification-Circuit

将LED的正极(长腿)连接到电阻器,然后连接到GPIO引脚14。您可以使用任何GPIO引脚,但是请首先查看引脚,因为它们在不同型号之间略有不同。将负极(短脚平边)接地。

pi设置

Gmail-Notification-Pi

如果Pi安装了操作系统(OS),那么就不需要太多的设置(不确定您需要什么?学习如何在这里安装一个)。在Pi上打开一个新的终端(左上角>菜单>附件>终端)(签出这些快捷方式,使您成为编码忍者)。您需要创建一个新文件夹来存储Python脚本。输入以下命令:

pwd

这代表“打印工作目录”,并将显示您所在的文件夹(默认情况下为“/home/pi”)。导航到documents文件夹并创建一个名为“gmail\u python”的新目录(文件夹):

cd Documents/sudo mkdir gmail_python

“mkdir”命令代表“makedirectory”。下面的任何内容都将用作目录名。您现在应该可以看到您的目录:

ls

如果犯了错误,可以轻松删除此目录:

sudo rm -r gmail_python

现在导航到新目录:

cd gmail_python/

创建新的Python脚本:

sudo nano check_messages.py

这将创建脚本并打开它,以便在Nano中进行编辑。当然,你可以使用另一个程序,比如Vim,尽管这条tweet总结了我对此的感受:

别开玩笑了,看看这两个之间的比较,全面崩溃。

按CTRL+X退出Nano并返回终端。

python设置

Gmail-Notification-Code

既然Pi已经设置好了,现在是编写代码的时候了。这个项目需要郭查理的优秀Gmail Python库。从Github下载库并提取内容。里面应该有一个叫做“gmail”的文件夹。将整个文件夹复制到“/home/pi/Documents/gmail_upython”。

切换回命令行并再次打开脚本(如果按向上键,则可以滚动浏览以前输入的命令):

sudo nano check_messages.py

请注意,这与创建文件时使用的命令是一样的——如果文件已存在,则将打开它,否则将创建它。这是蟒蛇:

import gmail, RPi.GPIO as GPIO, time # import modulesGPIO.setwarnings(False)GPIO.setmode(GPIO.BCM) # tell the Pi what headers to useGPIO.setup(14, GPIO.OUT) # tell the Pi this pin is an outputg = gmail.login('[email protected]', 'YOUR PASSWORD')unread_messages = g.inbox().mail(unread=True)total_messages = 0for message in unread_messages:total_messages += 1if total_messages > 0:# there are unread emails, turn light onGPIO.output(14, True)else:# there are no unread emails, turn light offGPIO.output(14, False)

你需要输入你的用户名和密码才能工作。如果您愿意,可以查看gmail插件的完整源代码。如果您觉得这样做不舒服(或者您使用的是双因素身份验证),您将需要使用OAuth2连接到Gmail。这是一个有点涉及本教程,但谷歌有一个很好的入门指南。

让我们把代码分解一下。首先导入一些模块。Python中的模块是为特定目的编写的代码片段(类似于arduinoide中的库)。RPi.GPIO文件是一个用于访问GPIO的Pi特定模块,gmail是您之前下载的模块,time是Python中内置的一个提供计时功能的模块。“现在”GPIO.setmode设置模式“和”GPIO.setup设置用于告诉Pi引脚14是一个输出,并且您希望使用“Broadcom引脚编号”(有关BCM的更多信息)。

这条线连接到你的gmail帐户。它创建一个名为“g”的对象,并调用以前导入的gmail模块的登录方法。不要忘记输入你的gmail电子邮件和密码。

g = gmail.login('[email protected]', 'YOUR PASSWORD')

现在检索所有未读消息并将它们存储在一个名为“未读消息”的变量中:

unread_messages = g.inbox().mail(unread=True)

注意“unread=True”是如何作为参数传递的——您可以更改它以基于不同参数(例如发送者或subject)检索消息。查看应用程序编程接口(API)文档以获取更多信息。

接下来,使用for循环在每条消息上循环:

for message in unread_messages:total_messages += 1

For循环非常有用。它们将一个代码块重复几次,每次的值往往略有不同。这个for循环遍历未读消息中的每条消息,并递增“total \u messages”变量。

最后,使用一些简单的“if”语句。如果有未读信息,请打开LED,否则请关闭。

请记住,Python区分大小写,并且使用白色间距。如果在运行代码时遇到问题,请尝试此网站。粘贴Python并按“validate above Python code”按钮。这将告诉您Python中存在哪些错误(如果有的话)。

切换到终端并运行脚本:

python check_messages.py

此命令将运行您的脚本。尝试手动将收件箱中的一些电子邮件更改为“未读”状态,然后再次运行脚本——您会看到LED灯亮起或熄灭,以反映您的收件箱。

cron设置

既然脚本可以工作了,是时候让它自动化了。最简单的方法是通过cron作业。Cron作业用于计划任务和脚本,例如自动备份。打开Crontab(计划任务列表):

crontab -e

如果尚未设置计划任务,则此文件将为空(它可能包含文档或注释,前面加“\”)。如果您已经在这里有条目,只需在新行中输入新命令:

* * * * * python ~/pi/Documents/gmail_python/check_messages.py

五个“星”(“****”)指定运行任务的频率(您可以在这里获得真正的幻想,例如每两个星期三2:00)。这五颗星指定任务应该每分钟运行一次。这是允许的最小间隔(了解有关作业调度的更多信息)。接下来,“python”告诉调度器将脚本作为python文件执行。最后,“~/pi/Documents/gmail\u python/check_消息.py“是脚本的绝对文件路径--相对路径不起作用。

你现在应该有自己的Gmail通知灯了!修改它以根据不同的需求或过滤器查找消息(在这里学习如何使用过滤器)或执行不同的代码段非常简单——也许您可以创建一个基于电子邮件的Twitter bot(了解有关构建Pi Twitter bot的更多信息)。

不管你最终如何编写你的通知框,我很想知道它在评论中是怎么回事!

  • 发表于 2021-03-17 17:32
  • 阅读 ( 226 )
  • 分类:IT

你可能感兴趣的文章

9个很棒的树莓皮星球大战项目创意

...后的绝地》的上映,人们的兴奋之情达到了**。无论你是一个纯粹的电影迷,还是一个深深扎根于更广阔的宇宙和知识的人,力量都在每个人的脑海里。 ...

  • 发布于 2021-03-12 02:42
  • 阅读 ( 374 )

12个树莓皮圣诞项目,你可以在一天内

圣诞节会有树莓派吗?有一个(或多个)躺在那里等着采取行动吗?也许有点圣诞主题?一天能做十几个树莓派项目怎么样? ...

  • 发布于 2021-03-17 19:30
  • 阅读 ( 322 )

如何观看netflix,亚马逊视频,和树莓皮丛

... 你需要一个树莓皮3 ...

  • 发布于 2021-03-18 02:26
  • 阅读 ( 260 )

7种最佳树莓皮4例

... 即使树莓皮4是小的,这并不意味着你不应该给它一个适当的家。有几个优秀的树莓皮4案件提供。一些覆盆子皮4案件来与自动风扇,而其他人是坚固耐用。 ...

  • 发布于 2021-03-18 09:54
  • 阅读 ( 240 )

如何用树莓皮制作android电视盒

想**一个基于Raspberry Pi的media center,但发现基本的Kodi安装没有提供足够的功能?别担心,有一个经过考验的替代品:Android电视! ...

  • 发布于 2021-03-18 23:14
  • 阅读 ( 263 )

适合初学者的11个最佳树莓圆周率项目

树莓圆周率是一个伟大的小机器-它的负担得起,高度便携,用户友好。但是,当你第一次得到一个,它可能是棘手的,以找出哪些项目,你应该首先承担。 ...

  • 发布于 2021-03-19 13:42
  • 阅读 ( 271 )

7个diy项目的想法,把一个老树莓皮使用

你找到了!卡在你的DIY抽屉后面,一个覆盆子皮模型a或B,你放在几年前,也许当覆盆子皮2推出。从那以后,它什么也没做,时间已经过去了。 ...

  • 发布于 2021-03-24 04:09
  • 阅读 ( 262 )

如何编程树莓pi控制led灯

从树莓皮开始是一个令人兴奋的经历。对于初学者来说,开始编写代码和DIY电子产品从来都不是一件容易的事。 ...

  • 发布于 2021-03-24 09:16
  • 阅读 ( 281 )

用树莓皮做一个led指示灯(用于电子邮件、天气或任何东西)

覆盆子圆周率是一个很好的紧凑的平台,以附加一个指示灯,为各种项目的天气通知,新的电子邮件等阅读,因为我们告诉你如何连接一个LED模块到你的圆周率和设置一些基本的通知。 我为什么要这么做? 因为这很有趣。与...

  • 发布于 2021-04-12 00:46
  • 阅读 ( 125 )

亚马逊展示了如何用树莓皮制作回声扬声器

亚马逊希望将Alexa voice assistant推向尽可能广的领域,以至于该公司的一名员工发布了一份逐步指南,介绍如何用覆盆子皮(Raspberry Pi)自己**Alexa供电的扬声器。这款do-it-yourself Echo可以用一个40美元的Raspberry Pi Model 2、一个USB麦克...

  • 发布于 2021-05-04 00:43
  • 阅读 ( 159 )
m9222791
m9222791

0 篇文章

相关推荐