Stap 9: Schrijf de Tweeting Vogelhuis/waterbak-programma
In deze stap zal u het Python programma dat is de magie achter de tweeting Vogelhuis/waterbak schrijven.
- Maak een nieuwe map voor onze Python programma
- mkdir /home/pi/tweeting_birdfeeder
- cd/home/pi/tweeting_birdfeeder /
- Maak een nieuw bestand voor het Python programma
- Nano birdie-tweet.py
- De machtigingen voor het bestand wijzigen
- chmod 755 birdie-tweet.py
- Birdie-tweet.py krijgen van https://github.com/reimey/tweeting-bird-feeder of kopieer de inhoud van het programma naar birdie-tweet.py
#! / usr/bin/env python
#######################################################################
## Vogeltje Tweet
# Neemt een foto van een vogel wanneer het wordt op de bird feeder en het tweets op Twitter.
#
# Dit programma vereist python2 en twython
## Auteur: Mark Reimer
# Datum: 3 augustus 2014
#######################################################################
importeren uit twython Twython
een subproces voor importeren oproep
importeren
import willekeurige
importeren van RPi.GPIO als GPIO
# Initialiseren GPIO
GPIO.setmode (GPIO. BCM)
GPIO.setup (04, GPIO. IN)
# GPIO4 is pin 7
# Twitter Token
APP_KEY = ''
APP_SECRET = ''
ACCESS_TOKEN = ''
ACCESS_TOKEN_SECRET = ''
# Hoe veel tijd in seconden om te slapen voordat op zoek naar een andere vogel
SLEEP_DURATION = 30
# Twitter berichten te gebruiken wanneer tweeting
berichten =]
messages.Append ("de early bird krijgt de verse zaden. #birds #birdwatching")
messages.Append ("deze vogel alleen nam een selfie. #birds #birdwatching")
messages.Append ("Bedankt voor het bezoeken van de tweeting Vogelhuis/waterbak. #birds #birdwatching")
messages.Append ("een andere gelukkige vogel geserveerd. #bird #birds #birdwatching")
messages.Append ("die gegolfde haar veren? #bird #birds #birdwatching")
messages.Append ("Toon me je vogeltje. #birds #birdwatching #bird")
messages.Append ("een #bird op de feeder is waard twee tweets. #bird #birds #birdwatching")
messages.Append ("Free as a bird. #birdwatching #birds #bird")
messages.Append ("intelligentie zonder ambitie is een vogel zonder vleugels. -Salvador Dali, #birdwatching ")
messages.Append ("een vogel zittend op een boom is nooit bang van de tak breken, omdat haar vertrouwen is niet op de tak maar op eigen vleugels. -onbekende ")
messages.Append ("Ik denk dat wij te veel het succes van de vroege vogel en niet genoeg de pech van de vroege worm. -FDR #birdwatching ")
messages.Append ("vasthouden aan dromen, voor als dromen sterven, leven is een gebroken-gevleugelde vogel die niet kan vliegen. -Langston Hughes #birds #birdwatching ")
messages.Append ("geloof is de vogel die het licht voelt als de dageraad nog donker is. -Rabindranath Tagore #birdwatching #birds ")
messages.Append ("een vis kan het houden van een vogel, maar waar zouden ze leven? -Drew Barrymore #birds #birdwatching ")
messages.Append ("als je niet kan vangen een paradijsvogel, beter nemen een natte duivin. -Nikita Chroesjtsjov #bird #birdwatching ")
messages.Append ("aantal krantenartikelen zijn fit alleen aan lijn de bodem van de kooien van de vogel. #birdwatching #birds #bird")
messages.Append ("sommige vogels zijn niet bedoeld om te worden gekooide. Hun veren zijn gewoon te licht. -Stephen King #birdwatching #birds ")
messages.Append ("je bent zo ijdel, dat je waarschijnlijk denken dat deze selfie is over jou. #birdwatching #birds")
messages.Append ("om te zien de vogels er moet een onderdeel geworden van de stilte. -Robert Lynd #birdwatching #birds ")
messages.Append ("Hij verbeeldt een noodzakelijke vreugde in dingen die moeten vliegen om te eten. -Wendell Berry #birds #birdwatching #bird ")
# wachten voor nabijheidssensor
terwijl juist:
Als (GPIO.input(04)):
Try:
# Maak een foto. Ik de camera ondersteboven gemonteerd met de lintkabel omhoog. Zo gebruik ik de optie Verticaal spiegelen van de afbeelding.
Bel ("/ opt/vc/bin/raspistill - e jpg--vflip -w 320 - h 320 - q 100 -o /tmp/snapshot.jpg", shell = True)
# Meld u aan bij Twitter twitter = Twython (APP_KEY, APP_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
# Het posten van een statusupdate met een afbeelding
foto = open ('/ tmp/snapshot.jpg', 'rb')
r = random.randint (0, len(messages)-1)
Message = berichten [r]
Twitter.update_status_with_media (status = bericht, media = photo)
met uitzondering van:
afdrukken ("onverwachte fout:")
# Slapen zodat meerdere foto's zijn niet van dezelfde vogel genomen
time.Sleep(SLEEP_DURATION)
anders:
time.Sleep(0.25)
5. sparen het dossier en sluiten nano
6. Als u kopieert en de source code bovenstaande plakt, vergeet u niet terug te gaan en de tabbladen of afstand bijwerken aangezien Python streng over afstand is.