所以我对Python和硬件到软件交互都很陌生。我需要帮助处理我在网上修改过的代码。当没有新的电子邮件时,我的LED没有切换到红色...似乎是理解FeedParser是问题,我不知道它是如何工作的,所以对这里做的简要说明将不胜感激。我不确定Parser是否是错误但我看不到其他因为我知道其余的代码是什么。
它是我的全球" DEBUG"变量,
DEBUG = 1
" NEWMAIL_OFFSET"
NEWMAIL_OFFSET = 1
或解析器。老实说,我相信它可能是DEBUG,但我试过转换东西。我无法弄清楚FeedParser正在做什么,所以有点难以弄明白。谷歌一直没什么帮助。无论是对我说日语还是没有足够的细节..最后,这是我的代码!:
cat <<! > raspi-gmail.py
#!/usr/bin/env python
import RPi.GPIO as GPIO, feedparser, time
DEBUG = 1
USERNAME = "***EMAIL***"
PASSWORD = "************"
NEWMAIL_OFFSET = 1 #unread offset global
MAIL_CHECK_FREQ = 60 #Checks mail every 30 seconds
GPIO.setmode(GPIO.BCM)
YELLOW_LED = 18
RED_LED = 23
GPIO.setup(YELLOW_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've got mail! ", newmails, "unread messages."
if newmails > NEWMAIL_OFFSET:
GPIO.output(YELLOW_LED, True)
GPIO.output(RED_LED, False)
else:
GPIO.output(YELLOW_LED, True)
GPIO.output(RED_LED, False)
time.sleep(MAIL_CHECK_FREQ)
答案 0 :(得分:0)
那么,
if newmails > NEWMAIL_OFFSET:
GPIO.output(YELLOW_LED, True)
GPIO.output(RED_LED, False) # <=
else:
GPIO.output(YELLOW_LED, True) # Fix: make it False!
GPIO.output(RED_LED, False) # <= # Fix: make it True!
如果您有电子邮件,请关闭红灯;如果你没有收到电子邮件,你可以再次关闭红灯!
为什么你会期望它开启?