Comment construire un Twitter Bot Raspberry Pi
Twitter est le plus grand répertoire mondial de messages courts émanant de personnes qui n'ont rien à dire - et maintenant, vous aussi pouvez contribuer à ce projet épique avec un bot Twitter automatisé, optimisé 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 un sage enseignant qui soutient et guide une personne et l’aide à maximiser son potentiel. Dans le monde en ligne, vous auriez beaucoup de chance de trouver quelqu'un qui… Lire la suite. Je ne suis cependant pas l'un d'eux. J'utilise ma mine pour faire la promotion de produits sans scrupule en échange de contenus gratuits, d'entrées au concours et de la publication automatique 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) le 21 août 2013
Maintenant, je vais ajouter à l'utilité de mon flux Twitter personnel en faisant en sorte qu'un Raspberry Pi tweet automatiquement sa température actuelle du processeur toutes les heures et une image de la 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’interface avec Twitter; mettre en place un twitter “application” obtenir une clé API; puis passez à faire les trucs Pi sur Twitter en notre nom. Ça va être tellement amusant!
Je fais cela sur Raspian - mais cela devrait théoriquement fonctionner sur tout système d'exploitation Linux que vous avez sur les systèmes d'exploitation Pi 11 que vous pouvez exécuter sur les systèmes d'exploitation Raspberry Pi 11 et que vous pouvez exécuter sur Raspberry Pi Le matériel de Raspberry Pi est unique. côté de la pièce. Voici différents systèmes d'exploitation Raspberry Pi que vous pouvez installer. Lire la suite . Si ce n'est déjà fait, assurez-vous de configurer SSH pour pouvoir nous 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 mise à jour sudo apt-get mise à niveau sudo apt-get installer python-setuptools sudo easy_install pip sudo pip installer twython
Enregistrer une application Twitter
Pour utiliser l'API Twitter, c'est-à-dire l'interface REST, que nous utiliserons pour publier de nouveaux tweets et interagir généralement avec Twitter en dehors du 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, mais créez un site Web si vous le souhaitez..
Vous verrez quelque chose qui ressemble à ceci une fois que vous avez terminé - ces clés vous sont propres..
Par défaut, l'application est configurée en lecture seule. Nous ne pourrons donc pas publier de tweets sans changer cela. Lire et écrire. Accédez à l'onglet Paramètres et modifiez le Type d'application.
Une fois enregistré, retournez à la Détails onglet et cliquez sur le bouton en bas pour créer un jeton d'accès OAuth - cela donne à votre application un accès à votre propre compte Twitter. Actualisez et laissez la page ouverte pour plus tard - nous devrons copier-coller certaines de ces clés dans une minute.
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 appeler ça comme vous voulez, évidemment.
Dans l’éditeur de texte qui apparaît, copiez et collez le texte suivant en remplaçant la clé du consommateur par la clé correspondante de la page de l’application Twitter que nous avions laissée ouverte plus tôt. Chaque touche est entourée de guillemets simples, assurez-vous de ne pas les manquer. Notez que CLÉ D'ACCÈS est dénommé Jeton d'accès sur la page de l'application Twitter.
#! / usr / bin / env système d'importation python de l'importation twython Twython CONSUMER_KEY = '*************** VOS DONNEES ************** ** 'CONSUMER_SECRET =' *************** VOS DONNEES **************** 'ACCESS_KEY =' ****** ********* VOS DONNÉES ***************** 'ACCESS_SECRET =' *************** VOS DONNÉES * *************** '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 (remplacez votre nom de fichier Python si vous avez choisi autre chose)
sudo chmod + x SillyTweeter.py
Vous devriez maintenant pouvoir tester votre capacité à publier des tweets comme ceci:
python SillyTweeter.py 'Bonjour à tous, voici mon Raspberry Pi qui tweetait de plus en plus de bêtises'
Tweetez votre tempo de processeur
Maintenant que vous pouvez publier n'importe quel non-sens que vous voulez, ajustons l'application pour qu'elle saisisse la température actuelle du processeur, car je serai maudit si le monde n'a pas besoin de savoir que toutes les heures.
Commencez par ajouter une autre bibliothèque d'importation pour os:
importation os
Puis ajoutez 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 = 'La température actuelle de mon processeur est' + temp + 'C')
Je n'expliquerai pas trop ce code, car il n'a pas vraiment d'importance. Il exécute une commande qui enregistre la température, puis scinde la sortie pour en extraire le nombre, puis le tweete avec un message personnalisé. Vous pouvez trouver le code d'exemple complet ici.
Photos avec webcam
Faisons maintenant quelque chose de vraiment utile; nous allons tweet photos webcam. Heureusement, Twython supporte la fonction API update_status_with_media, ce qui simplifie les choses.
Branchez une webcam USB sur votre appareil et vérifiez si elle a été reconnue avec la commande:
ls / dev / video *
si tu vois vidéo0, tu es chanceux. J'ai utilisé une caméra Playstation 3 PSEye et tout a bien fonctionné, sans travail supplémentaire.
Nous allons également utiliser le pygame bibliothèques pour prendre une photo; ajoutez les lignes suivantes juste après les instructions d'importation existantes:
importer pygame importer pygame.camera depuis pygame.locals importer * 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 devrez peut-être régler le problème, c’est une très vieille caméra), pris une photo et l’avoir enregistrée au format jpg. Nous allons juste écraser le même webcam.jpg à chaque exécution de l'application.
Enfin, ajustez la ligne update_status pour lire:
photo = open ('webcam.jpg', 'rb') api.update_status_with_media (media = photo, status = "Mon RPi envoie des images à Twitter =>")
Bien entendu, vous pouvez modifier le texte du statut en fonction de la température actuelle de votre CPU, si vous le souhaitez. Le code complet de cet exemple est ici.
Peux-tu répéter cela?
Un bot Twitter n'est utile que s'il s'exécute automatiquement plusieurs fois. vous ne voulez pas rester assis à exécuter la commande toutes les heures. Pour ce faire, utilisons la fonctionnalité de planification CRON du 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é des sauvegardes Wordpress, je vous ai il était incroyablement facile de sauvegarder l'intégralité de votre base de données et de vos fichiers via SSH avec seulement quelques commandes. Cette fois, je vais… En savoir plus)
sudo crontab -e
Coller dans cette ligne, pour courir toutes les heures.
* / 60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py
Changer cela en * * * * * si vous voulez qu'il fonctionne toutes les minutes et soyez prêt à perdre des abonnés plus rapidement qu'un compte Twitter qui en perd rapidement.
C'est pour aujourd'hui. Je suis heureux d'avoir contribué davantage à la vaste bêtise d'innombrables octets inutiles sur Internet, et j'espère que vous aussi! Montrez votre appréciation pour ce tutoriel en tweetant, et laissez-nous savoir ce que votre propre bot Twitter va tweeter dans les commentaires.
Crédit image: adafruit / flickr
Explorer plus sur: Raspberry Pi, Twitter.