Tataaaaa!
Hier ist er: Freiburgs erster twitterbot. Was macht er: er twittert um 6:00, 8:00, 10:00, 12:00, 14:00, 16:00, 18:00, 20:00 und 22:00 ein Bild von meinem Balkon auf Freiburg in die Welt.
Was habe ich dafür gebraucht:
- Rasperry Pie Zero W
- Rasperry Pie Cam (ohne Infrarot Filter), wird aber vielleicht bald eine mit Filter
- 8 GB SD Karte
- Rasperry Pie Gehäuse
- Micro USB Kabel + Verlängerung
- Klebeband
- Netzteil
Für die Teile die ich nicht verlinkt habe, gehe ich davon aus, das sie in fast jedem Hausthalt vorhanden sind. Andernfalls hilft AliExpress oder Amazon. Der Zero W braucht recht wenig, daher tut es auch ein altes Handy Netzteil mit USB Stecker.
Was habe ich gemacht:
- Raspibian installiert. Und zwar das mit grafischer Oberfläche. Im folgenden beschreibe ich wie das mit grafischer Oberfläche geht, es ginge sicher auch ohne und der Rasperry läuft sowieso headless. Aber mit ist einfacher zu bedinen. Also runterladen, entpacken, auf SD Karte kopieren.
- Die Kamera anstecken.
- Das ganze mit Adaptern an Bildschirm, Tastatur, Maus anschliessen.
- im Pi Einschalten: SSH und Kamera. Am besten dann ein eigenes SSH Kennwort setzten.
- Folgende Programme sollte man installieren: python2.7, tweepy,
- auf der twitter Developer Seite eine Eigene App einrichten.
- folgendes python skript läuft: (Quelle)(Quelle)
#!/usr/bin/env python2.7
# coding=<UTF-8
# tweetpic.py take a photo with the Pi camera and tweet it
# by Alex Eames http://raspi.tv/?p=5918
import tweepy
from subprocess import call
from datetime import datetime
i = datetime.now() #take time and date for filename now = i.strftime('%Y%m%d-%H%M%S') photo_name = now + '.jpg' cmd = 'raspistill -t 500 -w 1024 -h 768 -o /home/pi/' + photo_name call ([cmd], shell=True) #shoot the photo # Consumer keys and access tokens, used for OAuth CONSUMER_KEY = 'bekommt man von twitter' CONSUMER_SECRET = 'bekommt man von twitter' ACCESS_KEY = 'bekommt man von twitter' ACCESS_SECRET = 'bekommt man von twitter' # OAuth process, using the keys and tokens auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) # Creation of the actual interface, using authentication api = tweepy.API(auth) # Send the tweet with photo photo_path = '/home/pi/' + photo_name status = ‘Ein Blick auf Freiburg auto-tweet: ' + i.strftime('%Y/%m/%d %H:%M:%S') api.update_with_media(photo_path, status=status)
8. Cronjob einrichten – hab ich zwei: Einen Cronjob der regelmäßig tweeted und einen zweiten der den Pi um 0:00 neustartet. Sollte vielleicht noch einen geben, der die Bilder löscht.
Cronjobs: Einen zum regelmäßig twittern:
0 6,8,10,12,14,16,18,20,22 * * * python (Name der Datei).py
einen Damit der Pi neustartet:
0 3 * * * /sbin/shutdown -r now
Ich sollte noch Cronjobs einbauen, die die Bilder löschen, da habe ich aber bisher noch keinen gefunden.
Jetzt mal schauen wie der twitterbot angenommen wird.
Anleitungen die mir geholfen haben:
- Anleitung auf Deutsch von Canoxnet, allerdings muß man auf Groß- und Kleinschreibung bei den Consumer_key Einträgen achten.
- Sehr detailierte Beschreibugn auf Englisch von MakeUse, auch mit Erklärung wie man die TwitterApp anmeldet.
- Instructables Anleitung dazu
- Die nicht mehr ganz aktuelle Anleitung bei RaspiTV
Die Anleitung habe ich alle beachtet, ein wenig gemixt. Man muß halt probieren.
Ich freue mich über Kommentare.