Wie man einen Raspberry Pi Twitter Bot baut

Twitter ist das weltweit größte Repository für Kurznachrichten von Menschen, die nichts zu sagen haben - und jetzt können auch Sie mit einem automatisierten Twitter-Bot, der von Ihrem Raspberry Pi betrieben wird, zu diesem epischen Projekt beitragen. Ich scherze natürlich - einige Leute twittern tatsächlich interessante Dinge. Aber ich bin nicht einer von ihnen - ich benutze meine für schamlose Produktpromotion im Austausch für kostenlose Sachen, Wettbewerbsbeiträge und die Veröffentlichung neuer Folgen unseres eigenen Technophilia Podcasts.

Twitter ist das weltweit größte Repository für Kurznachrichten von Menschen, die nichts zu sagen haben - und jetzt können auch Sie mit einem automatisierten Twitter-Bot, der von Ihrem Raspberry Pi betrieben wird, zu diesem epischen Projekt beitragen.  Ich scherze natürlich - einige Leute twittern tatsächlich interessante Dinge.  Aber ich bin nicht einer von ihnen - ich benutze meine für schamlose Produktpromotion im Austausch für kostenlose Sachen, Wettbewerbsbeiträge und die Veröffentlichung neuer Folgen unseres eigenen Technophilia Podcasts.
Werbung

Twitter ist das weltweit größte Repository für Kurznachrichten von Menschen, die nichts zu sagen haben - und jetzt können auch Sie mit einem automatisierten Twitter-Bot, der von Ihrem Raspberry Pi betrieben wird, zu diesem epischen Projekt beitragen. Ich scherze natürlich - einige Leute twittern tatsächlich interessante Dinge Wie man Twitter verwendet, um Mentoren in Ihrem Interessengebiet zu suchen Wie man Twitter verwendet, um nach Mentoren in Ihrem Interessengebiet zu suchen In der realen Welt ist ein Mentor ein Weiser Lehrer, der jemanden unterstützt und führt und ihm hilft, sein Potenzial zu maximieren. In der Online-Welt würden Sie sehr glücklich sein, jemanden zu finden, der ... Read More. Aber ich bin nicht einer von ihnen - ich benutze meine für schamlose Produktpromotion im Austausch für kostenlose Sachen, Wettbewerbsbeiträge und die Veröffentlichung neuer Folgen unseres eigenen Technophilia Podcasts. Was auch immer - meine Anhänger lieben mich!

@ w0lfiesmith Ich hasse dein Twitter-Konto. So sehr.

- Justin Pot (@jhpot) 21. August 2013

Jetzt werde ich zur Nützlichkeit meines persönlichen Twitter-Streams beitragen, indem ich jeden Raspberry Pi automatisch jede Stunde seine aktuelle CPU-Temperatur und ein Webcam-Bild tweete!

Anfangen

Dieses Projekt verwendet Python; eine einfache Programmiersprache, ideal für DIY-Projekte. Wir beginnen damit, Twython auf dem Pi zu installieren - ein Python-Modul für die Verbindung mit Twitter; Einrichten einer Twitter- "Anwendung", um einen API-Schlüssel zu erhalten; dann machen Sie das Pi-Tweet-Zeug in unserem Auftrag. Es wird so viel Spaß machen!

Ich mache das auf Raspian - aber es sollte in der Theorie auf jedem Linux-basierten Betriebssystem, das Sie auf dem Pi 10 Betriebssysteme können Sie mit Raspberry Pi 10-Betriebssystemen können Sie mit Raspberry Pi laufen laufen Die Hardware des Raspberry Pi allein ist nur eine Seite der Geschichte: Heute erkunde ich 10 verschiedene Betriebssysteme, die Sie installieren können. Weiterlesen . Wenn Sie dies noch nicht getan haben, stellen Sie sicher, dass Sie SSH eingerichtet haben, damit wir uns remote anmelden und Konsolenbefehle ausführen können.

Installieren von Twython

Es ist eine gute Idee, Updates zuerst auszuführen. Kopieren und fügen Sie die folgenden Befehle nacheinander ein - die meisten müssen bestätigt werden.

sudo apt-get update sudo apt-get upgrade sudo apt-get install python-setuptools sudo easy_install pip sudo pip install twython 

Registrierung einer Twitter-App

Um die Twitter-API zu nutzen, also die REST-Schnittstelle, die wir verwenden, um neue Tweets zu posten und generell mit Twitter außerhalb der Twitter-Website zu interagieren, müssen wir eine neue App registrieren. Tun Sie das über diesen Link - Sie müssen keine Rückruf-URL angeben und nur eine Website erstellen, wenn Sie möchten.

neu-twitter-app

Sobald Sie fertig sind, sehen Sie etwas Ähnliches - diese Schlüssel sind einzigartig für Sie.

Twitter-App

Standardmäßig ist die App schreibgeschützt, sodass wir Tweets nicht veröffentlichen können, ohne sie in Read and Write zu ändern. Wechseln Sie zur Registerkarte Einstellungen und ändern Sie den Anwendungstyp .

Lese-Schreibzugriff

Nach dem Speichern kehren Sie zurück zur Registerkarte Details und klicken Sie auf die Schaltfläche unten, um ein OAuth-Zugriffstoken zu erstellen. So erhält Ihre Anwendung Zugriff auf Ihren eigenen Twitter-Account. Aktualisieren Sie und lassen Sie die Seite für später geöffnet - wir müssen einige der Schlüssel in einer Minute einfügen.

Zugangstoken

Erstellen Sie Ihr Python-Projekt

Beginnen Sie mit der Erstellung eines neuen Verzeichnisses für Ihr Tweet-Projekt und erstellen Sie eine neue Datei.

 mkdir SillyTweeter cd SillyTweeter sudo nano SillyTweeter.py 

Du kannst es natürlich so nennen, wie du willst.

Kopieren Sie im folgenden Texteditor das Folgende und ersetzen Sie den Consumer Key durch den entsprechenden Schlüssel aus der Twitter-Anwendungsseite, die wir früher geöffnet hatten. Jeder Schlüssel ist von einfachen Anführungszeichen umgeben, also sollten Sie diese nicht verpassen. Beachten Sie, dass ACCESS_KEY auf der Twitter-App-Seite als Zugriffstoken bezeichnet wird .

 #!/usr/bin/env python import sys from twython import Twython CONSUMER_KEY = '***************YOUR DATA*****************' CONSUMER_SECRET = '***************YOUR DATA*****************' ACCESS_KEY = '***************YOUR DATA*****************' ACCESS_SECRET = '***************YOUR DATA*****************' api = Twython(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET) api.update_status(status=sys.argv[1]) 

Drücken Sie Strg-X, und drücken Sie Y, um die Datei zu schließen und zu speichern. Machen Sie es mit dem folgenden Befehl ausführbar (ersetzen Sie Ihren Python-Dateinamen, wenn Sie etwas anderes gewählt haben)

 sudo chmod +x SillyTweeter.py 

Sie sollten nun in der Lage sein, Ihre Fähigkeit zu testen, Tweets wie folgt zu posten:

 python SillyTweeter.py 'Hello Everyone, this is my Raspberry Pi tweeting you more nonsense' 

Hallo allerseits, das ist meine Raspberry Pi Tweeting Sie mehr Unsinn

- James Bruce (@ w0lfiesmith) 29. August 2013

Tweeting Ihre CPU Temp

Jetzt, da du jeden möglichen Unsinn posten kannst, passen wir die App an die aktuelle CPU-Temperatur an, denn ich werde verdammt sein, wenn die Welt das nicht jede Stunde wissen muss.

Beginnen Sie mit dem Hinzufügen eines weiteren Imports für die os-Bibliothek:

 import os 

Fügen Sie dann die folgenden Zeilen hinzu und ersetzen Sie den vorherigen api.update_status aus dem obigen Beispiel.

 cmd = '/opt/vc/bin/vcgencmd measure_temp' line = os.popen(cmd).readline().strip() temp = line.split('=')[1].split("'")[0] api.update_status(status='My current CPU temperature is '+temp+' C') 

Ich werde diesen Code nicht zu sehr erklären, weil es nicht wirklich wichtig ist - es führt einen Befehl aus, der die Temperatur erfasst, teilt dann die Ausgabe auf, um die Zahl zu extrahieren, und twittert diese mit einer benutzerdefinierten Nachricht. Den vollständigen Beispielcode finden Sie hier.

Twitternde Webcam-Bilder

Lass uns jetzt etwas wirklich Nützliches machen; Wir werden Tweet Webcam Bilder. Zum Glück unterstützt Twython die API-Funktion update_status_with_media, die die Dinge ziemlich einfach macht.

Stecken Sie eine USB-Webcam in Ihr Gerät und überprüfen Sie, ob es mit dem Befehl erkannt wurde:

 ls /dev/video* 

Wenn Sie video0 sehen, haben Sie Glück. Ich benutzte eine Playstation 3 PSEye Cam und es funktionierte ohne zusätzliche Beinarbeit gut.

Wir werden auch die Pygame- Bibliotheken benutzen, um ein Foto zu machen; Fügen Sie die folgenden Zeilen unmittelbar nach den vorhandenen Importanweisungen hinzu:

 import pygame import pygame.camera from pygame.locals import * pygame.init() pygame.camera.init() cam = pygame.camera.Camera("/dev/video0", (640, 480)) cam.start() image = cam.get_image() pygame.image.save(image, 'webcam.jpg"') 

Kurz gesagt, Sie haben die Webcam mit einer bestimmten Auflösung initialisiert (Sie müssen möglicherweise einstellen, dass es sich um eine wirklich alte Kamera handelt), ein Bild aufnehmen und es als JPG speichern. Wir werden die selbe webcam.jpg" jedes Mal überschreiben, wenn die App ausgeführt wird.

Passen Sie abschließend die Zeile update_status so an, dass sie lautet:

 photo = open('webcam.jpg"', 'rb') api.update_status_with_media(media=photo, status='My RPi be tweeting images now =>') 

Natürlich können Sie den Statustext auch wieder auf Ihre aktuelle CPU-Temperatur ändern, wenn Sie möchten. Der vollständige Code für dieses Beispiel ist hier.

Meine RPi werden jetzt Bilder twittern => pic.twitter.com/NfUgLnWQtm

- James Bruce (@ w0lfiesmith) 29. August 2013

Kannst du das wiederholen?

Ein Twitter-Bot ist nur dann nützlich, wenn er mehrmals automatisch ausgeführt wird. du willst nicht dort sitzen und jede Stunde den Befehl ausführen. Um dies zu erreichen, verwenden wir die CRON-Planungsfunktion von Pi (Was ist ein CRON-Job? Automatisieren Sie Ihr Wordpress-Backup mit einfachem Shell-Scripting & CRON Automatisieren Sie Ihr Wordpress-Backup mit einfachem Shell-Scripting & CRON Letztes Mal sprachen wir über Wordpress-Backups unglaublich einfach war es, Ihre gesamte Datenbank und Dateien durch SSH mit nur wenigen Befehlen zu sichern. Dieses Mal werde ich zeigen, ... Read More)

 sudo crontab -e 

Fügen Sie diese Zeile ein, um jede Stunde zu laufen.

 */60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py 

Ändere das in * * * * *, wenn du möchtest, dass es jede Minute läuft, und sei darauf vorbereitet, Follower schneller zu verlieren als ein Twitter-Account, der Follower schnell verliert.

Das ist für heute. Ich bin froh, dass ich zu der riesigen Fülle nutzloser Bytes im Internet mehr Dummheit beigetragen habe, und ich hoffe, du tust es auch! Zeigen Sie Ihre Wertschätzung für dieses Tutorial, indem Sie es twittern, und lassen Sie uns dann wissen, worüber Ihr eigener Twitter-Bot in den Kommentaren twittern wird.

Bildnachweis: adafruit / flickr

In this article