0

所以我对 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)
4

1 回答 1

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!

如果你有电子邮件,你就关掉红灯;如果您没有电子邮件,您将再次关闭红灯!

你为什么希望它打开?

于 2015-01-23T22:02:32.167 回答