0

저는 파이썬과 하드웨어 간의 소프트웨어 상호 작용에 상당히 익숙합니다. 제가 웹에서 수정 한이 코드에 대한 도움이 필요합니다. 새 이메일이 없으면 LED가 빨간색으로 바뀌지 않습니다 ... FeedParser가 문제인지 이해하고있는 것처럼 보입니다. 어떻게 작동하는지 알지 못해서 여기에서하는 일에 대한 간단한 설명이 크게 감사하겠습니다. 파서가 오류인지 확실하지 않지만 코드의 나머지 부분에서 무슨 일이 벌어지고 있는지 알기 때문에 그렇지 않다.파이썬에서 나무 딸기 파이 상호 작용 문제, 특히 FeedParser ..?

그건 하나 내 전역 "DEBUG"변수,

DEBUG = 1 

"NEWMAIL_OFFSET"

NEWMAIL_OFFSET = 1 

또는 파서. 솔직히 그것이 DEBUG 일 수 있다고 생각하지만, 나는 물건을 바꾸려고 노력했다. FeedParser가하는 일을 파악할 수 없으므로 알아 내기가 조금 어렵습니다. Google은 거의 도움이되지 않았습니다. 어느 나에게 일본어 또는 충분하지 않은 세부 사항을 이야기하는 것은 .. 마지막으로, 여기에 이메일이있는 경우 코드! :

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

그럼 내 비트,

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! 

, 당신은 붉은 빛을 끌 것입니다; 이메일이 없으면 다시 빨간색 표시등을 끕니다.

왜 켜기를 기대합니까?

+0

하하하, 나는 그 사실을 발견했다! 또한 디버그를 꺼내서 YELLOW_LED/True에 추가 했으므로 DEBUG은 0 개의 메시지를 10 억 번 처리하지 않고 깜박임을 추가했습니다. 그래서 newmails> NEWMAIL_OFFSET : print "youve got mail"... – MrRoss

+0

완전히 멍청한 실수. 고맙습니다 :) – MrRoss