Tweeting fågelbordet (9 / 10 steg)
Steg 9: Skriva programmet Tweeting Bird Feeder
I detta steg kommer du att skriva programmet Python som är magin bakom tweeting fågelbordet.
- Skapa en ny katalog för vår Python program
- mkdir /home/pi/tweeting_birdfeeder
- CD/home/pi/tweeting_birdfeeder /
- Skapa en ny fil för Python program
- Nano birdie-tweet.py
- Ändra behörigheterna för filen
- chmod 755 birdie-tweet.py
- Får birdie-tweet.py från https://github.com/reimey/tweeting-bird-feeder eller kopiera innehållet i programmet till birdie-tweet.py
#! / usr/bin/env python
#######################################################################
## Birdie Tweet
# Tar en bild av en fågel när den är på fågelbordet och tweets till Twitter.
#
# Detta program kräver python2 och twython
## Författare: Mark Reimer
# Datum: 3 augusti, 2014
#######################################################################
importera Twython från twython
underprocess importera samtal
Importera tid
importera slumpmässiga
importera RPi.GPIO som GPIO
# Initiera GPIO
GPIO.setmode (GPIO. BCM)
GPIO.setup (04, GPIO. I)
# GPIO4 är stift 7
# Twitter Token
APP_KEY = ''
APP_SECRET = ''
ACCESS_TOKEN = ''
ACCESS_TOKEN_SECRET = ''
# Hur mycket tid i sekunder att sova innan letar efter en annan fågel
SLEEP_DURATION = 30
# Twitter meddelanden som kan användas när tweeting
meddelanden =]
Messages.append ("early bird får färska frön. #birds #birdwatching")
Messages.append ("denna fågel bara tog en selfie. #birds #birdwatching")
Messages.append ("Tack för att besöka den tweeting fågelbordet. #birds #birdwatching")
Messages.append ("en annan glad fågel serveras. #bird #birds #birdwatching")
Messages.append ("som ruggig hennes fjädrar? #bird #birds #birdwatching")
Messages.append ("Visa mig din birdie. #birds #birdwatching #bird")
Messages.append ("en #bird på mataren är värt två tweets. #bird #birds #birdwatching")
Messages.append ("fri som en fågel. #birdwatching #birds #bird")
Messages.append ("intelligens utan ambition är en fågel utan vingar. -Salvador Dali #birdwatching ")
Messages.append ("en fågel sitter på ett träd är aldrig rädd för grenen bryta, eftersom hennes förtroende är inte på grenen men på sina egna vingar. -okänt ")
Messages.append ("Jag tror att vi anser att för mycket lycka av tidigt och inte tillräckligt otur om tidiga mask. -FDR #birdwatching ")
Messages.append ("hålla fast vid drömmar, för om drömmar dör, livet är en bruten bevingade fågel som inte kan flyga. -Langston Hughes #birds #birdwatching ")
Messages.append ("tro är fågeln som känns ljuset när gryningen är fortfarande mörkt. -Rabindranath Tagore #birdwatching #birds ")
Messages.append ("en fisk kan älska en fågel, men där skulle de leva? -Drew Barrymore #birds #birdwatching ")
Messages.append ("om du inte kan fånga en bird of paradise, bättre ta en våt höna. -Nikita Chrusjtjov #bird #birdwatching ")
Messages.append ("några tidningsartiklar är passar endast till linje botten av fågelburar. #birdwatching #birds #bird")
Messages.append ("vissa fåglar är inte avsedda att vara bur. Deras fjädrar är alldeles för ljusa. -Stephen King #birdwatching #birds ")
Messages.append ("du är så fåfäng, tror du förmodligen denna selfie handlar om dig. #birdwatching #birds")
Messages.append ("för att se fåglar det är nödvändigt att bli en del av tystnaden. -Robert Lynd #birdwatching #birds ")
Messages.append ("han föreställer sig en nödvändig glädje i saker som måste flyga för att äta. -Wendell Berry #birds #birdwatching #bird ")
# vänta för proximity sensor
samtidigt sant:
om (GPIO.input(04)):
försök:
# Ta en bild. Jag monterade kameran upp och ner med flatkabeln går upp. Så använder jag alternativet vertikalt knäppa bilden.
Ring ("/ opt/vc/bin/raspistill - e jpg--vflip -w 320 - h 320 - q 100 -o /tmp/snapshot.jpg", skal = True)
# Logga in på Twitter twitter = Twython (APP_KEY, APP_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
# Skicka en statusuppdatering med en bild
Foto = Öppna ("/ tmp/snapshot.jpg", "rb")
r = random.randint (0, len(messages)-1)
meddelande = meddelanden [r]
Twitter.update_status_with_media (status = meddelande, media = foto)
utom:
skriva ut ("oväntat fel:")
# Sova så att flera bilderna inte är tagna på samma fågel
Time.Sleep(SLEEP_DURATION)
annat:
Time.Sleep(0.25)
5. spara filen och avsluta nano
6. om du kopiera och klistra in källkoden ovan, kom ihåg att gå tillbaka och uppdatera flikarna eller avstånd eftersom Python är strikt om avstånd.