Raspberry Pi电子邮件通知器中的意外结果
问题描述:
刚刚买了一棵覆盆子pi b +,并决定解决一些“简单”的项目。目前我正在尝试将我的Gmail帐户同步到LED通知器。Raspberry Pi电子邮件通知器中的意外结果
如果我有一封电子邮件,绿色LED亮起。如果我没有电子邮件,红色灯会亮起。问题是这个......目前的功能是,当我没有电子邮件时,绿色的LED亮起,但是,当我至少有一封电子邮件时,LED都不亮。我知道硬件方面的一切工作,因为我测试了不同的组合。
我粘贴了下面tutorial的代码,从我可以告诉它是一个非常简单的条件与一些额外的东西,所以它可以跟我的树莓pi。
看起来很奇怪,if-statement
总是返回true。
import RPi.GPIO as GPIO, feedparser, time
DEBUG = 1
USERNAME = "my-username"
PASSWORD = "my-password"
NEWMAIL_OFFSET = 0 # empty inbox
MAIL_CHECK_FREQ = 60 # check mail every 60 seconds
GPIO.setmode(GPIO.BCM)
GREEN_LED = 18
RED_LED = 23
GPIO.setup(GREEN_LED, GPIO.OUT)
GPIO.setup(RED_LED, GPIO.OUT)
while True:
newmails = int(feedparser.parse("https://" + USERNAME + ":" + PASSWORD +"@mail.google.com/gmail/feed/atom")["feed"]["fullcount"])
if DEBUG:
print "You have", newmails, "new emails!"
if newmails > NEWMAIL_OFFSET:
GPIO.output(GREEN_LED, True)
GPIO.output(RED_LED, False)
else:
GPIO.output(GREEN_LED, False)
GPIO.output(RED_LED, True)
time.sleep(MAIL_CHECK_FREQ)
!
这里是我的设置...
答
通过硬件的图片看,这可能是因为你的电阻器可能是感人那里。而且,进入绿色LED的引线并未落在空行上。目前,它会与销16相互作用和你的电压时高时排放到...这篇文章可以帮助
https://learn.adafruit.com/raspberry-pi-e-mail-notifier-using-leds/wire-leds
答
首先只是为了把事情说清楚:代码不通知你只要收件箱中至少有一封未读邮件,就可以使用新邮件。
与光的问题确实与硬件有关,因为我只是在家中做了相同的设置,它工作正常。我对代码做了一些小修改:
import RPi.GPIO as GPIO, feedparser, time, sys
USERNAME = "my-username"
PASSWORD = "my-password"
NEWMAIL_OFFSET = 0 # empty inbox
MAIL_CHECK_FREQ = 60 # check mail every 60 seconds
GPIO.setmode(GPIO.BCM)
GREEN_LED = 18
RED_LED = 23
GPIO.setup(GREEN_LED, GPIO.OUT)
GPIO.setup(RED_LED, GPIO.OUT)
while True:
try:
newmails = int(feedparser.parse("https://" + USERNAME + ":" + PASSWORD +"@mail.google.com/gmail/feed/atom")["feed"]["fullcount"])
print "You have ", newmails, " unread emails!"
if newmails > NEWMAIL_OFFSET:
GPIO.output(GREEN_LED, True)
GPIO.output(RED_LED, False)
else:
GPIO.output(GREEN_LED, False)
GPIO.output(RED_LED, True)
time.sleep(MAIL_CHECK_FREQ)
except KeyboardInterrupt:
#Ctrl + C
#Ensure you are cleaning up the GPIO setup or it might not work correctly after the first run
GPIO.cleanup()
break
except:
#Here you can capture possible unknown issues with the code
print("There following error happened: " + str(sys.exc_info()[1]))
finally:
pass
我们不知道你的硬件是如何连接的。 – 2014-09-22 03:44:32
底部有什么感叹号?你有没有检查你没有混合标签和空格? – sje397 2014-09-22 05:07:21
没有任何空格与标签混合。感叹号是从教程我发布了一个链接,据我可以告诉它只是说这是文件的末尾 - 甚至没有显示时,我输入'nano./filename.py'。 – itsclarke 2014-09-22 05:14:05