Raspberry Pi Desk Notifier (18 / 18 steg)
Steg 18: Kör hela programmet
Vi genomfört alla steg att göra fysisk sak. Nu är det hög tid att göra det lite live med komplett Python program. Tydligt följa programmet och ersätta "xxxxxxxxxxxxxxx" märken med din information.
#! / usr/bin/env python
importera RPi.GPIO som GPIO, feedparser, tid
importera urllib2
importera json
Importera tid
importera oauth, tweepy, sys, locale, gängning
från att importera localtime, strftime, sömn
importera max7219.led som ledde
Device = led.sevensegment()
### Gmail
FELSÖKA = 1
ANVÄNDARNAMN = "xxxxxxxxxxxxxx" # endast delen före den tecknet @, till din här
LÖSENORD = "***"
NEWMAIL_OFFSET = 1 # min olästa meddelanden går aldrig till noll, din kanske
MAIL_CHECK_FREQ = 60 # check mail var 60 sekunder
##################### gmail
GPIO.setmode (GPIO. BCM)
GREEN_LED = 1
RED_LED = 2
GPIO.setup (GREEN_LED, GPIO. OUT)
GPIO.setup (RED_LED, GPIO. OUT)
def gmail():
Global mail
newmails = int (feedparser.parse ("https://" + användarnamn + ":" + lösenord + "
om DEBUG:
Print "du har", newmails, "nya e-postmeddelanden!"
e-post = newmails
om newmails > NEWMAIL_OFFSET:
GPIO.output (GREEN_LED, sant)
GPIO.output (RED_LED, falskt)
annat:
GPIO.output (GREEN_LED, falskt)
GPIO.output (RED_LED, sant)
#time.sleep(MAIL_CHECK_FREQ)
def get_page_data(page_id,access_token):
api_endpoint = "https://graph.facebook.com/v2.4/"
fb_graph_url = api_endpoint + page_id + "? fält = id, namn, artister, unread_notif_count, unread_message_count, länk & access_token =" + access_token
försök:
api_request = urllib2. Request(fb_graph_url)
api_response = urllib2.urlopen(api_request)
försök:
återgå json.loads(api_response.read())
Förutom (ValueError, KeyError, TypeError):
returnera "JSON fel"
utom IOError, e:
om hasattr (e, "koden"):
återgå e.code
Elif hasattr (e, "skäl"):
återgå e.reason
def facebook():
globala like_count
globala notification_count
page_id = "xxxxxxxxxxxxxxxx"
# användarnamn eller id < en href = "https://developers.facebook.com/tools/explorer" > https://developers.facebook.com/tools/explorer</a>
token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # tillgång Token
page_data = get_page_data(page_id,token)
skriva ut "Page namn:" + page_data ["namn"]
skriva ut "gillar:" + str(page_data['likes'])
like_count = page_data ['gillar']
skriva ut "Link:" + page_data [länk]
skriva ut "olästa meddelanden:" + str(page_data['unread_notif_count'])
notification_count = page_data ['unread_notif_count']
skriva ut "oläst meddelande:" + str(page_data['unread_message_count'])
#time.sleep(0.5)
def twitter():
Global efterföljare
globala api #https://apps.twitter.com
consumer_key = "xxxxxxxxxxxxxxxxxxxxxx" # Använd din snabbtangent
consumer_secret = "xxxxxxxxxxxxxxxxxxxxxxxxx"
access_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
access_secret = "xxxxxxxxxxxxxxxxxxxxxxxxx"
auth = tweepy. OAuthHandler (consumer_key, consumer_secret)
auth.set_access_token (access_key, access_secret)
API: t = tweepy. API(auth)
användare = api.get_user(xxxxxxxxxx) # ditt användar-id
skriva ut user.screen_name
skriva ut user.followers_count
efterföljare = user.followers_count
skriva ut user.friends_count
skriva ut user.favourites_count
def reverse(n):
IF(n<10):
returnera n * 10
annat:
återgå int(str(n)[::-1])
def display(): # bildar ett nummer från alla uppgifter
all_value = (reverse(follower) * 1000000) + (reverse(like_count)*10000) + (reverse(notification_count)*100) + reverse(mail)
skriva ut all_value
Device.write_number (enhets-ID = 0, värde = all_value)
samtidigt sant:
Gmail()
Facebook()
Twitter()
Display()
Time.Sleep(0.6)
Du kan hämta filen bifogas nedan. Kör programmet med följande kommando:
sudo python iot-dashboard.py
Om det fungerar bra då Grattis!
Om du vill läsa in programmet automatiskt efter omstart av raspberry pi Följ sedan instruktionerna:
1. gör filen körbar med kommandot:
sudo chmod + x iot-dashboard.py
Du kan testa det genom att köra programmet direkt genom att skriva:
./IOT-Dashboard.py
Även om du inte uppmana Python bör programmet fortfarande köra samma som om du hade skrivit python iot-dashboard.py. Programmet kan endast köras genom att kalla det med sin fullständiga sökvägen /home/pi/iot-dashboard.py eller från den aktuella katalogen med hjälp av . / som platsen.
2. gör programmet auto kör:
För att få ett kommando eller program körs när Pi stövlar, kan du lägga till kommandon i filen rc.local . Detta är särskilt användbart om du vill kunna ansluta din Pi till power headless, och har det köra ett program utan konfiguration eller en manuell start.
2.1 på din Pi, redigera filen /etc/rc.local med editor för att förstora. Du måste redigera med rot, t.ex:
sudo nano /etc/rc.local
2.2 lägga till kommandon under kommentaren, men lämna den linje utgång 0 i slutet, sedan spara filen och avsluta.
python /home/pi/iot-dashboard.py &
Nu starta din Pi och njut av ditt skrivbord anmälaren. Du gjorde det!