Python到Raspberry Pi交互的麻烦,特别是FeedParser ..?

时间:2015-01-23 21:45:37

标签: python python-3.x raspberry-pi feedparser hardware-programming

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

1 个答案:

答案 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!

如果您有电子邮件,请关闭红灯;如果你没有收到电子邮件,你可以再次关闭红灯!

为什么你会期望它开启?