Annons
Twitter är världens största arkiv med korta meddelanden från människor med inget 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 naturligtvis – vissa tweetar faktiskt intressanta saker Hur man använder Twitter för att söka efter mentorer i ditt intresseområdeI den verkliga världen är en mentor en klok lärare som stöder och guider någon och hjälper dem att maximera sin potential. I onlinevärlden skulle du ha mycket tur att hitta någon som kommer ... Läs mer . Jag är dock inte en av dem - jag använder mina för skamlös marknadsföring av produkter i utbyte mot gratis grejer, tävlingsposter och att automatiskt publicera nya avsnitt av vår egen Technophilia Podcast. Oavsett - mina följare älskar mig!
@ w0lfiesmith Jag hatar ditt Twitter-konto. Så mycket.
- Justin Pot (@jhpot) 21 augusti 2013
Nu ska jag lägga till användbarheten i min personliga Twitter-ström genom att få en Raspberry Pi att tweeta automatiskt sin nuvarande CPU-temperatur varje timme och en webbkamera!
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 - en Python-modul för gränssnitt med Twitter; ställa in en Twitter-applikation för att få en API-nyckel; gå sedan in på att göra Pi-tweet-saker på våra vägnar. Det kommer att bli så kul!
Jag gör detta på Raspian - men det ska i teorin fungera på alla Linux-baserat operativsystem du har på Pi 11 operativsystem som körs på din hallonpiOavsett vilket Raspberry Pi-projekt du har, finns det ett operativsystem för det. Vi hjälper dig hitta det bästa Raspberry Pi OS för dina behov. Läs mer . Om du inte redan har det, se till att du ställer in SSH så att vi kan fjärranslutna logga in och utföra konsolkommandon.
Installera Twython
Det är en bra idé att köra uppdateringar först. Kopiera och klistra in följande kommandon en i taget - de flesta kräver bekräftelse.
sudo apt-get-uppdatering. sudo apt-get upgrade. sudo apt-get install python-setuptools. sudo easy_install pip. sudo pip installera twython.
Registrerar en Twitter-app
För att kunna använda Twitter-API: et, REST-gränssnittet som vi kommer att använda för att publicera 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 webbadress för återuppringning och bara skapa en webbplats om du vill.

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

Som standard är appen inställd på 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 har sparats, gå tillbaka till detaljer och klicka på knappen längst ner till skapa ett OAuth-åtkomsttoken - 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 hysa ditt Tweet-projekt och skapa sedan en ny fil.
mkdir SillyTweeter. cd SillyTweeter. sudo nano SillyTweeter.py.
Du kan självklart kalla det vad du vill.
I textredigeraren som visas kopierar du och klistrar in följande och ersätter konsumentnyckeln med den relevanta nyckeln från Twitter-applikationssidan som vi lämnade tidigare. Varje nyckel är omgiven av enstaka citat, så se till att inte missa dessa. Anteckna det ACCESS_KEY kallas Åtkomsttoken på Twitter-app-sidan.
#! / usr / bin / env python. importera sys. från twython import Twython. CONSUMER_KEY = '*************** DINA DATA *****************' CONSUMER_SECRET = '*************** DINA DATA *****************' ACCESS_KEY = '*************** DINA DATA *****************' ACCESS_SECRET = '*************** DIN DATA *****************' api = Twython (CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET) api.update_status (status = sys.argv [1])
Tryck på Ctrl-X och tryck på Y för att avsluta och spara filen. Gör det körbart med följande kommando (byt ut ditt Python-filnamn om du valde något annat)
sudo chmod + x SillyTweeter.py.
Du bör nu kunna testa din förmåga att publicera tweets så:
python SillyTweeter.py "Hej alla, det här är min hallon Pi som tweetar er mer nonsens"
Tweeta din CPU-temp
Nu när du kan publicera vilken typ av nonsens du vill, låt oss anpassa appen för att ta tag i den aktuella CPU-temperaturen, för jag ska bli fördömd om världen inte behöver veta det varje timme.
Börja med att lägga till en annan import för os-bibliotek:
import os
Lägg sedan till följande rader genom att ersätta den tidigare api.update_status från exemplet ovan.
cmd = '/ opt / vc / bin / vcgencmd measure_temp' line = os.popen (cmd) .readline (). strip () temp = line.split ('=') [1] .split ("'") [0] api.update_status (status = 'Min nuvarande CPU-temperatur är' + temp + 'C')
Jag förklarar inte den här koden för mycket för den spelar ingen roll - den kör ett kommando som tar tag temperaturen, delar sedan upp utgången för att extrahera antalet och tweeterar det med en anpassad meddelande. Du kan hitta det kompletta exempelkod här.
Tweeta webbkamera bilder
Låt oss nu göra något riktigt användbart; vi kommer att tweeta webbkamerabilder. Tack och lov stöder Twython API-funktionen update_status_with_media, vilket gör saker ganska enkla.
Anslut en USB-webbkamera till din enhet och kontrollera om den har identifierats med kommandot:
ls / dev / video *
om du ser Video0, du har tur. Jag använde en Playstation 3 PSEye-kam och det fungerade bra utan extra benarbete.
Vi kommer också att använda pygame bibliotek för att ta en bild; lägg till följande rader strax efter de befintliga importmeddelandena:
importera pygame. importera pygame.camera. från pygame.locals import * pygame.init () pygame.camera.init () cam = pygame.camera. Kamera ( "/ dev / Video0", (640.480)) cam.start () image = cam.get_image () pygame.image.save (bild, 'webbkamera.jpg')
Kort sagt, du har initialiserat webbkameran med en specifik upplösning (du kanske måste justera det här är en riktigt gammal kam), knäppte en bild och sparat den som en jpg. Vi kommer bara att skriva över samma webbkamera.jpg varje gång appen körs.
Slutligen justerar du update_status-raden så att den läser:
photo = open ('webcam.jpg', 'rb') api.update_status_with_media (media = photo, status = 'My RPi tweeting images now =>')
Naturligtvis kan du ändra statustexten till din aktuella CPU-temperatur igen om du vill. Den fullständiga koden för detta exempel ä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 och kör kommandot varje timme. För att uppnå detta, låt oss använda Pi: s CRON-schemaläggningsfunktion (Vad är ett CRON-jobb? Automatisera din Wordpress-säkerhetskopia med Simple Shell Scripting & CRONFörra gången vi pratade om Wordpress-säkerhetskopior, visade jag hur otroligt enkelt det var att säkerhetskopiera hela databasen och filerna med SSH med bara några få kommandon. Den här gången ska jag visa ... Läs mer )
sudo crontab -e
Klistra in den här raden så att den körs varje timme.
* / 60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py
Ändra det till * * * * * om du vill att det ska köras varje minut och vara beredd att förlora följare snabbare än ett Twitter-konto som förlorar följare snabbt.
Det är för idag. Jag är glad över att ha bidragit med mer finess till den stora mängden värdelösa byte på Internet, och jag hoppas att du gör det också! Visa din uppskattning för denna självstudie av tweeta det, och låt oss sedan veta vad din egen Twitter-bot kommer att tweeta om i kommentarerna.
Bildkredit: adafruit / flickr
James har en kandidatexamen i artificiell intelligens och är CompTIA A + och Network + certifierad. Han är ledande utvecklare av MakeUseOf och tillbringar sin fritid med att spela VR-paintball och brädspel. Han har byggt datorer sedan han var liten.