Comment construire un robot Twitter Raspberry Pi

Twitter est le plus grand dépôt mondial de messages courts provenant de personnes qui n'ont rien à dire - et maintenant vous aussi pouvez contribuer à ce projet épique avec un robot Twitter automatisé, alimenté par votre Raspberry Pi. Je plaisante, bien sûr - certaines personnes tweetent des choses intéressantes. Je ne suis pas l'un d'entre eux cependant - j'utilise ma mine pour la promotion de produits sans vergogne en échange de trucs gratuits, les entrées de la concurrence, et l'auto-affichage de nouveaux épisodes de notre propre podcast Technophilia.

Twitter est le plus grand dépôt mondial de messages courts provenant de personnes qui n'ont rien à dire - et maintenant vous aussi pouvez contribuer à ce projet épique avec un robot Twitter automatisé, alimenté par votre Raspberry Pi.  Je plaisante, bien sûr - certaines personnes tweetent des choses intéressantes.  Je ne suis pas l'un d'entre eux cependant - j'utilise ma mine pour la promotion de produits sans vergogne en échange de trucs gratuits, les entrées de la concurrence, et l'auto-affichage de nouveaux épisodes de notre propre podcast Technophilia.
Publicité

Twitter est le plus grand dépôt mondial de messages courts provenant de personnes qui n'ont rien à dire - et maintenant vous aussi pouvez contribuer à ce projet épique avec un robot Twitter automatisé, alimenté par votre Raspberry Pi. Je plaisante, bien sûr - certaines personnes tweetent des choses intéressantes Comment utiliser Twitter pour rechercher des mentors dans votre domaine d'intérêt Comment utiliser Twitter pour rechercher des mentors dans votre domaine d'intérêt Dans le monde réel, un mentor est sage enseignant qui soutient et guide quelqu'un et l'aide à maximiser son potentiel. Dans le monde en ligne, vous seriez très chanceux de trouver quelqu'un qui ... Lire la suite. Je ne suis pas l'un d'entre eux cependant - j'utilise ma mine pour la promotion de produits sans vergogne en échange de trucs gratuits, les entrées de la concurrence, et l'auto-affichage de nouveaux épisodes de notre propre podcast Technophilia. Peu importe - mes disciples m'aiment!

@ w0lfiesmith Je déteste votre compte Twitter. Tellement de.

- Justin Pot (@jhpot) 21 août 2013

Maintenant, je vais ajouter à l'utilité de mon flux Twitter personnel en ayant un Raspberry Pi tweeter automatiquement sa température actuelle du processeur toutes les heures, et une image webcam!

Commencer

Ce projet utilise Python; un langage de programmation simple idéal pour les projets de bricolage. Nous allons commencer par installer Twython sur le Pi - un module Python pour l'interfaçage avec Twitter; mettre en place une "application" Twitter pour obtenir une clé API; Ensuite, allez faire le tw tweet trucs en notre nom. Ça va être tellement amusant!

Je le fais sur Raspian - mais il devrait en théorie fonctionner sur n'importe quel système d'exploitation basé sur Linux que vous avez sur le système d'exploitation. Vous pouvez exécuter avec Raspberry Pi 10 Les systèmes d'exploitation que vous pouvez utiliser avec Raspberry Pi est seulement un côté de l'histoire: Aujourd'hui, j'explore 10 systèmes d'exploitation différents que vous pouvez installer. Lire la suite . Si ce n'est déjà fait, assurez-vous de configurer SSH pour pouvoir vous connecter à distance et exécuter les commandes de la console.

Installation de Twython

C'est une bonne idée d'exécuter les mises à jour en premier. Copiez et collez les commandes suivantes une à la fois - la plupart nécessiteront une confirmation.

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

Enregistrement d'une application Twitter

Pour utiliser l'API Twitter, c'est-à-dire l'interface REST que nous utiliserons pour poster de nouveaux Tweets et interagir avec Twitter sur le site web de Twitter, nous devrons enregistrer une nouvelle application. Faites-le à partir de ce lien - vous n'avez pas besoin de spécifier une URL de rappel, et créez simplement un site web si vous le souhaitez.

nouvelle-twitter-app

Vous verrez quelque chose ressemblant à ceci une fois que vous avez terminé - ces clés sont uniques pour vous.

twitter-app

Par défaut, l'application est définie en lecture seule, de sorte que nous ne serons pas en mesure de publier des tweets sans modifier cela en lecture et en écriture . Allez dans l'onglet Paramètres et modifiez le type d'application .

readwrite-access

Une fois enregistré, revenez à l'onglet Détails et cliquez sur le bouton en bas pour créer un jeton d'accès OAuth - cela permet à votre application d'accéder à votre propre compte Twitter. Actualisez et laissez la page ouverte pour plus tard - nous allons devoir copier certaines de ces clés dans une minute.

jeton d'accès

Créez votre projet Python

Commencez par créer un nouveau répertoire pour héberger votre projet Tweet, puis créez un nouveau fichier.

 mkdir SillyTweeter cd SillyTweeter sudo nano SillyTweeter.py 

Vous pouvez l'appeler comme vous voulez, évidemment.

Dans l'éditeur de texte qui apparaît, copiez et collez ce qui suit, en remplaçant la clé du consommateur par la clé correspondante de la page de l'application Twitter que nous avons laissée ouverte plus tôt. Chaque clé est entourée de guillemets simples, alors assurez-vous de ne pas les manquer. Notez que ACCESS_KEY est appelé jeton d'accès sur la page de l'application Twitter.

 #!/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]) 

Appuyez sur Ctrl-X et appuyez sur Y pour quitter et enregistrer le fichier. Rendez-le exécutable avec la commande suivante (en remplaçant votre nom de fichier Python si vous avez choisi quelque chose d'autre)

 sudo chmod +x SillyTweeter.py 

Vous devriez maintenant être capable de tester votre capacité à poster des tweets comme ça:

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

Bonjour à tous, c'est mon Raspberry Pi tweeting vous plus de non-sens

- James Bruce (@ wllfiesmith) 29 août 2013

Tweeting votre température du processeur

Maintenant que vous pouvez poster n'importe quel genre de bêtises que vous voulez, ajustons l'application pour saisir la température actuelle du CPU, parce que je serai damné si le monde n'a pas besoin de savoir que toutes les heures.

Commencez par ajouter une autre importation pour la bibliothèque os:

 import os 

Ajoutez ensuite les lignes suivantes en remplaçant le précédent api.update_status de l'exemple ci-dessus.

 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') 

Je n'expliquerai pas trop ce code parce que cela n'a pas vraiment d'importance - il exécute une commande qui saisit la température, puis divise la sortie pour extraire le nombre, et tweete cela avec un message personnalisé. Vous pouvez trouver le code exemple complet ici.

Tweeting Webcam Images

Maintenant, faisons quelque chose de vraiment utile. nous allons tweeter des photos de webcam. Heureusement, Twython supporte la fonction API update_status_with_media, ce qui rend les choses plutôt simples.

Branchez une webcam USB dans votre appareil et vérifiez si elle a été reconnue avec la commande:

 ls /dev/video* 

Si vous voyez video0, vous avez de la chance. J'ai utilisé une caméra Playstation 3 PSEye et cela a très bien fonctionné sans aucun travail supplémentaire.

Nous allons également utiliser les bibliothèques de pygame pour prendre une photo; ajoutez les lignes suivantes juste après les instructions d'importation existantes:

 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"') 

En bref, vous avez initialisé la webcam à une résolution spécifique (vous aurez peut-être besoin d'ajuster cette cam très vieille), pris une photo et l'ai enregistrée en jpg. Nous allons juste remplacer la même webcam.jpg" chaque fois que l'application est lancée.

Enfin, ajustez la ligne update_status pour lire:

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

Bien sûr, vous pouvez à nouveau modifier le texte d'état à la température actuelle du processeur, si vous le souhaitez. Le code complet de cet exemple est ici.

Mon RPi tweete des images maintenant => pic.twitter.com/NfUgLnWQtm

- James Bruce (@ wllfiesmith) 29 août 2013

Peux-tu répéter cela?

Un bot Twitter n'est utile que s'il s'exécute plusieurs fois, automatiquement; vous ne voulez pas rester là à exécuter le commandement toutes les heures. Pour ce faire, utilisons la fonction de planification CRON de Pi (Qu'est-ce qu'un travail CRON?) Automatisez votre sauvegarde Wordpress avec Simple Shell Scripting & CRON Automatisez votre sauvegarde Wordpress avec Simple Shell Scripting & CRON La dernière fois que nous avons parlé de sauvegardes Wordpress, je vous ai montré comment incroyablement facile, c'était de sauvegarder toute votre base de données et vos fichiers via SSH avec seulement quelques commandes ... Lire la suite)

 sudo crontab -e 

Collez dans cette ligne, pour courir toutes les heures.

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

Changez cela en * * * * * si vous voulez qu'il s'exécute toutes les minutes, et soyez prêt à perdre des abonnés plus rapidement qu'un compte Twitter qui perd rapidement des abonnés.

C'est pour aujourd'hui. Je suis heureux d'avoir contribué à plus de stupidité à la grande richesse des octets inutiles sur Internet, et j'espère que vous aussi! Montrez votre appréciation pour ce tutoriel en le tweetant, puis laissez-nous savoir ce que votre propre bot Twitter va tweeter dans les commentaires.

Crédit d'image: adafruit / flickr

In this article