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

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

3天内不再提示

怎样制作树莓派Gmail通知灯

454398 来源:网络整理 作者:网络整理 2019-11-29 10:51 次阅读

在这个快速而简单的Raspberry Pi项目中,您将学习如何使Gmail电子邮件通知指示灯亮起。如果您有未读的电子邮件,则Python脚本会打开LED。该项目需要很少的零件,并且可以在一个小时内完成!当然,您可以按照自己喜欢的任何方式来装饰LED,例如MineCraft红石块或其他以透明塑料3D打印的物体。最终结果如下:

您需要什么

1 x Raspberry Pi

1 x面包板

1 x 220 ohm电阻器

1 x 5mm LED

1 x Gmail帐户

公对母连接线

任何Raspberry Pi将适用于该项目-甚至Pi Zero!只需要一个GPIO引脚即可,它对CPU的占用不是特别大。如果您拥有Pi入门套件,那么您将拥有足够多的零件来完成此任务。

构建计划

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

硬件

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

Pi设置

提供您的Pi已安装操作系统(OS)不需要很多设置(不确定您需要什么吗?了解如何在此处安装)。在Pi上打开一个新终端(左上》 菜单》 附件》 终端)(签出这些快捷方式可以让您成为编码忍者)。您需要创建一个新文件夹来存储Python脚本。输入以下命令:

pwd

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

cd Documents/

sudo mkdir gmail_python

“ mkdir”命令代表“ Make Directory”。此后的所有内容都将用作目录名。现在,您应该可以看到目录:

ls

如果输入有误,则可以轻松删除此目录:

sudo rm -r gmail_python

现在导航到新目录:

cd gmail_python/

创建新的Python脚本:

sudo nano check_messages.py

这将创建脚本并将其打开以准备在Nano中进行编辑。您当然可以使用其他程序,例如Vim,尽管此推文总结了我对此的看法:

我已经使用Vim大约2多年以来,主要是因为我不知道如何退出。

—我是Devloper(@iamdevloper),2014年2月17日

开玩笑,检查一下

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

Python设置strong》

现在已经设置好Pi,是时候编写代码了。此项目需要由Charlie Guo制作的出色的Gmail Python库。从Github下载库并提取内容。里面应该有一个名为“ gmail”的文件夹。将整个文件夹复制到“/home/pi/Documents/gmail_python”中。

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

sudo nano check_messages.py

请注意,该命令与您用来创建文件的命令相同,如果已存在该文件,则将其打开,否则将创建该文件。这是Python:

import gmail, RPi.GPIO as GPIO, time # import modules

GPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use

GPIO.setup(14, GPIO.OUT) # tell the Pi this pin is an output

g = gmail.login(‘YOUREMAIL@gmail.com’, ‘YOUR PASSWORD’)

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

total_messages = 0

for message in unread_messages:

total_messages += 1

if total_messages 》 0:

# there are unread emails, turn light on

GPIO.output(14, True)

else:

# there are no unread emails, turn light off

GPIO.output(14, False)

您需要输入用户名和密码才能使用此功能。您可以根据需要查看gmail插件的完整源代码。如果您不满意这样做(或者您使用的是双重身份验证),则需要使用OAuth2连接到Gmail。本教程涉及到一些内容,但是Google提供了出色的入门指南。

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

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

g = gmail.login(‘YOUREMAIL@gmail.com’, ‘YOUR PASSWORD’)

现在,检索所有未读邮件并将其存储在名为“未读邮件”的变量中:

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

注意如何将“ unread = True”作为参数传递-您可以更改此参数以根据不同的参数(例如发件人或主题)检索邮件。查看应用程序编程接口(API)文档以获取更多信息。

接下来,使用for循环遍历每条消息:

for message in unread_messages:

total_messages += 1

for循环非常有用。他们重复执行几次代码块,每次值通常略有不同。此for循环遍历unread_messages中的每条消息,并增加“ total_messages”变量。

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

请记住,Python区分大小写,并使用白色间距。如果您在运行代码时遇到问题,请尝试访问该网站。将您的Python粘贴并点击“在python代码上方验证”按钮。然后应该可以告诉您Python中存在什么错误(如果有)。

切换到终端并运行脚本:

python check_messages.py

此命令将运行您的脚本。尝试手动将收件箱中的某些电子邮件更改为未读状态并再次运行脚本-您应该看到LED亮起或熄灭以反映您的收件箱。

Cron设置

现在,该脚本有效,是时候将其自动化。最简单的方法是通过cron工作。 Cron作业用于安排任务和脚本,例如自动备份。打开Crontab(计划任务的列表):

crontab -e

如果尚未设置任何计划任务,则此文件为空(可能包含文档或注释,前面带有一种 ”#”)。如果您已经在此处输入了条目,只需在新行上输入新命令即可:

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

五个“星号”(“ * * * * *”)指定了通常会执行任务(您可以在这里获得真正的赞誉,例如,每第二个星期三2.00)。这五颗星表示该任务应每分钟运行一次。这是允许的最小间隔(了解有关cronjob调度的更多信息)。接下来,“ python”告诉调度程序将脚本作为python文件执行。最后,“〜/pi/Documents/gmail_python/check_messages.py”是脚本的绝对文件路径-相对路径将不起作用。

您现在应该拥有自己的Gmail通知灯!修改此代码以根据不同的要求或过滤器查找消息(在这里学习如何使用过滤器),或者执行不同的代码段,将非常简单—也许您可以创建一个基于电子邮件推特的Twitter机器人(学习

责任编辑:wv

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

    关注

    242

    文章

    23175

    浏览量

    658821
  • 树莓派
    +关注

    关注

    116

    文章

    1701

    浏览量

    105563
收藏 人收藏

    评论

    相关推荐

    树莓与Arduino的区别是什么

    在当今的科技世界中,树莓(Raspberry Pi)和Arduino是两个经常被提及的名字。它们都是开源硬件平台,但它们的目标、功能和用途却大相径庭。 1. 目标和用途 树莓(Ra
    的头像 发表于 11-11 11:14 440次阅读

    ARM开发板与树莓的比较

    ARM开发板和树莓都是基于ARM架构的单板计算机,它们在教育、工业控制、物联网等领域有着广泛的应用。 硬件配置 ARM开发板和树莓的硬件配置各有特点,具体取决于不同的型号和制造商。
    的头像 发表于 11-05 11:11 298次阅读

    树莓gpio有什么用,树莓gpio接口及编程方法

    一、树莓GPIO的用途 树莓(Raspberry Pi)是一款小巧、功能强大的单板计算机,广泛应用于编程教育、物联网项目、家庭媒体中心等领域。GPIO(General Purpos
    的头像 发表于 10-22 18:09 564次阅读

    什么是树莓树莓是什么架构的

    什么是树莓 树莓(Raspberry Pi,简写为RPi,别名为RasPi/RPI)是由英国“Raspberry Pi 慈善基金会”开发的一款为学习计算机编程教育而设计的微型电脑。
    的头像 发表于 10-22 17:33 591次阅读

    树莓网关:物联网应用的新标杆

    什么是树莓树莓(Raspberry Pi)是一种基于Linux的小型单板计算机,由英国的树莓
    的头像 发表于 10-09 16:44 256次阅读
    类<b class='flag-5'>树莓</b><b class='flag-5'>派</b>网关:物联网应用的新标杆

    树莓和单片机的优缺点是什么

    树莓(Raspberry Pi)和单片机(Microcontroller)是两种广泛应用于电子项目和嵌入式系统的硬件平台。它们各自具有独特的优缺点,适用于不同的应用场景。 树莓
    的头像 发表于 08-30 18:21 1506次阅读

    树莓的功能用途是什么

    树莓(Raspberry Pi)是一款由英国树莓基金会研发的信用卡大小的单板计算机,自2012年推出以来,已经发展出多个型号和版本。树莓
    的头像 发表于 08-30 18:01 2364次阅读

    树莓4B的性能特点及应用

    树莓4B简介 树莓4B是一款基于ARM架构的单板计算机,其搭载了四核Cortex-A72 CPU,主频高达1.5GHz,同时配备了4GB LPDDR4内存。此外,它还具备了丰富的接
    的头像 发表于 08-30 16:54 1528次阅读

    树莓gui开发用什么ide

    树莓(Raspberry Pi)是一款功能强大的微型计算机,可以运行多种操作系统,如Raspbian、Ubuntu等。在树莓派上进行GUI(图形用户界面)开发,可以使用多种集成开发环境(IDE
    的头像 发表于 08-30 16:49 719次阅读

    树莓是x86还是arm

    树莓(Raspberry Pi)是一款由英国树莓基金会(Raspberry Pi Foundation)开发的微型计算机。它基于ARM架构,而非x86架构。 一、
    的头像 发表于 08-30 15:42 839次阅读

    树莓装ubuntu和raspbian哪个更好

    树莓(Raspberry Pi)是一款由英国树莓基金会开发的单板计算机,广泛应用于教育、科研、物联网等领域。树莓
    的头像 发表于 08-30 15:41 1145次阅读

    树莓和arm开发板的区别

    树莓(Raspberry Pi)和ARM开发板都是基于ARM架构的微型计算机,但它们之间存在一些关键区别。 一、历史背景 树莓(Raspberry Pi)
    的头像 发表于 08-30 15:36 883次阅读

    树莓5的新功能和引脚介绍

    树莓5(Raspberry Pi 5)于2023 年10 月底已经推出。
    的头像 发表于 01-26 09:21 9378次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>5的新功能和引脚介绍

    树莓主板如何连接电脑

    连接树莓派到电脑是一个非常有用的功能,它可以让我们在电脑上进行树莓的操作和管理。本文将详细介绍如何连接树莓主板到电脑。我会从准备工作开始
    的头像 发表于 01-07 15:40 1877次阅读

    基于树莓的环境监测系统

    树莓(Raspberry Pi)是一种小型而功能强大的计算机,其性能和功能足以支持许多应用领域。在环境监测系统中,树莓也被广泛应用。本文将详细介绍基于
    的头像 发表于 01-04 15:15 2105次阅读