Hur man bygger en hallon Pi Twitter Bot

Hur man bygger en hallon Pi Twitter Bot / DIY

Twitter är världens största förteckning över korta meddelanden från personer som inte har något att säga - och nu kan du också bidra till det episka projektet med en automatiserad Twitter-bot som drivs av din Raspberry Pi. Jag skojar självklart - vissa människor faktiskt tweetar intressanta saker Hur man använder Twitter för att söka efter mentorer i intresseområdet Hur man använder Twitter för att söka efter mentorer i ditt intresseområde I den verkliga världen är en mentor en klok lärare som stöder och leder någon, och hjälper dem att maximera sin potential. I onlinevärlden skulle du vara mycket lycklig att hitta någon som vill ... Läs mer. Jag är dock inte en av dem - jag använder min gruva för skamlös produktreklam i utbyte mot fria saker, tävlingsposter och automatisk postning av nya episoder av vår egen Technophilia Podcast. Vad som helst - mina anhängare älskar mig!

@ w0lfiesmith Jag hatar ditt Twitter-konto. Så mycket.

- Justin Pot (@jhpot) 21 augusti 2013

Nu ska jag lägga till användbarheten av min personliga Twitter-ström genom att ha en Raspberry Pi automatiskt tweetar sin nuvarande CPU-temperatur varje timme och en webbkamera bild!

Komma igång

Detta projekt använder Python; ett enkelt programmeringsspråk som är idealiskt för DIY-projekt. Vi börjar med att installera Twython på Pi-a Python-modulen för gränssnitt till Twitter. ställa in en Twitter “Ansökan” för att få en API-nyckel; sedan gå in gör Pi tweet saker på våra vägnar. Det kommer att bli så roligt!

Jag gör detta på Raspian - men det borde teoretiskt fungera på alla Linux-baserade operativsystem du har på Pi 11 operativsystem som du kan köra på Raspberry Pi 11 Operativsystem du kan köra på Raspberry Pi Raspberry Pi-hårdvaran är bara en sidan av myntet. Här är några olika Raspberry Pi operativsystem som du kan installera. Läs mer . Om du inte redan har gjort det, se till att du konfigurerar SSH så att vi kan logga in och utföra konsolkommandon.

Installera Twython

Det är en bra idé att springa uppdateringar först. Kopiera och klistra in följande kommandon en i taget - de flesta kommer att kräva bekräftelse.

sudo apt-få uppdatering sudo apt-få uppgradering sudo apt-få installera python-setuptools sudo easy_install pip sudo pip installera twython 

Registrera en Twitter-app

För att kunna använda Twitter API - det vill säga det REST-gränssnitt som vi ska använda för att skicka nya tweets och i allmänhet interagera med Twitter utanför Twitter-webbplatsen - måste vi registrera en ny app. Gör det från den här länken - du behöver inte ange en återuppringningsadress och bara skapa en webbplats om du vill.

Du ser något som liknar detta när du är klar - dessa nycklar är unika för dig.

Som standard är appen skrivskyddad, så vi kan inte publicera tweets utan att ändra det till Läsa och skriva. Gå till fliken Inställningar och ändra Ansökningstyp.

När du är sparad, gå tillbaka till detaljer fliken och klicka på knappen längst ner till skapa en OAuth access token - Detta ger din ansökan tillgång till ditt eget Twitter-konto. Uppdatera och lämna sidan öppen för senare - vi måste kopiera klistra in några av dessa nycklar på en minut.

Skapa ditt Python-projekt

Börja med att skapa en ny katalog för att hämta ditt Tweet-projekt och skapa en ny fil.

mkdir SillyTweeter cd SillyTweeter sudo nano SillyTweeter.py 

Du kan kalla det vad du vill, självklart.

I textredigeraren som visas kopierar du och klistrar in följande, ersätter konsumentnyckeln med den relevanta nyckeln från den Twitter-applikationssida som vi lämnade tidigare. Varje nyckel är omgiven av enkla citat, så var noga med att inte missa dem. Anteckna det ACCESS_KEY kallas Access token på Twitter-sidan.

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

Tryck Ctrl-X och tryck på Y för att avsluta och spara filen. Gör det körbart med följande kommando (ersätter ditt Python-filnamn om du väljer något annat)

sudo chmod + x SillyTweeter.py 

Du borde nu kunna testa din förmåga att skicka tweets som så:

python SillyTweeter.py "Hej Alla, det här är min Raspberry Pi tweeting dig mer nonsens"

Tweeting din CPU Temp

Nu när du kan skicka någon form av nonsens du vill, låt oss justera appen för att fånga den aktuella CPU-temperaturen, för jag blir fördömd om världen inte behöver veta att varje timme.

Börja med att lägga till en annan import för os-biblioteket:

importera oss

Lägg sedan till följande rader, ersätter föregående api.update_status från exemplet ovan.

cmd = '/ opt / vc / bin / vcgencmd measure_temp' line = os.popen (cmd) .readline () .remsa () temp = line.split ('=') [1] .split (" 0] api.update_status (status = 'Min aktuella CPU-temperatur är' + temp + 'C') 

Jag kommer inte att förklara denna kod för mycket eftersom det inte spelar någon roll - det kör ett kommando som tar emot temperaturen, splittrar sedan utmatningen för att extrahera numret och tweets det med ett anpassat meddelande. Du kan hitta den fullständiga exemplenkoden här.

Tweeting Webcam bilder

Låt oss nu göra något riktigt användbart. vi ska gå till tweet webbkameror bilder. Tack och lov stödjer Twython API-funktionen update_status_with_media, vilket gör sakerna ganska enkla.

Anslut en USB-webbkamera till din enhet och kontrollera om den har blivit igenkänd med kommandot:

ls / dev / video *

om du ser Video0, du har tur. Jag använde en Playstation 3 PSEye-kamera och det fungerade bra utan några extra drag.

Vi ska också använda pygame bibliotek för att ta en bild; Lägg till följande rader strax efter de befintliga importansökningarna:

importera pygame import pygame.camera från 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 (bild, 'webcam.jpg') 

Kort sagt, du har initierat webbkameran med en viss upplösning (du kanske behöver justera detta är det är en riktigt gammal kamera), knäppte en bild och sparade den som en jpg. Vi kommer bara att skriva över samma webbkamera.jpg varje gång appen körs.

Slutligen justera uppdateringsstatuslinjen för att läsa:

photo = open ('webcam.jpg', 'rb') api.update_status_with_media (media = foto, status = "Mina RPi är tweeting bilder nu =>") 

Naturligtvis kan du ändra statustexten till din nuvarande CPU-temperatur igen, om du vill. Den fullständiga koden för det här exemplet är här.

Kan du upprepa det?

En Twitter-bot är bara användbar om den körs flera gånger automatiskt. du vill inte sitta där kör kommandot varje timme. För att uppnå detta, låt oss använda Pi's CRON-schemaläggningsfunktionen (Vad är ett CRON-jobb? Automatisera din Wordpress-säkerhetskopiering med enkel Shell Scripting & CRON Automatisera din Wordpress-säkerhetskopiering med enkel Shell Scripting & CRON Förra gången vi pratade om Wordpress-säkerhetskopior visade jag dig hur otroligt enkelt var det att säkerhetskopiera hela din databas och filer men SSH med bara några kommandon. Den här gången kommer jag att visa ... Läs mer)

sudo crontab -e

Klistra in den här raden för att köra varje timme.

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

Ändra det till * * * * * om du vill att den ska springa varje minut och vara beredd att förlora följare snabbare än ett Twitter-konto som snabbt förlorar följare.

Det är för idag. Jag är glad att jag har bidragit mer silliness till den stora mängd ofanlösa byte på Internet, och jag hoppas du gör det också! Visa din uppskattning för denna handledning av tweeting det, och låt oss sedan veta vad din egen Twitter bot kommer att tweet om i kommentarerna.

Bildkredit: adafruit / flickr

Utforska mer om: Raspberry Pi, Twitter.