Reklame

Twitter er verdens største opbevaring af korte beskeder fra mennesker, der ikke har noget at sige - og nu kan du også bidrage til det episke projekt med en automatiseret Twitter-bot, drevet af din Raspberry Pi. Jeg laver sjov, sjov – nogle mennesker tweede faktisk interessante ting Sådan bruges Twitter til at søge efter mentorer i dit interesseområdeI den virkelige verden er en mentor en klog lærer, der støtter og guider nogen og hjælper dem med at maksimere deres potentiale. I onlineverdenen ville du være meget heldig at finde nogen der vil ... Læs mere . Jeg er dog ikke en af ​​dem - jeg bruger minen til skamløs produktpromovering til gengæld for gratis ting, konkurrenceindlæg og automatisk udsendelse af nye episoder af vores helt egen Technophilia Podcast. Uanset hvad - mine følgere elsker mig!

@ w0lfiesmith Jeg hader din Twitter-konto. Så meget.

- Justin Pot (@jhpot) 21. august 2013

Nu vil jeg tilføje nytten af ​​min personlige Twitter-strøm ved at få en Raspberry Pi automatisk til at twitre den aktuelle CPU-temperatur hver time og et webcam-billede!

instagram viewer

Kom godt i gang

Dette projekt bruger Python; et simpelt programmeringssprog ideelt til DIY-projekter. Vi begynder med at installere Twython på Pi - et Python-modul til grænseflade med Twitter; opsætning af en Twitter-applikation for at få en API-nøgle; derefter gå videre til at gøre Pi-tweet-ting på vores vegne. Det bliver så sjovt!

Jeg gør dette på Raspian - men det skal i teorien arbejde på enhver Linux-baseret operativsystem, du har på Pi 11 Operativsystemer, der kører på din Raspberry PiUanset dit Raspberry Pi-projekt, er der et operativsystem til det. Vi hjælper dig med at finde det bedste Raspberry Pi OS til dine behov. Læs mere . Hvis du ikke allerede har gjort det, skal du sørge for at konfigurere SSH, så vi eksternt kan logge ind og udføre konsolkommandoer.

Installation af Twython

Det er en god ide at køre opdateringer først. Kopier og indsæt følgende kommandoer ad gangen - de fleste kræver bekræftelse.

sudo apt-get-opdatering. sudo apt-get-opgradering. sudo apt-get install python-setuptools. sudo easy_install pip. sudo pip installere twython. 

Registrering af en Twitter-app

For at bruge Twitter API - det vil sige REST-interface, som vi bruger til at sende nye tweets og generelt interagere med Twitter uden for Twitter-webstedet - bliver vi nødt til at registrere en ny app. Gøre det fra dette link - du behøver ikke angive en opkalds-URL, og bare oprette et websted, hvis du vil.

ny-twitter-app

Du kan se noget der ligner dette, når du er færdig - disse taster er unikke for dig.

twitter-app

Som standard er appen indstillet til skrivebeskyttet, så vi vil ikke være i stand til at offentliggøre tweets uden at ændre det til Læs og skriv. Gå til fanen Indstillinger, og skift Ansøgningstype.

skrive- og læseadgang-adgang

Når du er gemt, skal du gå tilbage til detaljer fanen og klik på knappen nederst til oprette et OAuth-adgangstoken - dette giver din ansøgning adgang til din egen Twitter-konto. Opdater, og lad siden være åben for senere - vi bliver nødt til at kopiere indsætte nogle af disse nøgler på et minut.

adgang-token

Opret dit Python-projekt

Begynd med at oprette en ny mappe, der huser dit Tweet-projekt, og opret derefter en ny fil.

mkdir SillyTweeter. cd SillyTweeter. sudo nano SillyTweeter.py. 

Du kan selvfølgelig kalde det, hvad du vil.

I den teksteditor, der vises, skal du kopiere og indsætte følgende ved at udskifte forbrugernøglen med den relevante nøgle fra Twitter-applikationssiden, vi har åbnet tidligere. Hver nøgle er omgivet af enkelte citater, så sørg for ikke at gå glip af dem. Noter det ACCESS_KEY kaldes Adgangstoken på Twitter-appsiden.

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

Tryk på Ctrl-X, og tryk på Y for at afslutte og gemme filen. Gør det eksekverbart med følgende kommando (erstatte dit Python-filnavn, hvis du valgte noget andet)

sudo chmod + x SillyTweeter.py. 

Du skal nu kunne teste din evne til at sende tweets sådan:

python SillyTweeter.py 'Hej alle sammen, dette er min Raspberry Pi tweeter dig mere vrøvl'

Tweet din CPU-temp

Nu hvor du kan lægge en hvilken som helst slags vrøvl, du ønsker, lad os justere appen til at få fat i den aktuelle CPU-temperatur, fordi jeg bliver forbandet, hvis verden ikke behøver at vide det hver time.

Start med at tilføje en ny import til os-bibliotek:

import os

Tilføj derefter følgende linjer og erstatt den forrige api.update_status fra eksemplet ovenfor.

cmd = '/ opt / vc / bin / vcgencmd measure_temp' linje = os.åbne (cmd). trådlinje (). strimmel () temp = line.split ('=') [1] .split ("'") [0] api.update_status (status = 'Min nuværende CPU-temperatur er' + temp + 'C')

Jeg vil ikke forklare denne kode for meget, fordi den ikke rigtig betyder noget - den kører en kommando, der griber temperaturen, opdeler derefter output for at udtrække nummeret, og tweets det med en brugerdefineret besked. Du kan finde det komplette eksempel kode her.

Tweeting af webcam-billeder

Lad os gøre noget virkelig nyttigt; vi tweeter webcam-billeder. Heldigvis understøtter Twython API-funktionen update_status_with_media, hvilket gør tingene ganske enkle.

Sæt et USB-webcam i din enhed, og kontroller, om det er anerkendt med kommandoen:

ls / dev / video *

hvis du ser Video0, har du held. Jeg brugte en Playstation 3 PSEye-cam, og det fungerede helt fint uden yderligere benarbejde.

Vi vil også bruge PyGame biblioteker til at tage et billede; tilføj følgende linjer lige efter de eksisterende importangivelser:

importer pygame. import pygame.camera. fra 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 (billede, 'webcam.jpg')

Kort sagt har du initialiseret webcam med en bestemt opløsning (du skal muligvis justere dette er det er en rigtig gammel cam), klikkede et billede og gemte det som en jpg. Vi vil bare overskrive det samme webcam.jpg hver gang appen køres.

Endelig skal du justere update_status-linjen for at læse:

photo = open ('webcam.jpg', 'rb') api.update_status_with_media (media = photo, status = 'Min RPi twitrer billeder nu =>')

Selvfølgelig kan du ændre statusteksten til din aktuelle CPU-temperatur igen, hvis du vil. Den komplette kode til dette eksempel er her.

Kan du gentage det?

En Twitter-bot er kun nyttig, hvis den kører flere gange, automatisk; du ønsker ikke at sidde der og køre kommandoen hver time. For at opnå dette, lad os bruge Pi's CRON-planlægningsfunktion (Hvad er et CRON-job? Automatiser din Wordpress-sikkerhedskopi med Simple Shell-scripting og CRONSidste gang vi talte om Wordpress-sikkerhedskopier, viste jeg dig, hvor utroligt nemt det var at sikkerhedskopiere hele din database og filer, dog med SSH med kun få kommandoer. Denne gang skal jeg vise ... Læs mere )

sudo crontab -e

Indsæt i denne linje for at køre hver time.

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

Skift det til * * * * * hvis du vil have, at det skal køre hvert minut, og være parat til at miste følgere hurtigere end en Twitter-konto, der mister følgere hurtigt.

Det er i dag. Jeg er glad for at have bidraget med mere silliness til det store væld af unyttige bytes på Internettet, og det håber jeg også, du gør! Vis din taknemmelighed for denne tutorial af tweeting det, og lad os derefter vide, hvad din egen Twitter-bot vil tweet om i kommentarerne.

Billedkredit: Adafruit / flickr

James har en BSc i kunstig intelligens og er CompTIA A + og Network + certificeret. Han er hovedudvikler af MakeUseOf og bruger sin fritid på at spille VR paintball og brætspil. Han har bygget pc'er siden han var barn.