Étape 9: Écrire le programme Tweeting de mangeoire à oiseaux
Dans cette étape vous écrira le programme Python qui est la magie derrière la tweeting mangeoire à oiseaux.
- Créez un nouveau répertoire pour notre programme Python
- mkdir /home/pi/tweeting_birdfeeder
- CD/home/pi/tweeting_birdfeeder /
- Créez un nouveau fichier pour le programme Python
- nano birdie-tweet.py
- Changer les permissions du fichier
- chmod 755 birdie-tweet.py
- Obtenez le birdie-tweet.py de https://github.com/reimey/tweeting-bird-feeder ou copier le contenu du programme dans le birdie-tweet.py
#! / usr/bin/env python
#######################################################################
## Birdie Tweet
# Prend une photo d’un oiseau quand il est à la mangeoire et il tweets sur Twitter.
#
# Ce programme nécessite python2 et twython
## Auteur : Mark Reimer
# Date: 3 août 2014
#######################################################################
de twython importation Twython
sous-processus importons appel
moment de l’importation
importation au hasard
importation RPi.GPIO comme GPIO
# Initialiser GPIO
GPIO.setmode (GPIO. BCM)
GPIO.setup (04, GPIO. PO)
# GPIO4 est broche 7
# Jeton de twitter
APP_KEY = ''
APP_SECRET = ''
ACCESS_TOKEN = ''
ACCESS_TOKEN_SECRET = ''
# Combien de temps en secondes pour dormir avant de chercher un autre oiseau
SLEEP_DURATION = 30
# Twitter messages à utiliser lors de Twitter
messages =]
messages.Append ("le lève-tôt obtient les graines fraîches. #birds #birdwatching")
messages.Append (« cet oiseau juste pris un selfie. #birds #birdwatching")
messages.Append ("Merci de visiter la tweeting mangeoire à oiseaux. #birds #birdwatching")
messages.Append ("un autre heureux oiseau a servi. #bird #birds #birdwatching")
messages.Append (« qui hérissé ses plumes ? #bird #birds #birdwatching")
messages.Append (« Montrez-moi votre birdie. #birds #birdwatching #bird")
messages.Append (« un #bird sur le chargeur vaut deux tweets. #bird #birds #birdwatching")
messages.Append ("Free as a bird. #birdwatching #birds #bird")
messages.Append ("Intelligence sans ambition est un oiseau sans ailes. -Salvador Dali #birdwatching ")
messages.Append ("un oiseau perché sur un arbre n’est jamais peur de la direction générale de la rupture, car sa confiance n’est pas sur la branche, mais sur ses propres ailes. -inconnue ")
messages.Append ("je pense que nous considérons trop la chance du lève-tôt et pas assez la malchance du ver au début. -FDR #birdwatching ")
messages.Append (« tenir à rêves, pour si rêves meurent, la vie est un oiseau à ailes cassées qui ne peuvent pas voler. -Langston Hughes #birds #birdwatching ")
messages.Append (« la foi est l’oiseau qui sente la lumière quand l’aube est encore sombre. -Rabindranath Tagore #birdwatching #birds ")
messages.Append ("un poisson peut aimer un oiseau, mais où ils vivraient ? -Drew Barrymore #birds #birdwatching ")
messages.Append ("si vous ne pouvez pas attraper un oiseau du paradis, mieux prendre une poule mouillée. -Nikita Khrouchtchev #bird #birdwatching ")
messages.Append ("quelques articles de journaux sont apte seulement à la ligne de fond de cages à oiseaux. #birdwatching #birds #bird")
messages.Append ("certains oiseaux ne sont pas destinés à être mis en cage. Leurs plumes sont tout simplement trop lumineux. -Stephen King #birdwatching #birds ")
messages.Append ("You ' re so vain, vous pensez probablement que ce selfie est sur vous. #birdwatching #birds")
messages.Append ("afin de voir les oiseaux il est nécessaire de faire partie du silence. -Robert Lynd #birdwatching #birds ")
messages.Append ("il imagine une joie nécessaire de ce qu’il doit prendre l’avion pour manger. -Wendell Berry #birds #birdwatching #bird ")
# attendre pour capteur de proximité
While True :
Si (GPIO.input(04)) :
Essayez :
# Prendre une photo. J’ai monté la caméra à l’envers avec le câble ruban à monter. Donc, j’utilise l’option faire pour pivoter verticalement l’image.
appeler ("/ opt/vc/bin/raspistill - e jpg--vflip -w 320 - h 320 - q 100 -o /tmp/snapshot.jpg", shell = True)
# Se connecter à Twitter twitter = Twython (APP_KEY, APP_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
# Poster une mise à jour avec une photo
photo = open ('/ tmp/snapshot.jpg', 'rb')
r = random.randint (0, len(messages)-1)
message = message [r]
Twitter.update_status_with_media (statut = message, média = photo)
sauf :
Print ("une erreur inattendue:")
# Dormir afin que plusieurs images ne sont pas prises du même oiseau
Time.Sleep(SLEEP_DURATION)
autre chose :
Time.Sleep(0.25)
5. Enregistrez le fichier et quittez nano
6. Si vous copiez et collez le code source ci-dessus, n’oubliez pas de revenir en arrière et de mettre à jour les onglets ou espacement Python étant strict sur l’espacement.